diff options
-rw-r--r-- | gnu/packages/bdw-gc.scm | 23 | ||||
-rw-r--r-- | gnu/packages/ld-wrapper.scm | 29 | ||||
-rw-r--r-- | gnu/packages/make-bootstrap.scm | 8 |
3 files changed, 28 insertions, 32 deletions
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index e119fc0bb9..bebb0862e3 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -25,7 +25,7 @@ (define-public libgc (package (name "libgc") - (version "7.2alpha6") + (version "7.2d") (source (origin (method url-fetch) (uri (string-append @@ -33,9 +33,12 @@ version ".tar.gz")) (sha256 (base32 - "05jwadjbrv8pr7z9cb4miskicxqpxm0pca4h2rg5cgbpajr2bx7b")))) + "0phwa5driahnpn79zqff14w9yc8sn3599cxz91m78hqdcpl0mznr")))) (build-system gnu-build-system) - ;; TODO: Build with -DUSE_LIBC_PRIVATES (see make-bootstrap.scm). + (arguments + ;; Make it so that we don't rely on /proc. This is especially useful in + ;; an initrd run before /proc is mounted. + '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES"))) (synopsis "The Boehm-Demers-Weiser conservative garbage collector for C and C++") (description @@ -58,17 +61,3 @@ C or C++ programs, though that is not its primary goal.") ;; permissive X11-style license: ;; http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt (license x11))) - -(define-public libgc-7.2 - ;; This is the latest final release of the 7.2 series. - ;; TODO: Use it as the default when doing a core-updates. - (package (inherit libgc) - (version "7.2d") - (source (origin - (method url-fetch) - (uri (string-append - "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-" - version ".tar.gz")) - (sha256 - (base32 - "0phwa5driahnpn79zqff14w9yc8sn3599cxz91m78hqdcpl0mznr")))))) diff --git a/gnu/packages/ld-wrapper.scm b/gnu/packages/ld-wrapper.scm index fd5a4cbd0c..41ff3df986 100644 --- a/gnu/packages/ld-wrapper.scm +++ b/gnu/packages/ld-wrapper.scm @@ -11,7 +11,7 @@ main="(@ (gnu build-support ld-wrapper) ld-wrapper)" exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "$@" !# ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,13 +82,26 @@ exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" " (getenv "GUIX_LD_WRAPPER_DEBUG")) (define (pure-file-name? file) - ;; Return #t when FILE is the name of a file either within the store or - ;; within the build directory. - (or (not (string-prefix? "/" file)) - (string-prefix? %store-directory file) - (string-prefix? %temporary-directory file) - (and %build-directory - (string-prefix? %build-directory file)))) + ;; Return #t when FILE is the name of a file either within the store + ;; (possibly via a symlink) or within the build directory. + (define %max-symlink-depth 50) + + (let loop ((file file) + (depth 0)) + (or (not (string-prefix? "/" file)) + (string-prefix? %store-directory file) + (string-prefix? %temporary-directory file) + (if %build-directory + (string-prefix? %build-directory file) + + ;; When used from a user environment, FILE may refer to + ;; ~/.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., diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 9b16f37031..c8de969b1a 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -410,13 +410,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; A statically-linked Guile that is relocatable--i.e., it can search ;; .scm and .go files relative to its installation directory, rather ;; than in hard-coded configure-time paths. - (let* ((libgc (package (inherit libgc) - (arguments - ;; Make it so that we don't rely on /proc. This is - ;; especially useful in an initrd run before /proc is - ;; mounted. - '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES"))))) - (guile (package (inherit guile-2.0) + (let* ((guile (package (inherit guile-2.0) (name (string-append (package-name guile-2.0) "-static")) (inputs `(("patch/relocatable" |