Summary: | media-sound/amarok-1.4.9.1 fails w/gcc 4.3.0 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Peter Alfredsen (RETIRED) <loki_val> |
Component: | [OLD] GCC Porting | Assignee: | Diego Elio Pettenò (RETIRED) <flameeyes> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ben.vighy, count0nz, daniel, esigra, gcc-porting, iyosifov, kyron, martin, rktspm |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 198121 | ||
Attachments: | amarok-gcc43.patch |
Description
Peter Alfredsen (RETIRED)
2008-03-22 16:44:08 UTC
Created attachment 146916 [details, diff] amarok-gcc43.patch Fixes the bug. Snatched from Momonga linux: http://developer.momonga-linux.org/viewvc/trunk/pkgs/amarok/amarok-1.4.8-gcc43.patch?view=markup&pathrev=21921 Stupid helix engine -_-; The patch is not correct though, the include for string.h should not be duplicated in the header unless needed, and even if needed it should stay INSIDE the double-definition protection. Fixed in 1.4.9.1, which will be officially released and unmasked tomorrow. (In reply to comment #3) > Fixed in 1.4.9.1, which will be officially released and unmasked tomorrow. > I substituted the SRC_URI with Debian's orig.tar.gz: http://ftp.dk.debian.org/debian/pool/main/a/amarok/amarok_1.4.9.1.orig.tar.gz and rebuilt the package. It still errors out at the same place. [ebuild U ] media-sound/amarok-1.4.9.1 [1.4.8] USE="amazon kde mp4 opengl real -arts -daap -debug -ifp -ipod -mtp -musicbrainz -mysql -njb -postgres -python -visualization -xinerama" LINGUAS="da -af -ar -az -be -bg -bn -br -ca -cs -cy -de -el -en_GB -eo -es -et -eu -fa -fi -fr -ga -gl -he -hi -hu -id -is -it -ja -km -ko -ku -lo -lt -mk -ms -nb -nds -ne -nl -nn -pa -pl -pt -pt_BR -ro -ru -rw -se -sk -sl -sq -sr -sr@Latn -ss -sv -ta -tg -th -tr -uk -uz -zh_CN -zh_TW" 0 kB Please don't use Debian's tarballs, if you want to try it out join #amarok and see if they have the actual amarok 1.4.9.1 tarball, or wait till later on today. If the problem still appears _then_ reopen the bug. I've dutifully tried out the official tarball and: In file included from hxplayercontrol.h:15, from hxplayercontrol.cpp:28: ../../../../amarok/src/engine/helix/helix-sp/helix-sp.h: In copy constructor 'DelayQueue::DelayQueue(DelayQueue&)': ../../../../amarok/src/engine/helix/helix-sp/helix-sp.h:74: error: 'memcpy' was not declared in this scope ../../../../amarok/src/engine/helix/helix-sp/helix-sp.h: In constructor 'MimeList::MimeList(char*, char*)': ../../../../amarok/src/engine/helix/helix-sp/helix-sp.h:93: error: 'strlen' was not declared in this scope ../../../../amarok/src/engine/helix/helix-sp/helix-sp.h:93: error: 'strcpy' was not declared in this scope hxplayercontrol.cpp: In constructor 'PlayerControl::PlayerControl()': hxplayercontrol.cpp:71: error: 'memset' was not declared in this scope hxplayercontrol.cpp: In member function 'void PlayerControl::init(const char*, const char*, const char*, int)': hxplayercontrol.cpp:102: error: 'memset' was not declared in this scope hxplayercontrol.cpp:219: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:244: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:254: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:265: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:272: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:283: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:279: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:295: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:292: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:304: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:315: error: 'strdup' was not declared in this scope hxplayercontrol.cpp:317: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:316: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:324: error: 'free' was not declared in this scope hxplayercontrol.cpp:335: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:329: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:344: warning: suggest explicit braces to avoid ambiguous 'else' hxplayercontrol.cpp:364: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:379: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:409: error: 'exit' was not declared in this scope hxplayercontrol.cpp:451: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In member function 'void PlayerControl::setDevice(const char*)': hxplayercontrol.cpp:522: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:524: error: 'strcpy' was not declared in this scope hxplayercontrol.cpp: In member function 'void PlayerControl::dispatch()': hxplayercontrol.cpp:700: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:707: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:708: error: 'strcpy' was not declared in this scope hxplayercontrol.cpp:730: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:741: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:743: error: 'strcpy' was not declared in this scope hxplayercontrol.cpp:766: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:779: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:792: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:794: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:810: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:812: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:827: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In member function 'bool PlayerControl::sendsetdevice()': hxplayercontrol.cpp:1043: error: 'strlen' was not declared in this scope hxplayercontrol.cpp: In member function 'bool PlayerControl::sendupdateeqgains()': hxplayercontrol.cpp:1070: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In member function 'bool PlayerControl::sendnotifyuser(long unsigned int, const char*, const char*)': hxplayercontrol.cpp:1087: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:1090: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In member function 'bool PlayerControl::sendinterruptuser(long unsigned int, const char*, const char*)': hxplayercontrol.cpp:1103: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:1106: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In member function 'bool PlayerControl::sendcontacting(const char*)': hxplayercontrol.cpp:1119: error: 'strlen' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendmessage(int, PlayerControl::msgid, unsigned char*, int)': hxplayercontrol.cpp:1173: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendsetURL(int, const char*, bool)': hxplayercontrol.cpp:1183: error: 'strlen' was not declared in this scope hxplayercontrol.cpp:1187: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendstart(int, bool, long unsigned int)': hxplayercontrol.cpp:1198: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendsetfade(int, bool, long unsigned int)': hxplayercontrol.cpp:1218: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendplugins(int, HelixSimplePlayer*)': hxplayercontrol.cpp:1229: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:1236: error: 'strlen' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendmimetypes(int, HelixSimplePlayer*)': hxplayercontrol.cpp:1258: error: 'memcpy' was not declared in this scope hxplayercontrol.cpp:1263: error: 'strlen' was not declared in this scope hxplayercontrol.cpp: In static member function 'static bool PlayerControl::sendscopebuf(int, DelayQueue*)': hxplayercontrol.cpp:1283: error: 'memcpy' was not declared in this scope make[6]: *** [hxplayercontrol.lo] Error 1 make[6]: *** Waiting for unfinished jobs.... In file included from helix-engine.cpp:33: helix-engine.h:99: warning: 'typedef' was ignored in this declaration make[6]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.9.1/work/amarok-1.4.9.1/amarok/src/engine/helix' make[5]: *** [all-recursive] Error 1 make[5]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.9.1/work/amarok-1.4.9.1/amarok/src/engine/helix' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.9.1/work/amarok-1.4.9.1/amarok/src/engine' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.9.1/work/amarok-1.4.9.1/amarok/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.9.1/work/amarok-1.4.9.1/amarok' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.9.1/work/amarok-1.4.9.1' make: *** [all] Error 2 * * ERROR: media-sound/amarok-1.4.9.1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 4137: Called kde_src_compile * environment, line 2845: Called kde_src_compile 'src_compile' * environment, line 2965: Called kde_src_compile 'src_compile' 'all' 'myconf' * environment, line 2961: Called die * The specific snippet of code: * emake || die "died running emake, $FUNCNAME:make" * The die message: * died running emake, kde_src_compile:make * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-sound/amarok-1.4.9.1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-sound/amarok-1.4.9.1/temp/environment'. Okay this should be fixed now, sorry for the delay. Sorry, the bug is not solved (but I do not have permissions to re-open): It still errors out, because hxplayercontrol.cpp still does not #include <cstdlib>: hxplayercontrol.cpp:325: error: ‘free’ was not declared in this scope hxplayercontrol.cpp:410: error: ‘exit’ was not declared in this scope However, I have not tried yet whether this is all which needs to be changed. Update: I tested now, and indeed this #include <cstdlib> seems to be the only thing missing for the patch. BTW, the same patch works also for amarok-1.4.8 What's your emerge --info? Here it seems to build fine after the patch. Looking at the source code, I cannot imagine how hxplayercontrol.cpp might ever compile with gcc-4.3 without include <cstdlib> (unless perhaps the VSNPRINTF configure test fails in which case <stdlib.h> is included from config.h). I had first tried on amd64 and now also retried on x86 with a very clean make.conf - same problem. The relevant useflags for amarok are USE="kde mp4 mtp opengl python real visualization -amazon -arts -daap -debug -ifp -ipod -musicbrainz -mysql -njb -postgres -xinerama" LINGUAS="de en -en_GB" emerge --info gives (USE string manually removed): Portage 2.1.4.4 (default/linux/x86/2008.0/desktop, gcc-4.3.0, glibc-2.6.1-r0, 2.6.24-hardened-r2 i686) ================================================================= System uname: 2.6.24-hardened-r2 i686 AMD Athlon(tm) 64 Processor 3000+ Timestamp of tree: Thu, 15 May 2008 14:45:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r9 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.4-r1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.24 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium3m -O2 -fno-ident -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=pentium3m -O2 -fno-ident -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="candy ccache collision-protect distlocks sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="C" LDFLAGS="" LINGUAS="en de" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" 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="/gentoo64/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en de" USERLAND="GNU" VIDEO_CARDS="fbdev nv nvidia radeon v4l vesa vga" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY here it fails with: magnatunedownloaddialog.h:35: error: expected class-name before '{' token magnatunedownloaddialog.h:46: error: 'WFlags' has not been declared emerge --info: ================================================================= Portage 2.1.4.4 (default/linux/amd64/2008.0, gcc-4.3.0, glibc-2.7-r2, 2.6.25-tuxonice-r1 x86_64) ================================================================= System uname: 2.6.25-tuxonice-r1 x86_64 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz Timestamp of tree: Sun, 18 May 2008 12:00:02 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r9 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=core2 -fomit-frame-pointer -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" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=core2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS=" ftp://ftp.unina.it/pub/linux/distributions/gentoo" LANG="it_IT.UTF-8" LC_ALL="it_IT.UTF-8" LINGUAS="it en_GB" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" 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" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 amrnb amrwb ao bash-completion berkdb bzip2 cairo cli cracklib crypt css cups dbus dri dv dvd dvdr dvdread encode exif ffmpeg flac fortran gdbm gif gpm gtk hal iconv imagemagick imlib ipv6 java jpeg kdehiddenvisibility lm_sensors mad midi mikmod mmx mmxext mozsvg mp3 mpeg mudflap multilib musepack mysql ncurses nls nptl nptlonly nsplugin offensive ogg opengl openmp oss pam pcre pdf perl png python rdesktop readline reflection rtc samba sdl session smp spell spl sse sse2 ssl ssse3 subversion svg tcpd tetex theora threads truetype unicode v4l v4l2 vim vorbis wxwindows x264 xcb xcomposite xine xml xorg xosd xv xvid 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 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="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it en_GB" USERLAND="GNU" VIDEO_CARDS="fglrx v4l" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS sorry for the last report: it happened just in a chrooted environment. now i can build it without other strange issues. Sorry to disturb again, but now there is a typo in the patch: cstlib instead of cstdlib Fixed, thanks. *** Bug 223287 has been marked as a duplicate of this bug. *** amarok-1.4.10 needs this patch too (as upstream did not fix this - has anybody told them?). Please somebody add that patch to portage tree. Thanx Your problem shouldn't be related to GCC 4.3. I've been able to compile amarok 1.4.10 using it since the day it was released. I've just dicovered that it compiles well in amd64 but doesn't compile in x86. (In reply to comment #19) > I've just dicovered that it compiles well in amd64 but > doesn't compile in x86. It fails on amd64 as well. Probably you have different useflags there, presumably -visualization. |