klibc: fix build with GCC and -pie for mips, mips64, aarch64

The MCONFIG makefiles for mips/mips64 do disable pic so we do not insist
linking it with -pie.

For aarch64 we have to readd the -Os optimization to avoid

 | usr/dash/shell.h:103:25: error:
 '-mgeneral-regs-only' is incompatible with floating-point argument

as committed (c296fb707a klibc: Pass Optimization with KLIBCOPTFLAGS)
but reverted (76bc58e932 klibc: Fix build with security flags) trying to
fix the i386 build (see ld.bfd: discarded output section: `.got.plt').
This latter issue was fixed for i386 passing -pie to the linker.

Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Andrea Adami 2018-09-15 16:27:10 +02:00 committed by Khem Raj
parent a95dde2868
commit a06c29be2f

View File

@ -44,7 +44,7 @@ EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \
'INSTALLDIR=${libdir}/klibc' \
'SHLIBDIR=${libdir}' \
'${KLIBCTHUMB}' \
'KLIBCOPTFLAGS=${TUNE_CCARGS}' \
'KLIBCOPTFLAGS=${TUNE_CCARGS} -Os' \
V=1 \
"
EXTRA_OEMAKE += "'EXTRA_KLIBCAFLAGS=${SECURITY_CFLAGS} -Wa,--noexecstack' \
@ -76,3 +76,5 @@ KLIBC_ARCH_powerpc64 = "ppc64"
THIS_LIBKLIBC = "libklibc (= ${PV}-${PR})"
SECURITY_LDFLAGS = "${@'-z relro -z now -pie' if '${GCCPIE}' else ''}"
SECURITY_LDFLAGS_mips = ""
SECURITY_LDFLAGS_mips64 = ""