GNOME Bugzilla – Bug 616722
Xdmcp linking problem
Last modified: 2010-06-16 22:56:46 UTC
Building gdm-2.28.2 on OS X 10.4 fails: /bin/sh ../../libtool --tag=CC --mode=link gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2 -g -O2 -Wno-strict-aliasing -Wno-sign-compare -L/sw/lib -o gdm-simple-chooser chooser-main.o gdm-chooser-host.o gdm-host-chooser-widget.o gdm-host-chooser-dialog.o gdm-chooser-client.o gdm-chooser-session.o ../../common/libgdmcommon.la -L/sw/lib -L/sw/lib/fontconfig2/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/sw/lib -L/sw/lib/fontconfig2/lib -ldbus-glib-1 -ldbus-1 -lpthread -lglade-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgconf-2 -lglib-2.0 -lXdmcp gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2 -g -O2 -Wno-strict-aliasing -Wno-sign-compare -o gdm-simple-chooser chooser-main.o gdm-chooser-host.o gdm-host-chooser-widget.o gdm-host-chooser-dialog.o gdm-chooser-client.o gdm-chooser-session.o -L/sw/lib ../../common/.libs/libgdmcommon.a /sw/lib/libintl.dylib -L/sw/lib/fontconfig2/lib /sw/lib/libdbus-glib-1.dylib /sw/lib/libdbus-1.dylib -lpthread /sw/lib/libglade-2.0.dylib /sw/lib/libgtk-x11-2.0.dylib /sw/lib/libxml2.dylib /sw/lib/libgdk-x11-2.0.dylib /sw/lib/libatk-1.0.dylib /sw/lib/libgio-2.0.dylib /sw/lib/pango-ft219/lib/libpangoft2-1.0.dylib /sw/lib/libgdk_pixbuf-2.0.dylib /sw/lib/pango-ft219/lib/libpangocairo-1.0.dylib /sw/lib/libcairo.dylib /sw/lib/pango-ft219/lib/libpango-1.0.dylib /sw/lib/freetype219/lib/libfreetype.dylib /sw/lib/fontconfig2/lib/libfontconfig.dylib /sw/lib/libgobject-2.0.dylib /sw/lib/libgmodule-2.0.dylib /sw/lib/libgconf-2.dylib /sw/lib/libglib-2.0.dylib -lXdmcp /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: can't locate file for: -lXdmcp collect2: ld returned 1 exit status make: *** [gdm-simple-chooser] Error 1 The -L to allow libXdmcp to be found isn't passed. It's improved in git trunk (8e64ca9b78451b10096180a12b4b7d632915b85a) with the addition of X_LIBS, but bild still fails: /bin/sh ../../libtool --tag=CC --mode=link gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2 -g -O2 -Wno-strict-aliasing -Wno-sign-compare -L/sw/lib -o gdm-simple-chooser chooser-main.o gdm-chooser-host.o gdm-host-chooser-widget.o gdm-host-chooser-dialog.o gdm-chooser-client.o gdm-chooser-session.o ../../common/libgdmcommon.la -L/sw/lib -L/sw/lib/fontconfig2/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -L/sw/lib -L/sw/lib/fontconfig2/lib -ldbus-glib-1 -ldbus-1 -lpthread -lglade-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgconf-2 -lglib-2.0 -lXdmcp -L/usr/X11R6/lib -L/usr/X11R6/lib gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2 -g -O2 -Wno-strict-aliasing -Wno-sign-compare -o gdm-simple-chooser chooser-main.o gdm-chooser-host.o gdm-host-chooser-widget.o gdm-host-chooser-dialog.o gdm-chooser-client.o gdm-chooser-session.o -L/sw/lib ../../common/.libs/libgdmcommon.a /sw/lib/libintl.dylib -L/sw/lib/fontconfig2/lib /sw/lib/libdbus-glib-1.dylib /sw/lib/libdbus-1.dylib -lpthread /sw/lib/libglade-2.0.dylib /sw/lib/libgtk-x11-2.0.dylib /sw/lib/libxml2.dylib /sw/lib/libgdk-x11-2.0.dylib /sw/lib/libatk-1.0.dylib /sw/lib/libgio-2.0.dylib /sw/lib/pango-ft219/lib/libpangoft2-1.0.dylib /sw/lib/libgdk_pixbuf-2.0.dylib /sw/lib/pango-ft219/lib/libpangocairo-1.0.dylib /sw/lib/libcairo.dylib /sw/lib/pango-ft219/lib/libpango-1.0.dylib /sw/lib/freetype219/lib/libfreetype.dylib /sw/lib/fontconfig2/lib/libfontconfig.dylib /sw/lib/libgobject-2.0.dylib /sw/lib/libgmodule-2.0.dylib /sw/lib/libgconf-2.dylib /sw/lib/libglib-2.0.dylib -lXdmcp -L/usr/X11R6/lib /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols: _XInternAtom collect2: ld returned 1 exit status make: *** [gdm-simple-chooser] Error 1 Apparently linking against libXdmcp on my platform requires linking libX11 as well? Adding -lX11 fixes it. Actually, someone once suspected that "using Xdmcp might require -lX11", as the configure.ac check for it uses that additional linker flag: > AC_CHECK_HEADER(X11/Xdmcp.h, [ > AC_CHECK_LIB(Xdmcp, XdmcpFlush, [ > AC_DEFINE(HAVE_LIBXDMCP, 1, [Define if have libxdmcp]) > XDMCP_LIBS="-lXdmcp" > XDMCP_SUPPORT=yes],,[$X_LIBS -lX11 $X_EXTRA_LIBS]) > ],,[#include <X11/Xproto.h>]) Most self-documenting solution would be to have XDMCP_LIBS include -lX11 as well as -lXdmcp since -lX11 was used when determining whether to use -lXdmcp.
Thanks for the report. Should be fixed in 2-30 and master. commit 5dc6c71d21f1a4ae3e5f78b845ed9bb3034042a0 Author: William Jon McCann <jmccann@redhat.com> Date: Wed Jun 16 18:55:18 2010 -0400 Specify x11 libs before xdmcp libs when linking https://bugzilla.gnome.org/show_bug.cgi?id=616722