X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/fb9a23a3f3ad3d7b5b7f03b2007baf27684d6bbd..f0971dfd619870efb03f08a73442708052d5dd56:/gnu/packages/bdw-gc.scm diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 7196ffcd32..50e4951dc1 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,9 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2016, 2018 Leo Famulari ;;; Copyright © 2017 Rene Saavedra -;;; Copyright © 2019 Marius Bakke +;;; Copyright © 2019, 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +24,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages pkg-config) #:use-module (gnu packages hurd)) @@ -31,14 +32,14 @@ (define-public libgc (package (name "libgc") - (version "7.6.12") + (version "8.0.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/ivmai/bdwgc/releases" "/download/v" version "/gc-" version ".tar.gz")) (sha256 (base32 - "10jhhi79d5brwlsyhwgpnrmc8nhlf7aan2lk9xhgihk5jc6srbvc")))) + "1798rp3mcfkgs38ynkbg2p47bq59pisrc6mn0l20pb5iczf0ssj3")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -54,21 +55,14 @@ ,@(if (hurd-triplet? (or (%current-system) (%current-target-system))) '("--disable-gcj-support") - '())) - #:phases (modify-phases %standard-phases - (add-after 'unpack 'adjust-pc-file - (lambda* (#:key inputs #:allow-other-keys) - (let ((libatomic-ops (assoc-ref inputs "libatomic-ops"))) - ;; GC 7.6.10 and later includes -latomic_ops in the - ;; pkg-config file. To avoid propagation, insert an - ;; absolute reference so dependent programs can find it. - (substitute* "bdw-gc.pc.in" - (("@ATOMIC_OPS_LIBS@" match) - (string-append "-L" libatomic-ops "/lib " - match))) - #t)))))) + '())))) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("libatomic-ops" ,libatomic-ops))) + (propagated-inputs + (if (%current-target-system) + ;; The build system refuses to check for compiler intrinsics when + ;; cross-compiling, and demands using libatomic-ops instead. + `(("libatomic-ops" ,libatomic-ops)) + '())) (outputs '("out" "debug")) (synopsis "The Boehm-Demers-Weiser conservative garbage collector for C and C++") @@ -87,13 +81,35 @@ simple collector interface. Alternatively, the garbage collector may be used as a leak detector for C or C++ programs, though that is not its primary goal.") - (home-page "http://www.hboehm.info/gc/") + (home-page "https://www.hboehm.info/gc/") (license (x11-style (string-append home-page "license.txt"))))) -(define-public libgc/back-pointers +;; TODO: Add a static output in libgc in the next rebuild cycle. +(define-public libgc/static-libs + (package/inherit + libgc + (arguments (substitute-keyword-arguments (package-arguments libgc) + ((#:configure-flags flags ''()) + `(cons "--enable-static" ,flags)))) + (properties '((hidden? . #t))))) + +(define-public libgc-7 (package - (inherit libgc) + (inherit libgc) + (version "7.6.12") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ivmai/bdwgc/releases" + "/download/v" version "/gc-" version ".tar.gz")) + (sha256 + (base32 + "10jhhi79d5brwlsyhwgpnrmc8nhlf7aan2lk9xhgihk5jc6srbvc")))) + (propagated-inputs `(("libatomic-ops" ,libatomic-ops))))) + +(define-public libgc/back-pointers + (package/inherit + libgc (name "libgc-back-pointers") (arguments `(#:make-flags