unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#63258: GCC package lacks librt.so (and instead only provides versioned librt.so.1)
@ 2023-05-04  9:16 Mekeor Melire
  2023-05-04 19:50 ` bug#63258: [PATCH] gnu: gcc-toolchain: Add empty librt.a Josselin Poiret via Bug reports for GNU Guix
  0 siblings, 1 reply; 3+ messages in thread
From: Mekeor Melire @ 2023-05-04  9:16 UTC (permalink / raw)
  To: 63258; +Cc: Josselin Poiret, Ludovic Courtès

The "gcc" package (as well as the "gcc-toolchain" package) (since 
version 12?) lacks the librt.so file which some stuff links to.

As a consequence, in bug#63012, Josselin Poiret (CC) had to patch 
Zig to not link to that file. Another consequence is that I had to 
install gcc-toolchain:static in order to make GHC compile XMonad.

On #guix IRC channel, Josselin Poiret stated that we should 
include an empty librt.a in the output of the "gcc" package. And 
Ludo (CC) suggested to temporarily include that file only in 
gcc-toolchain, in order to avoid world rebuild.

Here's the full relevant IRC log:

--8<---------------cut here---------------start------------->8---
2023-05-04 09:49:54 mekeor: bjc: for me, gcc-toolchain@12 is 
shipped with librt.so.1 which is present in my ~/.guix-profile/lib 
folder which is listed in my $LIBRARY_PATH variable. still, ghc 
can't find it :/
2023-05-04 09:56:15 jpoiret: mekeor: that's because ghc and others 
look for librt.so, not librt.so.1
2023-05-04 09:56:31 jpoiret: we forgot to include an empty librt.a 
in the out output of gcc unfortunately
2023-05-04 09:56:59 jpoiret: you can add gcc-toolchain:static for 
now
2023-05-04 09:57:04 mekeor: jpoiret: is there a workaround? :) 
also, is there a patch already
2023-05-04 09:57:08 mekeor: oh cool
2023-05-04 09:57:12 jpoiret: I don't think so
2023-05-04 09:57:50 jpoiret: basically librt.so.1 is empty now, 
since everything is provided by libc
2023-05-04 09:59:43 mekeor: the "static" output fixes my problem. 
thank you very much, jpoiret!
2023-05-04 09:59:47 jpoiret: the problem is that it'll require a 
world rebuild so it's not an easy change to make now. But we'll 
probably have to do it anyway
2023-05-04 10:00:01 jpoiret: might as well batch some other 
important changes like updating the glibc again
2023-05-04 10:00:08 jpoiret: just to break everything again :)
2023-05-04 10:00:41 civodul: jpoiret: we could add an empty 
librt.a in gcc-toolchain, rather than gcc?
2023-05-04 10:01:00 civodul: that would address most practical 
issues, no?
2023-05-04 10:01:26 jpoiret: ah, that's right :)
2023-05-04 10:01:55 jpoiret: but still, it's probably a good idea 
to have it in gcc, zig wanted it and I had to patch out -librt
2023-05-04 10:01:59 jpoiret: -lrt *
2023-05-04 10:02:54 civodul: yes, that'd be the right fix, but in 
the meantime we could have the easy fix :-)
--8<---------------cut here---------------end--------------->8---




^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#63258: [PATCH] gnu: gcc-toolchain: Add empty librt.a.
  2023-05-04  9:16 bug#63258: GCC package lacks librt.so (and instead only provides versioned librt.so.1) Mekeor Melire
@ 2023-05-04 19:50 ` Josselin Poiret via Bug reports for GNU Guix
  2023-08-25 16:36   ` Josselin Poiret via Bug reports for GNU Guix
  0 siblings, 1 reply; 3+ messages in thread
From: Josselin Poiret via Bug reports for GNU Guix @ 2023-05-04 19:50 UTC (permalink / raw)
  To: mekeor, 63258; +Cc: Josselin Poiret, Ludovic Courtès

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/commencememnt.scm (make-gcc-toolchain): Add empty librt.a.
* gnu/packages/base.scm (gcc): Add a warning regarding the missing librt.a.
---
Hi,

This patch should be enough for -lrt to work with gcc-toolchain.  This doesn't
fix the underlying issue for the gcc package though, as it would incur a world
rebuild.

Best,
Josselin

 gnu/packages/base.scm         | 4 ++++
 gnu/packages/commencement.scm | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 6911ea78be..4350fd4041 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -945,6 +945,10 @@ (define-public glibc
                      ;; library is empty by some criterion (such as their file
                      ;; size equaling eight bytes) rather than hardcoding them
                      ;; by name.
+
+                     ;; XXX: We forgot librt.a for the current version!  In
+                     ;; the meantime, gcc-toolchain provides it, but remove
+                     ;; that fix once librt.a is added here.
                      (define empty-static-libraries
                        '("libpthread.a" "libdl.a" "libutil.a" "libanl.a"))
                      (define (empty-static-library? file)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 25e96b1aa6..26d5eb3819 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3452,6 +3452,13 @@ (define* (make-gcc-toolchain gcc
                        (union-build (assoc-ref %outputs "static")
                                     (list (assoc-ref %build-inputs
                                                      "libc-static")))
+                       ;; XXX Remove once an empty librt.a is added to
+                       ;; libc:out.
+                       (copy-file
+                        (string-append (assoc-ref %outputs "out")
+                                       "/lib/libpthread.a")
+                        (string-append (assoc-ref %outputs "out")
+                                       "/lib/librt.a"))
                        #t))))
 
       (native-search-paths

base-commit: f14d3944cc699d1426c31b304fb49b72a579666a
-- 
2.39.2





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#63258: [PATCH] gnu: gcc-toolchain: Add empty librt.a.
  2023-05-04 19:50 ` bug#63258: [PATCH] gnu: gcc-toolchain: Add empty librt.a Josselin Poiret via Bug reports for GNU Guix
@ 2023-08-25 16:36   ` Josselin Poiret via Bug reports for GNU Guix
  0 siblings, 0 replies; 3+ messages in thread
From: Josselin Poiret via Bug reports for GNU Guix @ 2023-08-25 16:36 UTC (permalink / raw)
  To: mekeor, 63258; +Cc: Ludovic Courtès

[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

Hi everyone,

Josselin Poiret <dev@jpoiret.xyz> writes:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/commencememnt.scm (make-gcc-toolchain): Add empty librt.a.
> * gnu/packages/base.scm (gcc): Add a warning regarding the missing librt.a.

Pushed as 6c447ababfb11581a75cff8281e96f701e216692.

This does not fully fix this bug though, since the gcc package still
doesn't provide it.  It will incur a world rebuild if we also do that,
so that should be kept for core-updates.

Best,
-- 
Josselin Poiret

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 682 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-08-25 16:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-04  9:16 bug#63258: GCC package lacks librt.so (and instead only provides versioned librt.so.1) Mekeor Melire
2023-05-04 19:50 ` bug#63258: [PATCH] gnu: gcc-toolchain: Add empty librt.a Josselin Poiret via Bug reports for GNU Guix
2023-08-25 16:36   ` Josselin Poiret via Bug reports for GNU Guix

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).