lib: Clean up how linux and gcc config is specified
The `platform` field is pointless nesting: it's just stuff that happens to be defined together, and that should be an implementation detail. This instead makes `linux-kernel` and `gcc` top level fields in platform configs. They join `rustc` there [all are optional], which was put there and not in `platform` in anticipation of a change like this. `linux-kernel.arch` in particular also becomes `linuxArch`, to match the other `*Arch`es. The next step after is this to combine the *specific* machines from `lib.systems.platforms` with `lib.systems.examples`, keeping just the "multiplatform" ones for defaulting.
This commit is contained in:
@@ -25,11 +25,11 @@ stdenv.mkDerivation rec {
|
||||
hardeningDisable = [ "format" "stackprotector" ];
|
||||
|
||||
makeFlags = commonMakeFlags ++ [
|
||||
"KLIBCARCH=${stdenv.hostPlatform.platform.kernelArch}"
|
||||
"KLIBCARCH=${stdenv.hostPlatform.linuxArch}"
|
||||
"KLIBCKERNELSRC=${linuxHeaders}"
|
||||
] # TODO(@Ericson2314): We now can get the ABI from
|
||||
# `stdenv.hostPlatform.parsed.abi`, is this still a good idea?
|
||||
++ lib.optional (stdenv.hostPlatform.platform.kernelArch == "arm") "CONFIG_AEABI=y"
|
||||
++ lib.optional (stdenv.hostPlatform.linuxArch == "arm") "CONFIG_AEABI=y"
|
||||
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "CROSS_COMPILE=${stdenv.cc.targetPrefix}";
|
||||
|
||||
# Install static binaries as well.
|
||||
|
||||
Reference in New Issue
Block a user