Trying to set CFLGAS/CXXFLAGS for this package does not work. Either in make.conf or in package.env. I installed my system using lto for all packages and I compile packages that fail because of lto using CXXFLGAS with no lto. Reproducible: Always Steps to Reproduce: 1. Set package.env or make.conf for this package to something like "CXXFLAGS=-O3" 2. emerge dev-qt/qtjsbackend:5 3. Build procedure will ignore CXXFLAGS and LDFLAGS set. 4. Recompile qtcore:5 with some new flags like "CXXFLAGS=-O3" 5. Remove the flags set for dev-qt/qtjsbackend:5 and set it to "CXXFLAGS=-Os" 6. Recompile dev-qt/qtjsbackend:5 and it will build with -O3
1) Please post your `emerge --info' output in a comment. 2) Please post your `emerge -vpq dev-qt/qtjsbackend' output in a comment. 3) Please attach the entire build log to this bug report.
Portage 2.1.11.52 (default/linux/amd64/13.0/desktop/kde, gcc-4.7.2, glibc-2.15-r3, 3.7.9-gentoo x86_64) ================================================================= System uname: Linux-3.7.9-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_950_@_3.07GHz-with-gentoo-2.1 KiB Mem: 8158784 total, 2115120 free KiB Swap: 7999484 total, 7998872 free Timestamp of tree: Sat, 16 Mar 2013 23:45:01 +0000 ld GNU ld (GNU Binutils) 2.22.90.20120727 distcc 3.1 x86_64-pc-linux-gnu [disabled] app-shells/bash: 4.2_p37 dev-java/java-config: 2.1.12-r1 dev-lang/python: 2.7.3-r2, 3.2.3 dev-util/cmake: 2.8.9 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.4_p6-r1, 1.9.6-r3, 1.10.3, 1.11.6 sys-devel/binutils: 2.22.90 sys-devel/gcc: 4.6.3, 4.7.2-r1 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.6 (virtual/os-headers) sys-libs/glibc: 2.15-r3 Repositories: gentoo x-xportage multimedia gentoo-arm hardened-dev qt steam-overlay seden ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O3 -pipe -march=native -fomit-frame-pointer -ftree-vectorize -flto -floop-block -floop-interchange -floop-strip-mine" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /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="-O3 -pipe -march=native -fomit-frame-pointer -fpermissive -ftree-vectorize -flto -floop-block -floop-interchange -floop-strip-mine" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_GB.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-flto -Wl,--hash-style=gnu" MAKEOPTS="-j9" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/multimedia /var/lib/layman/gentoo-arm /var/lib/layman/hardened-development /var/lib/layman/qt /var/lib/layman/steam /var/lib/layman/seden" SYNC="rsync://bitforge.com.br/gentoo-portage" USE="X a52 aac acl acpi aio alsa amd64 apng bash-completion berkdb bittorrent bluetooth branding bzip2 c++0x c++11 cairo cdda cddb cdr chromium cli cmake consolekit cracklib crypt cups cxx dbus declarative dhcp dhcpcd dirac dlna dri dts dvd dvdr emboss encode exif faac fam ffmpeg firefox flac fortran gdbm gif git gpm graphite gstreamer hal iconv icu id3tag ipv6 iscsi jpeg jpeg2k kde kerberos kipi kvm latex lcms ldap libnotify libvirtd lirc lto lvm lzo macvtap mad matroska mmx mng modules mp3 mp4 mpeg mudflap multilib mysql ncurses networkmanager nls nouveau nptl ntpl ntplonly offensive ogg opengl openmp openvg openxml pam pango parted pcap pch pcre pdf phonon plasma png policykit postgres ppds pulseaudio python qemu qemu-ifup qml qt qt3support qt4 qt5 readline resolvconf rtsp samba sane schroedinger sdl semantic-desktop session smp spdy spell spice sse sse2 ssl startup-notification subversion svg syslog taglib tcpd theora threads tiff truetype udev udisks unicode upnp upower usb utf utf8 v4l v4l2 valgrind video virt-network vnc vorbis wayland webkit webm webp wxwidgets x264 xcb xcomposite xinerama xml xsane xscreensaver xv xvid xvmc zlib" ABI_X86="64" 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="authn_core authz_core socache_shmcb unixd 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB pt pt_BR es it" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" QEMU_SOFTMMU_TARGETS="i386 x86_64 arm" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
# emerge -vpq dev-qt/qtjsbackend [ebuild R ] dev-qt/qtjsbackend-5.0.1 USE="c++11 -debug {-test}"
Created attachment 342316 [details] Build log
portage/package.env/qt5: =dev-qt/qtjsbackend-5.0.1 safe-cflags.conf portage/env/safe-cflags.conf: CFLAGS="-O3 -pipe -march=native -fomit-frame-pointer" CXXFLAGS="${CFLAGS} -fpermissive" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
Can you provide these configuration files as well? Portage should pass it right if you configured it right, I don't see how -fLTO would magically pop up there; it can happen, but very unlikely...
Ignore what I said, I didn't read all your comments so I missed the last one. You should use -fno-lto in your portage/env/safe-cflags.conf instead.
Let me make it clear that this is the only package I have that fails with the safe-cflags.conf that I have. Several other packages that fail due to LTO will compile just fine when I set their env in safe-cflags; for example dev-qt/qtwebkit:4.
Oh, I see, this is from the Qt overlay.
I have the same problem, but encountered in qtwebkit-5.1.0 - posting here, because it's most likely a common problem in qt5-build.eclass. In my case, I have -ggdb in make.conf and then use package.env to disable debug symbols for packages where it would require excessive amounts of memory to compile: $ cat /etc/portage/env/nodebug CFLAGS="${CFLAGS} -g0" CXXFLAGS="${CXXFLAGS} -g0" qt5-build.eclass even has this warning - however with this bug the user can no longer follow the advice if [[ ${PN} == "qtwebkit" ]]; then eshopts_push -s extglob if is-flagq '-g?(gdb)?([1-9])'; then echo ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)." ewarn "You may experience really long compilation times and/or increased memory usage." ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug." ewarn "For more info check out https://bugs.gentoo.org/307861" echo fi eshopts_pop fi It look like user-defined flags from /etc/make.conf *are* used for qtwebkit, but not from the time qtwebkit is compiled. Instead, they are hardcoded at the time qtcore is emerged: $ qlist qtcore | xargs grep amdfam10 /usr/lib64/qt5/mkspecs/qmodule.pri:QMAKE_CFLAGS = -O2 -pipe -O2 -march=amdfam10 -ggdb -pipe /usr/lib64/qt5/mkspecs/qmodule.pri:QMAKE_CXXFLAGS = -O2 -pipe -O2 -march=amdfam10 -ggdb -pipe This is really confusing behavior - hopefully it will be fixed before Qt 5 is merged to the tree.
qtjsbackend is going to die soon (it's not used anymore since 5.2)