Subject: Re: [bug#53327] [PATCH] gnu: Add mold.

From: Maxime Devos <[email-masked]>
Date: Thu, 20 Jan 2022 21:16:09 +0100

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.