libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libtool rearranging library paths


From: Christopher Hulbert
Subject: libtool rearranging library paths
Date: Thu, 1 Dec 2005 21:41:41 -0500

I have a some fortran code compiled by libtool into a static (convenience archive).  Later I compile a C source file into a shared library linking against the fortran library.  Since automake/libtool have no knowledge that the objects are from fortran, I add in the necessary fortran libraries.  The problem I get is with PIC.  libtool is changing the order of my library paths and picking up a non-PIC PGI fortran library.  I have fought with libtool for days and cannot figure out why.  I can provide the debug output if necessary, but here are the few commands that show the rearranging.  Note that in the libtool --mode=link command /usr/local/pgi/linux86-64/6.0/libso is before /usr/local/pgi/linux86-64/6.0/lib, but in the actual command executed, the order is reversed,  Also, why is libtool not passing the PIC flag to the pgcc command?  I told it to use PIC and it uses PIC in the compile stage.  NOTE that this only happens on 64-bit platform because the 32-bit platform has only one directory.

/bin/sh ../libtool --tag=CC --mode=link pgcc  -O0 -Wall -g --exceptions -m64 -g  -no-undefined -module -avoid-version -shrext .mexa64 -Wl,--wrap,malloc,--wrap,calloc,--wrap,free,--wrap,assert -L../libislmex -L../libscatsmex -pthread -shared -Wl,--version-script,/usr/local/matlab71/extern/lib/glnxa64/mexFunction.map  -o llh2ecef.la -rpath /home/chulbert/ISLtools_v1.2/i686-pc-linux-gnu/mex/geo_mex  llh2ecef_la-llh2ecef.lo  -lscatsmex -L../../libscats -lscats -L../../libseke -lseke -L../../libscatsio -lscatsio -L/apps/lib64 -lvsip     /apps/lib64/libz.a -L/usr/local/pgi/linux86-64/6.0/libso -L/usr/local/pgi/linux86-64/6.0/lib -L/usr/lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.0.0 -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lm -L/apps/lib64 -lvsip  -lislmex -Wl,--rpath-link,/usr/local/matlab71/extern/lib/glnxa64,--rpath-link,/usr/local/matlab71/bin/glnxa64 -L/usr/local/matlab71/bin/glnxa64 -lmx -lmex -lmat -lm -lm

*** Warning: Linking the shared library llh2ecef.la against the
*** static library /apps/lib64/libz.a is not portable!
rm -fr  .libs/llh2ecef.lax
rm -fr .libs/llh2ecef.lax
mkdir .libs/llh2ecef.lax
rm -fr .libs/llh2ecef.lax/libscats.a
mkdir .libs/llh2ecef.lax/libscats.a
(cd .libs/llh2ecef.lax/libscats.a && ar x /home/chulbert/ISLtools/build-fedora4.0/scats/libscats/.libs/libscats.a)
rm -fr .libs/llh2ecef.lax/libseke.a
mkdir .libs/llh2ecef.lax/libseke.a
(cd .libs/llh2ecef.lax/libseke.a && ar x /home/chulbert/ISLtools/build-fedora4.0/scats/libseke/.libs/libseke.a)
rm -fr .libs/llh2ecef.lax/libscatsio.a
mkdir .libs/llh2ecef.lax/libscatsio.a
(cd .libs/llh2ecef.lax/libscatsio.a && ar x /home/chulbert/ISLtools/build-fedora4.0/scats/libscatsio/.libs/libscatsio.a)
pgcc -shared  .libs/llh2ecef_la-llh2ecef.o  .libs/llh2ecef.lax/libscats.a/cover.o .libs/llh2ecef.lax/libscats.a/scatsMAT.o .libs/llh2ecef.lax/libscats.a/matrix.o .libs/llh2ecef.lax/libscats.a/geo.o .libs/llh2ecef.lax/libscats.a/los.o .libs/llh2ecef.lax/libscats.a/seke.o .libs/llh2ecef.lax/libscats.a/scatsfft.o .libs/llh2ecef.lax/libscats.a/grid.o .libs/llh2ecef.lax/libscats.a/scatsmath.o .libs/llh2ecef.lax/libscats.a/cov.o .libs/llh2ecef.lax/libscats.a/noise.o .libs/llh2ecef.lax/libscats.a/pattern.o .libs/llh2ecef.lax/libscats.a/array.o .libs/llh2ecef.lax/libscats.a/scats_loop.o .libs/llh2ecef.lax/libscats.a/timing.o .libs/llh2ecef.lax/libscats.a/scats.o .libs/llh2ecef.lax/libscats.a/terrain.o  .libs/llh2ecef.lax/libseke.a/libseke_la-El2Prop.o .libs/llh2ecef.lax/libseke.a/libseke_la-Goptap2.o .libs/llh2ecef.lax/libseke.a/libseke_la-Paraf4.o .libs/llh2ecef.lax/libseke.a/libseke_la-Scenario.o .libs/llh2ecef.lax/libseke.a/libseke_la-tvertf1.o .libs/llh2ecef.lax/libseke.a/libseke_la-setel.o .libs/llh2ecef.lax/libseke.a/libseke_la-Kesrch.o .libs/llh2ecef.lax/libseke.a/libseke_la-Kedey7.o .libs/llh2ecef.lax/libseke.a/libseke_la-Linef4.o .libs/llh2ecef.lax/libseke.a/libseke_la-geose1.o .libs/llh2ecef.lax/libseke.a/libseke_la-trajap0.o .libs/llh2ecef.lax/libseke.a/libseke_la-rland0.o .libs/llh2ecef.lax/libseke.a/libseke_la-Sph35n1.o .libs/llh2ecef.lax/libseke.a/libseke_la-sekea16.o  .libs/llh2ecef.lax/libscatsio.a/scatsio.o .libs/llh2ecef.lax/libscatsio.a/snprintf.o .libs/llh2ecef.lax/libscatsio.a/scatsfileio.o .libs/llh2ecef.lax/libscatsio.a/scatsBIL.o .libs/llh2ecef.lax/libscatsio.a/scatsGridFloat.o   -L/usr/lib/gcc/x86_64-redhat-linux/4.0.0 -L/usr/lib64 -L/usr/local/pgi/linux86-64/6.0/lib -L/usr/local/pgi/linux86-64/6.0/libso -L/home/chulbert/ISLtools/build-fedora4.0/scats/libseke/.libs -L/home/chulbert/ISLtools/build-fedora4.0/scats/mex/libislmex -L/home/chulbert/ISLtools/build-fedora4.0/scats/mex/libscatsmex -pthread -lscatsmex -L/home/chulbert/ISLtools/build-fedora4.0/scats/libscats -L/home/chulbert/ISLtools/build-fedora4.0/scats/libseke -L/home/chulbert/ISLtools/build-fedora4.0/scats/libscatsio -L/apps/lib64 /apps/lib64/libz.a -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lvsip -lislmex -L/usr/local/matlab71/bin/glnxa64 -lmx -lmex -lmat -lm -lc  -Wl,--wrap -Wl,malloc -Wl,--wrap -Wl,calloc -Wl,--wrap -Wl,free -Wl,--wrap -Wl,assert -Wl,--version-script -Wl,/usr/local/matlab71/extern/lib/glnxa64/mexFunction.map -Wl,--rpath-link -Wl,/usr/local/matlab71/extern/lib/glnxa64 -Wl,--rpath-link -Wl,/usr/local/matlab71/bin/glnxa64 -Wl,-soname -Wl,llh2ecef.mexa64 -o .libs/llh2ecef.mexa64
pgcc-Warning-Unknown switch: -pthread
/usr/bin/ld: /usr/local/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o): relocation R_X86_64_32S against `__hpf_shifts' can not be used when making a shared object; recompile with -fPIC
/usr/local/pgi/linux86-64/6.0/lib/libpgf90.a: could not read symbols: Bad value
make: *** [llh2ecef.la] Error 2


reply via email to

[Prev in Thread] Current Thread [Next in Thread]