aboutsummaryrefslogtreecommitdiff
path: root/build-aux
ModeNameSize
-rw-r--r--build-self.scm19931logplainabout
-rw-r--r--check-available-binaries.scm2454logplainabout
-rw-r--r--check-final-inputs-self-contained.scm3694logplainabout
-rw-r--r--compile-all.scm3965logplainabout
-rw-r--r--compile-as-derivation.scm2526logplainabout
d---------cuirass134logplain
-rw-r--r--generate-authors.scm3870logplainabout
-rwxr-xr-xgit-version-gen8027logplainabout
-rwxr-xr-xgitlog-to-changelog13396logplainabout
d---------hydra162logplain
-rw-r--r--pre-inst-env.in2750logplainabout
-rw-r--r--run-system-tests.scm3544logplainabout
-rw-r--r--test-driver.scm7869logplainabout
-rw-r--r--test-env.in5764logplainabout
-rw-r--r--update-NEWS.scm8108logplainabout
-rw-r--r--update-guix-package.scm5665logplainabout
/.guix-profile/lib/libfoo.so, which is itself a symlink to the ;; store. Check whether this is the case. (let ((s (false-if-exception (lstat file)))) (and s (eq? 'symlink (stat:type s)) (< depth %max-symlink-depth) (loop (readlink file) (+ 1 depth)))))))) (define (switch-arguments switch args) ;; Return the arguments passed for the occurrences of SWITCH--e.g., ;; "-L"--in ARGS. (let ((prefix-len (string-length switch))) (fold-right (lambda (arg path) (if (string-prefix? switch arg) (cons (substring arg prefix-len) path) path)) '() args))) (define (library-path args) ;; Return the library search path extracted from `-L' switches in ARGS. ;; Note: allow references to out-of-store directories. When this leads to ;; actual impurities, this is caught later. (switch-arguments "-L" args)) (define (library-files-linked args) ;; Return the file names of shared libraries explicitly linked against via ;; `-l' in ARGS. (map (lambda (lib) (string-append "lib" lib ".so")) (switch-arguments "-l" args))) (define (rpath-arguments lib-path library-files) ;; Return the `-rpath' argument list for each of LIBRARY-FILES found in ;; LIB-PATH. (fold-right (lambda (file args) (let ((absolute (search-path lib-path file))) (if absolute (if (or %allow-impurities? (pure-file-name? absolute)) (cons* "-rpath" (dirname absolute) args) (begin (format (current-error-port) "ld-wrapper: error: attempt to use impure library ~s~%" absolute) (exit 1))) args))) '() library-files)) (define (ld-wrapper . args) ;; Invoke the real `ld' with ARGS, augmented with `-rpath' switches. (let* ((lib-path (library-path args)) (libs (library-files-linked args)) (args (append args (rpath-arguments lib-path libs)))) (if %debug? (format (current-error-port) "ld-wrapper: invoking `~a' with ~s~%" %real-ld args)) (apply execl %real-ld (basename %real-ld) args))) ;;; ld-wrapper.scm ends here