GNU bug report logs - #53327
[PATCH] gnu: Add mold.

Previous Next

Package: guix-patches;

Reported by: Andreas Rottmann <mail <at> r0tty.org>

Date: Mon, 17 Jan 2022 20:31:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 53327 in the body.
You can then email your comments to 53327 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#53327; Package guix-patches. (Mon, 17 Jan 2022 20:31:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andreas Rottmann <mail <at> r0tty.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 17 Jan 2022 20:31:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andreas Rottmann <mail <at> r0tty.org>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add mold.
Date: Mon, 17 Jan 2022 20:56:49 +0100
[0001-gnu-Add-mold.patch (text/x-diff, inline)]
From ec3a1c3c0a742f5a98c3a6d2e86da663f993958e Mon Sep 17 00:00:00 2001
From: Andreas Rottmann <rotty <at> r0tty.org>
Date: Mon, 17 Jan 2022 21:03:10 +0100
Subject: [PATCH] gnu: Add mold.

* gnu/packages/mold.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk          |  1 +
 gnu/packages/mold.scm | 56 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 gnu/packages/mold.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index eac8652056..91da63703a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -403,6 +403,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/mono.scm				\
diff --git a/gnu/packages/mold.scm b/gnu/packages/mold.scm
new file mode 100644
index 0000000000..87c106c069
--- /dev/null
+++ b/gnu/packages/mold.scm
@@ -0,0 +1,56 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Andreas Rottmann <rotty <at> r0tty.org>
+;;;
+;;; 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 licenses) #:select (agpl3+))
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix utils)
+  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages digest)
+  #:use-module (gnu packages tls))
+
+(define-public mold
+  (package
+    (name "mold")
+    (version "1.0.1")
+    (home-page "https://github.com/rui314/mold")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ydgcx6vycg7jv4pksv4875cwqdysfm0cpscsdfy0inr5mjrbs8v"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; TODO: Tests require clang and hardcode `cc`
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "CXX=" ,(cxx-for-target))
+                          (string-append "PREFIX=" %output))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (native-inputs (list cmake))
+    (inputs (list openssl zlib xxhash))
+    (synopsis "Modern Linker")
+    (description "mold is a faster drop-in replacement for existing Unix linkers.")
+    (license agpl3+)))
-- 
2.30.2





Information forwarded to guix-patches <at> gnu.org:
bug#53327; Package guix-patches. (Tue, 18 Jan 2022 16:04:02 GMT) Full text and rfc822 format available.

Message #8 received at 53327 <at> debbugs.gnu.org (full text, mbox):

From: zamfofex <zamfofex <at> twdb.moe>
To: "53327 <at> debbugs.gnu.org" <53327 <at> debbugs.gnu.org>
Subject: [PATCH] gnu: Add mold.
Date: Tue, 18 Jan 2022 03:47:23 -0300 (BRT)
Hello! I’m not a Guix maintainer, but wouldn’t it make sense to use the mold dependencies from their own packages instead of letting them be built (statically) from their copies in the mold repository?

Fairly coincidentally, I have actually packaged mold myself before, but I have not yet sent it as a patch here. You might be able to reuse some of my work. See: https://github.com/zamfofex/packages/blob/main/zamfofex/compilers/mold.scm




Information forwarded to guix-patches <at> gnu.org:
bug#53327; Package guix-patches. (Thu, 20 Jan 2022 20:17:01 GMT) Full text and rfc822 format available.

Message #11 received at 53327 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Andreas Rottmann <mail <at> r0tty.org>, 53327 <at> debbugs.gnu.org
Subject: Re: [bug#53327] [PATCH] gnu: Add mold.
Date: Thu, 20 Jan 2022 21:16:09 +0100
[Message part 1 (text/plain, inline)]
Hi,

(*partial* review)

There's a directory 'third_party' with bundled code, can it be removed
(in an origin snippet)?

Andreas Rottmann schreef op ma 17-01-2022 om 20:56 [+0100]:
> +     `(#:tests? #f ; TODO: Tests require clang and hardcode `cc`

'clang'  can be added to native-inputs and hardcoded ‘cc’ can be
replaced with 'clang' or 'gcc' with 'substitute*'.

> +       #:make-flags (list (string-append "CC=" ,(cc-for-target))
> +                          (string-append "CXX=" ,(cxx-for-target))
> +                          (string-append "PREFIX=" %output))

%output is being phased out, instead use #$output (make sure to add ,#~
before (list ...)).

> +    (inputs (list openssl zlib xxhash))

Why does mold need openssl here?  I don't see the relation between
linking and TLS.

> +    (synopsis "Modern Linker")

Why is ‘Linker’ capitalised?  Also, as I understand it, the point
of mold is not chasing whatever is considered ‘modern’, but rather
being fast and requiring little memory, albeit at the cost of
supporting less (less targets, no linker scripts, ...).

> +    (description "mold is a faster drop-in replacement for existing
Unix linkers.")

It's a bit short, maybe you could write a bit about memory usage,
limitations

Since 'mold' is said to be very efficient, it might be interesting to
determine if Guix could use 'mold' instead of the linker from
'binutils' by default (with some exceptions like GRUB and Linux which
might actually need GNU ld linker scripts) ... that's more something
for guix-devel and future patches though.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#53327; Package guix-patches. (Mon, 07 Mar 2022 20:55:02 GMT) Full text and rfc822 format available.

Message #14 received at 53327 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Andreas Rottmann <mail <at> r0tty.org>
Cc: Maxime Devos <maximedevos <at> telenet.be>, 53327 <at> debbugs.gnu.org
Subject: Re: bug#53327: [PATCH] gnu: Add mold.
Date: Mon, 07 Mar 2022 21:53:52 +0100
Hi Andreas,

Long time no see!  ;-)

Did you have a chance to look into Maxime’s suggestions?

  https://issues.guix.gnu.org/53327

(I have nothing to add to what Maxime wrote.)

TIA,
Ludo’.

Maxime Devos <maximedevos <at> telenet.be> skribis:

> Hi,
>
> (*partial* review)
>
> There's a directory 'third_party' with bundled code, can it be removed
> (in an origin snippet)?
>
> Andreas Rottmann schreef op ma 17-01-2022 om 20:56 [+0100]:
>> +     `(#:tests? #f ; TODO: Tests require clang and hardcode `cc`
>
> 'clang'  can be added to native-inputs and hardcoded ‘cc’ can be
> replaced with 'clang' or 'gcc' with 'substitute*'.
>
>> +       #:make-flags (list (string-append "CC=" ,(cc-for-target))
>> +                          (string-append "CXX=" ,(cxx-for-target))
>> +                          (string-append "PREFIX=" %output))
>
> %output is being phased out, instead use #$output (make sure to add ,#~
> before (list ...)).
>
>> +    (inputs (list openssl zlib xxhash))
>
> Why does mold need openssl here?  I don't see the relation between
> linking and TLS.
>
>> +    (synopsis "Modern Linker")
>
> Why is ‘Linker’ capitalised?  Also, as I understand it, the point
> of mold is not chasing whatever is considered ‘modern’, but rather
> being fast and requiring little memory, albeit at the cost of
> supporting less (less targets, no linker scripts, ...).
>
>> +    (description "mold is a faster drop-in replacement for existing
> Unix linkers.")
>
> It's a bit short, maybe you could write a bit about memory usage,
> limitations
>
> Since 'mold' is said to be very efficient, it might be interesting to
> determine if Guix could use 'mold' instead of the linker from
> 'binutils' by default (with some exceptions like GRUB and Linux which
> might actually need GNU ld linker scripts) ... that's more something
> for guix-devel and future patches though.
>
> Greetings,
> Maxime.




Information forwarded to guix-patches <at> gnu.org:
bug#53327; Package guix-patches. (Fri, 01 Jul 2022 22:14:01 GMT) Full text and rfc822 format available.

Message #17 received at 53327 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "53327 <at> debbugs.gnu.org" <53327 <at> debbugs.gnu.org>
Subject: Another mold patch
Date: Fri, 01 Jul 2022 22:12:54 +0000
[Message part 1 (text/plain, inline)]
Hi!

I've also sumbitted patch for mold :-D in https://issues.guix.gnu.org/53601

If nobody is interested in upstreaming I can update the package and take into consideration the fixes Maxime mentioned.

----
Petr
[Message part 2 (text/html, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sun, 12 Feb 2023 00:48:02 GMT) Full text and rfc822 format available.

Notification sent to Andreas Rottmann <mail <at> r0tty.org>:
bug acknowledged by developer. (Sun, 12 Feb 2023 00:48:02 GMT) Full text and rfc822 format available.

Message #22 received at 53327-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Zhu Zihao <all_but_last <at> 163.com>
Cc: 60754-done <at> debbugs.gnu.org, 53601-done <at> debbugs.gnu.org,
 53327-done <at> debbugs.gnu.org
Subject: Re: bug#60754: [PATCH 1/2] gnu: Add mold.
Date: Sun, 12 Feb 2023 01:47:18 +0100
[Message part 1 (text/plain, inline)]
Hi,

Zhu Zihao <all_but_last <at> 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’.

[Message part 2 (text/x-patch, inline)]
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

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 12 Mar 2023 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 46 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.