Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
cmd/cgo: cgo with external linking for linux/mips64 #14126
Implement cgo with external linking for linux/mips64 and linux/mips64le (MIPS N64 ELF ABI, big- and little-endian). Work includes:
Initial testing can be done using qemu-user for mips64 and mips64le targets running on any host. Skyport Systems (my employer) can also provide access to mips64le hardware for testing.
See #8912 for a description of similar work for ppc64 (though internal linking support is optional/extra credit). For a working example, browse the current arm64 code, which supports exactly the functionality sought for mips64 (cgo with external linking, not internal linking).
Background info, for the benefit of a potential bounty hunter...
The Altoros blog series on golang internals has lots of useful info about code generation, linking, relocations, assembly.
Explanation of golang’s clever conditional compilation features (build tags and magic filenames).
There is probably some overlap with the voodoo that needs to be added to libffi to support closures with gccgo on mips64.