emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#60754: closed ([PATCH 1/2] gnu: Add mold.)


From: GNU bug Tracking System
Subject: bug#60754: closed ([PATCH 1/2] gnu: Add mold.)
Date: Sun, 12 Feb 2023 00:48:03 +0000

Your message dated Sun, 12 Feb 2023 01:47:18 +0100
with message-id <87357bn209.fsf_-_@gnu.org>
and subject line Re: bug#60754: [PATCH 1/2] gnu: Add mold.
has caused the debbugs.gnu.org bug report #60754,
regarding [PATCH 1/2] gnu: Add mold.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
60754: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60754
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH 1/2] gnu: Add mold. Date: Thu, 12 Jan 2023 22:18:30 +0800
* gnu/local.mk (GNU_SYSTEM_MODULES): Add new file.
* gnu/packages/mold.scm: New file.
* gnu/packages/mold.scm (mold): New variable.
---
 gnu/local.mk          |  1 +
 gnu/packages/mold.scm | 82 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+)
 create mode 100644 gnu/packages/mold.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 184f43e753..1e80dab53f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -426,6 +426,7 @@ GNU_SYSTEM_MODULES =                                \
   %D%/packages/mingw.scm                       \
   %D%/packages/microcom.scm                    \
   %D%/packages/moe.scm                         \
+  %D%/packages/mold.scm                                \
   %D%/packages/motti.scm                       \
   %D%/packages/monitoring.scm                  \
   %D%/packages/moreutils.scm                   \
diff --git a/gnu/packages/mold.scm b/gnu/packages/mold.scm
new file mode 100644
index 0000000000..9338499b2b
--- /dev/null
+++ b/gnu/packages/mold.scm
@@ -0,0 +1,82 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2023 Zhu Zihao <all_but_last@163.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages mold)
+  #:use-module (guix gexp)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages c)
+  #:use-module (gnu packages digest)
+  #:use-module (gnu packages tbb)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages compression)
+  #:use-module ((guix licenses) #:prefix license:))
+
+(define-public mold
+  (package
+    (name "mold")
+    (version "1.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rui314/mold";)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "03qkl9qw5l5kg1awij40hcrfxq6jj70mvq4iscdy9dsn8qw8r3wb"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            (for-each
+             (lambda (x)
+               (delete-file-recursively (string-append "third-party/" x)))
+             '("mimalloc" "tbb" "xxhash" "zlib" "zstd"))))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags #~(list "-DMOLD_USE_SYSTEM_MIMALLOC=ON"
+                                "-DMOLD_USE_SYSTEM_TBB=ON")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'force-system-xxhash
+            (lambda _
+              (substitute* "mold.h"
+                (("#include \"third-party/xxhash/xxhash.h\"")
+                 "#include <xxhash.h>"))))
+          (add-before 'configure 'fix-compiler-name-in-test
+            (lambda _
+              (substitute* "test/elf/common.inc"
+                (("CC=\"\\$\\{TEST_CC:-cc\\}\"") "CC=gcc")
+                (("CXX=\"\\$\\{TEST_CXX:-c\\+\\+\\}\"")
+                 "CXX=g++"))))
+          (add-before 'configure 'disable-rpath-test
+            (lambda _
+              ;; This test fails because mold expect the RUNPATH as-is,
+              ;; but compiler in Guix will insert the path of gcc-lib and
+              ;; glibc into the output binary.
+              (delete-file "test/elf/rpath.sh"))))))
+    (inputs (list mimalloc openssl tbb xxhash zlib `(,zstd "lib")))
+    (home-page "https://github.com/rui314/mold";)
+    (synopsis "Faster drop-in replacement for Unix linkers")
+    (description
+     "Mold is a faster drop-in replacement for existing Unix linkers.
+It is designed to increase developer productivity by reducing build time,
+especially in rapid debug-edit-rebuild cycles.")
+    (license license:agpl3+)))
-- 
2.38.1




--- End Message ---
--- Begin Message --- Subject: Re: bug#60754: [PATCH 1/2] gnu: Add mold. Date: Sun, 12 Feb 2023 01:47:18 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
Hi,

Zhu Zihao <all_but_last@163.com> skribis:

> * gnu/local.mk (GNU_SYSTEM_MODULES): Add new file.
> * gnu/packages/mold.scm: New file.
> * gnu/packages/mold.scm (mold): New variable.

[...]

> * gnu/packages/mold.scm(make-mold-wrapper): New variable.
> (mold-wrapper): New variable.
> (mold-as-ld-wrapper): New variable.

Applied both with minor changes (see below), thanks.

I’m also closing the two other issues you mentioned that were adding
mold.  Please let us know if there’s something to borrow from them!

Ludo’.

diff --git a/gnu/packages/mold.scm b/gnu/packages/mold.scm
index 6514bd3b90..dfc452a329 100644
--- a/gnu/packages/mold.scm
+++ b/gnu/packages/mold.scm
@@ -77,12 +77,12 @@ (define-public mold
               (delete-file "test/elf/rpath.sh"))))))
     (inputs (list mimalloc openssl tbb xxhash zlib `(,zstd "lib")))
     (home-page "https://github.com/rui314/mold";)
-    (synopsis "Faster drop-in replacement for Unix linkers")
+    (synopsis "Fast linker")
     (description
-     "Mold is a faster drop-in replacement for existing Unix linkers.
+     "Mold is a faster drop-in replacement for existing linkers.
 It is designed to increase developer productivity by reducing build time,
 especially in rapid debug-edit-rebuild cycles.")
-    (license license:agpl3+)))
+    (license license:agpl3)))
 
 (define* (make-mold-wrapper mold #:key mold-as-ld?)
   "Return a MOLD wrapper.  When MOLD-AS-LD? is true, create a 'ld' symlink that

--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]