sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.44k stars 479 forks source link

cython fails to build in Open Solaris x64 as 64 bit if CFLAGS is not set to -m64 globally #8116

Closed jaapspies closed 14 years ago

jaapspies commented 14 years ago

If $SAGE64 = "yes" we need CFLAGS=-m64 on Open Solaris.

Patch coming up.

spkg is here: http://boxen.math.washington.edu/home/jsp/ports/cython-0.12.p0.spkg

Jaap

CC: @robertwb

Component: porting

Author: Jaap Spies

Reviewer: David Kirkby

Issue created by migration from https://trac.sagemath.org/ticket/8116

jaapspies commented 14 years ago

Author: Jaap Spies

jaapspies commented 14 years ago

Description changed:

--- 
+++ 
@@ -2,6 +2,9 @@

 Patch coming up.

+spkg is here:
+[http://boxen.math.washington.edu/home/jsp/ports/cython-0.12.p0.spkg](http://boxen.math.washington.edu/home/jsp/ports/cython-0.12.p0.spkg)
+
 Jaap
jaapspies commented 14 years ago
comment:1

Attachment: cython-0.12.p0.patch.gz

http://boxen.math.washington.edu/home/jsp/ports/cython-0.12.p0.spkg

This spkg needs testing on OSX with $SAGE64 = "yes"

Jaap

bac7d3ea-3f1b-4826-8464-f0b53d5e12d2 commented 14 years ago
comment:4

I would not do this. It was setting of CFLAGS in sage-env which caused cython to mis-compile code. This is probably why it was not done in OS X. I do not know how to get cython to build 64-bit, but I do not believe you should set CFLAGS to do so.

bac7d3ea-3f1b-4826-8464-f0b53d5e12d2 commented 14 years ago

Reviewer: David Kirkby

robertwb commented 14 years ago
comment:6

Cython gets the flags it needs from distutils (which, if I understand correctly, tries to use the flags that Python itself was built with). Just setting CFLAGS directly can mess this up. Can you post the log of running cython -f with this option? Also, Cython won't compile, do you have any luck with all the .pyx files in the Sage library?

jaapspies commented 14 years ago
comment:7

Replying to @robertwb:

Cython gets the flags it needs from distutils (which, if I understand correctly, tries to use the flags that Python itself was built with). Just setting CFLAGS directly can mess this up. Can you post the log of running cython -f with this option? Also, Cython won't compile, do you have any luck with all the .pyx files in the Sage library?

So if I understand you correctly we need a properly installed Python. I have to hack a bit to get a working Python in Open Solaris.

Why not unset CFLAGS in the Cython spkg-install?

Without CFLAGS set building cython failes on Open Solaris x64!

*.pyx files? I don't get sage-4.3.1.alpha build :)!

So let's get Python build correctly on Open Solaris x64!

Jaap

robertwb commented 14 years ago
comment:8

Replying to @jaapspies:

Replying to @robertwb:

Cython gets the flags it needs from distutils (which, if I understand correctly, tries to use the flags that Python itself was built with). Just setting CFLAGS directly can mess this up. Can you post the log of running cython -f with this option? Also, Cython won't compile, do you have any luck with all the .pyx files in the Sage library?

So if I understand you correctly we need a properly installed Python. I have to hack a bit to get a working Python in Open Solaris.

Yes. Worrying about Cython working before Python is set up correctly is probably going to be an exercise in futility.

Why not unset CFLAGS in the Cython spkg-install?

For fear of breaking things. I am not an expert on distutils or building stuff, so for me the safest path is to not change stuff.

Without CFLAGS set building cython failes on Open Solaris x64!

Do you get a working Cython with CFLAGS set? (If so, it might just be lucky...) What errors do you get otherwise? (I think Cython's supposed to fall back to a pure Python setup if the compile fails, but I could be remembering wrong.)

*.pyx files? I don't get sage-4.3.1.alpha build :)!

Yet :)

I'm just pointing out that whatever issues we're running into here, we'll be running into later with the sage library.

So let's get Python build correctly on Open Solaris x64!

Sounds like the best course of action.

jaapspies commented 14 years ago
comment:9

Replying to @robertwb:

Replying to @jaapspies:

Replying to @robertwb:

Cython gets the flags it needs from distutils (which, if I understand correctly, tries to use the flags that Python itself was built with). Just setting CFLAGS directly can mess this up. Can you post the log of running cython -f with this option? Also, Cython won't compile, do you have any luck with all the .pyx files in the Sage library?

So if I understand you correctly we need a properly installed Python. I have to hack a bit to get a working Python in Open Solaris.

Yes. Worrying about Cython working before Python is set up correctly is probably going to be an exercise in futility.

I do have a working Python! But I don't know it is setup properly :(

Python 2.6.4 (r264:75706, Jan 27 2010, 22:37:41) 
[GCC 4.4.2] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Why not unset CFLAGS in the Cython spkg-install?

For fear of breaking things. I am not an expert on distutils or building stuff, so for me the safest path is to not change stuff.

If you don't accept CFLAGS set globally, why not?

Without CFLAGS set building cython failes on Open Solaris x64!

Do you get a working Cython with CFLAGS set? (If so, it might just be lucky...) What errors do you get otherwise? (I think Cython's supposed to fall back to a pure Python setup if the compile fails, but I could be remembering wrong.)

I don't know. It just says it installed successfully :)

I'm just pointing out that whatever issues we're running into here, we'll be running into later with the sage library.

So let's get Python build correctly on Open Solaris x64!

Sounds like the best course of action.

Let's go for it!

Jaap

robertwb commented 14 years ago
comment:10

Replying to @jaapspies:

If you don't accept CFLAGS set globally, why not?

This is a distutils question, nothing specific to Cython. Hopefully we can get to the root of the issue, as many packages are "python setup.py install"

jaapspies commented 14 years ago
comment:11

I rebuilt python with in the spkg-install Darwin changed to SunOS.

Python buidls ok now with the right CFLAGS set.

Rebuilding cython was ok.

So in principle problem solved!

I close the ticket as invalid.

Jaap

jaapspies commented 14 years ago

Description changed:

--- 
+++ 
@@ -5,6 +5,8 @@
 spkg is here:
 [http://boxen.math.washington.edu/home/jsp/ports/cython-0.12.p0.spkg](http://boxen.math.washington.edu/home/jsp/ports/cython-0.12.p0.spkg)

+
+
 Jaap