Skip to content

Commit

Permalink
feat: adding musl variant for linux targets
Browse files Browse the repository at this point in the history
  • Loading branch information
SilentVoid13 committed Jun 30, 2024
1 parent a84e020 commit 060a8f6
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
51 changes: 51 additions & 0 deletions lib/mkStdTargets.nix
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,23 @@
};
};

aarch64-linux-musl = mkClangTarget {
target = "aarch64-unknown-linux-musl";
clang = pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang;
binPrefix = "aarch64-unknown-linux-musl-";
llvmConfigPkg = targetLlvmConfigWrapper {
clangPkg = pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang-unwrapped;
libClangPkg = pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang-unwrapped.lib;
};

args = {
CFLAGS_aarch64_unknown_linux_musl = "-I ${pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
CPPFLAGS_aarch64_unknown_linux_musl = "-I ${pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
CXXFLAGS_aarch64_unknown_linux_musl = "-I ${pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_musl = "-I ${pkgs.pkgsCross.aarch64-multiplatform-musl.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
};
};

x86_64-linux = mkClangTarget {
target = "x86_64-unknown-linux-gnu";
clang = pkgs.pkgsCross.gnu64.buildPackages.llvmPackages.clang;
Expand All @@ -53,6 +70,23 @@
};
};

x86_64-linux-musl = mkClangTarget {
target = "x86_64-unknown-linux-musl";
clang = pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang;
binPrefix = "x86_64-unknown-linux-musl-";
llvmConfigPkg = targetLlvmConfigWrapper {
clangPkg = pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang-unwrapped;
libClangPkg = pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang-unwrapped.lib;
};

args = {
CFLAGS_x86_64_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
CPPFLAGS_x86_64_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
CXXFLAGS_x86_64_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl64.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
};
};

i686-linux = mkClangTarget {
target = "i686-unknown-linux-gnu";
clang = pkgs.pkgsCross.gnu32.buildPackages.llvmPackages.clang;
Expand All @@ -70,6 +104,23 @@
};
};

i686-linux-musl = mkClangTarget {
target = "i686-unknown-linux-musl";
clang = pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang;
binPrefix = "i686-unknown-linux-musl-";
llvmConfigPkg = targetLlvmConfigWrapper {
clangPkg = pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang-unwrapped;
libClangPkg = pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang-unwrapped.lib;
};

args = {
CFLAGS_i686_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
CPPFLAGS_i686_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
CXXFLAGS_i686_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
BINDGEN_EXTRA_CLANG_ARGS_i686_unknown_linux_musl = "-I ${pkgs.pkgsCross.musl32.buildPackages.llvmPackages.clang-unwrapped.lib}/lib/clang/16/include/";
};
};

riscv64-linux = mkClangTarget {
target = "riscv64gc-unknown-linux-gnu";
clang = pkgs.pkgsCross.riscv64.buildPackages.llvmPackages.clang;
Expand Down
30 changes: 30 additions & 0 deletions lib/mkStdToolchains.nix
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,16 @@ in
nativeBuildInputs = nativeBuildInputs pkgs.pkgsCross.aarch64-multiplatform;
};
});
aarch64-linux-musl = mkFenixToolchain (args // {
defaultTarget = "aarch64-unknown-linux-musl";
targets = {
default = stdTargets.aarch64-linux-musl;
};
craneArgs = {
buildInputs = buildInputs pkgs.pkgsCross.aarch64-multiplatform-musl;
nativeBuildInputs = nativeBuildInputs pkgs.pkgsCross.aarch64-multiplatform-musl;
};
});
x86_64-linux = mkFenixToolchain (args // {
defaultTarget = "x86_64-unknown-linux-gnu";
targets = {
Expand All @@ -65,6 +75,16 @@ in
nativeBuildInputs = nativeBuildInputs pkgs.pkgsCross.gnu64;
};
});
x86_64-linux-musl = mkFenixToolchain (args // {
defaultTarget = "x86_64-unknown-linux-musl";
targets = {
x86_64-linux-musl = stdTargets.x86_64-linux-musl;
};
craneArgs = {
buildInputs = buildInputs pkgs.pkgsCross.musl64;
nativeBuildInputs = nativeBuildInputs pkgs.pkgsCross.musl64;
};
});
i686-linux = mkFenixToolchain (args // {
defaultTarget = "i686-unknown-linux-gnu";
targets = {
Expand All @@ -75,6 +95,16 @@ in
nativeBuildInputs = nativeBuildInputs pkgs.pkgsCross.gnu32;
};
});
i686-linux-musl = mkFenixToolchain (args // {
defaultTarget = "i686-unknown-linux-musl";
targets = {
i686-linux = stdTargets.i686-linux-musl;
};
craneArgs = {
buildInputs = buildInputs pkgs.pkgsCross.musl32;
nativeBuildInputs = nativeBuildInputs pkgs.pkgsCross.musl32;
};
});
riscv64-linux = mkFenixToolchain (args // {
defaultTarget = "riscv64gc-unknown-linux-gnu";
targets = {
Expand Down

0 comments on commit 060a8f6

Please sign in to comment.