From 1adec83621f36a3dd748990c307ca4ebebcdd554 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Thu, 27 Aug 2015 16:05:59 +0300 Subject: gmp: Bring back version 4.2.1 (LGPL 2.1+) gmp 4.2.1 was removed in f181c6ce8b apparently accidentally: It was not noticed that 4.2.1 is LGPL 2.1 (and not GPL) so provides a useful alternative to the newer "GPLv2 | LGPLv3" version. * Reintroduce 4.2.1. The source includes files that are GPL but the library package is LGPL 2.1+ * Also reintroduce the two patches removed in f181c6ce8b. * Refactor gmp.inc: gmp 6.0.0 build should not be affected in any way. * Update 6.0.0 license from "GPLv2 | LGPLv3" to "GPLv2+ | LGPLv3+". [YOCTO #8197] Signed-off-by: Jussi Kukkonen Signed-off-by: Richard Purdie --- .../gmp/gmp-4.2.1/disable-stdc.patch | 39 ++++ .../gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch | 56 ++++++ meta/recipes-support/gmp/gmp-6.0.0/amd64.patch | 18 ++ .../gmp/gmp-6.0.0/append_user_provided_flags.patch | 52 +++++ meta/recipes-support/gmp/gmp-6.0.0/configure.patch | 222 +++++++++++++++++++++ .../gmp/gmp-6.0.0/gmp-6.0.0-ppc64.patch | 26 +++ .../gmp/gmp-6.0.0/use-includedir.patch | 15 ++ meta/recipes-support/gmp/gmp.inc | 19 +- meta/recipes-support/gmp/gmp/amd64.patch | 18 -- .../gmp/gmp/append_user_provided_flags.patch | 52 ----- meta/recipes-support/gmp/gmp/configure.patch | 222 --------------------- meta/recipes-support/gmp/gmp/gmp-6.0.0-ppc64.patch | 26 --- meta/recipes-support/gmp/gmp/use-includedir.patch | 15 -- meta/recipes-support/gmp/gmp_4.2.1.bb | 15 ++ meta/recipes-support/gmp/gmp_6.0.0.bb | 33 ++- 15 files changed, 470 insertions(+), 358 deletions(-) create mode 100644 meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch create mode 100644 meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch create mode 100644 meta/recipes-support/gmp/gmp-6.0.0/amd64.patch create mode 100644 meta/recipes-support/gmp/gmp-6.0.0/append_user_provided_flags.patch create mode 100644 meta/recipes-support/gmp/gmp-6.0.0/configure.patch create mode 100644 meta/recipes-support/gmp/gmp-6.0.0/gmp-6.0.0-ppc64.patch create mode 100644 meta/recipes-support/gmp/gmp-6.0.0/use-includedir.patch delete mode 100644 meta/recipes-support/gmp/gmp/amd64.patch delete mode 100644 meta/recipes-support/gmp/gmp/append_user_provided_flags.patch delete mode 100644 meta/recipes-support/gmp/gmp/configure.patch delete mode 100644 meta/recipes-support/gmp/gmp/gmp-6.0.0-ppc64.patch delete mode 100644 meta/recipes-support/gmp/gmp/use-includedir.patch create mode 100644 meta/recipes-support/gmp/gmp_4.2.1.bb (limited to 'meta') diff --git a/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch b/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch new file mode 100644 index 0000000000..5decb1cec5 --- /dev/null +++ b/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch @@ -0,0 +1,39 @@ +This patch was removed in f181c6ce8b3 when gmp 4.2.1 was mistakenly +dropped. + +Upstream is not interested in patches for ancient versions. + +Upstream-Status: Inappropriate +Signed-off-by: Jussi Kukkonen + +# "extern inline" in traditional gcc means that the function should be +# inlined wherever it's seen, while in C99, "extern inline" means that i +# the function should only be inlined where the inline definition is +# seen while in other places it's not inlined: +# http://gcc.gnu.org/ml/gcc/2006-11/msg00006.html +# +# gmp checks "--std=gnu99" to use C99 convention however it internally +# defines some "extern inline" functions in gmp.h, which is included +# by mainly .c files and finally lead a flood of redefinition function +# errors when linking objects together. +# +# So disable C99/ANSI detection to stick to tranditional gcc behavior +# +# by Kevin Tian , 2010-08-13 +# +# (this patch is licensed under GPLv2+) + +diff --git a/configure.in b/configure.in +index 450cc92..aab0b59 100644 +--- a/configure.in ++++ b/configure.in +@@ -1869,9 +1869,7 @@ AC_SUBST(DEFN_LONG_LONG_LIMB) + + # The C compiler and preprocessor, put into ANSI mode if possible. + AC_PROG_CC +-AC_PROG_CC_STDC + AC_PROG_CPP +-GMP_H_ANSI + + + # The C compiler on the build system, and associated tests. diff --git a/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch b/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch new file mode 100644 index 0000000000..63aed05ece --- /dev/null +++ b/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch @@ -0,0 +1,56 @@ +automake 1.12 has depricated automatic de-ANSI-fication support + +this patch avoids these kinds of errors: + +| configure.in:2240: error: automatic de-ANSI-fication support has been removed +| Makefile.am:28: error: automatic de-ANSI-fication support has been removed + +Signed-Off-By: Nitin A Kamble +2012/05/02 + + +This patch was removed in f181c6ce8b3 when gmp 4.2.1 was mistakenly +dropped. + +Upstream is not interested in patches for ancient versions. + +Upstream-Status: Inappropriate +Signed-off-by: Jussi Kukkonen + + +Index: gmp-4.2.1/configure.in +=================================================================== +--- gmp-4.2.1.orig/configure.in ++++ gmp-4.2.1/configure.in +@@ -67,7 +67,7 @@ dnl + dnl Note that there's a copy of these options in the top-level Makefile.am, + dnl so update there too if changing anything. + dnl +-AM_INIT_AUTOMAKE([1.8 gnu no-dependencies $(top_builddir)/ansi2knr]) ++AM_INIT_AUTOMAKE([1.8 gnu no-dependencies]) + AM_CONFIG_HEADER(config.h:config.in) + AM_MAINTAINER_MODE + +@@ -2022,9 +2022,6 @@ fi + echo " MPN_PATH=\"$path\"" + + +-# Automake ansi2knr support. +-AM_C_PROTOTYPES +- + GMP_PROG_AR + GMP_PROG_NM + +Index: gmp-4.2.1/Makefile.am +=================================================================== +--- gmp-4.2.1.orig/Makefile.am ++++ gmp-4.2.1/Makefile.am +@@ -27,7 +27,7 @@ + # Makefiles in subdirectories, but here we must omit it so automake gives + # the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr". + # +-AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies ansi2knr ++AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies + + + # Libtool -version-info for libgmp.la and libmp.la. See "Versioning" in the diff --git a/meta/recipes-support/gmp/gmp-6.0.0/amd64.patch b/meta/recipes-support/gmp/gmp-6.0.0/amd64.patch new file mode 100644 index 0000000000..564d12d42b --- /dev/null +++ b/meta/recipes-support/gmp/gmp-6.0.0/amd64.patch @@ -0,0 +1,18 @@ +Upstream-Status: Pending + +Index: gmp-5.0.3/longlong.h +=================================================================== +--- gmp-5.0.3.orig/longlong.h ++++ gmp-5.0.3/longlong.h +@@ -994,8 +994,10 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO ( + count is only an int. */ + #define count_trailing_zeros(count, x) \ + do { \ ++ UDItype __cbtmp; \ + ASSERT ((x) != 0); \ +- __asm__ ("bsfq %1,%q0" : "=r" (count) : "rm" ((UDItype)(x))); \ ++ __asm__ ("bsfq %1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \ ++ (count) = __cbtmp; \ + } while (0) + #endif /* x86_64 */ + diff --git a/meta/recipes-support/gmp/gmp-6.0.0/append_user_provided_flags.patch b/meta/recipes-support/gmp/gmp-6.0.0/append_user_provided_flags.patch new file mode 100644 index 0000000000..ae1386c4c1 --- /dev/null +++ b/meta/recipes-support/gmp/gmp-6.0.0/append_user_provided_flags.patch @@ -0,0 +1,52 @@ +Upstream-Status: Inappropriate + +Append the user provided flags to the auto-detected ones. + +Signed-off-by: Laurentiu Palcu + +Index: gmp-5.1.1/configure.ac +=================================================================== +--- gmp-5.1.1.orig/configure.ac 2014-02-11 15:05:44.925202403 +0200 ++++ gmp-5.1.1/configure.ac 2014-02-11 15:19:03.918511398 +0200 +@@ -1745,8 +1745,12 @@ + EOF + + +-test_CFLAGS=${CFLAGS+set} +-test_CPPFLAGS=${CPPFLAGS+set} ++test_CFLAGS= ++test_CPPFLAGS= ++ ++user_CFLAGS=$CFLAGS ++user_CPPFLAGS=$CPPFLAGS ++user_CXXFLAGS=$CXXFLAGS + + for abi in $abilist; do + abi_last="$abi" +@@ -2175,7 +2179,7 @@ + want_cxx=no + AC_PROG_CXX + if test $enable_cxx != no; then +- test_CXXFLAGS=${CXXFLAGS+set} ++ test_CXXFLAGS= + + echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD() + cxxflags_ac_prog_cxx=$CXXFLAGS +@@ -2202,7 +2206,7 @@ + # Automake includes $CPPFLAGS in a C++ compile, so we do the same here. + # + for cxxflags_choice in $cxxflags_list; do +- eval CXXFLAGS=\"\$cxxflags_$cxxflags_choice\" ++ eval CXXFLAGS=\"\$cxxflags_$cxxflags_choice $user_CXXFLAGS\" + GMP_PROG_CXX_WORKS($CXX $CPPFLAGS $CXXFLAGS, + [want_cxx=yes + break]) +@@ -2292,6 +2296,8 @@ + # done + fi + ++CFLAGS="$CFLAGS $user_CFLAGS" ++CPPFLAGS="$CPPFLAGS $user_CPPFLAGS" + + cat >&AS_MESSAGE_LOG_FD() < + +--- + acinclude.m4 | 32 +++++++++++++++++--------------- + configure.ac | 26 +++++++++----------------- + 2 files changed, 26 insertions(+), 32 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 227712a..199aa6f 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -40,29 +40,29 @@ dnl a_out.exe - OpenVMS DEC C called via GNV wrapper (gnv.sourceforge.net) + dnl conftest.exe - various DOS compilers + + +-define(IA64_PATTERN, ++define([IA64_PATTERN], + [[ia64*-*-* | itanium-*-* | itanium2-*-*]]) + + dnl Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all + dnl of which config.sub accepts. (Though none of which are likely to work + dnl with GMP.) + dnl +-define(M68K_PATTERN, ++define([M68K_PATTERN], + [[m68k-*-* | m68[0-9][0-9][0-9]-*-*]]) + +-define(POWERPC64_PATTERN, ++define([POWERPC64_PATTERN], + [[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-* | powerpc970-*-* | power[3-9]-*-*]]) + +-define(S390_PATTERN, ++define([S390_PATTERN], + [[s390-*-* | z900esa-*-* | z990esa-*-* | z9esa-*-* | z10esa-*-* | z196esa-*-*]]) + +-define(S390X_PATTERN, ++define([S390X_PATTERN], + [[s390x-*-* | z900-*-* | z990-*-* | z9-*-* | z10-*-* | z196-*-*]]) + +-define(X86_PATTERN, ++define([X86_PATTERN], + [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]]) + +-define(X86_64_PATTERN, ++define([X86_64_PATTERN], + [[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar-*-* | bulldozer-*-* | piledriver-*-* | steamroller-*-* | excavator-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]]) + + dnl GMP_FAT_SUFFIX(DSTVAR, DIRECTORY) +@@ -80,7 +80,7 @@ dnl x86 -> x86 + dnl x86/k6 -> k6 + dnl x86/k6/mmx -> k6_mmx + +-define(GMP_FAT_SUFFIX, ++define([GMP_FAT_SUFFIX], + [[$1=`echo $2 | sed -e '/\//s:^[^/]*/::' -e 's:[\\/]:_:g'`]]) + + +@@ -89,7 +89,7 @@ dnl ---------------------------------- + dnl Emit code to remove any occurrence of ITEM from $LISTVAR. ITEM can be a + dnl shell expression like $foo if desired. + +-define(GMP_REMOVE_FROM_LIST, ++define([GMP_REMOVE_FROM_LIST], + [remove_from_list_tmp= + for remove_from_list_i in $[][$1]; do + if test $remove_from_list_i = [$2]; then :; +@@ -105,12 +105,12 @@ dnl GMP_STRIP_PATH(subdir) + dnl ---------------------- + dnl Strip entries */subdir from $path and $fat_path. + +-define(GMP_STRIP_PATH, ++define([GMP_STRIP_PATH], + [GMP_STRIP_PATH_VAR(path, [$1]) + GMP_STRIP_PATH_VAR(fat_path, [$1]) + ]) + +-define(GMP_STRIP_PATH_VAR, ++define([GMP_STRIP_PATH_VAR], + [tmp_path= + for i in $[][$1]; do + case $i in +@@ -131,7 +131,7 @@ dnl + dnl Dummy value for GMP_LIMB_BITS is enough + dnl for all current configure-time uses of gmp.h. + +-define(GMP_INCLUDE_GMP_H, ++define([GMP_INCLUDE_GMP_H], + [[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */ + #define GMP_NAIL_BITS $GMP_NAIL_BITS + #define GMP_LIMB_BITS 123 +@@ -146,7 +146,7 @@ dnl Expand at autoconf time to the value of a "#define NAME" from the given + dnl FILE. The regexps here aren't very rugged, but are enough for gmp. + dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted. + +-define(GMP_HEADER_GETVAL, ++define([GMP_HEADER_GETVAL], + [patsubst(patsubst( + esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]), + [^.*$1[ ]+],[]), +@@ -160,7 +160,7 @@ dnl The gmp version number, extracted from the #defines in gmp-h.in at + dnl autoconf time. Two digits like 3.0 if patchlevel <= 0, or three digits + dnl like 3.0.1 if patchlevel > 0. + +-define(GMP_VERSION, ++define([GMP_VERSION], + [GMP_HEADER_GETVAL(__GNU_MP_VERSION,gmp-h.in)[]dnl + .GMP_HEADER_GETVAL(__GNU_MP_VERSION_MINOR,gmp-h.in)[]dnl + .GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in)]) +@@ -1524,7 +1524,9 @@ esac + echo ["define(,<\`$tmp'>)"] >>$gmp_tmpconfigm4 + + # All CPUs use asm-defs.m4 +-echo ["include][(CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4')"] >>$gmp_tmpconfigm4i ++echo -n ["include("] >>$gmp_tmpconfigm4i ++echo -n ["CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4'"] >>$gmp_tmpconfigm4i ++echo [")"] >>$gmp_tmpconfigm4i + ]) + + +diff --git a/configure.ac b/configure.ac +index 64b2c50..f07b821 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -39,14 +39,6 @@ AC_REVISION($Revision$) + AC_PREREQ(2.59) + AC_INIT(GNU MP, GMP_VERSION, [gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html], gmp) + AC_CONFIG_SRCDIR(gmp-impl.h) +-m4_pattern_forbid([^[ \t]*GMP_]) +-m4_pattern_allow(GMP_LDFLAGS) +-m4_pattern_allow(GMP_LIMB_BITS) +-m4_pattern_allow(GMP_MPARAM_H_SUGGEST) +-m4_pattern_allow(GMP_NAIL_BITS) +-m4_pattern_allow(GMP_NUMB_BITS) +-m4_pattern_allow(GMP_NONSTD_ABI) +-m4_pattern_allow(GMP_CPU_TYPE) + + # If --target is not used then $target_alias is empty, but if say + # "./configure athlon-pc-freebsd3.5" is used, then all three of +@@ -348,7 +340,7 @@ AH_VERBATIM([HAVE_HOST_CPU_1], + # After GMP specific searches and tests, the standard autoconf AC_PROG_CC is + # called. User selections of CC etc are respected. + # +-# Care is taken not to use macros like AC_TRY_COMPILE during the GMP ++# Care is taken not to use macros like AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) during the GMP + # pre-testing, since they of course depend on AC_PROG_CC, and also some of + # them cache their results, which is not wanted. + # +@@ -440,7 +432,7 @@ abilist="standard" + # FIXME: We'd like to prefer an ANSI compiler, perhaps by preferring + # c89 over cc here. But note that on HP-UX c89 provides a castrated + # environment, and would want to be excluded somehow. Maybe +-# AC_PROG_CC_STDC already does enough to stick cc into ANSI mode and ++# already does enough to stick cc into ANSI mode and + # we don't need to worry. + # + cclist="gcc cc" +@@ -1843,7 +1835,7 @@ esac + CFLAGS_or_unset=${CFLAGS-'(unset)'} + CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'} + +-cat >&AC_FD_CC <&AS_MESSAGE_LOG_FD() <&AC_FD_CC ++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD() + cxxflags_ac_prog_cxx=$CXXFLAGS + cxxflags_list=ac_prog_cxx + +@@ -2412,7 +2403,7 @@ if test "$enable_assembly" = "no"; then + fi + + +-cat >&AC_FD_CC <&AS_MESSAGE_LOG_FD() < + +This patch with pulled from gmp. +https://gmplib.org/repo/gmp/rev/4a6d258b467f +Upstream-Status: Backport + +# HG changeset patch +# User Torbjorn Granlund +# Date 1395835068 -3600 +# Node ID 4a6d258b467f661da0894cc60ecd060f2e3c67c7 +# Parent 301ce2788826a2d4d2725bd5cf01e998638db37a +Provide default for BMOD_1_TO_MOD_1_THRESHOLD. + +diff -r 301ce2788826 -r 4a6d258b467f mpn/powerpc64/mode64/gcd_1.asm +--- a/mpn/powerpc64/mode64/gcd_1.asm Tue Mar 25 15:34:52 2014 +0100 ++++ b/mpn/powerpc64/mode64/gcd_1.asm Wed Mar 26 12:57:48 2014 +0100 +@@ -43,6 +43,9 @@ + define(`n', `r4') + define(`v0', `r5') + ++ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',, ++ `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)') ++ + EXTERN_FUNC(mpn_mod_1) + EXTERN_FUNC(mpn_modexact_1c_odd) diff --git a/meta/recipes-support/gmp/gmp-6.0.0/use-includedir.patch b/meta/recipes-support/gmp/gmp-6.0.0/use-includedir.patch new file mode 100644 index 0000000000..74904a2530 --- /dev/null +++ b/meta/recipes-support/gmp/gmp-6.0.0/use-includedir.patch @@ -0,0 +1,15 @@ +Upstream-Status: Pending + +Index: gmp-4.2.4/Makefile.am +=================================================================== +--- gmp-4.2.4.orig/Makefile.am 2008-09-10 19:31:27.000000000 +0000 ++++ gmp-4.2.4/Makefile.am 2009-07-06 20:19:19.000000000 +0000 +@@ -106,7 +106,7 @@ + # but anyone knowledgable enough to be playing with exec_prefix will be able + # to address that. + # +-includeexecdir = $(exec_prefix)/include ++includeexecdir = $(includedir) + include_HEADERS = $(GMPXX_HEADERS_OPTION) + nodist_includeexec_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION) + lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION) diff --git a/meta/recipes-support/gmp/gmp.inc b/meta/recipes-support/gmp/gmp.inc index 65cde21a7d..6752a39d13 100644 --- a/meta/recipes-support/gmp/gmp.inc +++ b/meta/recipes-support/gmp/gmp.inc @@ -2,32 +2,15 @@ SECTION = "devel" SUMMARY = "GNU multiprecision arithmetic library" DESCRIPTION = "GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers" HOMEPAGE = "http://gmplib.org/" -LICENSE = "GPLv3 LGPLv3" REVISION ?= "" - -SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \ - file://configure.patch \ - file://amd64.patch " +SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2" inherit autotools texinfo ARM_INSTRUCTION_SET = "arm" -acpaths = "" - BBCLASSEXTEND = "native nativesdk" PACKAGECONFIG ??= "" PACKAGECONFIG[readline] = "--with-readline=yes,--with-readline=no,readline" - -EXTRA_OECONF += " --enable-cxx=detect" - -PACKAGES =+ "libgmpxx" -FILES_libgmpxx = "${libdir}/libgmpxx${SOLIBS}" - -do_install_append_class-target() { - sed -i "s|--sysroot=${STAGING_DIR_HOST}||g" ${D}${includedir}/gmp.h -} - -SSTATE_SCAN_FILES += "gmp.h" diff --git a/meta/recipes-support/gmp/gmp/amd64.patch b/meta/recipes-support/gmp/gmp/amd64.patch deleted file mode 100644 index 564d12d42b..0000000000 --- a/meta/recipes-support/gmp/gmp/amd64.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream-Status: Pending - -Index: gmp-5.0.3/longlong.h -=================================================================== ---- gmp-5.0.3.orig/longlong.h -+++ gmp-5.0.3/longlong.h -@@ -994,8 +994,10 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO ( - count is only an int. */ - #define count_trailing_zeros(count, x) \ - do { \ -+ UDItype __cbtmp; \ - ASSERT ((x) != 0); \ -- __asm__ ("bsfq %1,%q0" : "=r" (count) : "rm" ((UDItype)(x))); \ -+ __asm__ ("bsfq %1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \ -+ (count) = __cbtmp; \ - } while (0) - #endif /* x86_64 */ - diff --git a/meta/recipes-support/gmp/gmp/append_user_provided_flags.patch b/meta/recipes-support/gmp/gmp/append_user_provided_flags.patch deleted file mode 100644 index ae1386c4c1..0000000000 --- a/meta/recipes-support/gmp/gmp/append_user_provided_flags.patch +++ /dev/null @@ -1,52 +0,0 @@ -Upstream-Status: Inappropriate - -Append the user provided flags to the auto-detected ones. - -Signed-off-by: Laurentiu Palcu - -Index: gmp-5.1.1/configure.ac -=================================================================== ---- gmp-5.1.1.orig/configure.ac 2014-02-11 15:05:44.925202403 +0200 -+++ gmp-5.1.1/configure.ac 2014-02-11 15:19:03.918511398 +0200 -@@ -1745,8 +1745,12 @@ - EOF - - --test_CFLAGS=${CFLAGS+set} --test_CPPFLAGS=${CPPFLAGS+set} -+test_CFLAGS= -+test_CPPFLAGS= -+ -+user_CFLAGS=$CFLAGS -+user_CPPFLAGS=$CPPFLAGS -+user_CXXFLAGS=$CXXFLAGS - - for abi in $abilist; do - abi_last="$abi" -@@ -2175,7 +2179,7 @@ - want_cxx=no - AC_PROG_CXX - if test $enable_cxx != no; then -- test_CXXFLAGS=${CXXFLAGS+set} -+ test_CXXFLAGS= - - echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD() - cxxflags_ac_prog_cxx=$CXXFLAGS -@@ -2202,7 +2206,7 @@ - # Automake includes $CPPFLAGS in a C++ compile, so we do the same here. - # - for cxxflags_choice in $cxxflags_list; do -- eval CXXFLAGS=\"\$cxxflags_$cxxflags_choice\" -+ eval CXXFLAGS=\"\$cxxflags_$cxxflags_choice $user_CXXFLAGS\" - GMP_PROG_CXX_WORKS($CXX $CPPFLAGS $CXXFLAGS, - [want_cxx=yes - break]) -@@ -2292,6 +2296,8 @@ - # done - fi - -+CFLAGS="$CFLAGS $user_CFLAGS" -+CPPFLAGS="$CPPFLAGS $user_CPPFLAGS" - - cat >&AS_MESSAGE_LOG_FD() < - ---- - acinclude.m4 | 32 +++++++++++++++++--------------- - configure.ac | 26 +++++++++----------------- - 2 files changed, 26 insertions(+), 32 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 227712a..199aa6f 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -40,29 +40,29 @@ dnl a_out.exe - OpenVMS DEC C called via GNV wrapper (gnv.sourceforge.net) - dnl conftest.exe - various DOS compilers - - --define(IA64_PATTERN, -+define([IA64_PATTERN], - [[ia64*-*-* | itanium-*-* | itanium2-*-*]]) - - dnl Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all - dnl of which config.sub accepts. (Though none of which are likely to work - dnl with GMP.) - dnl --define(M68K_PATTERN, -+define([M68K_PATTERN], - [[m68k-*-* | m68[0-9][0-9][0-9]-*-*]]) - --define(POWERPC64_PATTERN, -+define([POWERPC64_PATTERN], - [[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-* | powerpc970-*-* | power[3-9]-*-*]]) - --define(S390_PATTERN, -+define([S390_PATTERN], - [[s390-*-* | z900esa-*-* | z990esa-*-* | z9esa-*-* | z10esa-*-* | z196esa-*-*]]) - --define(S390X_PATTERN, -+define([S390X_PATTERN], - [[s390x-*-* | z900-*-* | z990-*-* | z9-*-* | z10-*-* | z196-*-*]]) - --define(X86_PATTERN, -+define([X86_PATTERN], - [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]]) - --define(X86_64_PATTERN, -+define([X86_64_PATTERN], - [[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar-*-* | bulldozer-*-* | piledriver-*-* | steamroller-*-* | excavator-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]]) - - dnl GMP_FAT_SUFFIX(DSTVAR, DIRECTORY) -@@ -80,7 +80,7 @@ dnl x86 -> x86 - dnl x86/k6 -> k6 - dnl x86/k6/mmx -> k6_mmx - --define(GMP_FAT_SUFFIX, -+define([GMP_FAT_SUFFIX], - [[$1=`echo $2 | sed -e '/\//s:^[^/]*/::' -e 's:[\\/]:_:g'`]]) - - -@@ -89,7 +89,7 @@ dnl ---------------------------------- - dnl Emit code to remove any occurrence of ITEM from $LISTVAR. ITEM can be a - dnl shell expression like $foo if desired. - --define(GMP_REMOVE_FROM_LIST, -+define([GMP_REMOVE_FROM_LIST], - [remove_from_list_tmp= - for remove_from_list_i in $[][$1]; do - if test $remove_from_list_i = [$2]; then :; -@@ -105,12 +105,12 @@ dnl GMP_STRIP_PATH(subdir) - dnl ---------------------- - dnl Strip entries */subdir from $path and $fat_path. - --define(GMP_STRIP_PATH, -+define([GMP_STRIP_PATH], - [GMP_STRIP_PATH_VAR(path, [$1]) - GMP_STRIP_PATH_VAR(fat_path, [$1]) - ]) - --define(GMP_STRIP_PATH_VAR, -+define([GMP_STRIP_PATH_VAR], - [tmp_path= - for i in $[][$1]; do - case $i in -@@ -131,7 +131,7 @@ dnl - dnl Dummy value for GMP_LIMB_BITS is enough - dnl for all current configure-time uses of gmp.h. - --define(GMP_INCLUDE_GMP_H, -+define([GMP_INCLUDE_GMP_H], - [[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */ - #define GMP_NAIL_BITS $GMP_NAIL_BITS - #define GMP_LIMB_BITS 123 -@@ -146,7 +146,7 @@ dnl Expand at autoconf time to the value of a "#define NAME" from the given - dnl FILE. The regexps here aren't very rugged, but are enough for gmp. - dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted. - --define(GMP_HEADER_GETVAL, -+define([GMP_HEADER_GETVAL], - [patsubst(patsubst( - esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]), - [^.*$1[ ]+],[]), -@@ -160,7 +160,7 @@ dnl The gmp version number, extracted from the #defines in gmp-h.in at - dnl autoconf time. Two digits like 3.0 if patchlevel <= 0, or three digits - dnl like 3.0.1 if patchlevel > 0. - --define(GMP_VERSION, -+define([GMP_VERSION], - [GMP_HEADER_GETVAL(__GNU_MP_VERSION,gmp-h.in)[]dnl - .GMP_HEADER_GETVAL(__GNU_MP_VERSION_MINOR,gmp-h.in)[]dnl - .GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in)]) -@@ -1524,7 +1524,9 @@ esac - echo ["define(,<\`$tmp'>)"] >>$gmp_tmpconfigm4 - - # All CPUs use asm-defs.m4 --echo ["include][(CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4')"] >>$gmp_tmpconfigm4i -+echo -n ["include("] >>$gmp_tmpconfigm4i -+echo -n ["CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4'"] >>$gmp_tmpconfigm4i -+echo [")"] >>$gmp_tmpconfigm4i - ]) - - -diff --git a/configure.ac b/configure.ac -index 64b2c50..f07b821 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -39,14 +39,6 @@ AC_REVISION($Revision$) - AC_PREREQ(2.59) - AC_INIT(GNU MP, GMP_VERSION, [gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html], gmp) - AC_CONFIG_SRCDIR(gmp-impl.h) --m4_pattern_forbid([^[ \t]*GMP_]) --m4_pattern_allow(GMP_LDFLAGS) --m4_pattern_allow(GMP_LIMB_BITS) --m4_pattern_allow(GMP_MPARAM_H_SUGGEST) --m4_pattern_allow(GMP_NAIL_BITS) --m4_pattern_allow(GMP_NUMB_BITS) --m4_pattern_allow(GMP_NONSTD_ABI) --m4_pattern_allow(GMP_CPU_TYPE) - - # If --target is not used then $target_alias is empty, but if say - # "./configure athlon-pc-freebsd3.5" is used, then all three of -@@ -348,7 +340,7 @@ AH_VERBATIM([HAVE_HOST_CPU_1], - # After GMP specific searches and tests, the standard autoconf AC_PROG_CC is - # called. User selections of CC etc are respected. - # --# Care is taken not to use macros like AC_TRY_COMPILE during the GMP -+# Care is taken not to use macros like AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) during the GMP - # pre-testing, since they of course depend on AC_PROG_CC, and also some of - # them cache their results, which is not wanted. - # -@@ -440,7 +432,7 @@ abilist="standard" - # FIXME: We'd like to prefer an ANSI compiler, perhaps by preferring - # c89 over cc here. But note that on HP-UX c89 provides a castrated - # environment, and would want to be excluded somehow. Maybe --# AC_PROG_CC_STDC already does enough to stick cc into ANSI mode and -+# already does enough to stick cc into ANSI mode and - # we don't need to worry. - # - cclist="gcc cc" -@@ -1843,7 +1835,7 @@ esac - CFLAGS_or_unset=${CFLAGS-'(unset)'} - CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'} - --cat >&AC_FD_CC <&AS_MESSAGE_LOG_FD() <&AC_FD_CC -+ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD() - cxxflags_ac_prog_cxx=$CXXFLAGS - cxxflags_list=ac_prog_cxx - -@@ -2412,7 +2403,7 @@ if test "$enable_assembly" = "no"; then - fi - - --cat >&AC_FD_CC <&AS_MESSAGE_LOG_FD() < - -This patch with pulled from gmp. -https://gmplib.org/repo/gmp/rev/4a6d258b467f -Upstream-Status: Backport - -# HG changeset patch -# User Torbjorn Granlund -# Date 1395835068 -3600 -# Node ID 4a6d258b467f661da0894cc60ecd060f2e3c67c7 -# Parent 301ce2788826a2d4d2725bd5cf01e998638db37a -Provide default for BMOD_1_TO_MOD_1_THRESHOLD. - -diff -r 301ce2788826 -r 4a6d258b467f mpn/powerpc64/mode64/gcd_1.asm ---- a/mpn/powerpc64/mode64/gcd_1.asm Tue Mar 25 15:34:52 2014 +0100 -+++ b/mpn/powerpc64/mode64/gcd_1.asm Wed Mar 26 12:57:48 2014 +0100 -@@ -43,6 +43,9 @@ - define(`n', `r4') - define(`v0', `r5') - -+ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',, -+ `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)') -+ - EXTERN_FUNC(mpn_mod_1) - EXTERN_FUNC(mpn_modexact_1c_odd) diff --git a/meta/recipes-support/gmp/gmp/use-includedir.patch b/meta/recipes-support/gmp/gmp/use-includedir.patch deleted file mode 100644 index 74904a2530..0000000000 --- a/meta/recipes-support/gmp/gmp/use-includedir.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Pending - -Index: gmp-4.2.4/Makefile.am -=================================================================== ---- gmp-4.2.4.orig/Makefile.am 2008-09-10 19:31:27.000000000 +0000 -+++ gmp-4.2.4/Makefile.am 2009-07-06 20:19:19.000000000 +0000 -@@ -106,7 +106,7 @@ - # but anyone knowledgable enough to be playing with exec_prefix will be able - # to address that. - # --includeexecdir = $(exec_prefix)/include -+includeexecdir = $(includedir) - include_HEADERS = $(GMPXX_HEADERS_OPTION) - nodist_includeexec_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION) - lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION) diff --git a/meta/recipes-support/gmp/gmp_4.2.1.bb b/meta/recipes-support/gmp/gmp_4.2.1.bb new file mode 100644 index 0000000000..928c01a5bb --- /dev/null +++ b/meta/recipes-support/gmp/gmp_4.2.1.bb @@ -0,0 +1,15 @@ +require gmp.inc + +LICENSE = "LGPLv2.1+ & GPLv2+" +LICENSE_${PN} = "LGPLv2.1+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a \ + file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24 \ + file://gmp-h.in;beginline=6;endline=21;md5=e056f74a12c3277d730dbcfb85d2ca34" + +SRC_URI += "file://disable-stdc.patch \ + file://gmp_fix_for_automake-1.12.patch \ + " + +SRC_URI[md5sum] = "091c56e0e1cca6b09b17b69d47ef18e3" +SRC_URI[sha256sum] = "d07ffcb37eecec35c5ec72516d10b35fdf6e6fef1fcf1dcd37e30b8cbf8bf941" diff --git a/meta/recipes-support/gmp/gmp_6.0.0.bb b/meta/recipes-support/gmp/gmp_6.0.0.bb index 6218491142..19b63e5683 100644 --- a/meta/recipes-support/gmp/gmp_6.0.0.bb +++ b/meta/recipes-support/gmp/gmp_6.0.0.bb @@ -1,14 +1,33 @@ require gmp.inc -LICENSE="GPLv2 | LGPLv3" + +LICENSE="GPLv2+ | LGPLv3+" + REVISION="a" + LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ -" -SRC_URI_append = " file://use-includedir.patch \ - file://append_user_provided_flags.patch \ - file://gmp-6.0.0-ppc64.patch \ + file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ " +SRC_URI += "file://configure.patch \ + file://amd64.patch \ + file://use-includedir.patch \ + file://append_user_provided_flags.patch \ + file://gmp-6.0.0-ppc64.patch \ + " SRC_URI[md5sum] = "b7ff2d88cae7f8085bd5006096eed470" SRC_URI[sha256sum] = "7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf" + +acpaths = "" + +EXTRA_OECONF += " --enable-cxx=detect" + +PACKAGES =+ "libgmpxx" +FILES_libgmpxx = "${libdir}/libgmpxx${SOLIBS}" + +do_install_append_class-target() { + sed -i "s|--sysroot=${STAGING_DIR_HOST}||g" ${D}${includedir}/gmp.h +} + +SSTATE_SCAN_FILES += "gmp.h" + -- cgit 1.2.3-korg