@@ -968,19 +968,13 @@ (define-public glibc
;; 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
@@ -3569,15 +3569,7 @@ (define* (make-gcc-toolchain gcc
"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)