mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: Add libtommath.
* gnu/packages/multiprecision.scm (libtommath): New variable. * gnu/packages/patches/libtommath.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
13eb556f9f
commit
1a753385c7
3 changed files with 113 additions and 1 deletions
|
@ -993,6 +993,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \
|
%D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \
|
||||||
%D%/packages/patches/libtar-CVE-2013-4420.patch \
|
%D%/packages/patches/libtar-CVE-2013-4420.patch \
|
||||||
%D%/packages/patches/libtheora-config-guess.patch \
|
%D%/packages/patches/libtheora-config-guess.patch \
|
||||||
|
%D%/packages/patches/libtommath-fix-linkage.patch \
|
||||||
%D%/packages/patches/libtool-skip-tests2.patch \
|
%D%/packages/patches/libtool-skip-tests2.patch \
|
||||||
%D%/packages/patches/libusb-0.1-disable-tests.patch \
|
%D%/packages/patches/libusb-0.1-disable-tests.patch \
|
||||||
%D%/packages/patches/libusb-for-axoloti.patch \
|
%D%/packages/patches/libusb-for-axoloti.patch \
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -290,3 +290,59 @@ (define-public tomsfastmath
|
||||||
ISO C. It is a port of LibTomMath with optional support for inline assembler
|
ISO C. It is a port of LibTomMath with optional support for inline assembler
|
||||||
multiplies.")
|
multiplies.")
|
||||||
(license public-domain)))
|
(license public-domain)))
|
||||||
|
|
||||||
|
(define-public libtommath
|
||||||
|
(package
|
||||||
|
(name "libtommath")
|
||||||
|
(version "1.1.0")
|
||||||
|
(outputs '("out" "static"))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/libtom/libtommath/releases/"
|
||||||
|
"download/v" version "/ltm-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
|
||||||
|
(patches (search-patches "libtommath-fix-linkage.patch"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure) ; no configure
|
||||||
|
(add-after 'unpack 'prepare-build
|
||||||
|
(lambda _
|
||||||
|
;; Don't pull in coreutils.
|
||||||
|
(substitute* "makefile_include.mk"
|
||||||
|
(("arch") "uname -m"))
|
||||||
|
|
||||||
|
;; We want the shared library by default so force it to be the
|
||||||
|
;; default makefile target.
|
||||||
|
(delete-file "makefile")
|
||||||
|
(symlink "makefile.shared" "makefile")
|
||||||
|
#t))
|
||||||
|
(add-after 'install 'remove-static-library
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(delete-file (string-append (assoc-ref outputs "out")
|
||||||
|
"/lib/libtommath.a"))
|
||||||
|
#t))
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key make-flags #:allow-other-keys)
|
||||||
|
(apply invoke "make" "test_standalone" make-flags)
|
||||||
|
(invoke "sh" "test")))
|
||||||
|
(add-after 'install 'install-static-library
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(invoke "make" "-f" "makefile.unix" "install"
|
||||||
|
(string-append "PREFIX=" (assoc-ref outputs "static"))
|
||||||
|
(string-append "CC=" (which "gcc"))))))
|
||||||
|
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
|
"CC=gcc")))
|
||||||
|
(native-inputs
|
||||||
|
`(("libtool" ,libtool)))
|
||||||
|
(home-page "https://www.libtom.net/LibTomMath/")
|
||||||
|
(synopsis "Portable number theoretic multiple-precision integer library")
|
||||||
|
(description "LibTomMath is a portable number theoretic multiple-precision
|
||||||
|
integer library written entirely in C. It's designed to provide an API that is
|
||||||
|
simple to work with that provides fairly efficient routines that build out of
|
||||||
|
the box without configuration.")
|
||||||
|
(license unlicense)))
|
||||||
|
|
55
gnu/packages/patches/libtommath-fix-linkage.patch
Normal file
55
gnu/packages/patches/libtommath-fix-linkage.patch
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
https://github.com/libtom/libtommath/commit/93dea3a4162527346cd8856bfda6f17ffe98ab04.patch
|
||||||
|
|
||||||
|
From 93dea3a4162527346cd8856bfda6f17ffe98ab04 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Steffen Jaeckel <s@jaeckel.eu>
|
||||||
|
Date: Thu, 31 Jan 2019 14:12:03 +0100
|
||||||
|
Subject: [PATCH] makefile.shared: fix compilation and linkage
|
||||||
|
|
||||||
|
---
|
||||||
|
makefile.shared | 15 ++++++++-------
|
||||||
|
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/makefile.shared b/makefile.shared
|
||||||
|
index 3955f830..870b18d1 100644
|
||||||
|
--- a/makefile.shared
|
||||||
|
+++ b/makefile.shared
|
||||||
|
@@ -18,6 +18,7 @@ ifndef LIBTOOL
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC)
|
||||||
|
+LTLINK = $(LIBTOOL) --mode=link --tag=CC $(CC)
|
||||||
|
|
||||||
|
LCOV_ARGS=--directory .libs --directory .
|
||||||
|
|
||||||
|
@@ -59,7 +60,7 @@ objs: $(OBJECTS)
|
||||||
|
LOBJECTS = $(OBJECTS:.o=.lo)
|
||||||
|
|
||||||
|
$(LIBNAME): $(OBJECTS)
|
||||||
|
- $(LIBTOOL) --mode=link --tag=CC $(CC) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
|
||||||
|
+ $(LTLINK) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
|
||||||
|
|
||||||
|
install: $(LIBNAME)
|
||||||
|
install -d $(DESTDIR)$(LIBPATH)
|
||||||
|
@@ -76,16 +77,16 @@ uninstall:
|
||||||
|
rm $(DESTDIR)$(LIBPATH)/pkgconfig/libtommath.pc
|
||||||
|
|
||||||
|
test: $(LIBNAME) demo/demo.o
|
||||||
|
- $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||||
|
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||||
|
+ $(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||||
|
+ $(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||||
|
|
||||||
|
test_standalone: $(LIBNAME) demo/demo.o
|
||||||
|
- $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||||
|
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||||
|
+ $(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||||
|
+ $(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||||
|
|
||||||
|
.PHONY: mtest
|
||||||
|
mtest:
|
||||||
|
- cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
|
||||||
|
+ cd mtest ; $(CC) $(CFLAGS) -O0 mtest.c $(LDFLAGS) -o mtest
|
||||||
|
|
||||||
|
timing: $(LIBNAME) demo/timing.c
|
||||||
|
- $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
|
||||||
|
+ $(LTLINK) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
|
Loading…
Reference in a new issue