urbit/nix/nixcrpkgs/linux
benjamin-tlon edd57d380d
Finish cc-release cross-compilation. (#1202)
- Fixes the IPC bug
- Fixes the terminfo bug
- Moves the OSX SDK out of our nixcrpkgs fork.
- Vendor nixcrpkgs instead of having it be a submodule.
2019-04-23 19:50:38 -07:00
..
binutils Finish cc-release cross-compilation. (#1202) 2019-04-23 19:50:38 -07:00
gcc Finish cc-release cross-compilation. (#1202) 2019-04-23 19:50:38 -07:00
default.nix Finish cc-release cross-compilation. (#1202) 2019-04-23 19:50:38 -07:00
headers_builder.sh Finish cc-release cross-compilation. (#1202) 2019-04-23 19:50:38 -07:00
license_builder.sh Finish cc-release cross-compilation. (#1202) 2019-04-23 19:50:38 -07:00
README.md Finish cc-release cross-compilation. (#1202) 2019-04-23 19:50:38 -07:00

Linux GCC toolchain

The files in this directory define how we build our GCC cross-compiler that targets Linux, using the musl libc.

A note about -rdynamic

Do not pass -rdynamic to GCC when building an executable; it will cause the compiled executable to depend on a musl libc dynamic loader in /lib that probably doesn't exist, and defeats the point of static linking. The -static option overrides -rdynamic, so adding-static to the linker flags of a project using -rdynamic is one way to fix the issue.

CMake will pass -rdynamic unless you set CMP0065 to new as shown below, or set your CMake policy version to 3.4 or later.

# Don't use -rdynamic since it causes Musl static linking to not work.
cmake_policy(SET CMP0065 NEW)