I am using Oracle's Studio 12.4 compilers for Linux/x86-64 to build the current master tarball. However, I am passing "-m32" to generate x86 (ILP32 ABI) executables.
The full configure mess is: --prefix=[...] --enable-debug \ CC=cc CFLAGS="-m32" --with-wrapper-cflags="-m32" \ CXX=CC CXXFLAGS="-m32" --with-wrapper-cxxflags="-m32" \ FC=f90 FCFLAGS="-m32" --with-wrapper-fcflags="-m32" The failing output from "make V=1" is /bin/sh ../../../libtool --tag=CC --mode=link cc -m32 -g -mt -export-dynamic -o opal_wrapper opal_wrapper.o ../../../opal/ libopen-pal.la -lrt -lm -lutil -lrt -lm -lutil libtool: link: cc -m32 -g -mt -o .libs/opal_wrapper opal_wrapper.o -Wl,--export-dynamic ../../../opal/.libs/libopen-pal.so -ldl -lrt -lm -lutil -mt -Wl,-rpath -Wl,/scratch/phargrov/OMPI/openmpi-master-linux-x86_64-ss12u4-m32/INST/lib ../../../opal/.libs/libopen-pal.so: undefined reference to `ebx' Now clearly "ebx" should be referring to the CPU register, not an external symbol, right? HOWEVER, in x86 PIC code (e.g. a .so file) one CANNOT generally use 'ebx' in inline asm because it is used as the GOT pointer. So, their might be more than one problem here. The same is seen with the older Studio 12.3 compilers for Linux. However, the problem is *NOT* seen with Studio 12.3 compilers on Solaris-11 and the identical configure options. -Paul BTW: Can somebody tell me if I really need to specify "-m32" in *both* CFLAGS and --with-wrapper-cflags (etc.)? -- Paul H. Hargrove phhargr...@lbl.gov Computer Languages & Systems Software (CLaSS) Group Computer Science Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900