summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2022-01-01 12:29:56 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-01-05 17:18:15 +0000
commit0111724c3405c422730aaf1353269e3665aea6e2 (patch)
tree1fc6ca673872eceb5e97140d0c47adec538f1f3c
parent51a8e28fe03c167727be99183fa82ab88ffe9876 (diff)
downloadpoky-0111724c3405c422730aaf1353269e3665aea6e2.tar.gz
go: correctly set debug-prefix-map and build directory
Go has its own system for creating temporary build sub-directories with randomized names, and setting up debug-prefix-map on the fly to prevent those directories leaking into target binaries. OE's own settings were clashing with it, so this change carefully avoids the two stepping on each other. Additionally, the top level build directory cannot be named 'go-something'. (From OE-Core rev: 9985b17a30bb9b9f1bc82a44662687db5cead66e) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/go.bbclass2
-rw-r--r--meta/recipes-devtools/go/go-common.inc2
-rw-r--r--meta/recipes-devtools/go/go-runtime.inc7
-rw-r--r--meta/recipes-devtools/go/go-target.inc10
4 files changed, 18 insertions, 3 deletions
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index 5c1fdd7d5f..9c4c92bffd 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -67,7 +67,7 @@ GO_INSTALL_FILTEROUT ?= "${GO_IMPORT}/vendor/"
67 67
68B = "${WORKDIR}/build" 68B = "${WORKDIR}/build"
69export GOPATH = "${B}" 69export GOPATH = "${B}"
70export GOTMPDIR ?= "${WORKDIR}/go-tmp" 70export GOTMPDIR ?= "${WORKDIR}/build-tmp"
71GOTMPDIR[vardepvalue] = "" 71GOTMPDIR[vardepvalue] = ""
72 72
73python go_do_unpack() { 73python go_do_unpack() {
diff --git a/meta/recipes-devtools/go/go-common.inc b/meta/recipes-devtools/go/go-common.inc
index 5bbf35b787..83f8db7b39 100644
--- a/meta/recipes-devtools/go/go-common.inc
+++ b/meta/recipes-devtools/go/go-common.inc
@@ -23,7 +23,7 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
23SSTATE_SCAN_CMD = "true" 23SSTATE_SCAN_CMD = "true"
24 24
25export GOROOT_OVERRIDE = "1" 25export GOROOT_OVERRIDE = "1"
26export GOTMPDIR ?= "${WORKDIR}/go-tmp" 26export GOTMPDIR ?= "${WORKDIR}/build-tmp"
27GOTMPDIR[vardepvalue] = "" 27GOTMPDIR[vardepvalue] = ""
28export CGO_ENABLED = "1" 28export CGO_ENABLED = "1"
29 29
diff --git a/meta/recipes-devtools/go/go-runtime.inc b/meta/recipes-devtools/go/go-runtime.inc
index 617e6b5414..a08d44dd3a 100644
--- a/meta/recipes-devtools/go/go-runtime.inc
+++ b/meta/recipes-devtools/go/go-runtime.inc
@@ -2,10 +2,15 @@ DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native"
2DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk" 2DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk"
3PROVIDES = "virtual/${TARGET_PREFIX}go-runtime" 3PROVIDES = "virtual/${TARGET_PREFIX}go-runtime"
4 4
5DEBUG_PREFIX_MAP = "\
6 -fdebug-prefix-map=${STAGING_DIR_HOST}= \
7 -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
8"
9
5export CGO_CFLAGS = "${CFLAGS}" 10export CGO_CFLAGS = "${CFLAGS}"
6export CGO_CPPFLAGS = "${CPPFLAGS}" 11export CGO_CPPFLAGS = "${CPPFLAGS}"
7export CGO_CXXFLAGS = "${CXXFLAGS}" 12export CGO_CXXFLAGS = "${CXXFLAGS}"
8export CGO_LDFLAGS = "${LDFLAGS}" 13export CGO_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} ${SECURITY_LDFLAGS}"
9export GOCACHE = "${B}/.cache" 14export GOCACHE = "${B}/.cache"
10 15
11GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}" 16GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
diff --git a/meta/recipes-devtools/go/go-target.inc b/meta/recipes-devtools/go/go-target.inc
index 47b4411d54..51f1b79cc3 100644
--- a/meta/recipes-devtools/go/go-target.inc
+++ b/meta/recipes-devtools/go/go-target.inc
@@ -1,6 +1,16 @@
1DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native" 1DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native"
2DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native" 2DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native"
3 3
4DEBUG_PREFIX_MAP = "\
5 -fdebug-prefix-map=${STAGING_DIR_HOST}= \
6 -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
7"
8
9export CGO_CFLAGS = "${CFLAGS}"
10export CGO_CPPFLAGS = "${CPPFLAGS}"
11export CGO_CXXFLAGS = "${CXXFLAGS}"
12export CGO_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} ${SECURITY_LDFLAGS}"
13
4export GOCACHE = "${B}/.cache" 14export GOCACHE = "${B}/.cache"
5GO_LDFLAGS = "" 15GO_LDFLAGS = ""
6GO_LDFLAGS:class-nativesdk = "-linkmode external" 16GO_LDFLAGS:class-nativesdk = "-linkmode external"