mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-14 19:05:10 -05:00
build-system/gnu: 'strip' phase lists files in sorted order.
This fixes a bug whereby the choice between stripping 'libfoo.so.0.1.2' and stripping 'libfoo.so' (the symlink) would be non-deterministic. * guix/build/gnu-build-system.scm (strip)[strip-dir]: Use 'find-files' instead of 'file-system-fold' so that files are picked in deterministic order.
This commit is contained in:
parent
73dc727ec8
commit
ff43e353a1
1 changed files with 11 additions and 20 deletions
|
@ -386,26 +386,17 @@ (define (strip-dir dir)
|
|||
(when debug-output
|
||||
(format #t "debugging output written to ~s using ~s~%"
|
||||
debug-output objcopy-command))
|
||||
(file-system-fold (const #t)
|
||||
(lambda (path stat result) ; leaf
|
||||
(and (file-exists? path) ;discard dangling symlinks
|
||||
(or (elf-file? path) (ar-file? path))
|
||||
(or (not debug-output)
|
||||
(make-debug-file path))
|
||||
(zero? (apply system* strip-command
|
||||
(append strip-flags (list path))))
|
||||
(or (not debug-output)
|
||||
(add-debug-link path))))
|
||||
(const #t) ; down
|
||||
(const #t) ; up
|
||||
(const #t) ; skip
|
||||
(lambda (path stat errno result)
|
||||
(format (current-error-port)
|
||||
"strip: failed to access `~a': ~a~%"
|
||||
path (strerror errno))
|
||||
#f)
|
||||
#t
|
||||
dir))
|
||||
|
||||
(for-each (lambda (file)
|
||||
(and (file-exists? file) ;discard dangling symlinks
|
||||
(or (elf-file? file) (ar-file? file))
|
||||
(or (not debug-output)
|
||||
(make-debug-file file))
|
||||
(zero? (apply system* strip-command
|
||||
(append strip-flags (list file))))
|
||||
(or (not debug-output)
|
||||
(add-debug-link file))))
|
||||
(find-files dir)))
|
||||
|
||||
(or (not strip-binaries?)
|
||||
(every strip-dir
|
||||
|
|
Loading…
Reference in a new issue