1) Python3 needs the util-linux:host dependency otherwise uuid support will
leak over from the build host during a clean build, only to use util-linux:host
for uuid support during a subsequent rebuild (which fails, because of #2)
2) util-linux:host needs -fPIC as this is what Python3 requires (clean builds
work because of #1...)
3) Remove toolchain from util-linux:host to avoid a circular toolchain
reference now that Python3 is also part of toolchain (via meson)
This reverts commit 3b5986704e.
The config shell is set as an interpreter in libtool scripts
and as Linux has a hard limit of 127 bytes on the first line
in scripts (including the hashbang) this causes the build to
fail with a "bad interpreter" error if the path to the config
shell exceeds this limit.
These errors were first noticed on jenkins builds but can be
easily reproduced by building LibreELEC in a longer build dir.
eg RPi2 clean build failing on libtool invocation in kmod build:
./doltlibtool: /home/hias/rpi/libreelec-testing-with-a-long-directory-path-as-on-jenkins/build.LibreELEC-RPi2.arm-9.0-devel/kmod-24/.x86_64-linux-gnu/libtool: /home/hias/rpi/libreelec-testing-with-a-long-directory-path-as-on-jenkins/build.LibreELEC-RPi2.arm-9.0-devel/toolchain/bin/d: bad interpreter: No such file or directory
Signed-off-by: Matthias Reichl <hias@horus.com>
Builds use a mix of styles for the hash table in the ELF header. Only
one style of table is necessary, and the GNU one is more performant
for lookups. Eliminating the SysV style hash table trims ~450kb. This
is done via setting the default linker in gcc instead of LDFLAGS as
some packages ignore LDFLAGS.
Note that if MIPS is ever added as a supported architecture, it
does not support hash-style=gnu at this time.
Signed-off-by: Ian Leonard <antonlacon@gmail.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