diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index f2d3119fef..b223721520 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,7 +20,8 @@ (define-module (gnu packages bdw-gc) #: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 (package @@ -61,3 +62,47 @@ (define-public libgc (license (x11-style "http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt")))) + +(define-public libatomic-ops + (package + (name "libatomic-ops") + (version "7.4.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/libatomic_ops-" + version ".tar.gz")) + (sha256 + (base32 + "0njv3n63zw6v45k68z6dz14g2hpk5p230ncwmdfkglsljb1cqx98")))) + (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 "http://www.hpl.hp.com/research/linux/atomic_ops/") + + ;; Some source files are X11-style, others are GPLv2+. + (license gpl2+))) + +(define-public libgc-7.4 + (package (inherit libgc) + (version "7.4.0") + (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 + "10z2nph62ilab063wygg2lv0jxlsbcf2az9w1lx01jzqj5lzry31")))) + + ;; New dependencies. + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("libatomic-ops" ,libatomic-ops))) + + ;; 'USE_LIBC_PRIVATES' is now the default. + (arguments '())))