On a system with very little software and no major desktop installed (only fluxbox) emerge xscreensaver fails to compile the demo program and bombs out with missing symbols. There is a warning message about no Motif or Gtk being installed. Reproducible: Always Steps to Reproduce: 1. Stage 3 build 2. emerge fluxbox 3. emerge xscreensaver Actual Results: In the emerge it fails like this: <SNIP> gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -L/usr/lib -o xscreensaver-demo-Xm prefs.o dpms.o remote.o exec.o ../utils/resources.o ../utils/usleep.o ../utils/visual.o demo-Xm.o demo-Xm-widgets.o -L/usr/X11R6/lib \ -L/usr/lib -lgdk_pixbuf -lgdk_pixbuf_xlib -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -lXmu -lSM -lICE -lXt -lX11 \ -lXext /usr/lib/gcc-lib/i586-pc-linux-gnu/3.2.2/../../../crt1.o(.text+0x18): In function `_start': : undefined reference to `main' prefs.o(.text+0x7a): In function `init_file_name': <SNIP> collect2: ld returned 1 exit status make[1]: *** [xscreensaver-demo-Xm] Error 1 make[1]: Leaving directory `/var/tmp/portage/xscreensaver-4.05-r3/work/xscreensaver-4.05/driver' make: *** [default] Error 5 !!! ERROR: x11-misc/xscreensaver-4.05-r3 failed. !!! Function src_compile, Line 82, Exitcode 2 !!! (no error message) I also notice up higher that there was a warning message: <SNIP> ################################################################# Warning: Neither Motif nor Gtk seem to be available; the `xscreensaver-demo' program requires one of these. Warning: Unable to determine the MesaGL version number! Make sure you are using version 3.4 or newer. ################################################################# <SNIP> emerge -vp xscreensaver responds: Wizard bin # emerge -vp xscreensaver These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] x11-misc/xscreensaver-4.05-r3 +pam -gtk +motif -gnome +opengl Expected Results: If xscreensaver requires Gtk, then I would have expected it to emerge that at the same time, or give me a message aobu twhat I needed to do.
can you see what the output of `emerge -p motif` is? If motif isn't installed, suspect it might have been possible that it couldn't find the motif tarball on one of the sites and skipped that step of the installation.
Wizard root # emerge -p motif These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] x11-libs/openmotif-2.2.2-r1 For kicks I then emerged motif. It installed without error as far as I could see, but emerge xscreensaver still failed. I notice that the message says it cannot find Motif, while this seems to install 'openmotif'. I doubt that's an issue, but I'm a newbie, so what do I know... ################################################################# Warning: Neither Motif nor Gtk seem to be available; the `xscreensaver-demo' program requires one of these. Warning: Unable to determine the MesaGL version number! Make sure you are using version 3.4 or newer. ################################################################# Could this have anything to do with my XFree86 installation? I have had to rebuild it a few times to get 3D acceleration working on my Radeon 9000. I notice the file that's actually failing is: /usr/lib/gcc-lib/i586-pc-linux-gnu/3.2.2/../../../crt1.o /usr/lib/crt1.o does exist. Why would symbols not match up? (How do I view the symbols an object file is exporting?
gcc-config i586-pc-linux-gnu env-update source /etc/profile then try the emerge again, please
Wizard root # gcc-config i586-pc-linux-gnu * /usr/bin/gcc-config: Profile does not exist! Wizard root # gcc-config i586-pc-linux-gnu * /usr/bin/gcc-config: Profile does not exist! Wizard root # And then it still fails the emerge xscreensaver step later. I'll check my office machine to see what's in that file, but why would this machine not have one? Thanks!
FYI - I checked the office machine where xscreensaver did install and it gives me the same message: Gentoo1 postfix # gcc-config i586-pc-linux-gnu * /usr/bin/gcc-config: Profile does not exist!
This is all from the machine that worked. Possibly I needed to use gcc-config i586-pc-linux-gnu-3.2.2 That command passes on this machine. I'll try the machine that failed later this evening. Thanks! gentoo1 postfix # gcc-config --print-environ export PATH="/usr/i586-pc-linux-gnu/gcc-bin/3.2:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/opt/bin:/usr/i586-pc-linux-gnu/gcc-bin/3.2:/usr/X11R6/bin:/opt/blackdown-jre-1.4.1/bin:/usr/qt/3/bin:/usr/kde/3.1/sbin:/usr/kde/3.1/bin" export CC="gcc" export CXX="g++" gentoo1 postfix # gentoo1 postfix # gcc-config --list-profiles i586-pc-linux-gnu-3.2.2 gentoo1 postfix # gentoo1 postfix # gcc-config --get-bin-path /usr/i586-pc-linux-gnu/gcc-bin/3.2 gentoo1 postfix # gentoo1 postfix # gcc-config --get-lib-path /usr/lib/gcc-lib/i586-pc-linux-gnu/3.2.2 gentoo1 postfix # gentoo1 postfix # gcc-config --get-current-profile i586-pc-linux-gnu-3.2.2 gentoo1 postfix #
I tried the whole process again on the machine that fails. I used the i586-pc-linux-gnu-3.2.2 profile. The text of what happens follows at the end. Wizard root # gcc-config i586-pc-linux-gnu-3.2.2 * Switching to i586-pc-linux-gnu-3.2.2 compiler... [ ok ] Wizard root # env-update >>> Regenerating /etc/ld.so.cache... Wizard root # source /etc/profile Wizard root # emerge motif <SNIP> x11-libs/openmotif selected: none protected: 2.2.2-r1 omitted: none >>> clean: No packages selected for removal. >>> Regenerating /etc/ld.so.cache... >>> Auto-cleaning packages ... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. Wizard root # emerge xscreensaver <SNIP> gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -std=c89 -U__STRICT_ANSI__ -L/usr/lib -o xscreensaver-demo-Xm prefs.o dpms.o remote.o exec.o ../utils/resources.o ../utils/usleep.o ../utils/visual.o demo-Xm.o demo-Xm-widgets.o -L/usr/X11R6/lib \ -L/usr/lib -lgdk_pixbuf -lgdk_pixbuf_xlib -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -lXmu -lSM -lICE -lXt -lX11 \ -lXext /usr/lib/gcc-lib/i586-pc-linux-gnu/3.2.2/../../../crt1.o(.text+0x18): In function `_start': : undefined reference to `main' prefs.o(.text+0x7a): In function `init_file_name': : undefined reerence to `blurb' <SNIP> collect2: ld returned 1 exit status make[1]: *** [xscreensaver-demo-Xm] Error 1 make[1]: Leaving directory `/var/tmp/portage/xscreensaver-4.05-r3/work/xscreensaver-4.05/driver' make: *** [default] Error 5 !!! ERROR: x11-misc/xscreensaver-4.05-r3 failed. !!! Function src_compile, Line 82, Exitcode 2 !!! (no error message) Wizard root #
One other interesting thing. The file that fails is /usr/lib/crt1.o, built April 8th. Wizard lib # ls -al crt*.o -rw-r--r-- 1 root root 1136 Apr 8 17:58 crt1.o -rw-r--r-- 1 root root 1888 Apr 8 17:58 crti.o -rw-r--r-- 1 root root 1456 Apr 8 17:58 crtn.o I started bringing this machine up on April 30th: Wizard lib # ls -al /boot/ total 4724 drwxr-xr-x 4 root root 1024 May 8 17:08 . drwxr-xr-x 17 root root 4096 May 5 20:52 .. lrwxrwxrwx 1 root root 1 Apr 30 09:44 boot -> . -rw-r--r-- 1 root root 1197910 Apr 30 11:02 bzImage -rw-r--r-- 1 root root 1203152 May 5 20:45 bzImage_DRITEST -rw-r--r-- 1 root root 1203726 May 6 18:04 bzImage_apmDRITEST -rw-r--r-- 1 root root 1188080 May 8 17:08 bzImage_apmDRITEST2 drwxr-xr-x 2 root root 1024 Apr 30 19:40 grub drwx------ 2 root root 12288 Apr 30 09:34 lost+found Wizard lib # This means the crt1.o file was not built by me, but was part of the original stage 3 build, correct?
OK, this is understood. In debugging of another program I was having trouble with, I noticed that my global USE flages were -gtk. This apparently doesn't cause the xscreensaver to override, but does case it to fail. I changed the global flag to 'gtk' and xscreensaver builds and runs. Sorry for the use of bandwidth.
not a waste of bandwidth at all. in fact, you've brought to light a flaw in the ebuild.
OK then, glad this helped somehow. Thanks for sticking with me while I learned a bit. This Linux stuff is hard for us non-software backgroud, user-oriented people.
i've cleaned up the deps now in xscreensaver and this should now be fixed.