Unverified Commit da03f242 authored by Artturi's avatar Artturi Committed by GitHub
Browse files

Merge pull request #257084 from paveloom/mold

mold: 2.1.0 -> 2.2.0 + refactor
parents 58e24610 e64d24ff
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script

, cmake
, mimalloc
, ninja
, openssl
, tbb
, zlib
, testers
, zstd

, buildPackages
, hello
, mold
, nix-update-script
, runCommandCC
, mold-wrapped
, hello
, buildPackages
, 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 ];
  };
}
+4 −1
Original line number Diff line number Diff line
@@ -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
+4 −1
Original line number Diff line number Diff line
@@ -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;