forked from M-Labs/nac3
1
0
Fork 0

meta: Use mold as linker

This commit is contained in:
David Mak 2024-06-13 15:13:44 +08:00
parent 25d2de67f7
commit c03743e9b0
2 changed files with 12 additions and 5 deletions

2
.cargo/config.toml Normal file
View File

@ -0,0 +1,2 @@
[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-fuse-ld=mold"]

View File

@ -24,9 +24,9 @@
lockFile = ./Cargo.lock;
};
passthru.cargoLock = cargoLock;
nativeBuildInputs = [ pkgs.python3 pkgs.llvmPackages_14.clang llvm-tools-irrt pkgs.llvmPackages_14.llvm.out llvm-nac3 ];
buildInputs = [ pkgs.python3 llvm-nac3 ];
checkInputs = [ (pkgs.python3.withPackages(ps: [ ps.numpy ps.scipy ])) ];
nativeBuildInputs = [ pkgs.python3 pkgs.mold-wrapped pkgs.llvmPackages_14.clang llvm-tools-irrt pkgs.llvmPackages_14.llvm.out llvm-nac3 ];
buildInputs = [ pkgs.python3 pkgs.mold-wrapped llvm-nac3 ];
checkInputs = [ (pkgs.python3.withPackages(ps: [ ps.numpy ps.scipy ])) pkgs.mold-wrapped ];
checkPhase =
''
echo "Checking nac3standalone demos..."
@ -49,6 +49,7 @@
mkdir -p $standalone/bin
cp target/x86_64-unknown-linux-gnu/release/nac3standalone $standalone/bin
'';
stdenv = [ pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv ];
}
);
python3-mimalloc = pkgs.python3 // rec {
@ -67,7 +68,7 @@
src = self;
inherit (nac3artiq) cargoLock;
nativeBuildInputs = [ pkgs.python3 packages.x86_64-linux.llvm-tools-irrt llvm-nac3-instrumented ];
buildInputs = [ pkgs.python3 llvm-nac3-instrumented ];
buildInputs = [ pkgs.python3 pkgs.mold-wrapped llvm-nac3-instrumented ];
cargoBuildFlags = [ "--package" "nac3artiq" "--features" "init-llvm-profile" ];
doCheck = false;
configurePhase =
@ -80,6 +81,7 @@
mkdir -p $TARGET_DIR
cp target/x86_64-unknown-linux-gnu/release/libnac3artiq.so $TARGET_DIR/nac3artiq.so
'';
stdenv = [ pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv ];
}
);
nac3artiq-profile = pkgs.stdenvNoCC.mkDerivation {
@ -129,7 +131,7 @@
src = self;
inherit (nac3artiq) cargoLock;
nativeBuildInputs = [ pkgs.python3 packages.x86_64-linux.llvm-tools-irrt llvm-nac3-pgo ];
buildInputs = [ pkgs.python3 llvm-nac3-pgo ];
buildInputs = [ pkgs.python3 pkgs.mold-wrapped llvm-nac3-pgo ];
cargoBuildFlags = [ "--package" "nac3artiq" ];
cargoTestFlags = [ "--package" "nac3ast" "--package" "nac3parser" "--package" "nac3core" "--package" "nac3artiq" ];
installPhase =
@ -138,6 +140,7 @@
mkdir -p $TARGET_DIR
cp target/x86_64-unknown-linux-gnu/release/libnac3artiq.so $TARGET_DIR/nac3artiq.so
'';
stdenv = [ pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv ];
}
);
};
@ -153,6 +156,7 @@
packages.x86_64-linux.llvm-tools-irrt
cargo
rustc
mold-wrapped
# runtime dependencies
lld_14 # for running kernels on the host
(packages.x86_64-linux.python3-mimalloc.withPackages(ps: [ ps.numpy ps.scipy ]))
@ -162,6 +166,7 @@
pre-commit
rustfmt
];
stdenv = [ pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv ];
};
devShells.x86_64-linux.msys2 = pkgs.mkShell {
name = "nac3-dev-shell-msys2";