-
Notifications
You must be signed in to change notification settings - Fork 1
Home
For binaries that are written in languages like Go, Rust, and Haskell, one Linux build can run across all Linuxes.
However, binaries which include C/C++ code, are unlikely to be portable if they rely on shared libraries (.so
). This means that we likely have to create OS and OS version-specific packages for each OS and OS version that we support.
Languages like Go and Rust can be easily cross-compiled for Intel64 and ARM64 CPU architectures.
Languages like C/C++ (generally) need to be compiled on the same OS, OS version, and CPU architecture that we are targeting. This can be handled with Docker BuildKit and QEMU.
Languages like Haskell are working on cross-CPU support, but ARM64 does not yet have the same support as Intel64. This means that as we compile Haskell source, we may not be able to support ARM64.
Languages like Python, TypeScript, and Bash can generally be built and packaged more easily. However, because there are more source code files, it's important to keep track of the files.
Content licensed under CC BY-SA.