GNOME Bugzilla – Bug 368808
build fails on Slackware 11
Last modified: 2006-11-06 22:48:01 UTC
Slackware 11.0 with XOrg 6.9 and Gnome 2.16.1 (including gdm 2.16.1). Building gdm 2.16.2 fails on Slackware 11, here's the logfile: make[2]: Entering directory `/root/test/gdm/source-gdm/gdm-2.16.2/utils' /bin/sh ../libtool --tag=CC --mode=link gcc -O2 -march=i486 -mtune=i686 -Wall -Wmissing-prototypes -o gdm-dmx-reconnect-proxy gdm-dmx-reconnect-proxy.o -lglib-2.0 -lX11 -ldmx gcc -O2 -march=i486 -mtune=i686 -Wall -Wmissing-prototypes -o gdm-dmx-reconnect-proxy gdm-dmx-reconnect-proxy.o /usr/lib/libglib-2.0.so -lrt -lX11 -ldmx /usr/lib/gcc/i486-slackware-linux/3.4.6/../../../../i486-slackware-linux/bin/ld: cannot find -lX11 collect2: ld returned 1 exit status make[2]: *** [gdm-dmx-reconnect-proxy] Error 1 make[2]: Leaving directory `/root/test/gdm/source-gdm/gdm-2.16.2/utils' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/test/gdm/source-gdm/gdm-2.16.2' make: *** [all] Error 2 ldconfig -v | grep X11 /usr/X11R6/lib: libX11.so.6 -> libX11.so.6.2 ls /var/log/packages/x11* x11-6.9.0-i486-11 x11-devel-6.9.0-i486-11 x11-docs-6.9.0-noarch-5 x11-docs-html-6.9.0-noarch-5 x11-fonts-100dpi-6.9.0-noarch-5 x11-fonts-cyrillic-6.9.0-noarch-5 x11-fonts-misc-6.9.0-noarch-5 x11-fonts-scale-6.9.0-noarch-5 x11-xdmx-6.9.0-i486-11 x11-xnest-6.9.0-i486-11 x11-xvfb-6.9.0-i486-11 --with-dmx=no gdm does compile and working fine. So not really an error, just auto-detection could be fine-tuned... Markus
I would set "LDFLAGS=-L/path/where/xserver/libs/are -R/path/where/xserver/libs/are" and re-run configure and make. Should build just fine. Seems on your system that the -lX11 library needs to be explicitely listed on the compile line. Instead of doing this you could just edit the generated Makefile and add -L and -R arguments there and just re-run make (without needing to run configure again). That should also work around this problem. Also, I think this particular program doesn't actually use the -X11 library so you could probably edit the Makefile and remove references to "-lX11" and it would probably also work. I think this has been fixed in the latest 2.16.2 release so you could also try building the latest version and the problem should be fixed. If this fixes your problem, let's close the bug. Ok?
Well... i was using the 2.16.2 sources. That was when this error did appear for the first time. With 2.16.1 all works fine. I could disable dmx and would not have any problem but i will give your thoughts about -L and -R a try to see if that helps for 2.16.2, thx. Markus
I would accept a patch that would modify configure.ac to add the path to the X11 libraries to LDFLAGS, but setting LDFLAGS before running configure also works.
Looks like using -L/-R fixes the problem when looking for the X11-libs, but dmx-support seem to be broken on xorg 6.9: Making all in utils make[2]: Entering directory `/root/test/gdm/source-gdm/gdm-2.16.2/utils' /bin/sh ../libtool --tag=CC --mode=link gcc -O2 -march=i486 -mtune=i686 -Wall -Wmissing-prototypes -L/usr/X11R6/lib -R/usr/X11R6/lib -o gdm-dmx-reconnect-proxy gdm-dmx-reconnect-proxy.o -lglib-2.0 -lX11 -ldmx gcc -O2 -march=i486 -mtune=i686 -Wall -Wmissing-prototypes -o gdm-dmx-reconnect-proxy gdm-dmx-reconnect-proxy.o -L/usr/X11R6/lib /usr/lib/libglib-2.0.so -lrt -lX11 -ldmx -Wl,--rpath -Wl,/usr/X11R6/lib /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x13): In function `find_display': : undefined reference to `XextCreateExtension' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x2a): In function `find_display': : undefined reference to `XextFindDisplay' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x67): In function `find_display': : undefined reference to `XextAddDisplay' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x18d): In function `DMXQueryVersion': : undefined reference to `XMissingExtension' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x2bd): In function `DMXSync': : undefined reference to `XMissingExtension' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x3ed): In function `DMXForceWindowCreation': : undefined reference to `XMissingExtension' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x50d): In function `DMXGetScreenCount': : undefined reference to `XMissingExtension' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x63d): In function `DMXGetScreenAttributes': : undefined reference to `XMissingExtension' /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0xaf0): more undefined references to `XMissingExtension' follow /usr/X11R6/lib/libdmx.a(dmx.o)(.text+0x83): In function `close_display': : undefined reference to `XextRemoveDisplay' collect2: ld returned 1 exit status make[2]: *** [gdm-dmx-reconnect-proxy] Error 1 make[2]: Leaving directory `/root/test/gdm/source-gdm/gdm-2.16.2/utils' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/test/gdm/source-gdm/gdm-2.16.2' make: *** [all] Error 2 Since i do not need dmx i will use --with-dmx=no so i can get GDM 2.16.2 to work. I think we can close this report then ? Markus
I wonder if this was broken by the change made by this bugfix. Refer to bug #361233. Does changing the following setting of dm_dmx_reconnect_proxy_LDADD back into the utils/Makefile.am fix the problem? dm_dmx_reconnect_proxy_LDADD = $(GLIB_LIBS) $(X_EXTRA_LIBS) $(X_LIBS) -lX11 $(DMX_LIBS) Note that you need to go to the top-level gdm2 directory and re-run automake and configure after making this change (or just re-run autogen.sh) and then run "make clean" and "make". This will ensure that all the Makefiles get regenerated after changing the Makefile.am file. Then does it build okay? If so, I'll reverse this previous patch. Glad to hear that setting LDFLAGS helps you work around the problem.
Yes... if edit the Makefile.am like this: if DMX_SUPPORT gdm_dmx_reconnect_proxy_SOURCES = \ gdm-dmx-reconnect-proxy.c gdm_dmx_reconnect_proxy_LDADD = \ $(GLIB_LIBS) \ $(X_EXTRA_LIBS) \ <== Added $(X_LIBS) \ <== Added -lX11 \ $(DMX_LIBS) endif and run automake then i can compile GDM 2.16.2 with the same settings as with 2.16.1 again, i even do not need to specify any LDFLAGS and DMX-support at least compiles fine. That did fix my problem. Markus
Thanks, I fixed this in the CVS head and 2.16 branches.