Hello,
I'm a bit of newbie when it comes to the make build process. For a
number of reasons I would like to build the Xorg xc from a source rpm or from source. I upgraded from RHL8 to FC3 on my i386 machine a couple days ago. I ran an 'apt-get distro-upgrade' to bring the packages up to date with the released-updates repos. There are also some devel and dag
packages installed. I've manually culled obsolete packages with broken
dependencies and my system appears to be healthy.
I downloaded xorg-x11-6.8.2-10.src.rpm from one of the fedora mirrors and ran `rpmbuild --rebuild -bc --target=i386 xorg-x11-6.8.2-10.src.rpm`. Make fails at this point:
----%<---- making all in ./programs... make[3]: Entering directory `/opt01/usr/src/redhat/BUILD/xorg-x11-6.8.2/xc/programs' making all in programs/appres... make[4]: Entering directory `/opt01/usr/src/redhat/BUILD/xorg-x11-6.8.2/xc/programs/appres' gcc -m32 -O2 -pipe -m32 -march=i386 -mtune=pentium4 -fno-strict-aliasing -pipe -ansi -pedantic -Wall -Wpointer-arith -Wundef -I../.. -I../../exports/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o appres.o appres.c rm -f appres gcc -m32 -o appres -O2 -pipe -m32 -march=i386 -mtune=pentium4 -fno-strict-aliasing -pipe -ansi -pedantic -Wall -Wpointer-arith -Wundef -L../../exports/lib appres.o -lXt -lSM -lICE -lX11 -Wl,-rpath-link,../../exports/lib ../../exports/lib/libX11.so: undefined reference to `__dlsym' ../../exports/lib/libX11.so: undefined reference to `__dlclose' ../../exports/lib/libX11.so: undefined reference to `__dlopen' collect2: ld returned 1 exit status make[4]: *** [appres] Error 1 make[4]: Leaving directory `/opt01/usr/src/redhat/BUILD/xorg-x11-6.8.2/xc/programs/appres' make[3]: *** [all] Error 2 make[3]: Leaving directory `/opt01/usr/src/redhat/BUILD/xorg-x11-6.8.2/xc/programs' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt01/usr/src/redhat/BUILD/xorg-x11-6.8.2/xc' make[1]: *** [World] Error 2 make[1]: Leaving directory `/opt01/usr/src/redhat/BUILD/xorg-x11-6.8.2/xc' make: *** [World] Error 2 ----%<----
I've attached the tmp file generated by rpmbuild. Searching around has got me nowhere. It appears to be failing to link in libc, which I can't understand. I've got /usr/lib/libc.a and /usr/lib/libc.so with symbols defined for __dlsym, __dlcose and __dlopen. I've tried running the gcc line with -lc in front of -lX11 and that didn't help. I'm guessing this is because the Makefiles have got 'LD = gcc -m32 -nostdlib', though I'm not sure why. I don't have enough experience to know what to do next. Any help would be appreciated. Thanks.
gcc = 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) glibc = 2.3.4
#!/bin/sh RPM_SOURCE_DIR="/usr/src/redhat/SOURCES" RPM_BUILD_DIR="/usr/src/redhat/BUILD" RPM_OPT_FLAGS="-O2 -g -pipe -m32 -march=i386 -mtune=pentium4" RPM_ARCH="i386" RPM_OS="linux" export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_DOC_DIR="/usr/share/doc" export RPM_DOC_DIR RPM_PACKAGE_NAME="xorg-x11" RPM_PACKAGE_VERSION="6.8.2" RPM_PACKAGE_RELEASE="10" export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE RPM_BUILD_ROOT="/var/tmp/xorg-x11-6.8.2-root" export RPM_BUILD_ROOT set -x umask 022 cd /usr/src/redhat/BUILD cd xorg-x11-6.8.2 LANG=C export LANG unset DISPLAY [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT # Speed up script processing export LANG=C # Remove unnecessary stuff... DO NOT MOVE THIS make World -C xc FAST=1 ########## INSTALL ################################################# exit 0