skopeo: avoid overriding GOBUILDFLAGS set in go.bbclass

When MACHINE is riscv64, skopeo fails to build with the following
error message:

  ERROR: QA Issue: skopeo: ELF binary /usr/sbin/skopeo has relocations in .text [textrel]

To reproduce the issue, run the following command:
MACHINE=qemuriscv64 bitbake skopeo

In go.bbclass, we have:
"""
export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath"
...
python() {
    if 'mips' in d.getVar('TARGET_ARCH') or 'riscv32' in d.getVar('TARGET_ARCH'):
        d.appendVar('INSANE_SKIP:%s' % d.getVar('PN'), " textrel")
    else:
        d.appendVar('GOBUILDFLAGS', ' -buildmode=pie')
}
"""

The '-v -trimpath' and arch depedent '-buildmode=pie' is generally reasonable.
And we can see we'll need to use anonymous python function to handle PIE. So we
should avoid overriding it unless necessary.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Chen Qi 2025-07-21 17:26:08 +08:00 committed by Bruce Ashfield
parent f707bbe323
commit 8f15c45f7d

View File

@ -60,7 +60,6 @@ do_compile() {
export CGO_LDFLAGS="${TARGET_LDFLAGS}"
export GO111MODULE=off
export GOBUILDFLAGS="-trimpath"
export EXTRA_LDFLAGS="-s -w"
oe_runmake bin/skopeo