4 ms·
Because those Bazel toolchains don’t come with a glibc? How could they?
by jmmv 1y ago
Because those Bazel toolchains don’t come with a glibc? How could they?
- lokar 1y agoWhat? Of course they can, how is that hard?
- jmmv 1y agoYou need that glibc on the target system, and glibc doesn’t like static linking. How do you ship the built binary?
- lokar 1y agoYou include the target glibc as part of your toolchain And, I always prefer to actually pick my glibc independently from the host os and ship it with the binary (generally in an OCI image). This way you can patch/update the host without breaking the service.
- remexre 1y agoDoes that result in working NSS?
- lokar 1y agoI normally statically link as much as possible and avoid nss, but you can make that work as well, just include it along with glibc.
- jmmv 1y agoRight, so you need to end up creating a container to package the glibc with the binary. Which is not very different from having sysroots. But what about any tools compiled from source and used during the build? Those can also suffer from these issues.
- lokar 1y agoYeah, ideally you could build your toolchain from source on any platform. But, in some cases that’s not possible
- prpl 1y agono, you just need a compatible starlit/glibc. you pick an old version (e.g. RHEL8) or otherwise compile with multiple tool chains if you need newer glibc features
- throwaway2046 1y agoIs musl not an option? It's best to avoid glibc altogether if possible.
- steeve 1y agoThis one does, we use it with great success: https://github.com/cerisier/toolchains_llvm_bootstrapped https://github.com/cerisier/toolchains_llvm_bootstrapped