Closed thouis closed 12 years ago
Comment in Trac by atmention:dmcooke, 2007-04-01
Comment in Trac by atmention:charris, 2007-06-16
Update the ticket with the following info from [numpy-discussion].
From: Atro Tossavainen atossavaatmention:cc.helsinki.fi
Regarding recent conversation between Charles R Harris and Mary Haley:
1) The problem with Numpy is that something causes -L/usr/lib to be included explicitly. This should never be done! The compiler ABI switches -32, -n32, -64 automatically cause the inclusion of the library directories for the correct ABI. If you explicitly include one of /usr/lib{,32,64} with -L, the compiler ABI choice probably conflicts with it, and even if you don't explicitly specify an ABI for the compiler, /etc/compiler.defaults does it for you anyway.
2) Am willing to help with Numpy building/testing on IRIX with MIPS compilers, have considerable expertise building F/OSS software in general and under IRIX in particular.
Comment in Trac by atmention:cournape, 2007-12-19
Is Mary Haley still with us regarding this bug ? I am willing to fix it, but needs access to an Irix machine, or at least some help from someone who has one.
Comment in Trac by atmention:cournape, 2008-03-21
I push this to 1.1, because not many people use irix anymore, and without help from someone with irix, this won't be fixed I think.
Comment in Trac by atmention:stefanv, 2008-03-23
Note that we have an IRIX buildbot. From its maintainer:
On IRIX, explicitly including /usr/lib is a recipe for disaster, and
I think I've already said it once...
/usr/lib contains the o32 (old ABI) libraries, /usr/lib32 the n32 and
/usr/lib64 the 64-bit libraries. None of these directories should ever
be included explicitly. Instead, the compiler flags -o32 (or -32),
-n32 and -64 should be used to generate results to the desired ABI
(which automatically causes inclusion of the correct library path).
Leaving these options out altogether results in whatever is defined
in /etc/compiler.defaults being used, which is usually the good choice.
From "man cc" on IRIX:
Option Action
-o32 or -32 Generates an (old) 32-bit object. (See the o32(5) man
page for option descriptions and details.) This defaults
to -mips2 if -mips1 has not been specified. See the
pe_environ(5) man page for information on the
COMPILER_DEFAULTS_PATH environment variable.
-n32 Generates a (new) 32-bit object. This defaults to -mips3
if -mips4 has not been specified.
-64 Generates a 64-bit object. This defaults to -mips4 if
-mips3 has not been specified. See the pe_environ(5) man
page for information on the COMPILER_DEFAULTS_PATH
environment variable.
Comment in Trac by atmention:cournape, 2008-08-11
Comment in Trac by atmention:mwiebe, 2011-03-23
This needs someone to volunteer doing test builds - if someone needs it on IRIX they can reopen the ticket or better ask on the mailing list.
Original ticket http://projects.scipy.org/numpy/ticket/417 Reported 2007-01-10 by trac user goddard, assigned to atmention:cournape.
Compiling numpy 1.0.1 on SGI IRIX 6.5.24m fails with the error shown below. The trouble is that it is compiling with the -n32 ("new" 32 ABI) but it is also explicitly adding -L/usr/lib to the link line and that system directory contains incompatible o32 libraries. The /usr/lib directory was added because it found BLAS libraries in that directory.
After working around that problem by changing default_lib_dirs to [] in numpy-1.0.1/numpy/distutils/system_info.py I get the C code errors shown in the second error message below undefined symbols expm1l, rintf, ..., non-constant initializers, ...).
These problems are using SGI compilers (not gcc).
After setting default_lib_dirs = [] get several C code errors: