Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 278628 - media-sound/krecord fails to build if kde4 is installed
Summary: media-sound/krecord fails to build if kde4 is installed
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: kde3-on-kde4
  Show dependency tree
 
Reported: 2009-07-22 03:32 UTC by Pritpaul Mahal
Modified: 2009-11-12 13:00 UTC (History)
2 users (show)

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


Attachments
build log with gcc 4.1.2 (krecord-build-gcc-4.1.2.log,44.83 KB, text/plain)
2009-09-07 19:29 UTC, Pritpaul Mahal
Details
build log with gcc 4.3.4 (krecord-build-gcc-4.3.4.log,47.42 KB, text/plain)
2009-09-07 19:29 UTC, Pritpaul Mahal
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pritpaul Mahal 2009-07-22 03:32:21 UTC
I previously had krecord installed, and kde with +kdeprefix.  I recently redid my sestem with -kdeprefix and now krecord (a kde3 application) does not build.  I do have KDE 3.5.10 installed in addition to 4.2.4.

This seems to me to be very similar to bug 238539, I think probably the same cause (finding the kde4 library before kde3)

  LD      krecord                                                                                 
krecord.o: In function `KRecord::qt_emit(int, QUObject*)':                                        
krecord.cpp:(.text+0xad): undefined reference to `KMainWindow::qt_emit(int, QUObject*)'           
krecord.o: In function `KLevel::qt_emit(int, QUObject*)':                                         
krecord.cpp:(.text+0xbf): undefined reference to `KMainWindow::qt_emit(int, QUObject*)'           
krecord.o: In function `KFFT::qt_emit(int, QUObject*)':                                           
krecord.cpp:(.text+0xd1): undefined reference to `KMainWindow::qt_emit(int, QUObject*)'           
krecord.o: In function `KRecord::qt_property(int, int, QVariant*)':                               
krecord.cpp:(.text+0xe3): undefined reference to `KMainWindow::qt_property(int, int, QVariant*)'  
krecord.o: In function `KLevel::qt_property(int, int, QVariant*)':                                
krecord.cpp:(.text+0xf5): undefined reference to `KMainWindow::qt_property(int, int, QVariant*)'  
krecord.o: In function `KFFT::qt_property(int, int, QVariant*)':                                  
krecord.cpp:(.text+0x107): undefined reference to `KMainWindow::qt_property(int, int, QVariant*)' 
krecord.o: In function `KRecord::exec_mixer()':                                                   
krecord.cpp:(.text+0x9a3): undefined reference to `KProcess::KProcess()'                          
krecord.cpp:(.text+0x9b0): undefined reference to `KProcess::operator<<(char const*)'             
krecord.o: In function `KRecord::staticMetaObject()':                                             
krecord.cpp:(.text+0xa1e): undefined reference to `KMainWindow::staticMetaObject()'               
krecord.o: In function `KLevel::staticMetaObject()':                                              
krecord.cpp:(.text+0xaaa): undefined reference to `KMainWindow::staticMetaObject()'               
krecord.o: In function `KFFT::staticMetaObject()':                                                
krecord.cpp:(.text+0xb36): undefined reference to `KMainWindow::staticMetaObject()'               
krecord.o: In function `KFFT::qt_invoke(int, QUObject*)':                                         
krecord.cpp:(.text+0xd57): undefined reference to `KMainWindow::qt_invoke(int, QUObject*)'        
krecord.o: In function `KRecord::create_soundbar()':                                              
krecord.cpp:(.text+0xe1b): undefined reference to `KToolBar::KToolBar(QWidget*, char const*, bool, bool)'
krecord.cpp:(.text+0xe27): undefined reference to `KGlobal::iconLoader()'                                
krecord.cpp:(.text+0xe7d): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'
krecord.cpp:(.text+0xece): undefined reference to `i18n(char const*)'                                                                  
krecord.cpp:(.text+0xf05): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                      
krecord.cpp:(.text+0xf74): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                      
krecord.cpp:(.text+0xfc5): undefined reference to `i18n(char const*)'                                                                                        
krecord.cpp:(.text+0xffc): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                      
krecord.cpp:(.text+0x106b): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x10bc): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x10f3): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                     
krecord.cpp:(.text+0x1162): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x11b3): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x11ea): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                     
krecord.cpp:(.text+0x1259): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x12aa): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x12e1): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                     
krecord.cpp:(.text+0x1350): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x13a1): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x13d8): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                     
krecord.cpp:(.text+0x1414): undefined reference to `KToolBar::insertSeparator(int, int)'                                                                     
krecord.cpp:(.text+0x145a): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x14ab): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x14e2): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                     
krecord.cpp:(.text+0x151c): undefined reference to `KToolBar::setBarPos(KToolBar::BarPosition)'                                                              
krecord.o: In function `KRecord::create_toolbar()':                                                                                                          
krecord.cpp:(.text+0x18cf): undefined reference to `KToolBar::KToolBar(QWidget*, char const*, bool, bool)'                                                   
krecord.cpp:(.text+0x18db): undefined reference to `KGlobal::iconLoader()'                                                                                   
krecord.cpp:(.text+0x192e): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x197f): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x19b6): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                                                                     
krecord.cpp:(.text+0x1a25): undefined reference to `KIconLoader::loadIcon(QString const&, KIcon::Group, int, int, QString*, bool) const'                     
krecord.cpp:(.text+0x1a76): undefined reference to `i18n(char const*)'                                                                                       
krecord.cpp:(.text+0x1aa9): undefined reference to `KToolBar::insertButton(QPixmap const&, int, char const*, QObject const*, char const*, bool, QString const&, int)'                                                                                                         

(and lots more of the same....)
# emerge --info                                                                                 
Portage 2.1.6.13 (default/linux/amd64/2008.0/desktop, gcc-4.1.2, glibc-2.10.1-r0, 2.6.27-gentoo-r8 x86_64)
=================================================================                                         
System uname: Linux-2.6.27-gentoo-r8-x86_64-Intel-R-_Pentium-R-_Dual_CPU_T3400_@_2.16GHz-with-gentoo-2.0.1
Timestamp of tree: Tue, 21 Jul 2009 13:00:01 +0000                                                        
ccache version 2.4 [enabled]                                                                              
app-shells/bash:     4.0_p24                                                                              
dev-java/java-config: 2.1.8-r1                                                                            
dev-lang/python:     2.5.4-r2, 2.6.2-r1                                                                   
dev-util/ccache:     2.4-r8                                                                               
dev-util/cmake:      2.6.4-r1                                                                             
sys-apps/baselayout: 2.0.1                                                                                
sys-apps/openrc:     0.4.3-r3                                                                             
sys-apps/sandbox:    2.0                                                                                  
sys-devel/autoconf:  2.13, 2.63-r1                                                                        
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11                                      
sys-devel/binutils:  2.19.1-r1                                                                            
sys-devel/gcc-config: 1.4.1                                                                               
sys-devel/libtool:   2.2.6a                                                                               
virtual/os-headers:  2.6.30
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=nocona -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache collision-protect distlocks fixpackages parallel-fetch prelink protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,--hash-style=both"
LINGUAS="en en_US"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X accessibility acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdr cisco cli cracklib crypt cups dbus djvu dri dvd dvdr dvdread eds emboss encode esd evo fam firefox fortran gdbm gif gpm gstreamer gtk hal htmlhandbook iconv ipv6 isdnlog jpeg kde kde4 kdeenablefinal kdehiddenvisibility laptop ldap libnotify mad midi mikmod mmx mozbranding mp3 mpeg mudflap multilib mysql ncurses nls nptl nptlonly offensive ogg opengl openmp openvpn pam pcre pdf perl png ppds pppd python qt3 qt3support qt4 quicktime readline reflection sdl semantic-desktop session spell spl sse sse2 ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis xml xorg xulrunner xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="fbdev vesa intel"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY





Reproducible: Always

Steps to Reproduce:
1. emerge kde4 with -kdeprefix
2. emerge krecord

Actual Results:  
krecord fails to build

Expected Results:  
krecord should build
Comment 1 Maciej Mrozowski gentoo-dev 2009-09-07 08:04:43 UTC
It has nothing to do with kdeprefix I'm certain.
Try setting gcc-4.3.2 as your default compiler.
Comment 2 Maciej Mrozowski gentoo-dev 2009-09-07 08:06:05 UTC
Or maybe... please attach build log so that we can judge whether it really picks wrong KDE.
Comment 3 Pritpaul Mahal 2009-09-07 19:28:29 UTC
Well, if you're already certain, I'm not sure what the point is of build logs.  But I'll go ahead and attach them. (I don't have gcc 4.3.2, I used 4.3.4 as a hopefully close equivalent).  Also note that I didn't recompile kde with the different compilers, just krecord (kde is all gcc 4.1.2)

Also, your comment prompted me to look into this bug some more, and whereas before I just had a strong suspicion that this was kdeprefix related, based on the strong similarity of the messages to bug 238539 and the fact that it started happened after I recompiled with -kdeprefix and with no other changes (and same version of krecord), I am now 100% certain that -kdeprefix is the problem.  I'll post my reasons for thinking so and a build fix (thoguh probably not an ebuild patch as I don't know enoguh about ebuilds) in a few minutes.
Comment 4 Pritpaul Mahal 2009-09-07 19:29:01 UTC
Created attachment 203396 [details]
build log with gcc 4.1.2
Comment 5 Pritpaul Mahal 2009-09-07 19:29:31 UTC
Created attachment 203398 [details]
build log with gcc 4.3.4
Comment 6 Pritpaul Mahal 2009-09-07 19:34:24 UTC
And now, how I tracked this down so I'm now 100% sure it's a kde3 vs kde4 issue.
After the build failed, I went into /var/tmp/portage/media-sound/krecord-1.16/work/krecord-1.16 and ran "make verbose=yes" to get the build command, which was "cc -L/usr/X11R6/lib64 -L/usr/qt/3/lib64 -o krecord krecord.o sound.o fft.o level.o buffer.o soundfft.o oss.o sunaudio.o -lkdeui -lkdecore -lqt-mt -lXext -lXmu -lX11".  Running this command gets me the same build errors as I got from emerge.  Replace the "cc" with "ld -t" to get where it's pulling libraries from, and I see:
-lkdeui (/usr/X11R6/lib64/libkdeui.so)                 
-lkdecore (/usr/X11R6/lib64/libkdecore.so)
-lqt-mt (/usr/qt/3/lib64/libqt-mt.so)
-lXext (/usr/X11R6/lib64/libXext.so)
-lXmu (/usr/X11R6/lib64/libXmu.so)
-lX11 (/usr/X11R6/lib64/libX11.so)

Now, go back to the cc command, but with a -L/usr/kde/3.5/lib64 right after cc (so that it's before -L/usr/X11R6/lib64 where it's finding the kde4 libs), and:

venture krecord-1.16 # cc -L/usr/kde/3.5/lib64 -L/usr/X11R6/lib64 -L/usr/qt/3/lib64 -o krecord krecord.o sound.o fft.o level.o buffer.o soundfft.o oss.o sunaudio.o -lkdeui -lkdecore -lqt-mt -lXext -lXmu -lX11
venture krecord-1.16 # ls -l krecord
-rwxr-xr-x 1 root root 212488 Sep  7 15:33 krecord

Success!
Comment 7 Pritpaul Mahal 2009-09-07 19:37:20 UTC
I believe I've provided enough evidence to change the bug summary back.  I'm not trying to be passive-aggressive or anything.  If you still disagree, change it again and I won't touch it this time :)
Comment 8 Maciej Mrozowski gentoo-dev 2009-09-08 17:08:13 UTC
I wonder why kde (kde3) eclass doesn't override environment enought to have valid libs being picked by (even badly broken in this case) buildsystem.
Comment 9 Andrey Grozin gentoo-dev 2009-10-21 06:55:36 UTC
What's the suggested replacement? I use kde-3.5, and I use (rarely) krecord when I want to check if my microphone (and the relevant part of the sound card) works. What am I supposed to use instead?
Comment 10 Samuli Suominen (RETIRED) gentoo-dev 2009-11-12 11:34:46 UTC
gone