Closed
Description
The packit CI fails with the following error:
-g -O2 -g -ldl -O2 -g -ldl -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes
/usr/bin/ld: /tmp/go-link-1701599834/go.o: warning: relocation against `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.entrypoint' in read-only section `.text'
/usr/bin/ld: /tmp/go-link-1701599834/go.o: in function `local.github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo.(*callEngine).callWithStack':
go.go:(.text+0x136c683): undefined reference to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.entrypoint'
/usr/bin/ld: /tmp/go-link-1701599834/go.o: in function `local.github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo.(*callEngine).callWithStack':
/builddir/build/BUILD/cri-o-1.32.0-build/cri-o-1.32.0/_build/src/github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo/call_engine.go:302:(.text+0x136c7f8): undefined reference to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.afterGoFunctionCallEntrypoint'
/usr/bin/ld: /builddir/build/BUILD/cri-o-1.32.0-build/cri-o-1.32.0/_build/src/github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo/call_engine.go:314:(.text+0x136c8c6): undefined reference to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.afterGoFunctionCallEntrypoint'
/usr/bin/ld: /builddir/build/BUILD/cri-o-1.32.0-build/cri-o-1.32.0/_build/src/github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo/call_engine.go:373:(.text+0x136c9c1): undefined reference to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.afterGoFunctionCallEntrypoint'
/usr/bin/ld: /builddir/build/BUILD/cri-o-1.32.0-build/cri-o-1.32.0/_build/src/github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo/call_engine.go:335:(.text+0x136cab1): undefined reference to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.afterGoFunctionCallEntrypoint'
/usr/bin/ld: /builddir/build/BUILD/cri-o-1.32.0-build/cri-o-1.32.0/_build/src/github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo/call_engine.go:427:(.text+0x136cb0a): undefined reference to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.afterGoFunctionCallEntrypoint'
/usr/bin/ld: /tmp/go-link-1701599834/go.o:/builddir/build/BUILD/cri-o-1.32.0-build/cri-o-1.32.0/_build/src/github.com/cri-o/cri-o/vendor/github.com/tetratelabs/wazero/internal/engine/wazevo/call_engine.go:407: more undefined references to `github.com/tetratelabs/wazero/internal/engine/wazevo/backend/isa/amd64.afterGoFunctionCallEntrypoint' follow
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
The issue occured after the merge of the NRI update in #8855.
I can't reproduce it with plain Fedora 41/rawhide packages, so I'm assuming that it's coming from redhat-hardened-ld.
The symbol is specified using go:linkname in:
https://github.com/tetratelabs/wazero/blob/610c20/internal/engine/wazevo/entrypoint_amd64.go#L14