When emergeing =dev-qt/qtwebkit-4.8.7 the build fails with the following error: In file included from /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/PossiblyNull.h:29:0, from /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/FastMalloc.h:25, from /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/WebCore/config.h:153, from /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/WebCore/rendering/style/QuotesData.cpp:21: /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StdLibExtras.h: In function 'TO WTF::bitwise_cast(FROM)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummyWTF_bitwise_cast_sizeof_casted_types_is_equal' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StdLibExtras.h:96:5: note: in expansion of macro 'COMPILE_ASSERT' COMPILE_ASSERT(sizeof(TO) == sizeof(FROM), WTF_bitwise_cast_sizeof_casted_types_is_equal); ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StdLibExtras.h: In function 'size_t WTF::roundUpToMultipleOf(size_t)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummydivisor_is_a_power_of_two' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StdLibExtras.h:120:5: note: in expansion of macro 'COMPILE_ASSERT' COMPILE_ASSERT(divisor && !(divisor & (divisor - 1)), divisor_is_a_power_of_two); ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StringHasher.h: In static member function 'static unsigned int WTF::StringHasher::hashMemory(const void*)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummylength_must_be_a_multible_of_four' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StringHasher.h:140:9: note: in expansion of macro 'COMPILE_ASSERT' COMPILE_ASSERT(!(length % 4), length_must_be_a_multible_of_four); ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h: In member function 'bool WTF::OwnPtr<T>::operator==(const WTF::OwnPtr<U>&)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummyOwnPtrs_should_never_be_equal' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h:87:66: note: in expansion of macro 'COMPILE_ASSERT' template<typename U> bool operator==(const OwnPtr<U>&) { COMPILE_ASSERT(!sizeof(U*), OwnPtrs_should_never_be_equal); return false; } ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h: In member function 'bool WTF::OwnPtr<T>::operator!=(const WTF::OwnPtr<U>&)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummyOwnPtrs_should_never_be_equal' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h:88:66: note: in expansion of macro 'COMPILE_ASSERT' template<typename U> bool operator!=(const OwnPtr<U>&) { COMPILE_ASSERT(!sizeof(U*), OwnPtrs_should_never_be_equal); return false; } ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h: In member function 'bool WTF::OwnPtr<T>::operator==(const WTF::PassOwnPtr<U>&)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummyOwnPtrs_should_never_be_equal' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h:89:70: note: in expansion of macro 'COMPILE_ASSERT' template<typename U> bool operator==(const PassOwnPtr<U>&) { COMPILE_ASSERT(!sizeof(U*), OwnPtrs_should_never_be_equal); return false; } ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h: In member function 'bool WTF::OwnPtr<T>::operator!=(const WTF::PassOwnPtr<U>&)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Assertions.h:326:47: warning: typedef 'dummyOwnPtrs_should_never_be_equal' locally defined but not used [-Wunused-local-typedefs] #define COMPILE_ASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1] ^ /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/OwnPtr.h:90:70: note: in expansion of macro 'COMPILE_ASSERT' template<typename U> bool operator!=(const PassOwnPtr<U>&) { COMPILE_ASSERT(!sizeof(U*), OwnPtrs_should_never_be_equal); return false; } ^ /var/tmp/portage/dev-libs/isl-0.14/work/isl-0.14/isl_val.c:290: numerator too large /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/WebCore/rendering/style/QuotesData.cpp: In static member function 'static WebCore::QuotesData* WebCore::QuotesData::create(int)': /var/tmp/portage/dev-qt/qtwebkit-4.8.7/work/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/WebCore/rendering/style/QuotesData.cpp:26:13: internal compiler error: Aborted QuotesData* QuotesData::create(int stringCount) ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://bugs.gentoo.org/> for instructions. Makefile:410366: recipe for target '.obj/release-static/QuotesData.o' failed make: *** [.obj/release-static/QuotesData.o] Error 1 # emerge -pqv '=dev-qt/qtwebkit-4.8.7::gentoo' [ebuild U ] dev-qt/qtwebkit-4.8.7 [4.8.6-r1] USE="gstreamer jit (-aqua) -debug -exceptions -icu -pch" ABI_X86="(64) -32 (-x32)" The fact that isl is failing indicates that it is the graphite optimizations that fail. The workaround should be too disable the graphite optimizations. Hence, the lowered priority. I will try to confirm that it in fact is graphite that does not work. Reproducible: Always
# emerge --info '=dev-qt/qtwebkit-4.8.7::gentoo' Portage 2.2.20 (python 3.3.5-final-0, default/linux/amd64/13.0/desktop, gcc-4.9.2, glibc-2.20-r2, 4.0.4-gentoo x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.0.4-gentoo-x86_64-AMD_Athlon-tm-_II_X4_640_Processor-with-gentoo-2.2 KiB Mem: 8177808 total, 65548 free KiB Swap: 2097148 total, 2076284 free Timestamp of repository gentoo: Fri, 29 May 2015 18:00:01 +0000 sh bash 4.3_p39 ld GNU ld (Gentoo 2.25 p1.2) 2.25 distcc 3.2rc1 x86_64-pc-linux-gnu [disabled] app-shells/bash: 4.3_p39::gentoo dev-java/java-config: 2.2.0::gentoo dev-lang/perl: 5.20.2-r1::gentoo dev-lang/python: 2.7.10::gentoo, 3.3.5-r1::gentoo, 3.4.3::gentoo dev-util/cmake: 3.2.2::gentoo dev-util/pkgconfig: 0.28-r3::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.16.3::gentoo sys-apps/sandbox: 2.6-r1::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r1::gentoo sys-devel/automake: 1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 2.25-r1::gentoo sys-devel/gcc: 4.8.4::gentoo, 4.9.2::gentoo sys-devel/gcc-config: 1.8::gentoo sys-devel/libtool: 2.4.6-r1::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.0::gentoo (virtual/os-headers) sys-libs/glibc: 2.20-r2::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 crossdev location: /usr/crossdev masters: gentoo priority: 0 lilrc location: /home/kalle/lilrc-overlay masters: gentoo priority: 1 proaudio location: /home/kalle/proaudio masters: gentoo priority: 2 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -O2 -fomit-frame-pointer -pipe -fno-stack-protector -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity -march=amdfam10" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe -O2 -fomit-frame-pointer -pipe -fno-stack-protector -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity -march=amdfam10" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS=" --binpkg-changed-deps=y --binpkg-respect-use=y --buildpkg-exclude app-emulation/virtualbox-modules --buildpkg-exclude sys-fs/vhba --buildpkg-exclude sys-kernel/* --buildpkg-exclude virtual/* --buildpkg-exclude www-client/firefox --with-bdeps=y --getbinpkg=y" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs buildpkg buildsyspkg candy config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news noinfo parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="rsync://192.168.0.109/gentoo-portage/ http://distfiles.gentoo.org http://ftp.df.lth.se/pub/gentoo/ rsync://ftp.df.lth.se/pub/gentoo/ http://mirror.mdfnet.se/gentoo" LANG="C" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac alloca alsa amd64 aspell bindist cairo cd cdda cddb cdr consolekit cracklib crypt cups curl dri drm dssi dvd dvdr exif ffmpeg fftw flac fltk gallium gif gimp glib gmp gnuplot gnutls gstreamer gtk gtk2 gtkstyle gudev hwdb imap inotify jack javascript jit jpeg keymap ladspa lame libkms libnotify libsamplerate lv2 mad mp3 mpeg netifrc nptl ogg opengl openmp openrc orc pam pdf png qt3support qt4 qt5 readline spell ssl startup-notification subversion svg svn theora threads thunar tiff truetype udev udisks unicode usb v4l vaapi vdpau vlc vorbis webgl x264 xcb xcomposite xinerama xorg xscreensaver zlib" ABI_X86="64" ALSA_CARDS="hda-intel" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext sse sse2 sse3 sse4_1" CURL_SSL="gnutls" ELIBC="glibc" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev" KERNEL="linux" LINGUAS="en en_GB" PYTHON_SINGLE_TARGET="python3_3" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby20 ruby22" SANE_BACKENDS="xerox_mfp" USERLAND="GNU" VIDEO_CARDS="nouveau" XFCE_PLUGINS="trash" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Created attachment 404306 [details] gzip compressed build.log Compressed to make the 30.0MB fit the 1000KB file size limit.
I can confirm it is graphite failing. It emerges fine with -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity removed from CFLAGS.
Can you pinpoint which flag of those 4 triggers the ICE?
Created attachment 404360 [details] build log with -fraphite-identity The same error is triggered by -fgraphite-identity alone. Here is an xz-compressed build log. The same ICE is also triggered with -floop-strip-mine alone but in another source file. I will post the log shortly.
Created attachment 404362 [details] build log with -floop-strip-mine Build log with -floop-strip-mine. The ICE occurs at another source file than with -fgraphite-identity.
Thanks. The problematic flags are now filtered for qtwebkit. 31 May 2015; Davide Pesavento <pesa@gentoo.org> qt4-build-multilib.eclass: Blacklist graphite-related flags that cause ICEs on qtwebkit (bug 550780). I'm reassigning this bug to toolchain to see if they're interested in fixing it.
considering how much rewrites lto/graphite have gone through in each gcc release so far, if it works with the latest (5.1.0), i think that's all we plan on doing.
The bug is not reproducible with GCC 5.1.0.
if it was backported, or the fix that went into trunk identified, we can add it to 4.9, but lto/graphite aren't a priority for us currently
(In reply to SpanKY from comment #10) > if it was backported, or the fix that went into trunk identified, we can add > it to 4.9, but lto/graphite aren't a priority for us currently Closing since noone has yet identified the commit / bug, and 5.4 is stable now.