Storing the cache in an exported environment variable can
result in build failures if the cache exceeds the MAX_ARG_STRLEN
limit (128k on linux) which can be triggered by building in a
rather deeply nested directory.
Signed-off-by: Matthias Reichl <hias@horus.com>
Split up the LTO flags in config/optimize and assemble
full C/CXX/LDFLAGS in config/functions.
Add flags for parallel/single-threaded lto and fat/non-fat
lto object creation.
Change the default lto build flag to use non-fat lto objects.
Signed-off-by: Matthias Reichl <hias@horus.com>
Packages are only built with LTO if it's explicitly enabled via
the lto build flag or if a package enables LTO via configure / cmake
options.
Enabling LTO via configure / cmake is the preferred way as this
gives packages more fine grained control, eg enable parallel LTO
linking etc. When doing this packages should respect the
LTO_SUPPORT setting so LTO can be disabled globally.
To avoid conflicting C/CXX/LDFLAGS no FLAGS are added when the
lto build flag is not set.
Signed-off-by: Matthias Reichl <hias@horus.com>
- replace strip_lto/strip_gold (only allowed to disable)
- add flag for PIC feature
- add flag to stop build parallel
- add support for hardening option (initial copy from debian 9)
All build parameters, are added in setup_toolchain.
`PKG_[FLAG]_[HOST/TARGET]_ENABLED` variable is introduced for checking the flag (yes/no) in the package.mk
Thanks to @MilhouseVH, for support and fixing