;;; 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
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 '())))