aboutsummaryrefslogtreecommitdiff
path: root/depends
diff options
context:
space:
mode:
authorCory Fields <cory-nospam-@coryfields.com>2014-11-05 19:59:29 -0500
committerPieter Wuille <pieter.wuille@gmail.com>2014-11-18 18:06:46 +0100
commitff1e5ba8c75254ccfb08f408c607e98859d88a74 (patch)
tree80f049ffa9af43af2c89feda5fb951daea5fc41f /depends
parentcf61b5441bd6d7232a50f66f28c1b5c6bbdb1570 (diff)
depends: add gmp package
Diffstat (limited to 'depends')
-rw-r--r--depends/packages/gmp.mk30
-rw-r--r--depends/packages/packages.mk2
-rw-r--r--depends/patches/gmp/arm_gmp_build_fix.patch21
-rw-r--r--depends/patches/gmp/darwin_gmp_build_fix.patch29
4 files changed, 81 insertions, 1 deletions
diff --git a/depends/packages/gmp.mk b/depends/packages/gmp.mk
new file mode 100644
index 0000000000..bcbf50ceae
--- /dev/null
+++ b/depends/packages/gmp.mk
@@ -0,0 +1,30 @@
+package=gmp
+$(package)_version=6.0.0a
+$(package)_download_path=https://gmplib.org/download/gmp
+$(package)_file_name=$(package)-$($(package)_version).tar.bz2
+$(package)_sha256_hash=7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf
+$(package)_patches=arm_gmp_build_fix.patch darwin_gmp_build_fix.patch
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/arm_gmp_build_fix.patch && \
+ patch -p1 < $($(package)_patch_dir)/darwin_gmp_build_fix.patch
+endef
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-shared CC_FOR_BUILD=$(build_CC)
+ $(package)_config_opts_x86_64_darwin=--with-pic
+ $(package)_config_opts_x86_64_linux=--with-pic
+ $(package)_config_opts_arm_linux=--with-pic
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/depends/packages/packages.mk b/depends/packages/packages.mk
index 260cadb214..0e1fbeffaa 100644
--- a/depends/packages/packages.mk
+++ b/depends/packages/packages.mk
@@ -1,4 +1,4 @@
-packages:=boost openssl
+packages:=boost openssl gmp
native_packages := native_ccache native_comparisontool
qt_native_packages = native_protobuf
diff --git a/depends/patches/gmp/arm_gmp_build_fix.patch b/depends/patches/gmp/arm_gmp_build_fix.patch
new file mode 100644
index 0000000000..666cf58cf6
--- /dev/null
+++ b/depends/patches/gmp/arm_gmp_build_fix.patch
@@ -0,0 +1,21 @@
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1396602422 -7200
+# Node ID 676e2d0f0e4dd301a7066079d2c9326c25c34a40
+# Parent 0194a75b56b21a9196626430af86c5bd9110c42d
+Conditionalise ARM asm on !__thumb__.
+
+diff -r 0194a75b56b2 -r 676e2d0f0e4d mpn/generic/div_qr_1n_pi1.c
+--- a/mpn/generic/div_qr_1n_pi1.c Thu Apr 03 23:58:51 2014 +0200
++++ b/mpn/generic/div_qr_1n_pi1.c Fri Apr 04 11:07:02 2014 +0200
+@@ -130,7 +130,7 @@
+ "%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
+ #endif
+
+-#if defined (__arm__) && W_TYPE_SIZE == 32
++#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
+ #define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
+ __asm__ ( "adds %2, %5, %6\n\t" \
+ "adcs %1, %3, %4\n\t" \
+
diff --git a/depends/patches/gmp/darwin_gmp_build_fix.patch b/depends/patches/gmp/darwin_gmp_build_fix.patch
new file mode 100644
index 0000000000..b9cfd80e77
--- /dev/null
+++ b/depends/patches/gmp/darwin_gmp_build_fix.patch
@@ -0,0 +1,29 @@
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1396470504 -7200
+# Node ID 1fab0adc5ff7d9ecddcbda96f407da58347bb49c
+# Parent db645603dcdb41afcf78b19b551ecd5a01c3841c
+Workaround for Darwin assembler quirk.
+
+diff -r db645603dcdb -r 1fab0adc5ff7 mpn/x86_64/k8/redc_1.asm
+--- a/mpn/x86_64/k8/redc_1.asm Mon Mar 31 23:04:32 2014 +0200
++++ b/mpn/x86_64/k8/redc_1.asm Wed Apr 02 22:28:24 2014 +0200
+@@ -114,7 +114,7 @@
+
+ JUMPTABSECT
+ ALIGN(8)
+-L(tab): JMPENT( L(0m4), L(tab))
++L(tab): JMPENT( L(0), L(tab))
+ JMPENT( L(1), L(tab))
+ JMPENT( L(2), L(tab))
+ JMPENT( L(3), L(tab))
+@@ -397,6 +397,7 @@
+
+
+ ALIGN(16)
++L(0):
+ L(0m4):
+ L(lo0): mov (mp,nneg,8), %rax
+ mov nneg, i
+