On 17/02/2020 14:22, paleozogt(a)gmail.com wrote:
With Adelie 1.0-beta4 and gcc-go installed, I'm seeing linker
errors
with static builds:
$ go version go version go1.10.3 gccgo (Adelie 8.3.0) 8.3.0
linux/amd64 $ go build -gccgoflags -static #
_/home/apollo/Development/gobug/helloworld
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.gogo': (.text+0x36f): undefined reference to
`setcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.getTraceback': (.text+0x3c3): undefined
reference to `getcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.mcall': (.text+0x4f9): undefined reference to
`getcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
(.text+0x56d): undefined reference to `setcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime_mstart': (.text+0x622): undefined reference to
`getcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.setGContext': (.text+0x751): undefined reference
to `getcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.makeGContext': (.text+0x7eb): undefined
reference to `getcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
(.text+0x812): undefined reference to `makecontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.entersyscall': (.text+0x849): undefined
reference to `getcontext'
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../x86_64-foxkit-linux-musl/bin/ld:
/usr/lib/gcc/x86_64-foxkit-linux-musl/8.3.0/../../../../lib/libgo.a(proc.o):
in function `runtime.entersyscallblock': (.text+0x884): undefined
reference to `getcontext' collect2: error: ld returned 1 exit status
I haven't found the correct way to fix this yet, but a workaround for me
has been:
-gccgoflags '-static -Wl,--whole-archive -lucontext -Wl,--no-whole-archive'
Really, we should try to find a way to have libgo.a pull in
libucontext.a so that this linker workaround isn't necessary.
Best,
--arw
--
A. Wilcox (awilfox)
Project Lead, Adélie Linux
https://www.adelielinux.org