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

Changed library interface causing FTBFS of cernlib?



Hi,
I've gotten a bunch of FTBFSes for cernlib 2003.09.03-4 which I assume are 
related to the new X release.  The problem is that when linking a program 
with these flags,

g77 -g -o kxterm -O2 -funroll-loops -fno-automatic -fno-second-underscore \
-fugly-complex -L/build/buildd/cernlib-2003.09.03/src/lib kxterm.o \
libkxtlib.a /build/buildd/cernlib-2003.09.03/build/packlib/libpacklib.a \
-L/build/buildd/cernlib-2003.09.03/shlib \
-L/build/buildd/cernlib-2003.09.03/lib -L/usr/X11R6/lib -lXm -lXt -lXp \
-lXext -lX11 -lnsl -lcrypt -ldl -lg2c

I get the following error:

/usr/bin/ld: warning: libICE.so.6, needed by 
/usr/lib/gcc-lib/ia64-linux/3.3.3/../../../libXm.so, not found (try using -rpath or -rpath-link)
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceSetShutdownNegotiation'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceErrorBadLength'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceReadSkip'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceCloseConnection'
/usr/X11R6/lib/libXt.so: undefined reference to `IceConnectionNumber'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceErrorBadValue'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceTransGetPeerNetworkId'
/usr/X11R6/lib/libXt.so: undefined reference to `IceProcessMessages'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceLastSentSequenceNumber'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceAllocScratch'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceErrorBadMinor'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceFlush'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IcePoMagicCookie1Proc'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IcePaMagicCookie1Proc'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceRead'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceErrorBadState'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceRegisterForProtocolReply'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceOpenConnection'
/usr/X11R6/lib/libSM.so.6: undefined reference to `_IceWrite'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceProtocolSetup'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceRegisterForProtocolSetup'
/usr/X11R6/lib/libSM.so.6: undefined reference to `IceProtocolShutdown'
collect2: ld returned 1 exit status
Error: kxterm not executable
make[6]: *** [kxterm] Error 1

This always worked before (with X 4.2.1-xx).  So, a few questions:

1) To fix this, the only thing I should have to do is change my linker 
flags as below, is that correct?

-L/usr/X11R6/lib -lXm -lXt -lXp -lXext -lX11 -lSM -lICE -lXpm -lnsl -lcrypt -ldl -lg2c
                                             ^^^^^^^^^^^^^^^^
added flags ---------------------------------------'

2) Will this cause any problems with backwards compatibility for
X <= 4.2.1-xx (e.g. for woody backports)?  Presumably there was some 
reason that earlier, these extra libs were only required on powerpc?

3) Do I need to Build-Depend on any additional X packages other than 
xlibs-dev now?

4) less important for practical purposes, but I'm curious: what changed?

Also, if there is a FAQ regarding this for which I should RTFM, let me 
know.

thanks and regards,

-- 
Kevin B. McCarty <kmccarty@princeton.edu>   Physics Department
WWW: http://www.princeton.edu/~kmccarty/    Princeton University
GPG: public key ID 4F83C751                 Princeton, NJ 08544



Reply to: