mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 06:06:53 -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)
|
(< depth %max-symlink-depth)
|
||||||
(loop (readlink file) (+ 1 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)
|
(define (library-files-linked args)
|
||||||
;; Return the file names of shared libraries explicitly linked against via
|
;; Return the file names of shared libraries explicitly linked against via
|
||||||
;; `-l' or with an absolute file name in ARGS.
|
;; `-l' or with an absolute file name in ARGS.
|
||||||
|
@ -125,7 +134,7 @@ (define path+files
|
||||||
(cons full library-files))
|
(cons full library-files))
|
||||||
result)))
|
result)))
|
||||||
((and (string-prefix? %store-directory argument)
|
((and (string-prefix? %store-directory argument)
|
||||||
(string-suffix? ".so" argument)) ;add library
|
(shared-library? argument)) ;add library
|
||||||
(cons library-path
|
(cons library-path
|
||||||
(cons argument library-files)))
|
(cons argument library-files)))
|
||||||
(else
|
(else
|
||||||
|
|
Loading…
Reference in a new issue