>
> 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
>
To compare, the correct way to call the linker is:
(notice the place of --whole-archive)
/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 \
-shared --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 \
-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 \
--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
|