[Buildroot] [PATCH v3] package/qt5base: fix building with correct optimization

Peter Korsgaard peter at korsgaard.com
Sat Mar 7 08:06:10 UTC 2020


>>>>> "Arnout" == Arnout Vandecappelle <arnout at mind.be> writes:

 > On 25/11/2019 12:26, Giulio Benetti wrote:
 >> Qt5 has predefined optimization flags depending if you're building for
 >> size, for debug etc. These flags are defined in
 >> mkspecs/common/gcc-base.conf:
 >> 
 >> QMAKE_CFLAGS_OPTIMIZE      = -O2
 >> QMAKE_CFLAGS_OPTIMIZE_FULL = -O3
 >> QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og
 >> QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
 >> 
 >> Then, in the same file, they use them to set
 >> QMAKE_CFLAGS_RELEASE/QMAKE_CXXFLAGS_RELEASE:
 >> 
 >> QMAKE_CFLAGS_RELEASE       += $$QMAKE_CFLAGS_OPTIMIZE
 >> QMAKE_CXXFLAGS_RELEASE    += $$QMAKE_CFLAGS_RELEASE
 >> 
 >> At this point there is our chance to override QMAKE_CFLAGS_OPTIMIZE_* in
 >> qmake.conf, but it's too late, because QMAKE_CFLAGS_RELEASE is already
 >> set(i.e. -O2) so trying to add or remove QMAKE_CFLAGS_OPTIMIZE(that is
 >> reset now on) from QMAKE_CLAGS_RELEASE in
 >> common/features/default_post.prf won't work:
 >> 
 >> optimize_size {
 >> !isEmpty(QMAKE_CFLAGS_OPTIMIZE):!isEmpty(QMAKE_CFLAGS_OPTIMIZE_SIZE)  {
 >> QMAKE_CFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE
 >> QMAKE_CXXFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE
 >> QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_SIZE
 >> QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_SIZE
 >> }
 >> } else: optimize_full {
 >> !isEmpty(QMAKE_CFLAGS_OPTIMIZE):!isEmpty(QMAKE_CFLAGS_OPTIMIZE_FULL)  {
 >> QMAKE_CFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE
 >> QMAKE_CXXFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE
 >> QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_FULL
 >> QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_FULL
 >> }
 >> }

 >  This stuff is complicated...

 >> 
 >> So let's reset:
 >> QMAKE_CFLAGS_RELEASE
 >> QMAKE_CFLAGS_DEBUG
 >> QMAKE_CXXFLAGS_RELEASE
 >> QMAKE_CXXFLAGS_DEBUG
 >> in our qmake.conf.in since the only assignment done in
 >> mkspecs/common/gcc-base.conf only regards optimization.

 >  But that's a really elegant solution!

Committed to 2019.02.x and 2019.11.x, thanks.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list