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 && \
if [ -f $$LIBPATH/libqt-mt.so ]; then LIB=qt-mt; fi; \LIBPATH=$$DIR/lib/$$($(HOSTCXX) -print-multi-os-directory); \
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