nixpkgs/pkgs/development/tools/mold/default.nix

49 lines
1.2 KiB
Nix

{ stdenv
, fetchFromGitHub
, lib
, autoPatchelfHook
, cmake
, llvmPackages_latest
, xxHash
, zlib
, openssl
, nix-update-script
}:
stdenv.mkDerivation rec {
pname = "mold";
version = "1.1.1";
src = fetchFromGitHub {
owner = "rui314";
repo = pname;
rev = "v${version}";
sha256 = "sha256-+uPVt3w3A25JFyENxqhAcjZMRzSowi2uHwGjkeQP8Og=";
};
buildInputs = [ zlib openssl ];
nativeBuildInputs = [ autoPatchelfHook cmake xxHash ];
enableParallelBuilding = true;
dontUseCmakeConfigure = true;
EXTRA_LDFLAGS = "-fuse-ld=${llvmPackages_latest.lld}/bin/ld.lld";
LTO = 1;
makeFlags = [ "PREFIX=${placeholder "out"}" ];
passthru = {
updateScript = nix-update-script {
attrPath = pname;
};
};
meta = with lib; {
description = "A high performance drop-in replacement for existing unix linkers";
homepage = "https://github.com/rui314/mold";
license = lib.licenses.agpl3Plus;
maintainers = with maintainers; [ nitsky ];
platforms = platforms.unix;
# error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.14 or newer
broken = stdenv.isAarch64 || stdenv.isDarwin;
};
}