John Logsdon wrote: > Hi > > I am having trouble compiling some 2.6 kernels on a x86_64 box under > CentOS4.1. I cannot use xconfig at all and menuconfig on my system is > unreadable. It appears to be something to do with the Qt library but I > have all the necessary bits installed: > > qt-devel-3.3.3-9.3 > qt-3.3.3-9.3 > > but note that the second of these only is installed both for x86 and > x86_64 - the first is installed for x86_64 only. > > I have tried both the standard kernel 2.6.9-11.EL-smp-x86_64 and also > 2.6.11.12 and the same problem exists. Googling around, it appears to be > to do with a makefile in scripts/kconfig and none of the fixes work. > > On issuing make xconfig, the messages always end up: > > HOSTLD scripts/kconfig/qconf > /usr/bin/ld: cannot find -lqt > collect2: ld returned 1 exit status > make[1]: *** [scripts/kconfig/qconf] Error 1 > make: *** [xconfig] Error 2 > > and the fixes suggest removing the middle two lines in > scripts/kconfig/Makefile (starting at line 130 for the 2.6.11.12 case): > > LIBPATH=$$DIR/lib; LIB=qt; \ > - $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \ > - LIBPATH=$$DIR/lib/$$($(HOSTCXX) -print-multi-os-directory); \ > if [ -f $$LIBPATH/libqt-mt.so ]; then LIB=qt-mt; fi; \ > > But that still returns the same fault. > > Can anyone advise? The same kernel compiles perfectly on an x86 box. I don't think you should remove those two lines - the patch I've been using is: *** ./scripts/kconfig/Makefile.dist 2005-08-25 10:41:16.713246000 +0100 --- ./scripts/kconfig/Makefile 2005-09-23 14:47:45.815370614 +0100 *************** *** 130,137 **** false; \ fi; \ LIBPATH=$$DIR/lib; LIB=qt; \ ! $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \ ! LIBPATH=$$DIR/lib/$$($(HOSTCXX) -print-multi-os-directory); \ if [ -f $$LIBPATH/libqt-mt.so ]; then LIB=qt-mt; fi; \ echo "QTDIR=$$DIR" > $@; echo "QTLIBPATH=$$LIBPATH" >> $@; \ echo "QTLIB=$$LIB" >> $@; \ --- 130,137 ---- false; \ fi; \ LIBPATH=$$DIR/lib; LIB=qt; \ ! $(HOSTCXX)-print-multi-os-directory > /dev/null 2>&1 && \ ! LIBPATH=$$DIR/lib/$$($(HOSTCXX)-print-multi-os-directory); \ if [ -f $$LIBPATH/libqt-mt.so ]; then LIB=qt-mt; fi; \ echo "QTDIR=$$DIR" > $@; echo "QTLIBPATH=$$LIBPATH" >> $@; \ echo "QTLIB=$$LIB" >> $@; \ James Pearson