On 2/8/2012 3:25 AM, TERRY DONTJE wrote:
+ Building w/ Solaris Studio 12.2 or 12.3 on Linux x86-64, with
"-m32" required setting LD_LIBRARY_PATH.
Can the LD_LIBRARY_PATH be substituted with a rpath change in LDFLAGS
of the build?
Terry sent more specific instructions for that offlist, and I am testing
now.
This is could either be Oracle's bug in the compiler, or a libtool
problem.
My report was:
http://www.open-mpi.org/community/lists/devel/2012/01/10272.php
I thought I responded to the above issue.
You did respond, but I didn't see any "resolution". I apologize if I
missed something in the past emails.
I think this may be a OS distribution (Solaris Studio assumption)
issue. On my RH system /lib contains the 32 libraries and /lib64 has
the 64 bit libs. I assume your system may have it the other way
around (/lib = 64 bit libs and /lib32 has 32 bit). Can you confirm
that your /lib contains 64 bit libs. Also can you do a "cc -### -m32"
compile and link of a simple program and confirm that the compiler is
pulling in /lib (I am 99% certain it is).
YES to "/lib = 64 bit libs and /lib32 has 32 bit". There is also a
/lib64->/lib symlink.
Here is the requested verbose output:
$ cc -### -m32 hello.c
### cc: Note: NLSPATH =
/opt/SS12u3/solarisstudio12.3/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/SS12u3/solarisstudio12.3/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
### command line files and options (expanded):
### -# -m32 hello.c
/opt/SS12u3/solarisstudio12.3/prod/bin/acomp -Qy -Xa -xc99=%all -i
hello.c -D__SUNPRO_C=0x5120 -D__unix -D__unix__ -Dlinux -D__linux
-D__linux__ -D__gnu__linux__ "-D__builtin_expect(e,x)=e" -D__i386
-D__i386__ -D__BUILTIN_VA_ARG_INCR -D__C99FEATURES__
-D__PRAGMA_REDEFINE_EXTNAME -Dunix -Di386 -D__RESTRICT
-D__FLT_EVAL_METHOD__=-1 -D__SUN_PREFETCH -D__NOVECTORSIZE__ -I-xbuiltin
-I/opt/SS12u3/solarisstudio12.3/prod/lib/compilers/rtlibs/usr/include
-I/opt/SS12u3/solarisstudio12.3/prod/include/cc -xbuiltin=%none
-fsimple=0 -m32 -fparam_ir -xF=%none -xdbggen=no%stabs+dwarf2+usedonly
-xdbggen=incl -xldscope=global -xivdep=loop -c99OS
"-g/opt/SS12u3/solarisstudio12.3/prod/bin/cc -m32 " -destination_ir=yabe
-y-fbe -y/opt/SS12u3/solarisstudio12.3/prod/bin/fbe -y-verbose -y-comdat
-y-xarch=generic -y-comdat -y-xthreadvar=no%dynamic -y-xannotate=no -y-o
-yhello.o -y-s
### cc: Note: LD_LIBRARY_PATH = (null)
### cc: Note: LD_RUN_PATH = (null)
### cc: Note: LD_OPTIONS = (null)
/usr/bin/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2
--enable-new-dtags /opt/SS12u3/solarisstudio12.3/prod/lib/crti.o
/opt/SS12u3/solarisstudio12.3/prod/lib/crt1.o
/opt/SS12u3/solarisstudio12.3/prod/lib/values-xa.o hello.o -o a.out -Y
"/opt/SS12u3/solarisstudio12.3/prod/lib:/lib32:/usr/lib32" -Qy -lc
/opt/SS12u3/solarisstudio12.3/prod/lib/libc_supp.a
/opt/SS12u3/solarisstudio12.3/prod/lib/crtn.o
rm hello.o
HOWEVER, in the failing build there was the following bit of output
showing that the system linker is NOT being used:
CC: Warning: failed to detect system linker version, falling back to
custom linker usage
Also, is this /lib is 64 bit libraries a common thing, none of my
Linux systems are set up this way.
This appears to be the default on Ubuntu (checked 3 hosts with 2
different releases).
-Paul
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900