Bug 122182

Summary: make xconfig under KDE : ld can't find -lqt
Product: [Fedora] Fedora Reporter: David Bennion <davidbennion>
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED NEXTRELEASE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 2CC: kolosiek, moneta.mace, pfrields, than
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-16 05:38:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description David Bennion 2004-05-01 16:32:10 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.6)
Gecko/20040312

Description of problem:
The 2.6 kernels graphical xconfig running under KDE relies on 
libqt, which it cannot find:

[root@localhost linux-2.6.5-1.327]# make xconfig
  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


However, KDE is installed and active -- obviously qt is installed and
functional.  So we suspect the library path:

/etc/ld.so.conf:
include ld.so.conf.d/*.conf
/usr/X11R6/lib
/usr/X11R6/lib64
/usr/lib64/qt-3.3/lib

Taking a peek at the qt libs. 
ls /usr/lib64/qt-3.3/lib:
[davidb@localhost linux-2.6.5-1.327]$ ls /usr/lib64/qt-3.3/lib
libdesignercore.a        libqt-mt.prl       libqui.so
libdesignercore.prl      libqt-mt.so        libqui.so.1
libeditor.a              libqt-mt.so.3      libqui.so.1.0
libeditor.prl            libqt-mt.so.3.3    libqui.so.1.0.0
libqassistantclient.a    libqt-mt.so.3.3.1  pkgconfig
libqassistantclient.prl  libqui.prl

Ah hah!  It looks like there is no more libqt ??  has it been changed
to libqt-mt ?

Now make xconfig will fail when trying to config under KDE.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. login under KDE (may have to be on an AMD64 machine?)
2. cd /usr/src/linux-2.6.5-1.327
3. make xconfig


Actual Results:  [root@localhost linux-2.6.5-1.327]# make xconfig
  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


Expected Results:  A graphical screen pops up and lets me configure
the kernel.

Additional info:

Comment 1 Arjan van de Ven 2004-05-01 16:42:30 UTC
it's qt-devel's job to provide this library...

Comment 2 David Bennion 2004-05-01 18:15:07 UTC
Just to make this clear:

[root@localhost davidb]# rpm -qa | grep qt-devel
qt-devel-3.3.1-0.8

Comment 3 Alan Cox 2004-05-02 21:52:22 UTC
Kernel needs qt-mt nowdays I believe


Comment 4 David Bennion 2004-05-03 13:50:12 UTC
Do I need an updated kernel??

Comment 5 Than Ngo 2004-05-03 16:02:18 UTC
it looks like the QTDIR enviroment is not setting! If you do export
QTDIR=/usr/lib64/qt-3.3 before, it should work fine for you

Arjan, could you please add this small patch in kernel. It should fix
the lib64 path problem!

--- kconfig/Makefile.orig       2004-05-03 17:58:31.828557363 +0200
+++ kconfig/Makefile    2004-05-03 18:01:31.551019714 +0200
@@ -118,7 +118,7 @@

 # QT needs some extra effort...
 $(obj)/.tmp_qtcheck:
-       @set -e; for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
+       @set -e; for d in $$QTDIR /usr/share/qt* /usr/lib/qt*
/usr/lib64/qt* ; do \
          if [ -f $$d/include/qconfig.h ]; then DIR=$$d; break; fi; \
        done; \
        if [ -z "$$DIR" ]; then \


Comment 6 Arjan van de Ven 2004-05-03 16:07:46 UTC
ok put in for the next build

Comment 7 David Bennion 2004-05-20 07:20:36 UTC
I tried this after installing the FC2 release (fresh install) and it
still did not work.  Same error, actually.  

I did go into the kconfig/Makefile and verify that the changes from
the above patch were there.  



Comment 8 Dean Kolosiek 2004-09-15 06:19:28 UTC
I hit this problem too.

make xconfig generates the file:

/usr/src/linux-2.6.8-1.521/scripts/kconfig/.tmp_qtcheck

which contains

QTDIR=/usr/lib64/qt-3.3
QTLIBPATH=/usr/lib64/qt-3.3/lib/../lib64
QTLIB=qt

but the QTLIBPATH is does not match the qt library directory. The qt
directory is /usr/lib64/qt-3.3/lib

The extra ../lib64 comes from ($(HOSTCXX) -print-multi-os-directory),
a few lines below the above patch.

LIBPATH=$$DIR/lib; LIB=qt; \
$(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
LIBPATH=$$DIR/lib/$$($(HOSTCXX) -print-multi-os-directory); \

I hardcoded the paths by appending this line after the above:

LIBPATH=$$DIR/lib; LIB=qt-mt; \

I don't know what -print-multi-os-directory does, it's not on the man
page. I don't know what the correct fix would be.

Then I did a make mrproper and make xconfig, and it proceeded to the
next errors/warnings, which I don't know whether they're expected:

...
  HOSTLD  scripts/kconfig/qconf
scripts/kconfig/qconf arch/x86_64/Kconfig
Session management error: Authentication Rejected, reason : None of
the authentication protocols specified are supported and host-based
authentication failed
#
# using defaults found in /boot/config-2.6.5-1.358smp
#
/boot/config-2.6.5-1.358smp:218: trying to assign nonexistent symbol
MTD_ICH2ROM
/boot/config-2.6.5-1.358smp:284: trying to assign nonexistent symbol
BLK_DEV_CARMEL
/boot/config-2.6.5-1.358smp:302: trying to assign nonexistent symbol
IDEDISK_STROKE
/boot/config-2.6.5-1.358smp:378: trying to assign nonexistent symbol
SCSI_REPORT_LUNS
/boot/config-2.6.5-1.358smp:710: trying to assign nonexistent symbol
NET_FASTROUTE
/boot/config-2.6.5-1.358smp:720: trying to assign nonexistent symbol
NET_SCH_CSZ
/boot/config-2.6.5-1.358smp:728: trying to assign nonexistent symbol
NET_SCH_DELAY
/boot/config-2.6.5-1.358smp:1540: trying to assign nonexistent symbol
PCI_CONSOLE
/boot/config-2.6.5-1.358smp:1947: trying to assign nonexistent symbol
INTERMEZZO_FS
/boot/config-2.6.5-1.358smp:1965: trying to assign nonexistent symbol
NEC98_PARTITION

and then a graphical screen pops up. That's as far as I got.

Comment 9 Mace Moneta 2004-12-10 17:38:31 UTC
The latest (2.6.9-1.6_FC2) kernel still has this build problem.  In
case anyone still has this problem, I found this patch against
scripts/kconfig/Makefile that worked for me:

--- Makefile.orig 2004-09-18 21:32:20.021088968 -0500
+++ Makefile 2004-09-18 21:32:45.314243824 -0500
@@ -124,8 +124,6 @@
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" >> $@; \
[


You also need to:

rm scripts/kconfig/.tmp_qtcheck


The patch was posted in this forum entry:

http://www.fedoraforum.org/forum/showpost.php?p=102905&postcount=2

Comment 10 Dave Jones 2005-04-16 05:38:36 UTC
Fedora Core 2 has now reached end of life, and no further updates will be
provided by Red Hat.  The Fedora legacy project will be producing further kernel
updates for security problems only.

If this bug has not been fixed in the latest Fedora Core 2 update kernel, please
try to reproduce it under Fedora Core 3, and reopen if necessary, changing the
product version accordingly.

Thank you.