diff --git a/pkgs/development/tools/mold/default.nix b/pkgs/development/tools/mold/default.nix index 84a7509c528c..2cbc016a2933 100644 --- a/pkgs/development/tools/mold/default.nix +++ b/pkgs/development/tools/mold/default.nix @@ -1,30 +1,33 @@ { lib , stdenv , fetchFromGitHub +, nix-update-script + , cmake , mimalloc , ninja -, openssl +, tbb , zlib -, testers -, mold -, nix-update-script -, runCommandCC -, mold-wrapped -, hello +, zstd + , buildPackages +, hello +, mold +, mold-wrapped +, runCommandCC +, testers , useMoldLinker }: stdenv.mkDerivation rec { pname = "mold"; - version = "2.1.0"; + version = "2.2.0"; src = fetchFromGitHub { owner = "rui314"; - repo = pname; - rev = "refs/tags/v${version}"; - hash = "sha256-4W6quVSkxS2I6KEy3fVyBTypD0fg4EecgeEVM0Yw58s="; + repo = "mold"; + rev = "v${version}"; + hash = "sha256-ePX80hzzIzSJdGUX96GyxYWcdbXxXyuyNQqj5RDSkKU="; }; nativeBuildInputs = [ @@ -33,14 +36,16 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - openssl + tbb zlib + zstd ] ++ lib.optionals (!stdenv.isDarwin) [ mimalloc ]; cmakeFlags = [ "-DMOLD_USE_SYSTEM_MIMALLOC:BOOL=ON" + "-DMOLD_USE_SYSTEM_TBB:BOOL=ON" ]; env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [ @@ -103,8 +108,8 @@ stdenv.mkDerivation rec { homepage = "https://github.com/rui314/mold"; changelog = "https://github.com/rui314/mold/releases/tag/v${version}"; license = licenses.mit; - maintainers = with maintainers; [ azahi nitsky paveloom ]; - mainProgram = "mold"; platforms = platforms.unix; + mainProgram = "mold"; + maintainers = with maintainers; [ azahi nitsky paveloom ]; }; } diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 9b4ee16a003d..1024bf2ce4d8 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -201,7 +201,10 @@ rec { inherit bintools; }; allowedRequisites = - lib.mapNullable (rs: rs ++ [ bintools pkgs.mold (lib.getLib pkgs.mimalloc) (lib.getLib pkgs.openssl) ]) (stdenv.allowedRequisites or null); + (lib.optional (stdenv.allowedRequisites or null != null) stdenv.allowedRequisites) + ++ [ bintools pkgs.mold ] + # need to `outputSpecified = false` to make getLib work + ++ (builtins.map (p: lib.getLib (p // { outputSpecified = false; })) pkgs.mold.buildInputs); # gcc >12.1.0 supports '-fuse-ld=mold' # the wrap ld above in bintools supports gcc <12.1.0 and shouldn't harm >12.1.0 # https://github.com/rui314/mold#how-to-use diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0289b10aba96..51c20a3adc20 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19647,7 +19647,10 @@ with pkgs; modd = callPackage ../development/tools/modd { }; - mold = callPackage ../development/tools/mold { }; + mold = callPackage ../development/tools/mold { + stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_13.stdenv else stdenv; + tbb = tbb_2021_8; + }; mold-wrapped = wrapBintoolsWith { bintools = mold;