Bug 241900 - qt-webkit-4.4.2 fails to compile on ppc64 due to full TOC
|
Bug#:
241900
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: PPC64
|
|
OS/Version: Linux
|
Status: CLOSED
|
Severity: normal
|
Priority: P2
|
|
Resolution: WORKSFORME
|
Assigned To: ppc64@gentoo.org
|
Reported By: gnu_andrew@member.fsf.org
|
|
Component: Library
|
|
|
URL:
|
|
Summary: qt-webkit-4.4.2 fails to compile on ppc64 due to full TOC
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2008-10-14 09:05 0000
|
linking ../../../../lib/libQtWebKit.so.4.4.2
/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.1/../../../../powerpc64-unknown-linux-gnu/bin/ld:
.obj/release-shared/SVGRadialGradientElement.o(.text+0xd34): sibling call
optimization to `WTF::HashSet<WebCore::SVGGradientElement const*,
WTF::PtrHash<WebCore::SVGGradientElement const*>,
WTF::HashTraits<WebCore::SVGGradientElement const*>
>::add(WebCore::SVGGradientElement const* const&)' does not allow automatic
multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or
make `WTF::HashSet<WebCore::SVGGradientElement const*,
WTF::PtrHash<WebCore::SVGGradientElement const*>,
WTF::HashTraits<WebCore::SVGGradientElement const*>
>::add(WebCore::SVGGradientElement const* const&)' extern
/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.1/../../../../powerpc64-unknown-linux-gnu/bin/ld:
.obj/release-shared/SVGRadialGradientElement.o(.text+0xdd8): sibling call
optimization to `WebCore::String::~String()' does not allow automatic multiple
TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make
`WebCore::String::~String()' extern
Reproducible: Always
Portage 2.1.4.5 (default-linux/ppc/ppc64/2007.0/64bit-userland/970/pmac,
gcc-4.3.1, glibc-2.7-r2, 2.6.24-gentoo-r3.omega ppc64)
=================================================================
System uname: 2.6.24-gentoo-r3.omega ppc64 PPC970MP, altivec supported
Timestamp of tree: Fri, 10 Oct 2008 12:19:01 +0000
distcc 2.18.3 powerpc64-unknown-linux-gnu (protocols 1 and 2) (default port
3632) [disabled]
ccache version 2.4 [enabled]
app-shells/bash: 3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python: 2.4.4-r13, 2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache: 2.4-r7
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox: 1.2.18.1-r2
sys-devel/autoconf: 2.13, 2.61-r2
sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils: 2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool: 1.5.26
virtual/os-headers: 2.6.24
ACCEPT_KEYWORDS="ppc64"
CBUILD="powerpc64-unknown-linux-gnu"
CFLAGS="-O2 -mtune=G5 -mcpu=G5 -mabi=altivec -pipe -ggdb"
CHOST="powerpc64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/env /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /usr/shutdown"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /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 -mtune=G5 -mcpu=G5 -mabi=altivec -pipe -ggdb"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks metadata-transfer parallel-fetch sandbox
sfperms splitdebug strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.blueyonder.co.uk
ftp://mirrors.blueyonder.co.uk/mirrors/gentoo
http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/
ftp://ftp.mirrorservice.org/sites/www.ibiblio.org/gentoo/ "
LANG="en_GB.UTF-8"
LINGUAS="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="/home/andrew/projects/gentoo/java-overlay
/home/andrew/projects/gentoo/andys_overlay"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac acl addbookmarks alias alsa altivec asf autoreplace avahi
bash-completion berkdb bluetooth bzip2 cairo caps cdda cddb cdparanoia cdr cjk
cli connectionstatus contactnotes cracklib crypt cups curl cvs daap dbus dga
dia djvu dri dts dv dvd dvdnav dvdr dvdread dvi effects emacs emf encode
examples fame ffmpeg fftw firefox flac fortran fping gcj gdbm gif git gmp
gnutls gpac gpgme gpm gtk hal hfs highlight history iconv idn ieee1394
imagemagick imap imlib ipod ipv6 irc isdnlog jack java java5 javascript jingle
jpeg jpeg2k kde ladspa lame lapack latex lcms libnotify live lzo mad matroska
mbox midi mjpeg mmap mng mp2 mp3 mpeg mplayer mudflap musepack musicbrainz
ncurses netmeeting network nls nntp nowlistening nptl nptlonly nsplugin ogg
openal openexr opengl openmp optimisememory oss pam pcre pdf perl plotutils png
pnm pop postscript ppc64 ppds pppd python qt qt3 qt4 quicktime readline
reflection rtc sasl sdl session shout slp smime smp sms smtp snmp sox speex
spell spl sqlite ssl statistics stream subtitles subversion svg syslog t1lib
tcpd tetex texteffect tga theora threads tiff translator truetype unicode usb
v4l2 vcd visualization vorbis vram webpresence wmf x264 xanim xattr xchattext
xcomposite xine xinerama xml xorg xscreensaver xv xvid xvmc yahoo zeroconf
zlib" 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="keyboard mouse" KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses
text" LINGUAS="en_GB" USERLAND="GNU" VIDEO_CARDS="nv fbdev"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL,
LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
since the ppc64 toolchain sucks, this probably needs to be worked around by
appending the toc flags mentioned in the log in the ebuild
Created an attachment (id=169568) [details]
updated ebuild
Confirmed. Same problem here.
Changed the ebuild to include the -mminimal-toc flag. Had to add a src_unpack
section since the qt build uses the flags from qmake. This works for me on
ppc64. The -fno-optimize-sibling-calls flag did not work, however.
ppc64 just upgrades to gcc-4.3.2-rX which should begin to resolve these TOC
issues.
@vapier - how do you want to proceed on this?
could you fill in the lower details ? last i looked at how the ppc64/TOC stuff
worked, it seems like it was broken by design and there wasnt really anything
we could do about it other than me whine like a little ho.
I don't like to do this, but I am not able to recreate this bug.
I'm on gcc 4.3.3-r2.
What's changed between gcc 4.1.2 and gcc 4.3.*? I'm not the guy to ask. I'd
recommend talking to the ppc toolchain folks, bergner or bje. I thought they
had done some things to be a bit more intelligent about the TOC but that could
be complete BS.
Anyway, I'm going to mark this works for me.
1) upgrade your gcc if you haven't already gotten to gcc 4.3.*
2) make sure when you do the upgrade you follow the ugprade instructions on
http://www.gentoo.org/doc/en/gcc-upgrading.xml
If you think things are still majorly hosed, please get on #gentoo-powerpc and
get in my face. I don't want to see these class of errors and want to get to
the bottom of it.
sticking a fork in it... I don't like the resolution anymore than you do, I'd
like to see a root cause.