mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
ld-wrapper: Add '-rpath' for arguments such as 'libfoo.so.5.3'.
Suggested by Andreas Enge <andreas@enge.fr> at <http://lists.gnu.org/archive/html/guix-devel/2015-02/msg00810.html>. CMake command lines appear to refer to such file names. * gnu/packages/ld-wrapper.scm (shared-library?): New procedure. (library-files-linked): Use it.
This commit is contained in:
parent
9cca706c2e
commit
f307947ecc
1 changed files with 10 additions and 1 deletions
|
@ -104,6 +104,15 @@ (define %max-symlink-depth 50)
|
|||
(< depth %max-symlink-depth)
|
||||
(loop (readlink file) (+ 1 depth))))))))
|
||||
|
||||
(define (shared-library? file)
|
||||
;; Return #t when FILE denotes a shared library.
|
||||
(or (string-suffix? ".so" file)
|
||||
(let ((index (string-contains file ".so.")))
|
||||
;; Since we cannot use regexps during bootstrap, roll our own.
|
||||
(and index
|
||||
(string-every (char-set-union (char-set #\.) char-set:digit)
|
||||
(string-drop file (+ index 3)))))))
|
||||
|
||||
(define (library-files-linked args)
|
||||
;; Return the file names of shared libraries explicitly linked against via
|
||||
;; `-l' or with an absolute file name in ARGS.
|
||||
|
@ -125,7 +134,7 @@ (define path+files
|
|||
(cons full library-files))
|
||||
result)))
|
||||
((and (string-prefix? %store-directory argument)
|
||||
(string-suffix? ".so" argument)) ;add library
|
||||
(shared-library? argument)) ;add library
|
||||
(cons library-path
|
||||
(cons argument library-files)))
|
||||
(else
|
||||
|
|
Loading…
Reference in a new issue