[CentOS] Kernel compilation - 2.6, x86_64, CentOS4.1

James Pearson james-p at moving-picture.com
Mon Nov 7 11:27:12 UTC 2005


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



More information about the CentOS mailing list