Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 45045 - kde eclass sets bad command line args for linking (version mismatch)
Summary: kde eclass sets bad command line args for linking (version mismatch)
Status: RESOLVED WORKSFORME
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Ebuild Support (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-18 10:43 UTC by Jeremy Huddleston (RETIRED)
Modified: 2005-01-11 12:44 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Huddleston (RETIRED) gentoo-dev 2004-03-18 10:43:05 UTC
the kde eclass is causing funky stuff to happen when I compile noteedit with both kde 3.1 and 3.2 installed

/etc/env.d $ echo $PATH
/opt/povray/bin:/opt/mozilla/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/opt/bin:/usr/afsws/bin:/etc/afs/afsws:/usr/afs/bin:/usr/athena/sbin:/usr/i686-pc-linux-gnu/gcc-bin/3.3:/opt/intel/compiler70/ia32/bin:/opt/Acrobat5:/usr/X11R6/bin:/opt/blackdown-jdk-1.4.1/bin:/opt/blackdown-jdk-1.4.1/jre/bin:/usr/qt/3/bin:/usr/kde/3.2/sbin:/usr/kde/3.2/bin:/usr/kde/3.1/sbin:/usr/kde/3.1/bin:/usr/qt/2/bin:/usr/local/shake/bin:/opt/att/bin:/opt/tmake/bin

/etc/env.d $ cat /etc/ld.so.conf 
# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/opt/blackdown-jdk-1.4.1/jre/lib/i386/
/opt/blackdown-jdk-1.4.1/jre/lib/i386/native_threads/
/opt/intel/compiler70/ia32/lib
/usr/X11R6/lib
/usr/athena/lib
/usr/games/lib
/usr/kde/3.1/lib
/usr/kde/3.2/lib
/usr/lib/MozillaFirefox
/usr/lib/fltk-1.1
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2
/usr/lib/mozilla
/usr/lib/opengl/nvidia/lib
/usr/lib/speech-tools/lib
/usr/local/lib
/usr/qt/2/lib
/usr/qt/3/lib

$ ldd /usr/bin/noteedit | grep kde
        libartsc.so.0 => /usr/kde/3.1/lib/libartsc.so.0 (0x402f2000)
        libartsmidi.so.0 => /usr/kde/3.1/lib/libartsmidi.so.0 (0x402f8000)
        libartsmidi_idl.so.0 => /usr/kde/3.1/lib/libartsmidi_idl.so.0 (0x4032d000)
        libartsflow.so.1 => /usr/kde/3.1/lib/libartsflow.so.1 (0x40378000)
        libartsflow_idl.so.1 => /usr/kde/3.1/lib/libartsflow_idl.so.1 (0x404c3000)
        libmcop.so.1 => /usr/kde/3.1/lib/libmcop.so.1 (0x40651000)
        libkdeprint.so.4 => /usr/kde/3.1/lib/libkdeprint.so.4 (0x4092a000)
        libkparts.so.2 => /usr/kde/3.1/lib/libkparts.so.2 (0x409ea000)
        libkio.so.4 => /usr/kde/3.1/lib/libkio.so.4 (0x40a29000)
        libkdeui.so.4 => /usr/kde/3.1/lib/libkdeui.so.4 (0x40cf4000)
        libkdesu.so.4 => /usr/kde/3.1/lib/libkdesu.so.4 (0x40f6c000)
        libkdecore.so.4 => /usr/kde/3.1/lib/libkdecore.so.4 (0x40f87000)
        libDCOP.so.4 => /usr/kde/3.1/lib/libDCOP.so.4 (0x4112b000)
        libkdefx.so.4 => /usr/kde/3.1/lib/libkdefx.so.4 (0x4118a000)

noteedit should've been compiled/linked against 3.2, but it's not...

Snips from noteedit's compilation showing that it was compiled against 3.2:
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/kde/3.2/include -I/usr/qt/3/include -I/u                                                                                                                    sr/X11R6/include -I/usr/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_D                                                                                                                    EBUG -O2 -march=pentium3 -mcpu=pentium3 -O2 -pipe -fomit-frame-pointer -falign-f                                                                                                                    unctions=16 -falign-jumps=4 -falign-loops=8 -fno-exceptions -fno-check-new -Wp,-                                                                                                                    MD,.deps/voiceDia.pp -c voiceDia.cc  -fPIC -DPIC -o .libs/voiceDia.o
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/kde/3.2/include -I/usr/qt/3/include -I/u                                                                                                                    sr/X11R6/include -I/usr/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_D                                                                                                                    EBUG -O2 -march=pentium3 -mcpu=pentium3 -O2 -pipe -fomit-frame-pointer -falign-f                                                                                                                    unctions=16 -falign-jumps=4 -falign-loops=8 -fno-exceptions -fno-check-new -Wp,-                                                                                                                    MD,.deps/volume.pp -c volume.cc  -fPIC -DPIC -o .libs/volume.o


but when it's linked, it /usr/kde/3.1/lib is thrown in there:
g++ -DNDEBUG -DNO_DEBUG -O2 -march=pentium3 -mcpu=pentium3 -O2 -pipe -fomit-fram                                                                                                                    e-pointer -falign-functions=16 -falign-jumps=4 -falign-loops=8 -fno-exceptions -                                                                                                                    fno-check-new -o .libs/noteedit main.o  ./.libs/libnoteedit.so -L/usr/X11R6/lib                                                                                                                     -L/usr/qt/3/lib -L/usr/kde/3.2/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2 -L                                                                                                                    /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../../../i686-pc-linux-gnu/lib -L/us                                                                                                                    r/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../.. -L/usr/i686-pc-linux-gnu/bin -L/u                                                                                                                    sr/i686-pc-linux-gnu/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/../../../i686-pc-l                                                                                                                    inux-gnu/lib -L/usr/lib/mysql -L/usr/lib /usr/lib/libtse3.so -L/usr/kde/3.1/lib                                                                                                                     /usr/kde/3.1/lib/libartsc.so /usr/kde/3.1/lib/libartsmidi.so /usr/kde/3.1/lib/li                                                                                                                    bartsmidi_idl.so /usr/kde/3.1/lib/libartsflow.so /usr/kde/3.1/lib/libartsflow_id                                                                                                                    l.so /usr/lib/libaudiofile.so /usr/lib/libasound.so /usr/kde/3.1/lib/libmcop.so                                                                                                                     -lstdc++ /usr/lib/libvorbisfile.so /usr/lib/libvorbisenc.so /usr/lib/libvorbis.s                                                                                                                    o /usr/lib/libogg.so /usr/lib/libmad.so /usr/lib/libxine.so /usr/kde/3.2/lib/lib                                                                                                                    kdeprint.so /usr/kde/3.2/lib/libkparts.so /usr/kde/3.2/lib/libkio.so /usr/kde/3.                                                                                                                    2/lib/libkdeui.so /usr/kde/3.2/lib/libkdesu.so /usr/kde/3.2/lib/libkdecore.so /u                                                                                                                    sr/kde/3.2/lib/libDCOP.so -lresolv /usr/lib/libart_lgpl_2.so /usr/kde/3.2/lib/li                                                                                                                    bkdefx.so /usr/qt/3/lib/libqt-mt.so -laudio -lXt /usr/lib/libmng.so /usr/lib/lib                                                                                                                    jpeg.so -lXi -lXrandr -lXcursor -lXinerama -lXft /usr/lib/libfontconfig.so /usr/                                                                                                                    lib/libfreetype.so /usr/lib/libexpat.so -ldl -lpng -lXext -lX11 -lSM -lICE -lpth                                                                                                                    read -lXrender -lutil /usr/lib/libfam.so -lrpcsvc -lz /usr/lib/gcc-lib/i686-pc-l                                                                                                                    inux-gnu/3.3.2/libstdc++.so -lm -lc -lgcc_s -Wl,--rpath -Wl,/usr/kde/3.1/lib -Wl                                                                                                                    ,--rpath -Wl,/usr/kde/3.2/lib -Wl,--rpath -Wl,/usr/qt/3/lib -Wl,--rpath -Wl,/usr                                                                                                                    /lib/gcc-lib/i686-pc-linux-gnu/3.3.2 -Wl,--rpath -Wl,/usr/X11R6/lib


Because of this, we get a binary compiled against 3.2, but linked against 3.1:
$ noteedit
noteedit: relocation error: /usr/lib/libnoteedit.so.1: undefined symbol: _ZN11KMainWindow4showEv
Comment 1 Gregorio Guidi (RETIRED) gentoo-dev 2005-01-11 12:44:42 UTC
The eclass changed a lot since then, and we never had problems with recent versions... so I'm closing this one now.