Skip to content

long double check is failing on GNU/Linux PPC (Trac #1403) #2001

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
thouis opened this issue Oct 19, 2012 · 11 comments
Closed

long double check is failing on GNU/Linux PPC (Trac #1403) #2001

thouis opened this issue Oct 19, 2012 · 11 comments

Comments

@thouis
Copy link
Contributor

thouis commented Oct 19, 2012

Original ticket http://projects.scipy.org/numpy/ticket/1403 on 2010-02-21 by trac user mounir.lamouri, assigned to unknown.

Since 1.4.0, numpy doesn't work anymore on GNU/Linux PowerPC systems. Indeed, numpy.core is checking the long double type and PowerPC isn't supported.

Please, look at the attached build log.

@thouis
Copy link
Contributor Author

thouis commented Oct 19, 2012

Attachment added by trac user mounir.lamouri on 2010-02-21: build.log

@thouis
Copy link
Contributor Author

thouis commented Oct 19, 2012

trac user JoseJX wrote on 2010-02-22

I've looked into this a little, here's some more info:

On a G4 (ppc32) gcc-4.4.3, G5 (ppc32/ppc64 userland) gcc-4.4.3, and a G5 (ppc64 userland) gcc-4.3.4, all use the IBM Long Double format, which actually is a pair of 64 bit longs, basically as shown in this document http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.genprogc/doc/genprogc/128bit_long_double_floating-point_datatype.htm

I'm sure there's a document that describes it for Linux as well, but it's the same format. As far as I know it was made default some time around gcc-4.1.

@thouis
Copy link
Contributor Author

thouis commented Oct 19, 2012

@cournape wrote on 2010-02-23

Ok, so that's one new long double format to take into account. I am afraid it requires rewriting most of the code which depends on long double, so it may take some time before I or someone else implements it.

@thouis
Copy link
Contributor Author

thouis commented Oct 19, 2012

Milestone changed to Unscheduled by @cournape on 2010-02-23

@thouis
Copy link
Contributor Author

thouis commented Oct 19, 2012

trac user JoseJX wrote on 2010-02-23

Well, you could force the size of the long double to always be 64 bits using -mlong-double-64, but I'm not sure if that's an acceptable solution.

@thouis
Copy link
Contributor Author

thouis commented Oct 19, 2012

@cournape wrote on 2010-07-20

Forcing the long double type to be as the double type is not good, as it breaks the ABI, and it means every C library function will be broken when called with our long double type

@charris
Copy link
Member

charris commented Feb 19, 2014

Someone who cares needs to fix things for IBM long doubles. It isn't IEEE, so strictly speaking we don't need to support it.

@juliantaylor
Copy link
Contributor

there is a patch for ppc64 little endian support in ubuntus numpy package, but I guess this issue is about big endian?

@charris
Copy link
Member

charris commented Feb 19, 2014

I don't know. PPC devices could be either big or little endian as the PPC could go both ways, I don't recall what Apple used. But this is about the special form that IBM used for long doubles. The detection may even have been fixed, but I'd need to check to code to find out.

@charris
Copy link
Member

charris commented Aug 15, 2016

Judging by the last comments on #7836 this should be fixed for little endian. Apple was, I believe big endian and I don't know what the status of that is from actual report, but I think is should be OK.

@charris
Copy link
Member

charris commented Aug 13, 2018

The ppc problems are being pursued elsewhere, so closing this.

@charris charris closed this as completed Aug 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants