go: disable PIE CFLAGS for nativesdk and cross-canadian builds

The statically-linked Go code in the toolchain is not compatible
with PIE, so disable its use in the C compiler during the
toolchain build.

(From OE-Core rev: cc7b179917c715b29822200fe91ecd755a5750e6)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Matt Madison
2018-03-04 13:09:34 -08:00
committed by Richard Purdie
parent 3ffafcd9cf
commit 8701fe54a8
3 changed files with 6 additions and 7 deletions

View File

@@ -12,13 +12,13 @@ export GOTOOLDIR_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/${HOST_SYS}/go/pkg/tool/$
export GOROOT_FINAL = "${libdir}/go" export GOROOT_FINAL = "${libdir}/go"
export CGO_CFLAGS = "${CFLAGS}" export CGO_CFLAGS = "${CFLAGS}"
export CGO_LDFLAGS = "${LDFLAGS}" export CGO_LDFLAGS = "${LDFLAGS}"
export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "--sysroot=${STAGING_DIR_HOST} ${HOST_CC_ARCH} ${LDFLAGS}"' export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "--sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS} ${HOST_CC_ARCH} ${LDFLAGS}"'
do_configure[noexec] = "1" do_configure[noexec] = "1"
do_compile() { do_compile() {
export CC_FOR_${HOST_GOOS}_${HOST_GOARCH}="${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE}" export CC_FOR_${HOST_GOOS}_${HOST_GOARCH}="${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
export CXX_FOR_${HOST_GOOS}_${HOST_GOARCH}="${HOST_PREFIX}gxx --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE}" export CXX_FOR_${HOST_GOOS}_${HOST_GOARCH}="${HOST_PREFIX}gxx --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
cd src cd src
./make.bash --host-only --no-banner ./make.bash --host-only --no-banner
cd ${B} cd ${B}

View File

@@ -3,8 +3,8 @@ require go-${PV}.inc
export GOHOSTOS_CROSS = "${HOST_GOOS}" export GOHOSTOS_CROSS = "${HOST_GOOS}"
export GOHOSTARCH_CROSS = "${HOST_GOARCH}" export GOHOSTARCH_CROSS = "${HOST_GOARCH}"
export CC_FOR_TARGET = "${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE}" export CC_FOR_TARGET = "${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
export CXX_FOR_TARGET = "${HOST_PREFIX}g++ --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE}" export CXX_FOR_TARGET = "${HOST_PREFIX}g++ --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
do_compile_prepend() { do_compile_prepend() {
export GOBIN="${B}/bin" export GOBIN="${B}/bin"

View File

@@ -14,8 +14,7 @@ GO_LDFLAGS = ""
GO_LDFLAGS_class-nativesdk = "-linkmode external" GO_LDFLAGS_class-nativesdk = "-linkmode external"
export GO_LDFLAGS export GO_LDFLAGS
SECURITY_CFLAGS = "${SECURITY_NOPIE_CFLAGS}" CC_append_class-nativesdk = " ${SECURITY_NOPIE_CFLAGS}"
SECURITY_LDFLAGS = ""
do_configure[noexec] = "1" do_configure[noexec] = "1"