GNU bug report logs -
#63258
GCC package lacks librt.so (and instead only provides versioned librt.so.1)
Previous Next
To reply to this bug, email your comments to 63258 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#63258
; Package
guix
.
(Thu, 04 May 2023 09:29:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Mekeor Melire <mekeor <at> posteo.de>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Thu, 04 May 2023 09:29:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
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 <at> 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---
Information forwarded
to
bug-guix <at> gnu.org
:
bug#63258
; Package
guix
.
(Thu, 04 May 2023 19:51:02 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Josselin Poiret <dev <at> 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
Merged 63258 63728.
Request was from
Antero Mejr <antero <at> mailbox.org>
to
control <at> debbugs.gnu.org
.
(Fri, 26 May 2023 15:17:03 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#63258
; Package
guix
.
(Fri, 25 Aug 2023 16:37:02 GMT)
Full text and
rfc822 format available.
Message #13 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi everyone,
Josselin Poiret <dev <at> jpoiret.xyz> writes:
> From: Josselin Poiret <dev <at> 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
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 1 year and 349 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.