Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 461586 - [qt overlay] dev-qt/qtjsbackend:5 does not respect CFLAGS/CXXFLAGS/LDFLAGS - cckdWLYi.ltrans8.ltrans.o:(.rodata+0x1fa0): undefined reference to `v8::internal::Counters::*'
Summary: [qt overlay] dev-qt/qtjsbackend:5 does not respect CFLAGS/CXXFLAGS/LDFLAGS - ...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-12 23:25 UTC by Gianni Rossi
Modified: 2013-10-02 00:30 UTC (History)
2 users (show)

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


Attachments
Build log (build.log,130.26 KB, text/plain)
2013-03-17 00:31 UTC, Gianni Rossi
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gianni Rossi 2013-03-12 23:25:06 UTC
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
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2013-03-13 16:36:40 UTC
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.
Comment 2 Gianni Rossi 2013-03-17 00:29:48 UTC
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
Comment 3 Gianni Rossi 2013-03-17 00:30:32 UTC
# emerge -vpq dev-qt/qtjsbackend
[ebuild   R   ] dev-qt/qtjsbackend-5.0.1  USE="c++11 -debug {-test}"
Comment 4 Gianni Rossi 2013-03-17 00:31:40 UTC
Created attachment 342316 [details]
Build log
Comment 5 Gianni Rossi 2013-03-17 00:33:59 UTC
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"
Comment 6 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-03-18 13:00:59 UTC
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...
Comment 7 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-03-18 13:03:35 UTC
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.
Comment 8 Gianni Rossi 2013-03-18 13:08:12 UTC
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.
Comment 9 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-03-18 13:21:06 UTC
Oh, I see, this is from the Qt overlay.
Comment 10 Daniel Scharrer 2013-07-09 22:49:14 UTC
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.
Comment 11 Davide Pesavento (RETIRED) gentoo-dev 2013-10-02 00:30:26 UTC
qtjsbackend is going to die soon (it's not used anymore since 5.2)