GNU bug report logs - #56051

Previous Next

Package: guix-patches;

Reported by: Julien Lepiller <julien <at> lepiller.eu>

Date: Sat, 18 Jun 2022 06:55:02 UTC

Severity: normal

Done: Julien Lepiller <julien <at> lepiller.eu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Julien Lepiller <julien <at> lepiller.eu>
Subject: bug#56051: closed (Re: [bug#56051] [PATCH] guix: self: Do not
 record reference to gcc-toolchain.)
Date: Sat, 18 Jun 2022 20:15:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#56051: 

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 56051 <at> debbugs.gnu.org.

-- 
56051: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56051
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Julien Lepiller <julien <at> lepiller.eu>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 56051-done <at> debbugs.gnu.org
Subject: Re: [bug#56051] [PATCH] guix: self: Do not record reference to
 gcc-toolchain.
Date: Sat, 18 Jun 2022 22:14:01 +0200
[Message part 3 (text/plain, inline)]
Le Sat, 18 Jun 2022 21:08:18 +0200,
Maxime Devos <maximedevos <at> telenet.be> a écrit :

> Julien Lepiller schreef op za 18-06-2022 om 19:53 [+0200]:
> > crt1.o and friends, from glibc. I tried using glibc explicitely and
> > setting LIBRARY_PATH to (file-append glibc "/lib") and it worked.
> >   
> > >   
> > > > Another possibility is to explicitely use gcc, binutils, glibc
> > > > and ld-wrapper. Thought this would be better?    
> > > 
> > > FWIW, the <c-compiler> infrastructure in (guix scripts pack) does
> > > that, and the code in guix/self.scm has a comment:
> > > 
> > >      ;; XXX: Reuse <c-compiler> from (guix scripts pack) instead?
> > > 
> > > though maybe (guix scripts pack) has the same reference-keeping
> > > problem ...
> > > 
> > > Greetings,
> > > Maxime.  
> > 
> > Mh, I'm not sure how to do that. Do you mind if I push this patch,
> > and leave using <c-compiler> to future work?  
> 
> Sure, but keep in mind this adds 'glibc' to the closure (IIUC,
> packages like 'hello' use a different glibc, from %final-inputs in
> (gnu packages commencement)), so maybe best use (canonical-package
> glibc) instead? (*)
> 
> (*) IIUC, (guix self) isn't used from any package module, so no cycle
> problems, can be imported directly.
> 
> Greetings,
> Maxime

I didn't notice a different glibc. I think gcc-toolchain already uses
that glibc from commencement.scm. It's also defined in commencement.scm.

Pushed to master as 319b8331b2357e12ec9edb9665513c32bef56622.
[Message part 4 (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
From: Julien Lepiller <julien <at> lepiller.eu>
To: guix-patches <at> gnu.org
Cc: Hi <at> lepiller.eu, Guix!@lepiller.eu
Date: Sat, 18 Jun 2022 08:46:32 +0200
This patch ensures that we don't record a reference to gcc-toolchain in
the result of `guix pull`.  With this, we save 150 MB of closure.

This is a patch to fix the first issue I found in
https://issues.guix.gnu.org/56030.

From f96742e204f6b98401f49f7d1066257d7355c873 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien <at> lepiller.eu>
Date: Sat, 18 Jun 2022 08:17:59 +0200
Subject: [PATCH] guix: self: Do not record reference to gcc-toolchain.

The ld-wrapper from gcc-toolchain records a reference to the library
path through rpath, but this is not needed.  By explicitely using rpath
flags instead, we save 150 MB of closure.

* guix/self.scm (quiet-guile): Do not record reference to gcc-toolchain.
---
 guix/self.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/guix/self.scm b/guix/self.scm
index 9a64051c32..36ada4d171 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -569,10 +569,12 @@ (define build
                               (filter package? packages))))
                    ":"))
           (setenv "LIBRARY_PATH" #$(file-append gcc "/lib"))
+          (setenv "GUIX_LD_WRAPPER_DISABLE_RPATH" "1")
 
           (invoke "gcc" #$(local-file source) "-Wall" "-g0" "-O2"
                   "-I" #$(file-append guile "/include/guile/" effective)
                   "-L" #$(file-append guile "/lib")
+                  "-Wl,-rpath" #$(file-append guile "/lib")
                   #$(string-append "-lguile-" effective)
                   "-o" (string-append #$output "/bin/guile")))))
 
-- 
2.35.1




This bug report was last modified 3 years and 26 days ago.

Previous Next


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