Summary: | x11-libs/qt-*-4.8.2: doesn't respect CXXFLAGS | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | wbrana |
Component: | Eclasses | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | QA | CC: | flameeyes |
Priority: | Normal | Keywords: | InVCS |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build log
fixed build log patch qt4-build.eclass.patch |
Description
wbrana
2012-07-23 18:43:35 UTC
Created attachment 319008 [details]
fixed build log
same bug in qt-core Created attachment 319020 [details, diff]
patch
The patch is not acceptable, it changes standard upstream behaviour for out-of-portage builds. Created attachment 319104 [details, diff] qt4-build.eclass.patch Thanks for the report and the patch. Unfortunately, we cannot patch the mkspecs files because some people do not like changing the default behaviour (see bug #352778). Attached is a new patch (not yet properly tested) that mimics the behaviour of qt4-r2 (In reply to comment #5) > Created attachment 319104 [details, diff] [details, diff] > qt4-build.eclass.patch > > Attached is a new patch (not yet properly tested) that mimics the behaviour > of qt4-r2 Yes, that's what I had in mind. I have pushed the patch[1] as well as a second patch for building qmake[2] to the overlay for now. [1]: http://git.overlays.gentoo.org/gitweb/?p=proj/qt.git;a=commitdiff;h=3ea37eb3aa1424cca91cbcb03d742d74f1f2a9a2 [2]: http://git.overlays.gentoo.org/gitweb/?p=proj/qt.git;a=commitdiff;h=f6d5e4c8af8db3e84cac7cac719b8383c4247d64 *** Bug 428176 has been marked as a duplicate of this bug. *** (In reply to comment #7) > I have pushed the patch[1] as well as a second patch for building qmake[2] > to the overlay for now. > > [1]: > http://git.overlays.gentoo.org/gitweb/?p=proj/qt.git;a=commitdiff; > h=3ea37eb3aa1424cca91cbcb03d742d74f1f2a9a2 ACK for this one. > [2]: > http://git.overlays.gentoo.org/gitweb/?p=proj/qt.git;a=commitdiff; > h=f6d5e4c8af8db3e84cac7cac719b8383c4247d64 What happens if we replace all the seds in qt-core ebuild with just the following? sed -i -e '/^CPPFLAGS =/s/-g//' \ -e "/^CXXFLAGS =/s:$: ${CXXFLAGS}:" \ -e "/^LFLAGS =/s:$: ${LDFLAGS}:" \ "${S}"/qmake/Makefile.unix (In reply to comment #9) > What happens if we replace all the seds in qt-core ebuild with just the > following? > > sed -i -e '/^CPPFLAGS =/s/-g//' \ > -e "/^CXXFLAGS =/s:$: ${CXXFLAGS}:" \ > -e "/^LFLAGS =/s:$: ${LDFLAGS}:" \ > "${S}"/qmake/Makefile.unix Portage reports that all merged binaries respect *FLAGS, but qmake used during build does not: Creating qmake. Please wait... x86_64-pc-linux-gnu-g++ -c -o project.o -pipe -DQMAKE_OPENSOURCE_EDITION -O2 -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/var/tmp/portage/x11-libs/qt-core-4.8.2/work/qt-everywhere-opensource-src-4.8.2/include -I/var/tmp/portage/x11-libs/qt-core-4.8.2/work/qt-everywhere-opensource-src-4.8.2/include/QtCore -I/var/tmp/portage/x11-libs/qt-core-4.8.2/work/qt-everywhere-opensource-src-4.8.2/src/corelib/global -I/var/tmp/portage/x11-libs/qt-core-4.8.2/work/qt-everywhere-opensource-src-4.8.2/src/corelib/xml -I/var/tmp/portage/x11-libs/qt-core-4.8.2/work/qt-everywhere-opensource-src-4.8.2/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/var/tmp/portage/x11-libs/qt-core-4.8.2/work/qt-everywhere-opensource-src-4.8.2/mkspecs/linux-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED -march=native -pipe -frecord-gcc-switches project.cpp where CFLAGS="-march=native -pipe -frecord-gcc-switches" (In reply to comment #10) Your CFLAGS *are* respected (they come last in gcc command line), but qmake building also uses -O2 by default (unless overridden by a later -On flag)... and that was expected actually. (In reply to comment #11) > but qmake building also uses -O2 by default (unless overridden by a later -On flag)... That (and -pipe) was what I meant by not respecting, and was the reason for setBootstrapVariable. Apart from that issue(?), your sed in comment #9 covers all objects that are actually merged. So... I'm fine with merging the first patch (the eclass patch) into portage. As far as qmake is concerned, it needs more thought IMO. For instance, what's the purpose of "optimized-qmake" USE flag? Should we remove it then? (In reply to comment #13) > what's the purpose of "optimized-qmake" USE flag? Should we remove it then? I am no Qt expert, but a superficial look seems to indicate that it effectively just adds -O2 to CFLAGS. Since user CFLAGS are now passed, I suggest dropping the USE flag and configuring with -no-optimized-qmake. I also note that even with -no-optimized-qmake, -pipe is still forced for qmake only. Committed the eclass patch to portage. + 06 Sep 2012; Michael Palimaka <kensington@gentoo.org> qt4-build.eclass: + Improve respect for *FLAGS. Fixes part of bug #427782. Closing this one. Fixing qmake bootstrap will be handled in bug 434780. Thanks! |