Bug 14860

Summary: Cannot build x86-64 Go SDK on aarch64
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Ross Burton <ross.burton>
Component: devtools / tool chainAssignee: Unassigned <unassigned>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: meta.mr.watcher, meta.watcher, raj.khem, randy.macleod, tgamblin
Version: 4.2   
Target Milestone: 5.0 M2   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Ross Burton 2022-07-12 11:40:37 UTC
When building a Go SDK on an aarch64 host with MACHINE=qemux86-64 SDKMACHINE=x86-64, the build fails:

$ MACHINE=qemux86-64 bitbake meta-go-toolchain
...
| # cmd/go
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/go/pkg/tool/native_native/link: running x86_64-pokysdk-linux-gcc failed: exit status 1
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: Relocations in generic ELF (EM: 183)
| /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/12.1.0/ld: /tmp/go-link-842575422/go.o: error adding symbols: file in wrong format
| collect2: error: ld returned 1 exit status
|
| go tool dist: FAILED: /yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/go/pkg/tool/native_native/go_bootstrap install -gcflags=all= -ldflags=all=-linkmode external -extld x86_64-pokysdk-linux-gcc -extldflags "--sysroot=/yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot -no-pie -fno-PIE  -Wl,-O1            -Wl,-rpath-link,/yocto/ross/build/tmp/work/x86_64-nativesdk-pokysdk-linux/go-cross-canadian-x86-64/1.18.3-r0/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/x86_64-poky-linux/..            -Wl,-rpath,/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/x86_64-poky-linux/.. " std cmd: exit status 2
| WARNING: exit code 2 from a shell command.
ERROR: Task (/home/ross/Yocto/poky/meta/recipes-devtools/go/go-cross-canadian_1.18.3.bb:do_compile) failed with exit code '1'
Comment 1 Randy MacLeod 2023-07-26 21:22:00 UTC
Bulk move of 64 bugs to 4.3 M3 after a quick review.
If a bug is actually fixed, please add a commit link and resolve it.
-- Randy for YP bug team.
Comment 2 Trevor Gamblin 2023-09-14 16:46:01 UTC
Moved to M4.
Comment 3 Randy MacLeod 2023-10-30 15:29:13 UTC
Bulk move to 5.0 M1. -- Randy
Comment 4 Randy MacLeod 2023-12-21 21:04:26 UTC
Ross is checking if this works. Moving to M2.
Comment 5 Ross Burton 2023-12-21 21:56:13 UTC
Looks like this has been fixed.