aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/base.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-12-07 22:46:27 +0100
committerLudovic Courtès <ludo@gnu.org>2024-08-31 10:42:47 +0200
commit7c575fac52305fbeaa8c5cc2681a990d40646148 (patch)
tree7c70b57939b38ed08578a8712e1489087ae0912a /gnu/packages/base.scm
parent89715460c31b58b68a6903f2a1e11de049d7d935 (diff)
downloadguix-7c575fac52305fbeaa8c5cc2681a990d40646148.tar
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/packages/base.scm')
-rw-r--r--gnu/packages/base.scm18
1 files changed, 6 insertions, 12 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