> On Aug 1, 2018, at 1:11 PM, Juan Francisco Cantero Hurtado 
> <[email protected]> wrote:
> 
> CVSROOT:    /cvs
> Module name:    ports
> Changes by:    [email protected]    2018/08/01 11:11:43
> 
> Modified files:
>    lang/cython    : Makefile 
> Added files:
>    lang/cython/patches: patch-Cython_Utility_ModuleSetupCode_c 
> 
> Log message:
> Upstream changed recently the optimization level to Os for GCC. It
> broke the build of the packages which depend of cython on macppc and
> probably on other GCC4 arches.
> 
> Spotted by landry@ with numpy. Culprit found by daniel@.

Note this won’t fix numpy yet since the numpy package on pypi uses a local 
version of Cython independent of our ports tree. (other Python ports might also 
do something like that). So a separate patch is needed for numpy to repair that 
package (I will take care of shortly).

In terms of other followups I think there’s an unusually wide list of things 
that are affected and could be fixed.

1) Might be worth scanning the tree for use of files that are pre-generated by 
cython version 0.28.x...

2) In regard to Cython it might be worth asking upstream to revert the 
problematic diff?

To quote from the latest gcc manual:

“This attribute should be used for debugging purposes only. It is not suitable 
in production code.”

(see: 
https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Common-Function-Attributes.html#Common-Function-Attributes)

So use of this attribute doesn’t seem like a great idea to me...

In fact the Cython folks seem to know this as can be seen in this github issue 
(so I’m not sure for the rationale to keep using this attribute anyway). see:
https://github.com/cython/cython/issues/2494

3) I need to check our local changes for base and ports gcc. It seems like we 
might want to explore turning the “optimize” attribute off for ports gcc (and 
fixing base gcc so it doesn’t generate code that blows up at runtime on macppc).

Reply via email to