libtool
[Top][All Lists]
Advanced

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

-dlpreload and lt_preloaded_symbols problem


From: Toshi Morita
Subject: -dlpreload and lt_preloaded_symbols problem
Date: Wed, 19 Aug 2009 17:54:48 -0700 (PDT)

I'm seeing a weird problem, and any help would be appreciated.
The summary is I create an executable which preloads a library, but there is no lt_preloaded_symbols generated.

First, libtool is invoked to build libsidcpu.la from object files:

/bin/sh ./libtool --mode=link g++ -all-static     -o libsidcpu.la -rpath /scratch2/tmorita/sid/ubicom-distro/toolchain-src/install/lib/sidlib -module -no-undefined simwcpu.lo cfgroot_interface.lo ubicom32/libsidubicom32.la  -L../../../libiberty -liberty -lm
rm -fr  .libs/libsidcpu.a .libs/libsidcpu.la .libs/libsidcpu.lai .libs/libsidcpu.so .libs/libsidcpu.so.0 .libs/libsidcpu.so.0.0.0
rm -fr .libs/libsidcpu.lax
mkdir .libs/libsidcpu.lax
rm -fr .libs/libsidcpu.lax/libsidubicom32.a
mkdir .libs/libsidcpu.lax/libsidubicom32.a
(cd .libs/libsidcpu.lax/libsidubicom32.a && ar x /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/main/sidlib/ubicom32/.libs/libsidubicom32.a)
ar rc .libs/libsidcpu.a  simwcpu.o cfgroot_interface.o  .libs/libsidcpu.lax/libsidubicom32.a/ubicom32mainplustimer.o .libs/libsidcpu.lax/libsidubicom32.a/ubicom32cpu.o
ranlib .libs/libsidcpu.a
rm -fr .libs/libsidcpu.lax
creating libsidcpu.la
(cd .libs && rm -f libsidcpu.la && ln -s ../libsidcpu.la libsidcpu.la)

Next, libtool is invoked to build libsid.la which -dlpreopens libsidcpu.la:

/bin/sh ./libtool --mode=link g++ -all-static     -o libsid.la -rpath /scratch2/tmorita/sid/ubicom-distro/toolchain-src/install/lib/sidlib -export-dynamic -static -export-symbols-regex '[a-zA-Z0-9]*_library$'  -dlpreopen libsidcpu.la sidlib.lo /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/audio/libaudio.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cache/libcache.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cfgroot/libconfig.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cgen-cpu/libcgencpu.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/consoles/libconsoles.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/gdb/libgdb.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/glue/libglue.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/gloss/libgloss.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/glue/libglue.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/ide/libide.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/interrupt/libinterrupt.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/lcd/libhd44780u.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/lcd/liblcd-char-display.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/lcd/libt6963c.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/loader/libloader.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/mailbox/libmailbox.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/mapper/libmapper.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/memory/libmemory.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/mmu/libmmu.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/parport/libparport.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/profiling/libprof.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/rtc/librtc.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/sched/libsched.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/tcl/libtclapi.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/timers/libtimers.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/uart/libuart.la -lm
rm -fr  .libs/libsid.a .libs/libsid.la .libs/libsid.lai
ar rc .libs/libsid.a  sidlib.o
ranlib .libs/libsid.a
creating libsid.la
(cd .libs && rm -f libsid.la && ln -s ../libsid.la libsid.la)

Finally, libtool is used to build simrefcompare, but there is no lt_preloaded_symbols generated:
(It's using libtool-1.5.18 because I was trying different versions of libtool to attempt to resolve the problem)

make: Warning: File `Makefile' has modification time 4.9 s in the future
obj/StateChange.o obj/StateTrace.o obj/SidRefCompareUtilities.o
/home/tmorita/src/libtool-1.5.18/libtool --tag=CXX --mode=link g++ -Wall -g -o SidRefCompare -export-dynamic /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/main/sidlib/libsid.la /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/libiberty/libiberty.a  -Ispec  -I/eng/tools/ubicom32tools/include  obj/StateChange.o  obj/StateTrace.o  obj/SidRefCompareUtilities.o body/SidRefCompare.cpp

*** Warning: Linking the executable SidRefCompare against the loadable module
*** libsidcpu.so is not portable!
...
*** Warning: Linking the executable SidRefCompare against the loadable module
*** libtimers.so is not portable!

*** Warning: Linking the executable SidRefCompare against the loadable module
*** libuart.so is not portable!
rm -f .libs/SidRefCompare.nm .libs/SidRefCompare.nmS .libs/SidRefCompare.nmT
creating .libs/SidRefCompareS.c
extracting global C symbols from `/scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/main/sidlib/.libs/libsidcpu.a'
(cd .libs && gcc -c -fno-builtin "SidRefCompareS.c")
rm -f .libs/SidRefCompareS.c .libs/SidRefCompare.nm .libs/SidRefCompare.nmS .libs/SidRefCompare.nmT
g++ -Wall -g -o .libs/SidRefCompare -Ispec -I/eng/tools/ubicom32tools/include obj/StateChange.o obj/StateTrace.o obj/SidRefCompareUtilities.o body/SidRefCompare.cpp -Wl,--export-dynamic  /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/main/sidlib/.libs/libsidcpu.so -L/scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/libiberty /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/main/sidlib/.libs/libsid.a /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/audio/.libs/libaudio.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cache/.libs/libcache.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cfgroot/.libs/libconfig.a /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cgen-cpu/.libs/libcgencpu.so -L/scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/libiberty/pic -lpthread /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/consoles/.libs/libconsoles.so -lnsl /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/gdb/.libs/libgdb.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/gloss/.libs/libgloss.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/glue/.libs/libglue.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/ide/.libs/libide.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/interrupt/.libs/libinterrupt.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/lcd/.libs/libhd44780u.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/lcd/.libs/liblcd-char-display.so -lcurses /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/lcd/.libs/libt6963c.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/loader/.libs/libloader.so -liberty /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/mailbox/.libs/libmailbox.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/mapper/.libs/libmapper.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/memory/.libs/libmemory.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/mmu/.libs/libmmu.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/parport/.libs/libparport.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/profiling/.libs/libprof.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/rtc/.libs/librtc.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/sched/.libs/libsched.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/tcl/.libs/libtclapi.so -L/scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/tcl/unix -ltcl8.4 -L/scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/tk/unix -ltk8.4 -ldl /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/timers/.libs/libtimers.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/uart/.libs/libuart.so /scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/libiberty/libiberty.a -Wl,--rpath -Wl,/scratch2/tmorita/sid/ubicom-distro/toolchain-src/install/lib/sidlib -Wl,--rpath -Wl,/scratch2/tmorita/sid/ubicom-distro/toolchain-src/install/lib/sidcomp
/scratch2/tmorita/sid/ubicom-distro/toolchain-src/build/ubicom32-elf/sid/component/cfgroot/.libs/libconfig.a(compConfig.o): In function `cfgroot_component':
/scratch2/tmorita/sid/ubicom-distro/toolchain-src/sid/component/cfgroot/compConfig.cxx:603: undefined reference to `lt_preloaded_symbols'
/scratch2/tmorita/sid/ubicom-distro/toolchain-src/sid/component/cfgroot/compConfig.cxx:603: undefined reference to `lt_preloaded_symbols'
collect2: ld returned 1 exit status
make: *** [SidRefCompare] Error 1
[thor]/home/jupiter/tmorita/jupiter_new/env/src/svc/sidrefcompare 228 %

Is there an obvious reason why lt_preloaded_symbols is not generated even though -dlpreopen is specified?

Toshi



reply via email to

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