Commit 8d709fa3 authored by Artturin's avatar Artturin
Browse files

androidndkPkgs: Fix unsupported hardening flags

Got this error `clang-17: error: unsupported option '-fzero-call-used-regs=used-gpr' for target 'armv7-unknown-linux-android'`
parent 93efb119
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
{ lib, stdenv, makeWrapper
, runCommand, wrapBintoolsWith, wrapCCWith, autoPatchelfHook
, buildAndroidndk, androidndk, targetAndroidndkPkgs
, llvmPackages, buildAndroidndk, androidndk, targetAndroidndkPkgs
}:

let
@@ -63,6 +63,7 @@ rec {
    passthru = {
      inherit targetPrefix;
      isClang = true; # clang based cc, but bintools ld
      inherit (llvmPackages.clang.cc) hardeningUnsupportedFlagsByTargetPlatform;
    };
    dontUnpack = true;
    dontBuild = true;
+11 −6
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
}:

let
  makeNdkPkgs = ndkVersion:
  makeNdkPkgs = ndkVersion: llvmPackages:
    let
      buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
        includeNDK = true;
@@ -22,6 +22,10 @@ let
      inherit (pkgs)
        stdenv
        runCommand wrapBintoolsWith wrapCCWith;

      # For hardeningUnsupportedFlagsByTargetPlatform
      inherit llvmPackages;

      # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
      # but for splicing messing up on infinite recursion for the variants we
      # *dont't* use. Using this workaround, but also making a test to ensure
@@ -33,9 +37,10 @@ let
in

{
  "21" = makeNdkPkgs "21.0.6113669";
  "23b" = makeNdkPkgs "23.1.7779620";
  "24" = makeNdkPkgs "24.0.8215888";
  "25" = makeNdkPkgs "25.2.9519653";
  "26" = makeNdkPkgs "26.3.11579264";
  "21" = makeNdkPkgs "21.0.6113669" pkgs.llvmPackages_14; # "9"
  "23b" = makeNdkPkgs "23.1.7779620" pkgs.llvmPackages_14; # "12"
  # Versions below 24 use a version not available in nixpkgs/old version which could be removed in the near future so use 14 for them as this is only used to get the hardening flags.
  "24" = makeNdkPkgs "24.0.8215888" pkgs.llvmPackages_14;
  "25" = makeNdkPkgs "25.2.9519653" pkgs.llvmPackages_14;
  "26" = makeNdkPkgs "26.3.11579264" pkgs.llvmPackages_17;
}