Dear Jeff,
I tried 7.1.2b13 (removed my libtool before config and make)
Your version of libtool still generate this compile command
[shtang_at_precision liblam]$ pgcc -shared \
-Wl,--whole-archive \
../../share/args/.libs/liblamargs.a \
../../share/boot/.libs/liblamboot.a \
../../share/etc/.libs/liblametc.a \
../../share/freq/.libs/liblamfreq.a \
../../share/kreq/.libs/liblamkreq.a \
../../share/libltdl/.libs/libltdlc.a \
../../share/mpi/.libs/liblamextra.a \
../../share/nreq/.libs/liblamnreq.a \
../../share/rreq/.libs/liblamrreq.a \
../../share/ssi/.libs/libssi_lam.a \
../../share/threads/.libs/liblamthreads.a \
../../share/trillium/.libs/liblamtrillium.a \
../../share/tstdio/.libs/liblamtstdio.a \
-Wl,--no-whole-archive -ldl -lpthread -lc \
-Wl,-soname -Wl,liblam.so.0 \
-o .libs/liblam.so.0.0.0
Which in turn call the linker this way
(can check with pgcc -#)
/usr/bin/ld /usr/lib64/crti.o \
/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/crtbeginS.o \
-m elf_x86_64 -dynamic-linker \
/lib64/ld-linux-x86-64.so.2 \
../../share/args/.libs/liblamargs.a \
../../share/boot/.libs/liblamboot.a \
../../share/etc/.libs/liblametc.a \
../../share/freq/.libs/liblamfreq.a \
../../share/kreq/.libs/liblamkreq.a \
../../share/libltdl/.libs/libltdlc.a \
../../share/mpi/.libs/liblamextra.a \
../../share/nreq/.libs/liblamnreq.a \
../../share/rreq/.libs/liblamrreq.a \
../../share/ssi/.libs/libssi_lam.a \
../../share/threads/.libs/liblamthreads.a \
../../share/trillium/.libs/liblamtrillium.a \
../../share/tstdio/.libs/liblamtstdio.a \
-o .libs/liblam.so.0.0.0 \
-L/usr/pgi/linux86-64/5.2/lib \
-L/usr/lib64 \
-L/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3 \
-rpath /usr/pgi/linux86-64/5.2/lib \
-shared --whole-archive --no-whole-archive \
-ldl -lpthread -lc -soname liblam.so.0 \
-lc -lnspgc -lpgc -lm -lgcc -lc -lgcc \
/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/crtendS.o \
/usr/lib64/crtn.o
And so the lam libraries are not archived.
Static libraries are not archived through pgcc, but by the "ar" command.
So there is no problem for liblam.a.
I think either way will be: find a way to call pgcc properly so that
linker argument order is preserved, or, skip pgcc and use ld directly.
Portland compilers evaluation version can be get from:
http://www.pgroup.com/products/workindex.htm
Thanks!
On Fri, 2005-02-18 at 10:59 -0500, Jeff Squyres wrote:
> Can you try 7.1.2b13 instead?
>
> I just noticed that the nightly tarball is being built with Libtool
> 1.5.8, but the beta was built with Libtool 1.5.14.
>
>
> On Feb 18, 2005, at 6:54 AM, Ricky Tang Siu Hong wrote:
>
> > Hello,
> >
> > I have some problem to compile lam-7.2b1r10059 using PGI 5.1/5.2.
> >
> > The shared library share/liblam/.libs/liblam.so.0.0.0 is not archived
> > correctly. So it contains no useful symbols and compilation stops at
> > some
> > point later to link with liblam.so.
> >
> > Then I found out pgcc compiler do not pass option (with -Wl flag) to
> > linker
> > with correct order. The line below shows the command generated by
> > pgcc to
> > invoke ld, which "--whole-archive" is placed after the useful obj
> > files,
> > just next to "--no-whole-archive".
> >
> > Although this seems to be a PGI related problem.... Because earlier
> > post
> > have addressed to a PGI problem by adding "-Wl" argument.... So I
> > think it
> > may be helpful to report here so we can work out the way to finally get
> > dynamic SSI modules to work on this fainting compiler!
> >
> > Thank you very much in advanced.
> >
> >
> >
> > [shtang_at_precision liblam.1]$ pgcc -# -shared -Wl,--whole-archive
> > ../../share/args/.libs/liblamargs.a ../../share/boot/.libs/liblamboot.a
> > ../../share/etc/.libs/liblametc.a ../../share/freq/.libs/liblamfreq.a
> > ../../share/kreq/.libs/liblamkreq.a
> > ../../share/libltdl/.libs/libltdlc.a
> > ../../share/mpi/.libs/liblamextra.a ../../share/nreq/.libs/liblamnreq.a
> > ../../share/rreq/.libs/liblamrreq.a ../../share/ssi/.libs/libssi_lam.a
> > ../../share/threads/.libs/liblamthreads.a
> > ../../share/trillium/.libs/liblamtrillium.a
> > ../../share/tstdio/.libs/liblamtstdio.a -Wl,--no-whole-archive -ldl
> > -lpthread
> > -lc -Wl,-soname -Wl,liblam.so.0 -o .libs/liblam.so.0.0.0
> >
> > /usr/bin/ld /usr/lib64/crti.o
> > /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/crtbeginS.o -m
> > elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
> > ../../share/args/.libs/liblamargs.a ../../share/boot/.libs/liblamboot.a
> > ../../share/etc/.libs/liblametc.a ../../share/freq/.libs/liblamfreq.a
> > ../../share/kreq/.libs/liblamkreq.a
> > ../../share/libltdl/.libs/libltdlc.a
> > ../../share/mpi/.libs/liblamextra.a ../../share/nreq/.libs/liblamnreq.a
> > ../../share/rreq/.libs/liblamrreq.a ../../share/ssi/.libs/libssi_lam.a
> > ../../share/threads/.libs/liblamthreads.a
> > ../../share/trillium/.libs/liblamtrillium.a
> > ../../share/tstdio/.libs/liblamtstdio.a -o
> > .libs/liblam.so.0.0.0 -L/usr/pgi/linux86-64/5.2/lib -L/usr/lib64
> > -L/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3
> > -rpath
> > /usr/pgi/linux86-64/5.2/lib -shared --whole-archive --no-whole-archive
> > -ldl
> > -lpthread -lc -soname liblam.so.0 -lc -lnspgc -lpgc -lm -lgcc -lc -lgcc
> > /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/crtendS.o /usr/lib64/crtn.o
> >
> >
> > [shtang_at_precision liblam.1]$ nm -D .libs/liblam.so.0.0.0
> > 0000000000100a30 A __bss_start
> > w __cxa_finalize
> > 0000000000100800 A _DYNAMIC
> > 0000000000100a30 A _edata
> > 0000000000100a38 A _end
> > 00000000000007b8 T _fini
> > 00000000001009f8 A _GLOBAL_OFFSET_TABLE_
> > w __gmon_start__
> > 0000000000000698 T _init
> > w _Jv_RegisterClasses
> > (--end of paste--)
> >
> > --
> > Ricky Tang
> > Cluster Technology Limited
> > shtang_at_[hidden]
> >
> > _______________________________________________
> > This list is archived at http://www.lam-mpi.org/MailArchives/lam/
> >
>
--
Ricky Tang
Cluster Technology Limited
Center of Large Scale Computation
shtang_at_[hidden]
|