Bug 4303

Summary: Toolchains qmake causes DEBUG builds with -O2
Product: buildroot Reporter: Karl Krach <buildroot>
Component: OtherAssignee: unassigned
Status: RESOLVED WONTFIX    
Severity: minor CC: buildroot
Priority: P5    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:
Attachments: .config file of buildroot 2011.08

Description Karl Krach 2011-10-12 13:14:01 UTC
Created attachment 3637 [details]
.config file of buildroot 2011.08

When compiling/installing Qt with buildroot, also the qmake.conf is correct. When buildroot is compiled with the "-O2" flag, the QMAKE_CXXFLAGS of qmake.conf also includes the "-O2" flag, which causes that all builds (even the DEBUG ones) are compiled with "-O2", and thus the debugger goes crazy ;)

I would suggest, that when writing the QMAKE_CXXFLAGS (and QMAKE_CFLAGS) to qmake.conf, we should filter the flags (e.g. -pipe is ok).


############ Result ##############

#
# qmake configuration for building with arm-linux-g++
#

include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
QMAKE_LFLAGS = 
QMAKE_CXXFLAGS = -pipe -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
QMAKE_CFLAGS   = -pipe -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
QMAKE_STRIP    = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-strip
QMAKE_RANLIB   = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-ranlib
QMAKE_OBJCOPY  = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-objcopy
QMAKE_AR       = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_LINK_SHLIB = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK     = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-g++
QMAKE_CXX      = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-g++
QMAKE_CC       = /opt/damian/toolchain-arm/usr/bin/arm-none-linux-gnueabi-gcc

# modifications to g++.conf

# modifications to linux.conf

load(qt_config)
Comment 1 Thomas Petazzoni 2012-01-31 22:21:05 UTC
Why should we make a special case for Qt here ? If you tell Buildroot to use -O2, then it sounds quite logical to have -O2 in the qmake CXXFLAGS, no ? If you don't want -O2 in the qmake CXXFLAGS, then tell Buildroot to not use -O2, and you're all set.
Comment 2 Will Wagner 2012-02-01 08:45:47 UTC
(In reply to comment #1)
> Why should we make a special case for Qt here ? If you tell Buildroot to use
> -O2, then it sounds quite logical to have -O2 in the qmake CXXFLAGS, no ? If
> you don't want -O2 in the qmake CXXFLAGS, then tell Buildroot to not use -O2,
> and you're all set.

The reason Qt is different from other packages is that there is a menu option on whether you want to build debug or release. If you were to select debug it doesn't seem unreasonable that it should be built with -O0.

That said, I'm not too bothered about seeing this fixed.