1.9.3: Compiling with 1.9 installed fails, old libraries linked, xcb_send_fd undefined
Submitted by mar..@..io.org
Assigned to xcb mailing list dummy
Description
Solaris 11 SPARC 64, Sun Studio 12.3 compiler
Have libxcb 1.9 previously installed in /usr/local. Compiling up 1.9.3:
CC=cc -xtarget=ultra -m64 -xcode=pic32 CXX=CC -xtarget=ultra -m64 -xcode=pic32 F77=f77 -xtarget=ultra -m64 -xcode=pic32 LDFLAGS=-L/usr/local/lib -R/usr/local/lib GNUMAKE=/usr/local/bin/gmake EGREP=/usr/xpg4/bin/egrep AUTOCONF=/usr/local/bin/autoconf AUTOMAKE=/usr/local/bin/automake ACLOCAL=/usr/local/bin/aclocal AUTOHEADER=/usr/local/bin/autoheader LIBTOOL=/usr/local/bin/libtool LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD=-lthread LTLIBMULTITHREAD=-lthread CLASSPATH=/usr/local/java XML_CATALOG_FILES=/usr/local/share/xml/catalog.xml XML_CATALOG_FILE=/usr/local/share/xml/catalog.xml XMLCATALOG=/usr/local/bin/xmlcatalog ITSTOOL=/usr/local/bin/itstool MAKE=/usr/local/bin/gmake GETOPT=/usr/local/bin/getopt XMLLINT=/usr/local/bin/xmllint XSLTPROC=/usr/local/bin/xsltproc M4=/usr/local/bin/m4 BISON=/usr/local/bin/bison FLEX=/usr/local/bin/flex CPPFLAGS=-I/usr/local/include LINT=lint -m64 -xcode=pic32 -err=warn -h -errchk -v -errfmt=macro BUILD_DOCS=yes PLUGINDIR=/usr/local/lib/sasl2 DB_LIB=-L/usr/local/lib -R/usr/local/lib -ldb-4 DB_HEADER=db_185.h LDLAGS=-L/usr/local/include -R/usr/local/lib PERL=/usr/local/bin/perl INSTALL=/usr/local/bin/ginstall LD_RUN_PATH=/usr/local/lib:/lib/64:/usr/lib/64:/lib:/usr/lib XMLTO=/usr/local/bin/xmlto LIBS=-lintl -liconv CAIRO_LIBS=-L/usr/local/lib -lcairo CFLAGS=-I/usr/local/include PERLCC=cc -xtarget=ultra -m64 -xcode=pic32 -xc99 PERLLD=cc -xtarget=ultra -m64 -xcode=pic32 -xc99 PYTHON=/usr/local/bin/python
cd /var/tmp
rm -rf /xcb libxcb-1.9.3
untgz /usr/local/src/x11/libxcb-1.9.3.tar.gz
cd libxcb-1.9.3
mkdir /xcb
./autogen.sh
./configure --prefix=/xcb \
--disable-silent-rules \
--with-doxygen=/usr/local/bin/doxygen
gmake
gmake install
libtool: install: warning: relinking libxcb-dri3.la' libtool: install: (cd /var/tmp/libxcb-1.9.3/src; /bin/sh /var/tmp/libxcb-1.9.3/libtool --tag CC --mode=relink cc -xtarget=ultra -m64 -xcode=pic32 -v -I/usr/local/include -I/usr/local/include -I/usr/local/include -version-info 0:0:0 -no-undefined -L/usr/local/lib -R/usr/local/lib -o libxcb-dri3.la -rpath /xcb/lib dri3.lo libxcb.la -lsocket -lintl -liconv ) libtool: relink: cc -xtarget=ultra -m64 -xcode=pic32 -G -z defs -h libxcb-dri3.so.0 -o .libs/libxcb-dri3.so.0.0.0 .libs/dri3.o -R/xcb/lib -R/usr/local/lib -L/usr/local/lib -L/xcb/lib -lxcb -lXau -lXdmcp -lsocket -lintl -lc -liconv -lc -xtarget=ultra -m64 Undefined first referenced symbol in file xcb_send_fd .libs/dri3.o xcb_get_reply_fds .libs/dri3.o ld: fatal: symbol referencing errors. No output written to .libs/libxcb-dri3.so.0.0.0 libtool: install: error: relink
libxcb-dri3.la' with the above command before installing it
gmake[3]: *** [install-libLTLIBRARIES] Error 1
gmake[3]: Leaving directory `/var/tmp/libxcb-1.9.3/src'
It's not until I delete all of the libxcb 1.9 files in the /usr/local tree that libxcb 1.9.3 will link and install cleanly.
If 1.9.3 needs to link with its new libraries to install properly, the -L/xcb/lib needs to come first, before the customer supplied LDFLAGS are used. The 1.9 libraries in /usr/local mess it up.
host:/xcb/lib root# nm libxcb.so | grep fd [76] | 62568| 176|FUNC |LOCL |0 |11 |read_fds [42] | 53088| 144|FUNC |LOCL |0 |11 |set_fd_flags [476] | 55536| 296|FUNC |GLOB |0 |11 |xcb_connect_to_fd [555] | 66800| 56|FUNC |GLOB |0 |11 |xcb_get_reply_fds [874] | 60312| 232|FUNC |GLOB |0 |11 |xcb_send_fd
Version: 1.9.3