diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-02-27 18:36:48 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-12 15:16:16 -0400 |
commit | 6f40d18d4432858199e14d2323b4f8503ee47a7e (patch) | |
tree | 1e97563bc0a0e88ab05822d9500088f757eb2b5c /pkgs/development/mobile | |
parent | e3f6c6d18d8ffbb4f9462adbf6648500b9514bbb (diff) | |
download | nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.tar nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.tar.gz nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.tar.bz2 nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.tar.lz nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.tar.xz nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.tar.zst nixlib-6f40d18d4432858199e14d2323b4f8503ee47a7e.zip |
prebuilt android cc: Edit wrapper to pass the right -m flags for armv7a
(cherry picked from commit 827ef0914089e1a2bba140b49e1311eff28cc156)
Diffstat (limited to 'pkgs/development/mobile')
-rw-r--r-- | pkgs/development/mobile/androidenv/androidndk-pkgs.nix | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/pkgs/development/mobile/androidenv/androidndk-pkgs.nix b/pkgs/development/mobile/androidenv/androidndk-pkgs.nix index 19fc0dc812d8..1413e35e904a 100644 --- a/pkgs/development/mobile/androidenv/androidndk-pkgs.nix +++ b/pkgs/development/mobile/androidenv/androidndk-pkgs.nix @@ -15,7 +15,12 @@ let "x86_64-unknown-linux-gnu" = { double = "linux-x86_64"; }; - "arm-unknown-linux-androideabi" = { + "armv5tel-unknown-linux-androideabi" = { + arch = "arm"; + triple = "arm-linux-androideabi"; + gccVer = "4.8"; + }; + "armv7a-unknown-linux-androideabi" = { arch = "arm"; triple = "arm-linux-androideabi"; gccVer = "4.8"; @@ -59,9 +64,29 @@ rec { cc = binaries; bintools = binutils; libc = targetAndroidndkPkgs.libraries; - extraBuildCommands = + extraBuildCommands = lib.optionalString targetPlatform.isAarch32 (let + p = targetPlatform.platform.gcc or {}; + float = p.float or (targetPlatform.parsed.abi.float or null); + flags = lib.concatLists [ + (lib.optional (p ? arch) "-march=${p.arch}") + (lib.optional (p ? cpu) "-mcpu=${p.cpu}") + (lib.optional (p ? abi) "-mabi=${p.abi}") + (lib.optional (p ? fpu) "-mfpu=${p.fpu}") + (lib.optional (float != null) "-mfloat=${float}") + (lib.optional (p ? float-abi) "-mfloat-abi=${p.float-abi}") + (lib.optional (p ? mode) "-mmode=${p.mode}") + ]; + in '' + sed -E -i \ + $out/bin/${targetPlatform.config}-cc \ + $out/bin/${targetPlatform.config}-c++ \ + $out/bin/${targetPlatform.config}-gcc \ + $out/bin/${targetPlatform.config}-g++ \ + -e '130i extraBefore+=(-Wl,--fix-cortex-a8)' \ + -e 's|^(extraBefore=)\(\)$|\1(${builtins.toString flags})|' + '') # GCC 4.9 is the first relase with "-fstack-protector" - lib.optionalString (lib.versionOlder targetInfo.gccVer "4.9") '' + + lib.optionalString (lib.versionOlder targetInfo.gccVer "4.9") '' sed -E \ -i $out/nix-support/add-hardening.sh \ -e 's|(-fstack-protector)-strong|\1|g' @@ -76,7 +101,7 @@ rec { libraries = { name = "bionic-prebuilt"; type = "derivation"; - outPath = "${buildAndroidndk}/libexec/${buildAndroidndk.name}/platforms/android-21/arch-${hostInfo.arch}/usr/"; + outPath = "${buildAndroidndk}/libexec/${buildAndroidndk.name}/platforms/android-${hostPlatform.sdkVer}/arch-${hostInfo.arch}/usr/"; drvPath = throw "fake derivation, build ${buildAndroidndk} to use"; }; } |