gnu: freeipmi: Update to 1.4.10.
[jackhill/guix/guix.git] / gnu / packages / bdw-gc.scm
index c338eab..6615891 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages pkg-config))
 
-(define-public libgc
+(define-public libgc-7.2
   (package
    (name "libgc")
-   (version "7.2alpha6")
+   (version "7.2f")
    (source (origin
             (method url-fetch)
-            (uri (string-append
-                  "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-"
-                  version ".tar.gz"))
+            (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
+                                version ".tar.gz"))
             (sha256
              (base32
-              "05jwadjbrv8pr7z9cb4miskicxqpxm0pca4h2rg5cgbpajr2bx7b"))))
+              "119x7p1cqw40mpwj80xfq879l9m1dkc7vbc1f3bz3kvkf8bf6p16"))))
    (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")))
+   (outputs '("out" "debug"))
    (synopsis "The Boehm-Demers-Weiser conservative garbage collector
 for C and C++")
    (description
@@ -53,8 +58,49 @@ 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.hpl.hp.com/personal/Hans_Boehm/gc/")
+   (home-page "http://www.hboehm.info/gc/")
+
+   (license (x11-style (string-append home-page "license.txt")))))
+
+(define-public libatomic-ops
+  (package
+    (name "libatomic-ops")
+    (version "7.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1pdm0h1y7bgkczr8byg20r6bq15m5072cqm5pny4f9crc9gn3yh4"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "debug"))
+    (synopsis "Accessing hardware atomic memory update operations")
+    (description
+     "This C library provides semi-portable access to hardware-provided atomic
+memory update operations on a number architectures.  These might allow you to
+write code that does more interesting things in signal handlers, write
+lock-free code, experiment with thread programming paradigms, etc.")
+    (home-page "https://github.com/ivmai/libatomic_ops/")
+
+    ;; Some source files are X11-style, others are GPLv2+.
+    (license gpl2+)))
+
+(define-public libgc
+  (package (inherit libgc-7.2)
+    (version "7.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "18mg28rr6kwr5clc65k4l4hkyy4kd16amx831sjf8q2lqkbhlck3"))))
+
+    ;; New dependencies.
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("libatomic-ops" ,libatomic-ops)))
 
-   ;; permissive X11-style license:
-   ;; http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt
-   (license x11)))
+    ;; 'USE_LIBC_PRIVATES' is now the default.
+    (arguments '())))