On 06/28/10 11:28 AM, David Cournapeau wrote: > On Mon, Jun 28, 2010 at 6:56 PM, Dr. David Kirkby
>> Many other parts of Sage seem to inherit the flags ok from Python, but not >> numpy. > > Are you saying that OPT is not taken into account ? It seems to work > for me, e.g. > > OPT="-m64" python setup.py build_ext > > does put -m64 somewhere in CFLAGS. When using numpy.distutils, CFLAGS > should never be overriden unless you are ready to set up the whole set > of options manually. By default, CFLAGS is the concatenation of > BASECFLAGS, OPT and CCSHARED (in that order), and only OPT should be > tweaked in general. > > David > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion OPT is not being totally ignored, but some part of numpy is trying to build without taking -m64 into account. Note in the output below that as numpy is compiled, -m64 is shown on some lines, which is what I expect. But note also the messages about "wrong ELF class: ELFCLASS64" from the linker, indicating to me the linker is not expecting to find 64-bit objects. All the libraries in the directory /export/home/drkirkby/sage-4.5.alpha0/local/lib are 64-bit. Someone worked around this on OS X by creating a script called 'gcc_fake', with this content #!/bin/bash /usr/bin/gcc -m64 $@ If a 64-bit build was going to be done, this was remaned to 'gcc' and put in the path first before building numpy. Once numpy was built, the script can be deleted. All the script does is basically invoke gcc with the -m64 option, which is making me think that -m64 is being missed somewhere. I just deleted this gcc_fake, as it had a hard-coded path. I then created it dynamically, so the path of the real gcc does not need to be /usr/bin/gcc. Doing that, I can build numpy 64-bit on OpenSolaris. But of course this is a hack, and I'd rather avoid the hack if possible. BTW, if it would help, I could create you an account on this machine and test it yourself. I'm not trying to get out of doing the work, but the offer is there. Dave numpy-1.3.0.p3/spkg-install numpy-1.3.0.p3/.hgignore Finished extraction **************************************************** Host system uname -a: SunOS hawk 5.11 snv_134 i86pc i386 i86pc **************************************************** **************************************************** CC Version gcc -v Using built-in specs. Target: i386-pc-solaris2.11 Configured with: /export/home/drkirkby/gcc-4.4.4/configure --prefix=/usr/local/gcc-4.4.4-multilib --enable-languages=c,c++,fortran --with-gmp=/usr/local/gcc-4.4.4-multilib --with-mpfr=/usr/local/gcc-4.4.4-multilib --disable-nls --enable-checking=release --enable-werror=no --enable-multilib --with-system-zlib --enable-bootstrap --with-gnu-as --with-as=/usr/local/binutils-2.20/bin/as --without-gnu-ld --with-ld=/usr/ccs/bin/ld Thread model: posix gcc version 4.4.4 (GCC) **************************************************** Running from numpy source directory. F2PY Version 2 blas_opt_info: blas_mkl_info: libraries mkl,vml,guide not found in /export/home/drkirkby/sage-4.5.alpha0/local/lib NOT AVAILABLE atlas_blas_threads_info: Setting PTATLAS=ATLAS libraries ptf77blas,ptcblas,atlas not found in /export/home/drkirkby/sage-4.5.alpha0/local/lib NOT AVAILABLE atlas_blas_info: FOUND: libraries = ['f77blas', 'cblas', 'atlas'] library_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/lib'] language = c include_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/include'] /export/home/drkirkby/sage-4.5.alpha0/spkg/build/numpy-1.3.0.p3/src/numpy/distutils/command/config.py:361: DeprecationWarning: +++++++++++++++++++++++++++++++++++++++++++++++++ Usage of get_output is deprecated: please do not use it anymore, and avoid configuration checks involving running executable on the target machine. +++++++++++++++++++++++++++++++++++++++++++++++++ DeprecationWarning) customize Sage_FCompiler_1 customize Sage_FCompiler_1 customize Sage_FCompiler_1 using config compiling '_configtest.c': /* This file is generated from numpy/distutils/system_info.py */ void ATL_buildinfo(void); int main(void) { ATL_buildinfo(); return 0; } C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -m64 -Wall -Wstrict-prototypes -fPIC compile options: '-c' gcc: _configtest.c gcc _configtest.o -L/export/home/drkirkby/sage-4.5.alpha0/local/lib -lf77blas -lcblas -latlas -o _configtest ld: fatal: file _configtest.o: wrong ELF class: ELFCLASS64 ld: fatal: file processing errors. No output written to _configtest collect2: ld returned 1 exit status ld: fatal: file _configtest.o: wrong ELF class: ELFCLASS64 ld: fatal: file processing errors. No output written to _configtest collect2: ld returned 1 exit status failure. removing: _configtest.c _configtest.o Status: 255 Output: FOUND: libraries = ['f77blas', 'cblas', 'atlas'] library_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/lib'] language = c define_macros = [('NO_ATLAS_INFO', 2)] include_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/include'] lapack_opt_info: lapack_mkl_info: mkl_info: libraries mkl,vml,guide not found in /export/home/drkirkby/sage-4.5.alpha0/local/lib NOT AVAILABLE NOT AVAILABLE atlas_threads_info: Setting PTATLAS=ATLAS libraries ptf77blas,ptcblas,atlas not found in /export/home/drkirkby/sage-4.5.alpha0/local/lib libraries lapack_atlas not found in /export/home/drkirkby/sage-4.5.alpha0/local/lib numpy.distutils.system_info.atlas_threads_info NOT AVAILABLE atlas_info: libraries lapack_atlas not found in /export/home/drkirkby/sage-4.5.alpha0/local/lib numpy.distutils.system_info.atlas_info FOUND: libraries = ['lapack', 'f77blas', 'cblas', 'atlas'] library_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/lib'] language = f77 include_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/include'] customize Sage_FCompiler_1 customize Sage_FCompiler_1 customize Sage_FCompiler_1 using config compiling '_configtest.c': /* This file is generated from numpy/distutils/system_info.py */ void ATL_buildinfo(void); int main(void) { ATL_buildinfo(); return 0; } C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -m64 -Wall -Wstrict-prototypes -fPIC compile options: '-c' gcc: _configtest.c gcc _configtest.o -L/export/home/drkirkby/sage-4.5.alpha0/local/lib -llapack -lf77blas -lcblas -latlas -o _configtest ld: fatal: file _configtest.o: wrong ELF class: ELFCLASS64 ld: fatal: file processing errors. No output written to _configtest collect2: ld returned 1 exit status ld: fatal: file _configtest.o: wrong ELF class: ELFCLASS64 ld: fatal: file processing errors. No output written to _configtest collect2: ld returned 1 exit status failure. removing: _configtest.c _configtest.o Status: 255 Output: FOUND: libraries = ['lapack', 'f77blas', 'cblas', 'atlas'] library_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/lib'] language = f77 define_macros = [('NO_ATLAS_INFO', 2)] include_dirs = ['/export/home/drkirkby/sage-4.5.alpha0/local/include'] running install running build running config_cc unifing config_cc, config, build_clib, build_ext, build commands --compiler options running config_fc unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options running build_src building py_modules sources creating build creating build/src.solaris-2.11-i86pc-2.6 creating build/src.solaris-2.11-i86pc-2.6/numpy creating build/src.solaris-2.11-i86pc-2.6/numpy/distutils building library "npymath" sources creating build/src.solaris-2.11-i86pc-2.6/numpy/core creating build/src.solaris-2.11-i86pc-2.6/numpy/core/src conv_template:> build/src.solaris-2.11-i86pc-2.6/numpy/core/src/npy_math.c building extension "numpy.core._sort" sources Generating build/src.solaris-2.11-i86pc-2.6/numpy/core/include/numpy/config.h customize Sage_FCompiler_1 customize Sage_FCompiler_1 customize Sage_FCompiler_1 using config C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -m64 -Wall -Wstrict-prototypes -fPIC compile options: '-Inumpy/core/src -Inumpy/core/include -I/export/home/drkirkby/sage-4.5.alpha0/local/include/python2.6 -c' gcc: _configtest.c success! removing: _configtest.c _configtest.o C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -m64 -Wall -Wstrict-prototypes -fPIC compile options: '-Inumpy/core/src -Inumpy/core/include -I/export/home/drkirkby/sage-4.5.alpha0/local/include/python2.6 -c' gcc: _configtest.c _configtest.c:4: warning: function declaration isn't a prototype removing: _configtest.c _configtest.o C compiler: gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -m64 -Wall -Wstrict-prototypes -fPIC _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion