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

Giulio Benetti giulio.benetti at benettiengineering.com
Wed Oct 2 22:36:12 UTC 2019


On 10/3/19 12:24 AM, Giulio Benetti wrote:
> In Qt5 mkspecs/features/default_post.prf(included after our qmake.conf):
> debug {
>      QMAKE_CFLAGS += $$QMAKE_CFLAGS_DEBUG
>      QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_DEBUG
>      QMAKE_LFLAGS += $$QMAKE_LFLAGS_DEBUG
>      QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_DEBUG
> } else {
>      QMAKE_CFLAGS += $$QMAKE_CFLAGS_RELEASE
>      QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_RELEASE
>      QMAKE_LFLAGS += $$QMAKE_LFLAGS_RELEASE
>      QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE
> }
> QMAKE_CFLAGS is set to QMAKE_CFLAGS_RELEASE that in order is set to one
> of QMAKE_CFLAGS_OPTIMIZE depending on qt5 optimization chosen.
> Unfortunately patch:
> https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
> is not enough, since QMAKE_CFLAGS_RELEASE is set to
> QMAKE_CFLAGS_OPTIMIZE in a unique file, resulting in resetting
> QMAKE_CFLAGS_OPTIMIZE only after QMAKE_FLAGS_RELEASE is set.

Forgot to mention:
QMAKE_CFLAGS_OPTIMIZE is set in mkspecs/common/gcc-base.conf (the unique 
file).

> The only way is to directly reset:
> QMAKE_CFLAGS_RELEASE
> QMAKE_CFLAGS_DEBUG
> QMAKE_CXXFLAGS_RELEASE
> QMAKE_CXXFLAGS_DEBUG
> in our qmake.conf.in.
> 
> This package is also affected by BR2_TOOLCHAIN_HAS_GCC_BUG_90620 and
> it's been worked around by appending -O0 to CFLAGS/CXXFLAGS. This bug
> prevented workaround to work overriding optimization flags, so solving
> this also solves workaround problem.
> 
> Fixes:
> http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
> http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
> 
> Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
> ---
> V1->V2:
> * rewritten entire commit log
> ---
>   package/qt5/qt5base/qmake.conf.in | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/package/qt5/qt5base/qmake.conf.in b/package/qt5/qt5base/qmake.conf.in
> index 2eb564e172..ae25b2e20f 100644
> --- a/package/qt5/qt5base/qmake.conf.in
> +++ b/package/qt5/qt5base/qmake.conf.in
> @@ -19,6 +19,10 @@ QMAKE_CFLAGS_OPTIMIZE       =
>   QMAKE_CFLAGS_OPTIMIZE_DEBUG =
>   QMAKE_CFLAGS_OPTIMIZE_FULL  =
>   QMAKE_CFLAGS_OPTIMIZE_SIZE  =
> +QMAKE_CFLAGS_DEBUG =
> +QMAKE_CXXFLAGS_DEBUG =
> +QMAKE_CFLAGS_RELEASE =
> +QMAKE_CXXFLAGS_RELEASE =
>   CONFIG                 += nostrip
>   
>   QMAKE_LIBS             += -lrt -lpthread -ldl
> 

-- 
Giulio Benetti
Benetti Engineering sas


More information about the buildroot mailing list