Go to file
Giulio Benetti 30dc3c7411 package/qt5/qt5base: build with correct optimization
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 common/features/default_post.prf, they add those flags to
QMAKE_CFLAGS_RELEASE/QMAKE_CXXFLAGS_RELEASE depending on various build
options (optimize_size, optimize_full, optimize_debug):

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
    }
}

Since this default_post.prf is included *after* our qmake.conf file,
these flags override our optimizations flags, which is not good.

However, our qmake.conf file is included *after* gcc-base.conf, so we
can simply reset those variables to have the empty value, and our
optimization flags will be used.

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
[Thomas: completely change the approach, by simply resetting the
QMAKE_CFLAGS_OPTIMIZE_* variables in qmake.conf]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

(cherry picked from commit 7c0aa83527)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-08-29 23:38:53 +02:00
arch arch: Add support for Westmere targets 2019-06-23 23:08:56 +02:00
board board/qemu: ensure root is available before mounting it 2019-07-06 22:22:53 +02:00
boot boot/arm-trusted-firmware: licensing info is only valid for v1.4 2019-08-04 19:24:05 +02:00
configs configs/bananapi_m64: uboot needs host pylibfdt to build 2019-05-13 20:16:53 +02:00
docs docs/manual: 'Fixes' tag needs a colon 2019-07-31 23:42:48 +02:00
fs fs/common.mk: do not store original names and timestamps when creating gzipped rootfs 2019-08-04 19:10:46 +02:00
linux {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{1, 2}.x series 2019-08-20 15:52:32 +02:00
package package/qt5/qt5base: build with correct optimization 2019-08-29 23:38:53 +02:00
support support/testing/infra/emulator: increase memory size used by Qemu 2019-06-24 21:58:48 +02:00
system system/skeleton: remove password expiration from shadow 2019-03-20 23:06:29 +01:00
toolchain toolchain/toolchain-external/toolchain-external-andes-nds32: add missing dependencies/select 2019-05-31 00:06:52 +02:00
utils utils/check-package: Add a quiet flag 2019-07-07 08:42:01 +02:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 .flake8: fix check for 80/132 columns 2019-04-10 12:31:33 +02:00
.gitignore
.gitlab-ci.yml support/testing/tests: drop Python 2.x test in test_ipython 2019-05-18 22:41:22 +02:00
.gitlab-ci.yml.in .gitlab-ci.yml: add trigger per job 2019-05-01 15:42:45 +02:00
CHANGES Update for 2019.05.1 2019-07-07 22:09:08 +02:00
Config.in toolchain: set the ssp gcc option in kconfig 2019-03-13 00:01:55 +01:00
Config.in.legacy Config.in.legacy: add legacy entry for 4.20.x headers 2019-06-24 20:56:32 +02:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS DEVELOPERS: Remove Markos Chandras 2019-06-24 22:07:44 +02:00
Makefile Makefile: don't export GZIP environment variable 2019-08-04 19:10:53 +02:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches