[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