I'm using Inline->bind to bind to a static lib which has a few
dependencies so I am setting LIBS to a series of 3 -L/-l pairs. Inline
is successfully binding to the library and I go to make the call to the
library but I'm failing with a Symbol lookup error - undefined symbol:
bash-3.2$ /usr/local/bin/perl raid2 -load DbgSh.h
Calling bind with libs set to
-L/view/yfang_fp1.0_yfang_May24/vob/9200_packetcore/packetcore/infra/sysmgr/ipmi
-lwiipmi
-L/view/yfang_fp1.0_yfang_May24/vob/9200_packetcore/packetcore/infra/lib/src
-lwinfra
-L/vob/9200/software/common/debugshell -lDbgSh
Starting Build Preprocess Stage
Finished Build Preprocess Stage
Starting Build Parse Stage
Finished Build Parse Stage
Starting Build Glue 1 Stage
Finished Build Glue 1 Stage
Starting Build Glue 2 Stage
Finished Build Glue 2 Stage
Starting Build Glue 3 Stage
Finished Build Glue 3 Stage
Starting Build Compile Stage
Starting "perl Makefile.PL" Stage
Writing Makefile for raid2_f8ac
Finished "perl Makefile.PL" Stage
Starting "make" Stage
make: Warning: File `Makefile' has modification time 8.5 s in the future
/usr/local/bin/perl /usr/local/lib/perl5/5.8.9/ExtUtils/xsubpp -typemap
/usr/local/lib/perl5/5.8.9/ExtUtils/typemap -typemap
/vob/9200/software/common/debugshell/typemap raid2_f8ac.xs >
raid2_f8ac.xsc && mv raid2_f8ac.xsc raid2_f8ac.c
gcc -c -I/vob/9200/software/common/debugshell -m32 -fno-strict-aliasing
-pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm -O2 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC
"-I/usr/local/lib/perl5/5.8.9/i386/CORE" raid2_f8ac.c
Running Mkbootstrap for raid2_f8ac ()
chmod 644 raid2_f8ac.bs
rm -f blib/arch/auto/raid2_f8ac/raid2_f8ac.so
gcc -m32 -shared -O2 -L/usr/local/lib raid2_f8ac.o -o
blib/arch/auto/raid2_f8ac/raid2_f8ac.so \
-L/view/yfang_fp1.0_yfang_May24/vob/9200_packetcore/packetcore/infra/sysmgr/ipmi
-lwiipmi \
chmod 755 blib/arch/auto/raid2_f8ac/raid2_f8ac.so
cp raid2_f8ac.bs blib/arch/auto/raid2_f8ac/raid2_f8ac.bs
chmod 644 blib/arch/auto/raid2_f8ac/raid2_f8ac.bs
make: warning: Clock skew detected. Your build may be incomplete.
Finished "make" Stage
Starting "make install" Stage
make: Warning: File `Makefile' has modification time 7.7 s in the future
Files found in blib/arch: installing files in blib/lib into architecture
dependent library tree
Writing
/vob/9200/software/common/debugshell/_Inline/lib/auto/raid2_f8ac/.packlist
make: warning: Clock skew detected. Your build may be incomplete.
Finished "make install" Stage
Starting Cleaning Up Stage
Finished Cleaning Up Stage
Finished Build Compile Stage
RAiD [DbgSh] <144> DbgShellProcessUserInput (1,1,1)
/usr/local/bin/perl: symbol lookup error:
/vob/9200/software/common/debugshell/_Inline/lib/auto/raid2_f8ac/raid2_f8ac.so:
undefined symbol: DbgShellProcessUserInput
bash-3.2$ pwd
/vob/9200/software/common/debugshell
bash-3.2$ nm libDbgSh.a | grep DbgShellProcessUserInput
000000000000074c T DbgShellProcessUserInput
bash-3.2$
As you can see DbgShellProcessUserInput is indeed defined in libDbgSh.a
yet when I attempt to call it I get the symbol lookup failure.
The problem seem to have something to do with the additional libraries
as if they are not included then I don't have a problem. But I need to
have those other libraries. How do I fix this?
TIA.
--
Andrew DeFaria <http://defaria.com>
Everybody repeat after me ...We are all individuals.