diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-12-07 22:46:27 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-08-31 10:42:47 +0200 |
commit | 7c575fac52305fbeaa8c5cc2681a990d40646148 (patch) | |
tree | 7c70b57939b38ed08578a8712e1489087ae0912a /gnu | |
parent | 89715460c31b58b68a6903f2a1e11de049d7d935 (diff) | |
download | guix-7c575fac52305fbeaa8c5cc2681a990d40646148.tar.gz |
gnu: glibc: Improve handling of empty .a files.
This partially reverts 3b2de6529b9d77c8a74d431859a3ec334e9603c2, itself a followup to 25b30622b4a77cd4b2965b9d62fa310a22413d54. * gnu/packages/base.scm (glibc)[arguments]: In ‘move-static-libs’ phase, remove ‘empty-static-libraries’ variable and rewrite ‘empty-static-library?’ to check file type and size. * gnu/packages/commencement.scm (make-gcc-toolchain): Remove ‘copy-file’ call to create ‘librt.a’. Change-Id: I33c6825d5b1e6e790dfff494bac1da07d3389e77
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/base.scm | 18 | ||||
-rw-r--r-- | gnu/packages/commencement.scm | 10 |
2 files changed, 7 insertions, 21 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index b7e5b0479f..2f48f65caf 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1020,19 +1020,13 @@ the store.") ;; and as such, it is useful to have these ".a" files in ;; OUT in addition to STATIC. - ;; XXX: It might be better to determine whether a static - ;; 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) - (any (lambda (s) - (string=? file s)) empty-static-libraries)) + ;; Return true if FILE is an 'ar' archive with nothing + ;; beyond the header. + (let ((file (string-append (assoc-ref outputs "out") + "/lib/" file))) + (and (ar-file? file) + (= (stat:size (stat file)) 8)))) (define (static-library? file) ;; Return true if FILE is a static library. The diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index d6e8da0f32..179b4f2d3e 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -3583,15 +3583,7 @@ COREUTILS-FINAL vs. COREUTILS, etc." "libc-debug"))) (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)))) + "libc-static"))))))) (native-search-paths (append (package-native-search-paths gcc) |