summaryrefslogtreecommitdiff
path: root/recipes/gmp
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gmp')
-rw-r--r--recipes/gmp/files/sh4-asmfix.patch26
-rw-r--r--recipes/gmp/files/x86-fat.diff122
-rw-r--r--recipes/gmp/gmp-4.1.2/amd64.patch16
-rw-r--r--recipes/gmp/gmp-4.1.2/configure.patch864
-rw-r--r--recipes/gmp/gmp-4.1.2/gcc-compile.patch72
-rw-r--r--recipes/gmp/gmp-4.1.4/amd64.patch14
-rw-r--r--recipes/gmp/gmp-4.1.4/configure.patch837
-rw-r--r--recipes/gmp/gmp-4.2.1/amd64.patch14
-rw-r--r--recipes/gmp/gmp-4.2.1/configure.patch195
-rw-r--r--recipes/gmp/gmp-4.2.2/02_noexec-stack.diff74
-rw-r--r--recipes/gmp/gmp-4.2.2/03_gnu89-inline.diff23
-rw-r--r--recipes/gmp/gmp-4.2.2/amd64.patch14
-rw-r--r--recipes/gmp/gmp-4.2.2/configure.patch207
-rw-r--r--recipes/gmp/gmp-4.2.2/mpf_set_str_c.diff38
-rw-r--r--recipes/gmp/gmp-4.2.4/amd64.patch14
-rw-r--r--recipes/gmp/gmp-4.2.4/configure.patch195
-rw-r--r--recipes/gmp/gmp-canadian_4.2.4.bb24
-rw-r--r--recipes/gmp/gmp-native.inc23
-rw-r--r--recipes/gmp/gmp-native_4.1.2.bb2
-rw-r--r--recipes/gmp/gmp-native_4.2.1.bb2
-rw-r--r--recipes/gmp/gmp-native_4.2.2.bb2
-rw-r--r--recipes/gmp/gmp-native_4.2.4.bb2
-rw-r--r--recipes/gmp/gmp.inc18
-rw-r--r--recipes/gmp/gmp_4.1.2.bb3
-rw-r--r--recipes/gmp/gmp_4.1.4.bb5
-rw-r--r--recipes/gmp/gmp_4.2.1.bb6
-rw-r--r--recipes/gmp/gmp_4.2.2.bb8
-rw-r--r--recipes/gmp/gmp_4.2.4.bb5
28 files changed, 2825 insertions, 0 deletions
diff --git a/recipes/gmp/files/sh4-asmfix.patch b/recipes/gmp/files/sh4-asmfix.patch
new file mode 100644
index 0000000000..1a01f61533
--- /dev/null
+++ b/recipes/gmp/files/sh4-asmfix.patch
@@ -0,0 +1,26 @@
+--- gmp-4.1.4/mpn/sh/add_n.s 2005/11/17 08:44:00 1.1
++++ gmp-4.1.4/mpn/sh/add_n.s 2005/11/17 08:18:57
+@@ -29,8 +29,8 @@
+
+ .text
+ .align 2
+- .global ___gmpn_add_n
+-___gmpn_add_n:
++ .global __gmpn_add_n
++__gmpn_add_n:
+ mov #0,r3 ! clear cy save reg
+
+ Loop: mov.l @r5+,r1
+--- gmp-4.1.4/mpn/sh/sub_n.s 2005/11/17 08:44:04 1.1
++++ gmp-4.1.4/mpn/sh/sub_n.s 2005/11/17 08:18:59
+@@ -29,8 +29,8 @@
+
+ .text
+ .align 2
+- .global ___gmpn_sub_n
+-___gmpn_sub_n:
++ .global __gmpn_sub_n
++__gmpn_sub_n:
+ mov #0,r3 ! clear cy save reg
+
+ Loop: mov.l @r5+,r1
diff --git a/recipes/gmp/files/x86-fat.diff b/recipes/gmp/files/x86-fat.diff
new file mode 100644
index 0000000000..2a54622a26
--- /dev/null
+++ b/recipes/gmp/files/x86-fat.diff
@@ -0,0 +1,122 @@
+See:
+
+ http://gmplib.org/patches/x86-fat.diff
+ http://gmplib.org/list-archives/gmp-bugs/2006-October/000579.html
+ http://gmplib.org/#BUGREPORTS
+
+Removed the configure part of the patch since we patch configure.in. It was
+only needed for FAT binaries anyway and this is being included to fix
+linking errors.
+
+Index: mpn/generic/addsub_n.c
+===================================================================
+RCS file: /home/cvsfiles/gmp42/mpn/generic/addsub_n.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -p -2 -r1.1 -r1.2
+*** mpn/generic/addsub_n.c 14 Mar 2006 15:57:54 -0000 1.1
+--- mpn/generic/addsub_n.c 15 May 2006 22:38:42 -0000 1.2
+***************
+*** 1,5 ****
+ /* mpn_addsub_n -- Add and Subtract two limb vectors of equal, non-zero length.
+
+! Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This file is part of the GNU MP Library.
+--- 1,5 ----
+ /* mpn_addsub_n -- Add and Subtract two limb vectors of equal, non-zero length.
+
+! Copyright 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
+
+ This file is part of the GNU MP Library.
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 59,63 ****
+ {
+ this_n = MIN (n - off, PART_SIZE);
+! #if HAVE_NATIVE_mpn_add_nc || !HAVE_NATIVE_mpn_add_n
+ acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo);
+ #else
+--- 59,63 ----
+ {
+ this_n = MIN (n - off, PART_SIZE);
+! #if HAVE_NATIVE_mpn_add_nc
+ acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo);
+ #else
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 65,69 ****
+ acyo = acyn + mpn_add_1 (r1p + off, r1p + off, this_n, acyo);
+ #endif
+! #if HAVE_NATIVE_mpn_sub_nc || !HAVE_NATIVE_mpn_sub_n
+ scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo);
+ #else
+--- 65,69 ----
+ acyo = acyn + mpn_add_1 (r1p + off, r1p + off, this_n, acyo);
+ #endif
+! #if HAVE_NATIVE_mpn_sub_nc
+ scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo);
+ #else
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 82,86 ****
+ {
+ this_n = MIN (n - off, PART_SIZE);
+! #if HAVE_NATIVE_mpn_sub_nc || !HAVE_NATIVE_mpn_sub_n
+ scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo);
+ #else
+--- 82,86 ----
+ {
+ this_n = MIN (n - off, PART_SIZE);
+! #if HAVE_NATIVE_mpn_sub_nc
+ scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo);
+ #else
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 88,92 ****
+ scyo = scyn + mpn_sub_1 (r2p + off, r2p + off, this_n, scyo);
+ #endif
+! #if HAVE_NATIVE_mpn_add_nc || !HAVE_NATIVE_mpn_add_n
+ acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo);
+ #else
+--- 88,92 ----
+ scyo = scyn + mpn_sub_1 (r2p + off, r2p + off, this_n, scyo);
+ #endif
+! #if HAVE_NATIVE_mpn_add_nc
+ acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo);
+ #else
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 98,102 ****
+ else
+ {
+! /* r1 and r2 are identical to s1 and s2 (r1==s1 and r2=s2 or vice versa)
+ Need temporary storage. */
+ mp_limb_t tp[PART_SIZE];
+--- 98,102 ----
+ else
+ {
+! /* r1 and r2 are identical to s1 and s2 (r1==s1 and r2==s2 or vice versa)
+ Need temporary storage. */
+ mp_limb_t tp[PART_SIZE];
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 106,110 ****
+ {
+ this_n = MIN (n - off, PART_SIZE);
+! #if HAVE_NATIVE_mpn_add_nc || !HAVE_NATIVE_mpn_add_n
+ acyo = mpn_add_nc (tp, s1p + off, s2p + off, this_n, acyo);
+ #else
+--- 106,110 ----
+ {
+ this_n = MIN (n - off, PART_SIZE);
+! #if HAVE_NATIVE_mpn_add_nc
+ acyo = mpn_add_nc (tp, s1p + off, s2p + off, this_n, acyo);
+ #else
+*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp
+*** 112,116 ****
+ acyo = acyn + mpn_add_1 (tp, tp, this_n, acyo);
+ #endif
+! #if HAVE_NATIVE_mpn_sub_nc || !HAVE_NATIVE_mpn_sub_n
+ scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo);
+ #else
+--- 112,116 ----
+ acyo = acyn + mpn_add_1 (tp, tp, this_n, acyo);
+ #endif
+! #if HAVE_NATIVE_mpn_sub_nc
+ scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo);
+ #else
diff --git a/recipes/gmp/gmp-4.1.2/amd64.patch b/recipes/gmp/gmp-4.1.2/amd64.patch
new file mode 100644
index 0000000000..bbede7fcc7
--- /dev/null
+++ b/recipes/gmp/gmp-4.1.2/amd64.patch
@@ -0,0 +1,16 @@
+Index: gmp-4.1.2/longlong.h
+===================================================================
+--- gmp-4.1.2.orig/longlong.h 2005-06-24 13:38:06.787570452 -0700
++++ gmp-4.1.2/longlong.h 2005-06-24 13:38:31.539556496 -0700
+@@ -715,8 +715,10 @@
+ } while (0)
+ #define count_trailing_zeros(count, x) \
+ do { \
++ UDItype __cbtmp; \
+ ASSERT ((x) != 0); \
+- __asm__ ("bsfq %1,%0" : "=r" (count) : "rm" ((UDItype)(x))); \
++ __asm__ ("bsfq %1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \
++ (count) = __cbtmp; \
+ } while (0)
+ #endif /* x86_64 */
+
diff --git a/recipes/gmp/gmp-4.1.2/configure.patch b/recipes/gmp/gmp-4.1.2/configure.patch
new file mode 100644
index 0000000000..94ad97e919
--- /dev/null
+++ b/recipes/gmp/gmp-4.1.2/configure.patch
@@ -0,0 +1,864 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- gmp-4.1.2/mpfr/Makefile.am~configure 2002-05-15 20:27:52.000000000 -0400
++++ gmp-4.1.2/mpfr/Makefile.am 2004-01-25 12:53:19.000000000 -0500
+@@ -28,7 +28,7 @@
+ SUBDIRS = tests
+
+ INCLUDES = -I$(top_srcdir)
+-CFLAGS = @MPFR_CFLAGS@
++AM_CFLAGS = @MPFR_CFLAGS@
+ LIBS = @MPFR_LIBS@
+
+ if WANT_MPFR
+--- gmp-4.1.2/mpfr/tests/Makefile.am~configure 2002-11-24 17:00:42.000000000 -0500
++++ gmp-4.1.2/mpfr/tests/Makefile.am 2004-01-25 12:53:19.000000000 -0500
+@@ -22,7 +22,7 @@
+ AUTOMAKE_OPTIONS = gnu no-dependencies $(top_builddir)/ansi2knr
+
+ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/mpfr
+-CFLAGS = @MPFR_CFLAGS@
++AM_CFLAGS = @MPFR_CFLAGS@
+ LIBS = @MPFR_LIBS@
+
+ LDADD = ../libmpfr.a $(top_builddir)/libgmp.la
+--- gmp-4.1.2/configure.in~configure 2002-12-23 15:52:09.000000000 -0500
++++ gmp-4.1.2/configure.in 2004-01-25 12:53:19.000000000 -0500
+@@ -26,15 +26,16 @@
+
+
+ AC_REVISION($Revision: 1.425.2.17 $)
+-AC_PREREQ(2.52)
+-AC_INIT(gmp-impl.h)
+-m4_pattern_forbid([^[ \t]*GMP_])
+-m4_pattern_forbid([^[ \t]*MPFR_CONFIGS])
+-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)
++AC_PREREQ(2.57)
++AC_INIT
++AC_CONFIG_SRCDIR([gmp-impl.h])
++
++
++
++
++
++
++
+
+ # If --target is not used then $target_alias is empty, but if say
+ # "./configure athlon-pc-freebsd3.5" is used, then all three of
+@@ -56,7 +57,7 @@
+ GMP_DEFINE_RAW("define_not_for_expansion(\`HAVE_HOST_CPU_$tmp_host')", POST)
+
+ AM_INIT_AUTOMAKE(gmp, GMP_VERSION)
+-AM_CONFIG_HEADER(config.h:config.in)
++AC_CONFIG_HEADERS([config.h:config.in])
+ AM_MAINTAINER_MODE
+
+
+@@ -201,7 +202,7 @@
+ # 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.
+ #
+@@ -288,7 +289,7 @@
+ # 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"
+@@ -1010,7 +1011,7 @@
+ CFLAGS_or_unset=${CFLAGS-'(unset)'}
+ CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ configure:__line__: User:
+ ABI=$ABI
+ CC=$CC
+@@ -1322,18 +1323,18 @@
+
+ # 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, if desired.
+ want_cxx=no
++AC_PROG_CXX
+ if test $enable_cxx != no; then
+ test_CXXFLAGS=${CXXFLAGS+set}
+- AC_PROG_CXX
+
+- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
+ cxxflags_ac_prog_cxx=$CXXFLAGS
+ cxxflags_list=ac_prog_cxx
+
+@@ -1409,7 +1410,7 @@
+ fi
+
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ configure:__line__: Decided:
+ ABI=$ABI
+ CC=$CC
+@@ -1651,9 +1652,9 @@
+
+ # FIXME: Autoconf 2.52 AC_C_BIGENDIAN bombs when cross compiling, but in the
+ # future the probes will be better and this override can be removed.
+-if test "$cross_compiling" = yes; then
+- ac_cv_c_bigendian=unknown
+-fi
++#if test "$cross_compiling" = yes; then
++# ac_cv_c_bigendian=unknown
++#fi
+ AC_C_BIGENDIAN
+ # Enhancement: In the future AC_C_BIGENDIAN will accept these actions as
+ # parameters.
+@@ -2094,7 +2095,7 @@
+
+ # Configs for demos/calc directory
+ #
+-# AC_SUBST is used here since with AM_CONFIG_HEADER automake would put
++# AC_SUBST is used here since with AC_CONFIG_HEADERS([]) automake would put
+ # demos/calc in the default $(DEFAULT_INCLUDES) for every directory,
+ # which would look very strange. Likewise demos/expr below.
+ #
+@@ -2133,7 +2134,7 @@
+ # FIXME: Upcoming version of autoconf/automake may not like broken lines.
+ # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
+
+-AC_OUTPUT(Makefile \
++AC_CONFIG_FILES([Makefile \
+ mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \
+ mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \
+ tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \
+@@ -2143,4 +2144,5 @@
+ mpfr/Makefile mpfr/tests/Makefile \
+ tune/Makefile \
+ demos/Makefile demos/calc/Makefile demos/expr/Makefile \
+- gmp.h:gmp-h.in mp.h:mp-h.in)
++ gmp.h:gmp-h.in mp.h:mp-h.in])
++AC_OUTPUT
+--- gmp-4.1.2/acinclude.m4~configure 2002-09-07 20:02:19.000000000 -0400
++++ gmp-4.1.2/acinclude.m4 2004-01-25 12:54:39.000000000 -0500
+@@ -21,10 +21,10 @@
+ dnl MA 02111-1307, USA.
+
+
+-define(X86_PATTERN,
++define([X86_PATTERN],
+ [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-*]])
+
+-define(POWERPC64_PATTERN,
++define([POWERPC64_PATTERN],
+ [[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-*]])
+
+
+@@ -32,7 +32,7 @@
+ dnl ----------------------
+ dnl Strip entries */subdir from $path.
+
+-define(GMP_STRIP_PATH,
++define([GMP_STRIP_PATH],
+ [tmp_path=
+ for i in $path; do
+ case $i in
+@@ -53,7 +53,7 @@
+ dnl GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB starts as a dummy, but gets
+ dnl redefined in GMP_C_SIZES when the right value is known.
+
+-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]
+ GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB
+@@ -61,7 +61,7 @@
+ #include "$srcdir/gmp-h.in"]
+ ])
+
+-define(GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB,
++define([GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB],
+ [[#define __GMP_BITS_PER_MP_LIMB 123 /* dummy for GMP_NUMB_BITS etc */
+ #define GMP_LIMB_BITS 123]])
+
+@@ -72,7 +72,7 @@
+ 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[ ]+],[]),
+@@ -86,7 +86,7 @@
+ 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
+ ifelse(m4_eval(GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in) > 0),1,
+@@ -97,13 +97,13 @@
+ dnl ------------------------------
+ dnl Setup an AC_SUBST of HAVE_FUNC_01 for each argument.
+
+-AC_DEFUN(GMP_SUBST_CHECK_FUNCS,
++AC_DEFUN([GMP_SUBST_CHECK_FUNCS],
+ [m4_if([$1],,,
+ [_GMP_SUBST_CHECK_FUNCS(ac_cv_func_[$1],HAVE_[]m4_translit([$1],[a-z],[A-Z])_01)
+ GMP_SUBST_CHECK_FUNCS(m4_shift($@))])])
+
+ dnl Called: _GMP_SUBST_CHECK_FUNCS(cachvar,substvar)
+-AC_DEFUN(_GMP_SUBST_CHECK_FUNCS,
++AC_DEFUN([_GMP_SUBST_CHECK_FUNCS],
+ [case $[$1] in
+ yes) AC_SUBST([$2],1) ;;
+ no) [$2]=0 ;;
+@@ -115,14 +115,14 @@
+ dnl ----------------------------------
+ dnl Setup an AC_SUBST of HAVE_FOO_H_01 for each argument.
+
+-AC_DEFUN(GMP_SUBST_CHECK_HEADERS,
++AC_DEFUN([GMP_SUBST_CHECK_HEADERS],
+ [m4_if([$1],,,
+ [_GMP_SUBST_CHECK_HEADERS(ac_cv_header_[]m4_translit([$1],[./],[__]),
+ HAVE_[]m4_translit([$1],[a-z./],[A-Z__])_01)
+ GMP_SUBST_CHECK_HEADERS(m4_shift($@))])])
+
+ dnl Called: _GMP_SUBST_CHECK_HEADERS(cachvar,substvar)
+-AC_DEFUN(_GMP_SUBST_CHECK_HEADERS,
++AC_DEFUN([_GMP_SUBST_CHECK_HEADERS],
+ [case $[$1] in
+ yes) AC_SUBST([$2],1) ;;
+ no) [$2]=0 ;;
+@@ -145,12 +145,12 @@
+ dnl would test whether $major.$minor.$subminor is greater than or equal to
+ dnl 10.3.1.
+
+-AC_DEFUN(GMP_COMPARE_GE,
++AC_DEFUN([GMP_COMPARE_GE],
+ [gmp_compare_ge=no
+ GMP_COMPARE_GE_INTERNAL($@)
+ ])
+
+-AC_DEFUN(GMP_COMPARE_GE_INTERNAL,
++AC_DEFUN([GMP_COMPARE_GE_INTERNAL],
+ [ifelse(len([$3]),0,
+ [if test -n "$1" && test "$1" -ge $2; then
+ gmp_compare_ge=yes
+@@ -184,7 +184,7 @@
+ dnl for instance to random.o (and others) on vax-dec-ultrix4.5. Naturally
+ dnl a user-selected $AR_FLAGS is left unchanged.
+
+-AC_DEFUN(GMP_PROG_AR,
++AC_DEFUN([GMP_PROG_AR],
+ [dnl Want to establish $AR before libtool initialization.
+ AC_BEFORE([$0],[AC_PROG_LIBTOOL])
+ gmp_user_AR=$AR
+@@ -212,7 +212,7 @@
+ dnl CC_FOR_BUILD is used without testing. CC_FOR_BUILD is the new name for
+ dnl a build system compiler, see configfsf.guess.
+
+-AC_DEFUN(GMP_PROG_HOST_CC,
++AC_DEFUN([GMP_PROG_HOST_CC],
+ [AC_BEFORE([$0],[AC_PROG_LIBTOOL])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([for HOST_CC build system compiler],
+@@ -255,7 +255,7 @@
+ dnl FIXME: This can be removed and just AM_PROG_LEX used, one that macro
+ dnl works properly.
+
+-AC_DEFUN(GMP_PROG_LEX,
++AC_DEFUN([GMP_PROG_LEX],
+ [AC_REQUIRE([AC_PROG_LEX])
+ if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+@@ -273,7 +273,7 @@
+ dnl
+ dnl See mpn/asm-defs.m4 for details on the known bad m4s.
+
+-AC_DEFUN(GMP_PROG_M4,
++AC_DEFUN([GMP_PROG_M4],
+ [AC_ARG_VAR(M4,[m4 macro processor])
+ AC_CACHE_CHECK([for suitable m4],
+ gmp_cv_prog_m4,
+@@ -340,7 +340,7 @@
+ dnl Enhancement: Maybe this could be in GMP_PROG_M4, and attempt to prefer
+ dnl an m4 with a working m4wrap, if it can be found.
+
+-AC_DEFUN(GMP_M4_M4WRAP_SPURIOUS,
++AC_DEFUN([GMP_M4_M4WRAP_SPURIOUS],
+ [AC_REQUIRE([GMP_PROG_M4])
+ AC_CACHE_CHECK([if m4wrap produces spurious output],
+ gmp_cv_m4_m4wrap_spurious,
+@@ -374,7 +374,7 @@
+ dnl A user-selected $NM is always left unchanged. AC_PROG_NM is still run
+ dnl to get the "checking" message printed though.
+
+-AC_DEFUN(GMP_PROG_NM,
++AC_DEFUN([GMP_PROG_NM],
+ [dnl Make sure we're the first to call AC_PROG_NM, so our extra flags are
+ dnl used by everyone.
+ AC_BEFORE([$0],[AC_PROG_NM])
+@@ -426,7 +426,7 @@
+ dnl will run is that a plain native "./configure" falls back on ABI=32, but
+ dnl ABI=64 is still available as a cross-compile.
+
+-AC_DEFUN(GMP_PROG_CC_WORKS,
++AC_DEFUN([GMP_PROG_CC_WORKS],
+ [AC_MSG_CHECKING([compiler $1])
+ cat >conftest.c <<EOF
+
+@@ -481,7 +481,7 @@
+ dnl cache the result. The same "ifndef" style test is used, to avoid
+ dnl problems with syntax checking cpp's used on NeXT and Apple systems.
+
+-AC_DEFUN(GMP_PROG_CC_IS_GNU,
++AC_DEFUN([GMP_PROG_CC_IS_GNU],
+ [cat >conftest.c <<EOF
+ #ifndef __GNUC__
+ choke me
+@@ -508,7 +508,7 @@
+ dnl there is one then it's well hidden in xlc 3.1 on AIX 4.3, so just grep
+ dnl the man page printed when xlc is invoked with no arguments.
+
+-AC_DEFUN(GMP_PROG_CC_IS_XLC,
++AC_DEFUN([GMP_PROG_CC_IS_XLC],
+ [gmp_command="$1 2>&1 | grep xlc >/dev/null"
+ if AC_TRY_EVAL(gmp_command); then
+ AC_MSG_CHECKING([whether $1 is xlc])
+@@ -527,7 +527,7 @@
+ dnl This test might be repeated for different compilers, so the result is
+ dnl not cached.
+
+-AC_DEFUN(GMP_HPC_HPPA_2_0,
++AC_DEFUN([GMP_HPC_HPPA_2_0],
+ [AC_MSG_CHECKING([whether HP compiler $1 is good for 64-bits])
+ # Bad compiler output:
+ # ccom: HP92453-01 G.10.32.05 HP C Compiler
+@@ -571,7 +571,7 @@
+ dnl
+ dnl There's no caching here, so that different CC's can be tested.
+
+-AC_DEFUN(GMP_GCC_VERSION_GE,
++AC_DEFUN([GMP_GCC_VERSION_GE],
+ [tmp_version=`($1 --version) 2>&AC_FD_CC`
+ echo "$1 --version '$tmp_version'" >&AC_FD_CC
+
+@@ -608,7 +608,7 @@
+ dnl size==1 case in mpn/generic/mode1o.c, and this shows up in
+ dnl tests/mpz/t-jac.c as a wrong result from mpz_kronecker_ui.
+
+-AC_DEFUN(GMP_GCC_ARM_UMODSI,
++AC_DEFUN([GMP_GCC_ARM_UMODSI],
+ [AC_MSG_CHECKING([whether ARM gcc unsigned division works])
+ tmp_version=`$1 --version`
+ echo "$tmp_version" >&AC_FD_CC
+@@ -635,7 +635,7 @@
+ dnl This macro is used only once, after finalizing a choice of CC, so the
+ dnl result is cached.
+
+-AC_DEFUN(GMP_GCC_MARCH_PENTIUMPRO,
++AC_DEFUN([GMP_GCC_MARCH_PENTIUMPRO],
+ [AC_CACHE_CHECK([whether gcc -march=pentiumpro is good],
+ gmp_cv_gcc_march_pentiumpro,
+ [GMP_GCC_VERSION_GE([$1], 2,95,4)
+@@ -659,7 +659,7 @@
+ dnl gets rearranged or rewritten so the ICE doesn't happen then this can be
+ dnl removed.
+
+-AC_DEFUN(GMP_GCC_M68K_OPTIMIZE,
++AC_DEFUN([GMP_GCC_M68K_OPTIMIZE],
+ [case $host in
+ m68*-*-*)
+ if test $1 = gcc; then
+@@ -681,7 +681,7 @@
+ dnl gcc 2.95 accepts -mabi=32 but it only works on irix5, on irix6 it gives
+ dnl "cc1: The -mabi=32 support does not work yet".
+
+-AC_DEFUN(GMP_GCC_MIPS_O32,
++AC_DEFUN([GMP_GCC_MIPS_O32],
+ [AC_MSG_CHECKING([whether gcc supports o32])
+ echo 'int x;' >conftest.c
+ echo "$1 -mabi=32 -c conftest.c" >&AC_FD_CC
+@@ -716,7 +716,7 @@
+ dnl watch for that and decide against the option in that case, to avoid
+ dnl confusing the user.
+
+-AC_DEFUN(GMP_GCC_NO_CPP_PRECOMP,
++AC_DEFUN([GMP_GCC_NO_CPP_PRECOMP],
+ [if test "$ccbase" = gcc; then
+ AC_MSG_CHECKING([compiler $2 $3 -no-cpp-precomp])
+ result=no
+@@ -752,7 +752,7 @@
+ dnl This is intended for use on alpha, since only recent versions of gas
+ dnl accept -mev67, but there's nothing here that's alpha specific.
+
+-AC_DEFUN(GMP_GCC_WA_MCPU,
++AC_DEFUN([GMP_GCC_WA_MCPU],
+ [AC_MSG_CHECKING([assembler $1 $2])
+ result=no
+ cat >conftest.c <<EOF
+@@ -783,7 +783,7 @@
+ dnl This test is designed to be run repeatedly with different cxx/cxxflags
+ dnl selections, so the result is not cached.
+
+-AC_DEFUN(GMP_PROG_CXX_WORKS,
++AC_DEFUN([GMP_PROG_CXX_WORKS],
+ [AC_MSG_CHECKING([C++ compiler $1])
+ cat >conftest.cc <<EOF
+ #include <iostream>
+@@ -817,7 +817,7 @@
+ dnl FIXME: The generated config.m4 doesn't get recreated by config.status.
+ dnl Maybe the relevant "echo"s should go through AC_CONFIG_COMMANDS.
+
+-AC_DEFUN(GMP_INIT,
++AC_DEFUN([GMP_INIT],
+ [ifelse([$1], , gmp_configm4=config.m4, gmp_configm4="[$1]")
+ gmp_tmpconfigm4=cnfm4.tmp
+ gmp_tmpconfigm4i=cnfm4i.tmp
+@@ -834,7 +834,9 @@
+ echo ["define(<CONFIG_TOP_SRCDIR>,<\`$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
+ ])
+
+
+@@ -855,7 +857,7 @@
+ dnl having a whole file as a macro argument would overflow the string space
+ dnl on BSD m4.
+
+-AC_DEFUN(GMP_FINISH,
++AC_DEFUN([GMP_FINISH],
+ [AC_REQUIRE([GMP_INIT])
+ echo "creating $gmp_configm4"
+ echo ["d""nl $gmp_configm4. Generated automatically by configure."] > $gmp_configm4
+@@ -889,7 +891,7 @@
+ dnl GMP_INCLUDE_MPN(`x86/x86-defs.m4')
+ dnl
+
+-AC_DEFUN(GMP_INCLUDE_MPN,
++AC_DEFUN([GMP_INCLUDE_MPN],
+ [AC_REQUIRE([GMP_INIT])
+ echo ["include_mpn(\`$1')"] >> $gmp_tmpconfigm4i
+ ])
+@@ -905,7 +907,7 @@
+ dnl create file config.m4. config.m4 uses `<' and '>' as quote characters
+ dnl for all defines.
+
+-AC_DEFUN(GMP_DEFINE,
++AC_DEFUN([GMP_DEFINE],
+ [AC_REQUIRE([GMP_INIT])
+ echo ['define(<$1>, <$2>)'] >>ifelse([$3], [POST],
+ $gmp_tmpconfigm4p, $gmp_tmpconfigm4)
+@@ -920,7 +922,7 @@
+ dnl directives inserted by GMP_INCLUDE. Don't forget to invoke GMP_FINISH
+ dnl to create file config.m4.
+
+-AC_DEFUN(GMP_DEFINE_RAW,
++AC_DEFUN([GMP_DEFINE_RAW],
+ [AC_REQUIRE([GMP_INIT])
+ echo [$1] >> ifelse([$2], [POST], $gmp_tmpconfigm4p, $gmp_tmpconfigm4)
+ ])
+@@ -938,7 +940,7 @@
+ dnl This is not unlike AC_TRY_COMPILE, but there's no default includes or
+ dnl anything in "asm-code", everything wanted must be given explicitly.
+
+-AC_DEFUN(GMP_TRY_ASSEMBLE,
++AC_DEFUN([GMP_TRY_ASSEMBLE],
+ [cat >conftest.s <<EOF
+ [$1]
+ EOF
+@@ -960,7 +962,7 @@
+ dnl --------------------
+ dnl Should a label have a colon or not?
+
+-AC_DEFUN(GMP_ASM_LABEL_SUFFIX,
++AC_DEFUN([GMP_ASM_LABEL_SUFFIX],
+ [AC_CACHE_CHECK([what assembly label suffix to use],
+ gmp_cv_asm_label_suffix,
+ [case $host in
+@@ -984,7 +986,7 @@
+ dnl in particular that grepping doesn't work with SunOS 4 native grep since
+ dnl that grep seems to have trouble with '\0's in files.
+
+-AC_DEFUN(GMP_ASM_UNDERSCORE,
++AC_DEFUN([GMP_ASM_UNDERSCORE],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_REQUIRE([GMP_ASM_GLOBL])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1045,7 +1047,7 @@
+ dnl -----------------
+ dnl Is parameter to `.align' logarithmic?
+
+-AC_DEFUN(GMP_ASM_ALIGN_LOG,
++AC_DEFUN([GMP_ASM_ALIGN_LOG],
+ [AC_REQUIRE([GMP_ASM_GLOBL])
+ AC_REQUIRE([GMP_ASM_DATA])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1103,7 +1105,7 @@
+ dnl The warning from solaris 2.8 is supressed to stop anyone worrying that
+ dnl something might be wrong.
+
+-AC_DEFUN(GMP_ASM_ALIGN_FILL_0x90,
++AC_DEFUN([GMP_ASM_ALIGN_FILL_0x90],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the .align directive accepts an 0x90 fill in .text],
+ gmp_cv_asm_align_fill_0x90,
+@@ -1127,7 +1129,7 @@
+ dnl GMP_ASM_TEXT
+ dnl ------------
+
+-AC_DEFUN(GMP_ASM_TEXT,
++AC_DEFUN([GMP_ASM_TEXT],
+ [AC_CACHE_CHECK([how to switch to text section],
+ gmp_cv_asm_text,
+ [case $host in
+@@ -1144,7 +1146,7 @@
+ dnl ------------
+ dnl Can we say `.data'?
+
+-AC_DEFUN(GMP_ASM_DATA,
++AC_DEFUN([GMP_ASM_DATA],
+ [AC_CACHE_CHECK([how to switch to data section],
+ gmp_cv_asm_data,
+ [case $host in
+@@ -1172,7 +1174,7 @@
+ dnl where foo is the object file. Might need to check for that if we use
+ dnl RODATA there.
+
+-AC_DEFUN(GMP_ASM_RODATA,
++AC_DEFUN([GMP_ASM_RODATA],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_REQUIRE([GMP_ASM_DATA])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1229,7 +1231,7 @@
+ dnl -------------
+ dnl Can we say `.global'?
+
+-AC_DEFUN(GMP_ASM_GLOBL,
++AC_DEFUN([GMP_ASM_GLOBL],
+ [AC_CACHE_CHECK([how to export a symbol],
+ gmp_cv_asm_globl,
+ [case $host in
+@@ -1245,7 +1247,7 @@
+ dnl ------------------
+ dnl Do we need something after `.global symbol'?
+
+-AC_DEFUN(GMP_ASM_GLOBL_ATTR,
++AC_DEFUN([GMP_ASM_GLOBL_ATTR],
+ [AC_CACHE_CHECK([if the export directive needs an attribute],
+ gmp_cv_asm_globl_attr,
+ [case $host in
+@@ -1276,7 +1278,7 @@
+ dnl letting the problem go unnoticed. tests/mpn/t-asmtype.c aims to check
+ dnl for it.
+
+-AC_DEFUN(GMP_ASM_TYPE,
++AC_DEFUN([GMP_ASM_TYPE],
+ [AC_CACHE_CHECK([for assembler .type directive],
+ gmp_cv_asm_type,
+ [gmp_cv_asm_type=
+@@ -1298,7 +1300,7 @@
+ dnl ------------
+ dnl Can we say `.size'?
+
+-AC_DEFUN(GMP_ASM_SIZE,
++AC_DEFUN([GMP_ASM_SIZE],
+ [AC_CACHE_CHECK([for assembler .size directive],
+ gmp_cv_asm_size,
+ [gmp_cv_asm_size=
+@@ -1341,7 +1343,7 @@
+ dnl HP-UX nm prints an error message (though seems to give a 0 exit) if
+ dnl there's no symbols at all in an object file, hence the use of "dummy".
+
+-AC_DEFUN(GMP_ASM_LSYM_PREFIX,
++AC_DEFUN([GMP_ASM_LSYM_PREFIX],
+ [AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+ AC_REQUIRE([GMP_PROG_NM])
+ AC_CACHE_CHECK([what prefix to use for a local label],
+@@ -1386,7 +1388,7 @@
+ dnl -----------
+ dnl How to define a 32-bit word.
+
+-AC_DEFUN(GMP_ASM_W32,
++AC_DEFUN([GMP_ASM_W32],
+ [AC_REQUIRE([GMP_ASM_DATA])
+ AC_REQUIRE([GMP_ASM_GLOBL])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1443,7 +1445,7 @@
+ dnl %mm1, %mm0"). It seems more trouble than it's worth to work around
+ dnl this in the code, so just detect and reject.
+
+-AC_DEFUN(GMP_ASM_X86_MMX,
++AC_DEFUN([GMP_ASM_X86_MMX],
+ [AC_CACHE_CHECK([if the assembler knows about MMX instructions],
+ gmp_cv_asm_x86_mmx,
+ [GMP_TRY_ASSEMBLE(
+@@ -1495,7 +1497,7 @@
+ dnl GMP_ASM_X86_SHLDL_CL
+ dnl --------------------
+
+-AC_DEFUN(GMP_ASM_X86_SHLDL_CL,
++AC_DEFUN([GMP_ASM_X86_SHLDL_CL],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the assembler takes cl with shldl],
+ gmp_cv_asm_x86_shldl_cl,
+@@ -1522,7 +1524,7 @@
+ dnl it's all GMP_ASM_TEXT gives currently. Actually ".text" probably isn't
+ dnl needed at all, at least for just checking instruction syntax.
+
+-AC_DEFUN(GMP_ASM_X86_SSE2,
++AC_DEFUN([GMP_ASM_X86_SSE2],
+ [AC_CACHE_CHECK([if the assembler knows about SSE2 instructions],
+ gmp_cv_asm_x86_sse2,
+ [GMP_TRY_ASSEMBLE(
+@@ -1585,7 +1587,7 @@
+ dnl to get two variables (mcount_nonpic_reg and mcount_nonpic_call say) set
+ dnl from one block of commands?
+
+-AC_DEFUN(GMP_ASM_X86_MCOUNT,
++AC_DEFUN([GMP_ASM_X86_MCOUNT],
+ [AC_REQUIRE([AC_ENABLE_SHARED])
+ AC_REQUIRE([AC_PROG_LIBTOOL])
+ AC_MSG_CHECKING([how to call x86 mcount])
+@@ -1655,7 +1657,7 @@
+ dnl instruction. It takes registers without "%", but a single operand
+ dnl "clrl %d0" only gives a warning, not an error.
+
+-AC_DEFUN(GMP_ASM_M68K_INSTRUCTION,
++AC_DEFUN([GMP_ASM_M68K_INSTRUCTION],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([assembler instruction and register style],
+ gmp_cv_asm_m68k_instruction,
+@@ -1684,7 +1686,7 @@
+ dnl GMP_ASM_M68K_ADDRESSING
+ dnl -----------------------
+
+-AC_DEFUN(GMP_ASM_M68K_ADDRESSING,
++AC_DEFUN([GMP_ASM_M68K_ADDRESSING],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_REQUIRE([GMP_ASM_M68K_INSTRUCTION])
+ AC_CACHE_CHECK([assembler addressing style],
+@@ -1721,7 +1723,7 @@
+ dnl 16-bits. This applies to the conditional branches "bcc" etc too.
+ dnl However "dbcc" etc on gas are already only as big as they need to be.
+
+-AC_DEFUN(GMP_ASM_M68K_BRANCHES,
++AC_DEFUN([GMP_ASM_M68K_BRANCHES],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([assembler shortest branches],
+ gmp_cv_asm_m68k_branches,
+@@ -1752,7 +1754,7 @@
+ dnl See also mpn/powerpc32/powerpc-defs.m4 which uses the result of this
+ dnl test.
+
+-AC_DEFUN(GMP_ASM_POWERPC_R_REGISTERS,
++AC_DEFUN([GMP_ASM_POWERPC_R_REGISTERS],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the assembler needs r on registers],
+ gmp_cv_asm_powerpc_r_registers,
+@@ -1777,7 +1779,7 @@
+ dnl
+ dnl See also mpn/sparc32/sparc-defs.m4 which uses the result of this test.
+
+-AC_DEFUN(GMP_ASM_SPARC_REGISTER,
++AC_DEFUN([GMP_ASM_SPARC_REGISTER],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the assembler accepts ".register"],
+ gmp_cv_asm_sparc_register,
+@@ -1795,7 +1797,7 @@
+ dnl GMP_C_ATTRIBUTE_CONST
+ dnl ---------------------
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_CONST,
++AC_DEFUN([GMP_C_ATTRIBUTE_CONST],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((const)) works],
+ gmp_cv_c_attribute_const,
+ [AC_TRY_COMPILE([int foo (int x) __attribute__ ((const));], ,
+@@ -1814,7 +1816,7 @@
+ dnl it's ignored. Pretend it doesn't exist in this case, to avoid that
+ dnl warning.
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_MALLOC,
++AC_DEFUN([GMP_C_ATTRIBUTE_MALLOC],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((malloc)) works],
+ gmp_cv_c_attribute_malloc,
+ [cat >conftest.c <<EOF
+@@ -1844,7 +1846,7 @@
+ dnl --------------------
+ dnl Introduced in gcc 2.2, but perhaps not in all Apple derived versions.
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_MODE,
++AC_DEFUN([GMP_C_ATTRIBUTE_MODE],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((mode (XX))) works],
+ gmp_cv_c_attribute_mode,
+ [AC_TRY_COMPILE([typedef int SItype __attribute__ ((mode (SI)));], ,
+@@ -1860,7 +1862,7 @@
+ dnl GMP_C_ATTRIBUTE_NORETURN
+ dnl ------------------------
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_NORETURN,
++AC_DEFUN([GMP_C_ATTRIBUTE_NORETURN],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((noreturn)) works],
+ gmp_cv_c_attribute_noreturn,
+ [AC_TRY_COMPILE([void foo (int x) __attribute__ ((noreturn));], ,
+@@ -1887,7 +1889,7 @@
+ dnl used doesn't have functions or anything, so even an "old" awk should
+ dnl suffice.
+
+-AC_DEFUN(GMP_C_DOUBLE_FORMAT,
++AC_DEFUN([GMP_C_DOUBLE_FORMAT],
+ [AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_PROG_AWK])
+ AC_CACHE_CHECK([format of `double' floating point],
+@@ -2089,7 +2091,7 @@
+ dnl
+ dnl FIXME: Hopefully autoconf will do this extra itself one day.
+
+-AC_DEFUN(GMP_C_INLINE,
++AC_DEFUN([GMP_C_INLINE],
+ [AC_CACHE_CHECK([for inline], gmp_cv_c_inline,
+ [gmp_cv_c_inline=no
+ for i in inline __inline__ __inline; do
+@@ -2129,7 +2131,7 @@
+ dnl "yes" is used in the cache variable if plain "restrict" works, to make
+ dnl the configure message look nicer.
+
+-AC_DEFUN(GMP_C_RESTRICT,
++AC_DEFUN([GMP_C_RESTRICT],
+ [AC_CACHE_CHECK([for restrict], gmp_cv_c_restrict,
+ [gmp_cv_c_restrict=no
+ for r in restrict __restrict__ __restrict; do
+@@ -2178,7 +2180,7 @@
+ dnl ulongs with bits=8*sizeof, so it's academic. Strange systems can
+ dnl always have the right values put in gmp-mparam.h explicitly.
+
+-AC_DEFUN(GMP_C_SIZES,
++AC_DEFUN([GMP_C_SIZES],
+ [BITS_PER_MP_LIMB=[`sed -n 's/^#define BITS_PER_MP_LIMB[ ][ ]*\([0-9]*\).*$/\1/p' $gmp_mparam_source`]
+ if test -n "$BITS_PER_MP_LIMB" \
+ && grep "^#define BYTES_PER_MP_LIMB" $gmp_mparam_source >/dev/null; then : ;
+@@ -2199,7 +2201,7 @@
+ fi
+ fi
+ AC_SUBST(BITS_PER_MP_LIMB)
+-define([GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB],
++define([[GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB]],
+ [[#define __GMP_BITS_PER_MP_LIMB $BITS_PER_MP_LIMB
+ #define GMP_LIMB_BITS $BITS_PER_MP_LIMB]])
+
+@@ -2232,7 +2234,7 @@
+ dnl or very likely by the setups for _PROTO in gmp.h. On the other hand
+ dnl this test is nice and direct, being what we're going to actually use.
+
+-AC_DEFUN(GMP_C_STDARG,
++AC_DEFUN([GMP_C_STDARG],
+ [AC_CACHE_CHECK([whether <stdarg.h> exists and works],
+ gmp_cv_c_stdarg,
+ [AC_TRY_COMPILE(
+@@ -2261,7 +2263,7 @@
+ dnl available, and also to use gmp-impl.h for the conditionals detecting
+ dnl compiler builtin alloca's.
+
+-AC_DEFUN(GMP_FUNC_ALLOCA,
++AC_DEFUN([GMP_FUNC_ALLOCA],
+ [AC_REQUIRE([GMP_HEADER_ALLOCA])
+ AC_CACHE_CHECK([for alloca (via gmp-impl.h)],
+ gmp_cv_func_alloca,
+@@ -2278,7 +2280,7 @@
+ fi
+ ])
+
+-AC_DEFUN(GMP_HEADER_ALLOCA,
++AC_DEFUN([GMP_HEADER_ALLOCA],
+ [# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+ # for constant arguments. Useless!
+ AC_CACHE_CHECK([for working alloca.h],
+@@ -2299,7 +2301,7 @@
+ dnl Decide what to do about --enable-alloca from the user.
+ dnl This is a macro so it can require GMP_FUNC_ALLOCA.
+
+-AC_DEFUN(GMP_OPTION_ALLOCA,
++AC_DEFUN([GMP_OPTION_ALLOCA],
+ [AC_REQUIRE([GMP_FUNC_ALLOCA])
+ AC_CACHE_CHECK([how to allocate temporary memory],
+ gmp_cv_option_alloca,
+@@ -2355,7 +2357,7 @@
+ dnl
+ dnl FIXME: Run a program to try this, when doing a native build.
+
+-AC_DEFUN(GMP_FUNC_SSCANF_WRITABLE_INPUT,
++AC_DEFUN([GMP_FUNC_SSCANF_WRITABLE_INPUT],
+ [AC_CACHE_CHECK([whether sscanf needs writable input],
+ gmp_cv_func_sscanf_writable_input,
+ [case $host in
+@@ -2391,7 +2393,7 @@
+ dnl not sure which 2.0.x does which), but still puts the correct null
+ dnl terminated result into the buffer.
+
+-AC_DEFUN(GMP_FUNC_VSNPRINTF,
++AC_DEFUN([GMP_FUNC_VSNPRINTF],
+ [AC_REQUIRE([GMP_C_STDARG])
+ AC_CHECK_FUNC(vsnprintf,
+ [gmp_vsnprintf_exists=yes],
+@@ -2472,7 +2474,7 @@
+ dnl ----------
+ dnl Check whether gmp.h recognises the compiler as ANSI capable.
+
+-AC_DEFUN(GMP_H_ANSI,
++AC_DEFUN([GMP_H_ANSI],
+ [AC_REQUIRE([AC_PROG_CC_STDC])
+ case $ac_cv_prog_cc_stdc in
+ no)
+@@ -2495,7 +2497,7 @@
+ dnl If the compiler has an "inline" of some sort, check whether the
+ dnl #ifdef's in gmp.h recognise it.
+
+-AC_DEFUN(GMP_H_EXTERN_INLINE,
++AC_DEFUN([GMP_H_EXTERN_INLINE],
+ [AC_REQUIRE([GMP_C_INLINE])
+ case $gmp_cv_c_inline in
+ no) ;;
+@@ -2522,7 +2524,7 @@
+ dnl Check whether the #ifdef's in gmp.h recognise when stdio.h has been
+ dnl included to get FILE.
+
+-AC_DEFUN(GMP_H_HAVE_FILE,
++AC_DEFUN([GMP_H_HAVE_FILE],
+ [AC_TRY_COMPILE(
+ [#include <stdio.h>]
+ GMP_INCLUDE_GMP_H
+@@ -2539,7 +2541,7 @@
+ dnl Check whether the #ifdef's in gmp-impl.h recognise IEEE format and
+ dnl endianness.
+
+-AC_DEFUN(GMP_IMPL_H_IEEE_FLOATS,
++AC_DEFUN([GMP_IMPL_H_IEEE_FLOATS],
+ [case $host in
+ vax*-*-*)
+ # not IEEE (neither D nor G formats are IEEE)
diff --git a/recipes/gmp/gmp-4.1.2/gcc-compile.patch b/recipes/gmp/gmp-4.1.2/gcc-compile.patch
new file mode 100644
index 0000000000..4d880123e9
--- /dev/null
+++ b/recipes/gmp/gmp-4.1.2/gcc-compile.patch
@@ -0,0 +1,72 @@
+ diff -Naur gmp-4.1.2.orig/mpf/ceilfloor.c gmp-4.1.2/mpf/ceilfloor.c
+ --- gmp-4.1.2.orig/mpf/ceilfloor.c 2001-05-10 22:31:13.000000000 +0000
+ +++ gmp-4.1.2/mpf/ceilfloor.c 2004-04-25 03:48:20.823016075 +0000
+ @@ -31,7 +31,7 @@
+ static void __gmpf_ceil_or_floor _PROTO ((REGPARM_2_1 (mpf_ptr r, mpf_srcptr u, int dir))) REGPARM_ATTR (1);
+ #define mpf_ceil_or_floor(r,u,dir) __gmpf_ceil_or_floor (REGPARM_2_1 (r, u, dir))
+
+ -static void
+ +REGPARM_ATTR (1) static void
+ mpf_ceil_or_floor (mpf_ptr r, mpf_srcptr u, int dir)
+ {
+ mp_ptr rp, up, p;
+ diff -Naur gmp-4.1.2.orig/mpq/aors.c gmp-4.1.2/mpq/aors.c
+ --- gmp-4.1.2.orig/mpq/aors.c 2001-09-01 22:41:02.000000000 +0000
+ +++ gmp-4.1.2/mpq/aors.c 2004-04-25 03:48:20.826015531 +0000
+ @@ -27,7 +27,7 @@
+ static void __gmpq_aors _PROTO ((REGPARM_3_1 (mpq_ptr w, mpq_srcptr x, mpq_srcptr y, void (*fun) _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr))))) REGPARM_ATTR (1);
+ #define mpq_aors(w,x,y,fun) __gmpq_aors (REGPARM_3_1 (w, x, y, fun))
+
+ -static void
+ +REGPARM_ATTR (1) static void
+ mpq_aors (mpq_ptr rop, mpq_srcptr op1, mpq_srcptr op2,
+ void (*fun) _PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)))
+ {
+ diff -Naur gmp-4.1.2.orig/mpz/aorsmul.c gmp-4.1.2/mpz/aorsmul.c
+ --- gmp-4.1.2.orig/mpz/aorsmul.c 2001-05-02 22:30:07.000000000 +0000
+ +++ gmp-4.1.2/mpz/aorsmul.c 2004-04-25 03:48:20.828015169 +0000
+ @@ -39,7 +39,7 @@
+ static void __gmpz_aorsmul _PROTO ((REGPARM_3_1 (mpz_ptr w, mpz_srcptr x, mpz_srcptr y, mp_size_t sub))) REGPARM_ATTR (1);
+ #define mpz_aorsmul(w,x,y,sub) __gmpz_aorsmul (REGPARM_3_1 (w, x, y, sub))
+
+ -static void
+ +REGPARM_ATTR (1) static void
+ mpz_aorsmul (mpz_ptr w, mpz_srcptr x, mpz_srcptr y, mp_size_t sub)
+ {
+ mp_size_t xsize, ysize, tsize, wsize, wsize_signed;
+ diff -Naur gmp-4.1.2.orig/mpz/aorsmul_i.c gmp-4.1.2/mpz/aorsmul_i.c
+ --- gmp-4.1.2.orig/mpz/aorsmul_i.c 2002-05-14 16:59:49.000000000 +0000
+ +++ gmp-4.1.2/mpz/aorsmul_i.c 2004-04-25 03:49:07.962471904 +0000
+ @@ -57,7 +57,7 @@
+ twos-complement negative y doesn't work, because it effectively adds an
+ extra x * 2^BITS_PER_MP_LIMB. */
+
+ -void
+ +REGPARM_ATTR (1) void
+ mpz_aorsmul_1 (mpz_ptr w, mpz_srcptr x, mp_limb_t y, mp_size_t sub)
+ {
+ mp_size_t xsize, wsize, wsize_signed, new_wsize, min_size, dsize;
+ diff -Naur gmp-4.1.2.orig/mpz/cfdiv_q_2exp.c gmp-4.1.2/mpz/cfdiv_q_2exp.c
+ --- gmp-4.1.2.orig/mpz/cfdiv_q_2exp.c 2002-02-08 21:55:17.000000000 +0000
+ +++ gmp-4.1.2/mpz/cfdiv_q_2exp.c 2004-04-25 03:48:20.830014806 +0000
+ @@ -29,7 +29,7 @@
+ static void __gmpz_cfdiv_q_2exp _PROTO ((REGPARM_3_1 (mpz_ptr w, mpz_srcptr u, unsigned long cnt, int dir))) REGPARM_ATTR (1);
+ #define cfdiv_q_2exp(w,u,cnt,dir) __gmpz_cfdiv_q_2exp (REGPARM_3_1 (w,u,cnt,dir))
+
+ -static void
+ +REGPARM_ATTR (1) static void
+ cfdiv_q_2exp (mpz_ptr w, mpz_srcptr u, unsigned long cnt, int dir)
+ {
+ mp_size_t wsize, usize, abs_usize, limb_cnt, i;
+ diff -Naur gmp-4.1.2.orig/mpz/cfdiv_r_2exp.c gmp-4.1.2/mpz/cfdiv_r_2exp.c
+ --- gmp-4.1.2.orig/mpz/cfdiv_r_2exp.c 2002-04-18 16:48:25.000000000 +0000
+ +++ gmp-4.1.2/mpz/cfdiv_r_2exp.c 2004-04-25 03:48:20.832014444 +0000
+ @@ -32,7 +32,7 @@
+ static void __gmpz_cfdiv_r_2exp _PROTO ((REGPARM_3_1 (mpz_ptr w, mpz_srcptr u, unsigned long cnt, int dir))) REGPARM_ATTR (1);
+ #define cfdiv_r_2exp(w,u,cnt,dir) __gmpz_cfdiv_r_2exp (REGPARM_3_1 (w, u, cnt, dir))
+
+ -static void
+ +REGPARM_ATTR (1) static void
+ cfdiv_r_2exp (mpz_ptr w, mpz_srcptr u, unsigned long cnt, int dir)
+ {
+ mp_size_t usize, abs_usize, limb_cnt, i;
diff --git a/recipes/gmp/gmp-4.1.4/amd64.patch b/recipes/gmp/gmp-4.1.4/amd64.patch
new file mode 100644
index 0000000000..67be9dd350
--- /dev/null
+++ b/recipes/gmp/gmp-4.1.4/amd64.patch
@@ -0,0 +1,14 @@
+--- gmp-4.1.4/longlong.h.orig 2004-04-22 00:34:28.000000000 +0200
++++ gmp-4.1.4/longlong.h 2005-07-18 01:13:06.000000000 +0200
+@@ -738,8 +738,10 @@
+ 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/recipes/gmp/gmp-4.1.4/configure.patch b/recipes/gmp/gmp-4.1.4/configure.patch
new file mode 100644
index 0000000000..4b6c4ec636
--- /dev/null
+++ b/recipes/gmp/gmp-4.1.4/configure.patch
@@ -0,0 +1,837 @@
+--- gmp-1.4.4/acinclude.m4.orig 2004-09-21 15:03:09.000000000 +0200
++++ gmp-1.4.4/acinclude.m4 2005-07-18 01:09:00.000000000 +0200
+@@ -21,10 +21,10 @@
+ dnl MA 02111-1307, USA.
+
+
+-define(X86_PATTERN,
++define([X86_PATTERN],
+ [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-*]])
+
+-define(POWERPC64_PATTERN,
++define([POWERPC64_PATTERN],
+ [[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-*]])
+
+
+@@ -32,7 +32,7 @@
+ dnl ----------------------
+ dnl Strip entries */subdir from $path.
+
+-define(GMP_STRIP_PATH,
++define([GMP_STRIP_PATH],
+ [tmp_path=
+ for i in $path; do
+ case $i in
+@@ -53,7 +53,7 @@
+ dnl GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB starts as a dummy, but gets
+ dnl redefined in GMP_C_SIZES when the right value is known.
+
+-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]
+ GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB
+@@ -61,7 +61,7 @@
+ #include "$srcdir/gmp-h.in"]
+ ])
+
+-define(GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB,
++define([GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB],
+ [[#define __GMP_BITS_PER_MP_LIMB 123 /* dummy for GMP_NUMB_BITS etc */
+ #define GMP_LIMB_BITS 123]])
+
+@@ -72,7 +72,7 @@
+ 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[ ]+],[]),
+@@ -86,7 +86,7 @@
+ 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
+ ifelse(m4_eval(GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in) > 0),1,
+@@ -97,13 +97,13 @@
+ dnl ------------------------------
+ dnl Setup an AC_SUBST of HAVE_FUNC_01 for each argument.
+
+-AC_DEFUN(GMP_SUBST_CHECK_FUNCS,
++AC_DEFUN([GMP_SUBST_CHECK_FUNCS],
+ [m4_if([$1],,,
+ [_GMP_SUBST_CHECK_FUNCS(ac_cv_func_[$1],HAVE_[]m4_translit([$1],[a-z],[A-Z])_01)
+ GMP_SUBST_CHECK_FUNCS(m4_shift($@))])])
+
+ dnl Called: _GMP_SUBST_CHECK_FUNCS(cachvar,substvar)
+-AC_DEFUN(_GMP_SUBST_CHECK_FUNCS,
++AC_DEFUN([_GMP_SUBST_CHECK_FUNCS],
+ [case $[$1] in
+ yes) AC_SUBST([$2],1) ;;
+ no) [$2]=0 ;;
+@@ -115,14 +115,14 @@
+ dnl ----------------------------------
+ dnl Setup an AC_SUBST of HAVE_FOO_H_01 for each argument.
+
+-AC_DEFUN(GMP_SUBST_CHECK_HEADERS,
++AC_DEFUN([GMP_SUBST_CHECK_HEADERS],
+ [m4_if([$1],,,
+ [_GMP_SUBST_CHECK_HEADERS(ac_cv_header_[]m4_translit([$1],[./],[__]),
+ HAVE_[]m4_translit([$1],[a-z./],[A-Z__])_01)
+ GMP_SUBST_CHECK_HEADERS(m4_shift($@))])])
+
+ dnl Called: _GMP_SUBST_CHECK_HEADERS(cachvar,substvar)
+-AC_DEFUN(_GMP_SUBST_CHECK_HEADERS,
++AC_DEFUN([_GMP_SUBST_CHECK_HEADERS],
+ [case $[$1] in
+ yes) AC_SUBST([$2],1) ;;
+ no) [$2]=0 ;;
+@@ -145,12 +145,12 @@
+ dnl would test whether $major.$minor.$subminor is greater than or equal to
+ dnl 10.3.1.
+
+-AC_DEFUN(GMP_COMPARE_GE,
++AC_DEFUN([GMP_COMPARE_GE],
+ [gmp_compare_ge=no
+ GMP_COMPARE_GE_INTERNAL($@)
+ ])
+
+-AC_DEFUN(GMP_COMPARE_GE_INTERNAL,
++AC_DEFUN([GMP_COMPARE_GE_INTERNAL],
+ [ifelse(len([$3]),0,
+ [if test -n "$1" && test "$1" -ge $2; then
+ gmp_compare_ge=yes
+@@ -184,7 +184,7 @@
+ dnl for instance to random.o (and others) on vax-dec-ultrix4.5. Naturally
+ dnl a user-selected $AR_FLAGS is left unchanged.
+
+-AC_DEFUN(GMP_PROG_AR,
++AC_DEFUN([GMP_PROG_AR],
+ [dnl Want to establish $AR before libtool initialization.
+ AC_BEFORE([$0],[AC_PROG_LIBTOOL])
+ gmp_user_AR=$AR
+@@ -212,7 +212,7 @@
+ dnl CC_FOR_BUILD is used without testing. CC_FOR_BUILD is the new name for
+ dnl a build system compiler, see configfsf.guess.
+
+-AC_DEFUN(GMP_PROG_HOST_CC,
++AC_DEFUN([GMP_PROG_HOST_CC],
+ [AC_BEFORE([$0],[AC_PROG_LIBTOOL])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([for HOST_CC build system compiler],
+@@ -255,7 +255,7 @@
+ dnl FIXME: This can be removed and just AM_PROG_LEX used, one that macro
+ dnl works properly.
+
+-AC_DEFUN(GMP_PROG_LEX,
++AC_DEFUN([GMP_PROG_LEX],
+ [AC_REQUIRE([AC_PROG_LEX])
+ if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+@@ -273,7 +273,7 @@
+ dnl
+ dnl See mpn/asm-defs.m4 for details on the known bad m4s.
+
+-AC_DEFUN(GMP_PROG_M4,
++AC_DEFUN([GMP_PROG_M4],
+ [AC_ARG_VAR(M4,[m4 macro processor])
+ AC_CACHE_CHECK([for suitable m4],
+ gmp_cv_prog_m4,
+@@ -340,7 +340,7 @@
+ dnl Enhancement: Maybe this could be in GMP_PROG_M4, and attempt to prefer
+ dnl an m4 with a working m4wrap, if it can be found.
+
+-AC_DEFUN(GMP_M4_M4WRAP_SPURIOUS,
++AC_DEFUN([GMP_M4_M4WRAP_SPURIOUS],
+ [AC_REQUIRE([GMP_PROG_M4])
+ AC_CACHE_CHECK([if m4wrap produces spurious output],
+ gmp_cv_m4_m4wrap_spurious,
+@@ -374,7 +374,7 @@
+ dnl A user-selected $NM is always left unchanged. AC_PROG_NM is still run
+ dnl to get the "checking" message printed though.
+
+-AC_DEFUN(GMP_PROG_NM,
++AC_DEFUN([GMP_PROG_NM],
+ [dnl Make sure we're the first to call AC_PROG_NM, so our extra flags are
+ dnl used by everyone.
+ AC_BEFORE([$0],[AC_PROG_NM])
+@@ -426,7 +426,7 @@
+ dnl will run is that a plain native "./configure" falls back on ABI=32, but
+ dnl ABI=64 is still available as a cross-compile.
+
+-AC_DEFUN(GMP_PROG_CC_WORKS,
++AC_DEFUN([GMP_PROG_CC_WORKS],
+ [AC_MSG_CHECKING([compiler $1])
+ cat >conftest.c <<EOF
+
+@@ -481,7 +481,7 @@
+ dnl cache the result. The same "ifndef" style test is used, to avoid
+ dnl problems with syntax checking cpp's used on NeXT and Apple systems.
+
+-AC_DEFUN(GMP_PROG_CC_IS_GNU,
++AC_DEFUN([GMP_PROG_CC_IS_GNU],
+ [cat >conftest.c <<EOF
+ #ifndef __GNUC__
+ choke me
+@@ -508,7 +508,7 @@
+ dnl there is one then it's well hidden in xlc 3.1 on AIX 4.3, so just grep
+ dnl the man page printed when xlc is invoked with no arguments.
+
+-AC_DEFUN(GMP_PROG_CC_IS_XLC,
++AC_DEFUN([GMP_PROG_CC_IS_XLC],
+ [gmp_command="$1 2>&1 | grep xlc >/dev/null"
+ if AC_TRY_EVAL(gmp_command); then
+ AC_MSG_CHECKING([whether $1 is xlc])
+@@ -527,7 +527,7 @@
+ dnl This test might be repeated for different compilers, so the result is
+ dnl not cached.
+
+-AC_DEFUN(GMP_HPC_HPPA_2_0,
++AC_DEFUN([GMP_HPC_HPPA_2_0],
+ [AC_MSG_CHECKING([whether HP compiler $1 is good for 64-bits])
+ # Bad compiler output:
+ # ccom: HP92453-01 G.10.32.05 HP C Compiler
+@@ -571,7 +571,7 @@
+ dnl
+ dnl There's no caching here, so that different CC's can be tested.
+
+-AC_DEFUN(GMP_GCC_VERSION_GE,
++AC_DEFUN([GMP_GCC_VERSION_GE],
+ [tmp_version=`($1 --version) 2>&AC_FD_CC`
+ echo "$1 --version '$tmp_version'" >&AC_FD_CC
+
+@@ -608,7 +608,7 @@
+ dnl size==1 case in mpn/generic/mode1o.c, and this shows up in
+ dnl tests/mpz/t-jac.c as a wrong result from mpz_kronecker_ui.
+
+-AC_DEFUN(GMP_GCC_ARM_UMODSI,
++AC_DEFUN([GMP_GCC_ARM_UMODSI],
+ [AC_MSG_CHECKING([whether ARM gcc unsigned division works])
+ tmp_version=`$1 --version`
+ echo "$tmp_version" >&AC_FD_CC
+@@ -635,7 +635,7 @@
+ dnl This macro is used only once, after finalizing a choice of CC, so the
+ dnl result is cached.
+
+-AC_DEFUN(GMP_GCC_MARCH_PENTIUMPRO,
++AC_DEFUN([GMP_GCC_MARCH_PENTIUMPRO],
+ [AC_CACHE_CHECK([whether gcc -march=pentiumpro is good],
+ gmp_cv_gcc_march_pentiumpro,
+ [GMP_GCC_VERSION_GE([$1], 2,95,4)
+@@ -659,7 +659,7 @@
+ dnl gets rearranged or rewritten so the ICE doesn't happen then this can be
+ dnl removed.
+
+-AC_DEFUN(GMP_GCC_M68K_OPTIMIZE,
++AC_DEFUN([GMP_GCC_M68K_OPTIMIZE],
+ [case $host in
+ m68*-*-*)
+ if test $1 = gcc; then
+@@ -681,7 +681,7 @@
+ dnl gcc 2.95 accepts -mabi=32 but it only works on irix5, on irix6 it gives
+ dnl "cc1: The -mabi=32 support does not work yet".
+
+-AC_DEFUN(GMP_GCC_MIPS_O32,
++AC_DEFUN([GMP_GCC_MIPS_O32],
+ [AC_MSG_CHECKING([whether gcc supports o32])
+ echo 'int x;' >conftest.c
+ echo "$1 -mabi=32 -c conftest.c" >&AC_FD_CC
+@@ -716,7 +716,7 @@
+ dnl watch for that and decide against the option in that case, to avoid
+ dnl confusing the user.
+
+-AC_DEFUN(GMP_GCC_NO_CPP_PRECOMP,
++AC_DEFUN([GMP_GCC_NO_CPP_PRECOMP],
+ [if test "$ccbase" = gcc; then
+ AC_MSG_CHECKING([compiler $2 $3 -no-cpp-precomp])
+ result=no
+@@ -752,7 +752,7 @@
+ dnl This is intended for use on alpha, since only recent versions of gas
+ dnl accept -mev67, but there's nothing here that's alpha specific.
+
+-AC_DEFUN(GMP_GCC_WA_MCPU,
++AC_DEFUN([GMP_GCC_WA_MCPU],
+ [AC_MSG_CHECKING([assembler $1 $2])
+ result=no
+ cat >conftest.c <<EOF
+@@ -783,7 +783,7 @@
+ dnl This test is designed to be run repeatedly with different cxx/cxxflags
+ dnl selections, so the result is not cached.
+
+-AC_DEFUN(GMP_PROG_CXX_WORKS,
++AC_DEFUN([GMP_PROG_CXX_WORKS],
+ [AC_MSG_CHECKING([C++ compiler $1])
+ cat >conftest.cc <<EOF
+ #include <iostream>
+@@ -817,7 +817,7 @@
+ dnl FIXME: The generated config.m4 doesn't get recreated by config.status.
+ dnl Maybe the relevant "echo"s should go through AC_CONFIG_COMMANDS.
+
+-AC_DEFUN(GMP_INIT,
++AC_DEFUN([GMP_INIT],
+ [ifelse([$1], , gmp_configm4=config.m4, gmp_configm4="[$1]")
+ gmp_tmpconfigm4=cnfm4.tmp
+ gmp_tmpconfigm4i=cnfm4i.tmp
+@@ -834,7 +834,9 @@
+ echo ["define(<CONFIG_TOP_SRCDIR>,<\`$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
+ ])
+
+
+@@ -855,7 +857,7 @@
+ dnl having a whole file as a macro argument would overflow the string space
+ dnl on BSD m4.
+
+-AC_DEFUN(GMP_FINISH,
++AC_DEFUN([GMP_FINISH],
+ [AC_REQUIRE([GMP_INIT])
+ echo "creating $gmp_configm4"
+ echo ["d""nl $gmp_configm4. Generated automatically by configure."] > $gmp_configm4
+@@ -889,7 +891,7 @@
+ dnl GMP_INCLUDE_MPN(`x86/x86-defs.m4')
+ dnl
+
+-AC_DEFUN(GMP_INCLUDE_MPN,
++AC_DEFUN([GMP_INCLUDE_MPN],
+ [AC_REQUIRE([GMP_INIT])
+ echo ["include_mpn(\`$1')"] >> $gmp_tmpconfigm4i
+ ])
+@@ -905,7 +907,7 @@
+ dnl create file config.m4. config.m4 uses `<' and '>' as quote characters
+ dnl for all defines.
+
+-AC_DEFUN(GMP_DEFINE,
++AC_DEFUN([GMP_DEFINE],
+ [AC_REQUIRE([GMP_INIT])
+ echo ['define(<$1>, <$2>)'] >>ifelse([$3], [POST],
+ $gmp_tmpconfigm4p, $gmp_tmpconfigm4)
+@@ -920,7 +922,7 @@
+ dnl directives inserted by GMP_INCLUDE. Don't forget to invoke GMP_FINISH
+ dnl to create file config.m4.
+
+-AC_DEFUN(GMP_DEFINE_RAW,
++AC_DEFUN([GMP_DEFINE_RAW],
+ [AC_REQUIRE([GMP_INIT])
+ echo [$1] >> ifelse([$2], [POST], $gmp_tmpconfigm4p, $gmp_tmpconfigm4)
+ ])
+@@ -938,7 +940,7 @@
+ dnl This is not unlike AC_TRY_COMPILE, but there's no default includes or
+ dnl anything in "asm-code", everything wanted must be given explicitly.
+
+-AC_DEFUN(GMP_TRY_ASSEMBLE,
++AC_DEFUN([GMP_TRY_ASSEMBLE],
+ [cat >conftest.s <<EOF
+ [$1]
+ EOF
+@@ -960,7 +962,7 @@
+ dnl --------------------
+ dnl Should a label have a colon or not?
+
+-AC_DEFUN(GMP_ASM_LABEL_SUFFIX,
++AC_DEFUN([GMP_ASM_LABEL_SUFFIX],
+ [AC_CACHE_CHECK([what assembly label suffix to use],
+ gmp_cv_asm_label_suffix,
+ [case $host in
+@@ -984,7 +986,7 @@
+ dnl in particular that grepping doesn't work with SunOS 4 native grep since
+ dnl that grep seems to have trouble with '\0's in files.
+
+-AC_DEFUN(GMP_ASM_UNDERSCORE,
++AC_DEFUN([GMP_ASM_UNDERSCORE],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_REQUIRE([GMP_ASM_GLOBL])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1045,7 +1047,7 @@
+ dnl -----------------
+ dnl Is parameter to `.align' logarithmic?
+
+-AC_DEFUN(GMP_ASM_ALIGN_LOG,
++AC_DEFUN([GMP_ASM_ALIGN_LOG],
+ [AC_REQUIRE([GMP_ASM_GLOBL])
+ AC_REQUIRE([GMP_ASM_DATA])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1103,7 +1105,7 @@
+ dnl The warning from solaris 2.8 is supressed to stop anyone worrying that
+ dnl something might be wrong.
+
+-AC_DEFUN(GMP_ASM_ALIGN_FILL_0x90,
++AC_DEFUN([GMP_ASM_ALIGN_FILL_0x90],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the .align directive accepts an 0x90 fill in .text],
+ gmp_cv_asm_align_fill_0x90,
+@@ -1127,7 +1129,7 @@
+ dnl GMP_ASM_TEXT
+ dnl ------------
+
+-AC_DEFUN(GMP_ASM_TEXT,
++AC_DEFUN([GMP_ASM_TEXT],
+ [AC_CACHE_CHECK([how to switch to text section],
+ gmp_cv_asm_text,
+ [case $host in
+@@ -1144,7 +1146,7 @@
+ dnl ------------
+ dnl Can we say `.data'?
+
+-AC_DEFUN(GMP_ASM_DATA,
++AC_DEFUN([GMP_ASM_DATA],
+ [AC_CACHE_CHECK([how to switch to data section],
+ gmp_cv_asm_data,
+ [case $host in
+@@ -1172,7 +1174,7 @@
+ dnl where foo is the object file. Might need to check for that if we use
+ dnl RODATA there.
+
+-AC_DEFUN(GMP_ASM_RODATA,
++AC_DEFUN([GMP_ASM_RODATA],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_REQUIRE([GMP_ASM_DATA])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1229,7 +1231,7 @@
+ dnl -------------
+ dnl Can we say `.global'?
+
+-AC_DEFUN(GMP_ASM_GLOBL,
++AC_DEFUN([GMP_ASM_GLOBL],
+ [AC_CACHE_CHECK([how to export a symbol],
+ gmp_cv_asm_globl,
+ [case $host in
+@@ -1245,7 +1247,7 @@
+ dnl ------------------
+ dnl Do we need something after `.global symbol'?
+
+-AC_DEFUN(GMP_ASM_GLOBL_ATTR,
++AC_DEFUN([GMP_ASM_GLOBL_ATTR],
+ [AC_CACHE_CHECK([if the export directive needs an attribute],
+ gmp_cv_asm_globl_attr,
+ [case $host in
+@@ -1276,7 +1278,7 @@
+ dnl letting the problem go unnoticed. tests/mpn/t-asmtype.c aims to check
+ dnl for it.
+
+-AC_DEFUN(GMP_ASM_TYPE,
++AC_DEFUN([GMP_ASM_TYPE],
+ [AC_CACHE_CHECK([for assembler .type directive],
+ gmp_cv_asm_type,
+ [gmp_cv_asm_type=
+@@ -1298,7 +1300,7 @@
+ dnl ------------
+ dnl Can we say `.size'?
+
+-AC_DEFUN(GMP_ASM_SIZE,
++AC_DEFUN([GMP_ASM_SIZE],
+ [AC_CACHE_CHECK([for assembler .size directive],
+ gmp_cv_asm_size,
+ [gmp_cv_asm_size=
+@@ -1341,7 +1343,7 @@
+ dnl HP-UX nm prints an error message (though seems to give a 0 exit) if
+ dnl there's no symbols at all in an object file, hence the use of "dummy".
+
+-AC_DEFUN(GMP_ASM_LSYM_PREFIX,
++AC_DEFUN([GMP_ASM_LSYM_PREFIX],
+ [AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+ AC_REQUIRE([GMP_PROG_NM])
+ AC_CACHE_CHECK([what prefix to use for a local label],
+@@ -1386,7 +1388,7 @@
+ dnl -----------
+ dnl How to define a 32-bit word.
+
+-AC_DEFUN(GMP_ASM_W32,
++AC_DEFUN([GMP_ASM_W32],
+ [AC_REQUIRE([GMP_ASM_DATA])
+ AC_REQUIRE([GMP_ASM_GLOBL])
+ AC_REQUIRE([GMP_ASM_LABEL_SUFFIX])
+@@ -1443,7 +1445,7 @@
+ dnl %mm1, %mm0"). It seems more trouble than it's worth to work around
+ dnl this in the code, so just detect and reject.
+
+-AC_DEFUN(GMP_ASM_X86_MMX,
++AC_DEFUN([GMP_ASM_X86_MMX],
+ [AC_CACHE_CHECK([if the assembler knows about MMX instructions],
+ gmp_cv_asm_x86_mmx,
+ [GMP_TRY_ASSEMBLE(
+@@ -1495,7 +1497,7 @@
+ dnl GMP_ASM_X86_SHLDL_CL
+ dnl --------------------
+
+-AC_DEFUN(GMP_ASM_X86_SHLDL_CL,
++AC_DEFUN([GMP_ASM_X86_SHLDL_CL],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the assembler takes cl with shldl],
+ gmp_cv_asm_x86_shldl_cl,
+@@ -1522,7 +1524,7 @@
+ dnl it's all GMP_ASM_TEXT gives currently. Actually ".text" probably isn't
+ dnl needed at all, at least for just checking instruction syntax.
+
+-AC_DEFUN(GMP_ASM_X86_SSE2,
++AC_DEFUN([GMP_ASM_X86_SSE2],
+ [AC_CACHE_CHECK([if the assembler knows about SSE2 instructions],
+ gmp_cv_asm_x86_sse2,
+ [GMP_TRY_ASSEMBLE(
+@@ -1585,7 +1587,7 @@
+ dnl to get two variables (mcount_nonpic_reg and mcount_nonpic_call say) set
+ dnl from one block of commands?
+
+-AC_DEFUN(GMP_ASM_X86_MCOUNT,
++AC_DEFUN([GMP_ASM_X86_MCOUNT],
+ [AC_REQUIRE([AC_ENABLE_SHARED])
+ AC_REQUIRE([AC_PROG_LIBTOOL])
+ AC_MSG_CHECKING([how to call x86 mcount])
+@@ -1655,7 +1657,7 @@
+ dnl instruction. It takes registers without "%", but a single operand
+ dnl "clrl %d0" only gives a warning, not an error.
+
+-AC_DEFUN(GMP_ASM_M68K_INSTRUCTION,
++AC_DEFUN([GMP_ASM_M68K_INSTRUCTION],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([assembler instruction and register style],
+ gmp_cv_asm_m68k_instruction,
+@@ -1684,7 +1686,7 @@
+ dnl GMP_ASM_M68K_ADDRESSING
+ dnl -----------------------
+
+-AC_DEFUN(GMP_ASM_M68K_ADDRESSING,
++AC_DEFUN([GMP_ASM_M68K_ADDRESSING],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_REQUIRE([GMP_ASM_M68K_INSTRUCTION])
+ AC_CACHE_CHECK([assembler addressing style],
+@@ -1721,7 +1723,7 @@
+ dnl 16-bits. This applies to the conditional branches "bcc" etc too.
+ dnl However "dbcc" etc on gas are already only as big as they need to be.
+
+-AC_DEFUN(GMP_ASM_M68K_BRANCHES,
++AC_DEFUN([GMP_ASM_M68K_BRANCHES],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([assembler shortest branches],
+ gmp_cv_asm_m68k_branches,
+@@ -1752,7 +1754,7 @@
+ dnl See also mpn/powerpc32/powerpc-defs.m4 which uses the result of this
+ dnl test.
+
+-AC_DEFUN(GMP_ASM_POWERPC_R_REGISTERS,
++AC_DEFUN([GMP_ASM_POWERPC_R_REGISTERS],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the assembler needs r on registers],
+ gmp_cv_asm_powerpc_r_registers,
+@@ -1777,7 +1779,7 @@
+ dnl
+ dnl See also mpn/sparc32/sparc-defs.m4 which uses the result of this test.
+
+-AC_DEFUN(GMP_ASM_SPARC_REGISTER,
++AC_DEFUN([GMP_ASM_SPARC_REGISTER],
+ [AC_REQUIRE([GMP_ASM_TEXT])
+ AC_CACHE_CHECK([if the assembler accepts ".register"],
+ gmp_cv_asm_sparc_register,
+@@ -1795,7 +1797,7 @@
+ dnl GMP_C_ATTRIBUTE_CONST
+ dnl ---------------------
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_CONST,
++AC_DEFUN([GMP_C_ATTRIBUTE_CONST],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((const)) works],
+ gmp_cv_c_attribute_const,
+ [AC_TRY_COMPILE([int foo (int x) __attribute__ ((const));], ,
+@@ -1814,7 +1816,7 @@
+ dnl it's ignored. Pretend it doesn't exist in this case, to avoid that
+ dnl warning.
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_MALLOC,
++AC_DEFUN([GMP_C_ATTRIBUTE_MALLOC],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((malloc)) works],
+ gmp_cv_c_attribute_malloc,
+ [cat >conftest.c <<EOF
+@@ -1844,7 +1846,7 @@
+ dnl --------------------
+ dnl Introduced in gcc 2.2, but perhaps not in all Apple derived versions.
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_MODE,
++AC_DEFUN([GMP_C_ATTRIBUTE_MODE],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((mode (XX))) works],
+ gmp_cv_c_attribute_mode,
+ [AC_TRY_COMPILE([typedef int SItype __attribute__ ((mode (SI)));], ,
+@@ -1860,7 +1862,7 @@
+ dnl GMP_C_ATTRIBUTE_NORETURN
+ dnl ------------------------
+
+-AC_DEFUN(GMP_C_ATTRIBUTE_NORETURN,
++AC_DEFUN([GMP_C_ATTRIBUTE_NORETURN],
+ [AC_CACHE_CHECK([whether gcc __attribute__ ((noreturn)) works],
+ gmp_cv_c_attribute_noreturn,
+ [AC_TRY_COMPILE([void foo (int x) __attribute__ ((noreturn));], ,
+@@ -1887,7 +1889,7 @@
+ dnl used doesn't have functions or anything, so even an "old" awk should
+ dnl suffice.
+
+-AC_DEFUN(GMP_C_DOUBLE_FORMAT,
++AC_DEFUN([GMP_C_DOUBLE_FORMAT],
+ [AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_PROG_AWK])
+ AC_CACHE_CHECK([format of `double' floating point],
+@@ -2089,7 +2091,7 @@
+ dnl
+ dnl FIXME: Hopefully autoconf will do this extra itself one day.
+
+-AC_DEFUN(GMP_C_INLINE,
++AC_DEFUN([GMP_C_INLINE],
+ [AC_CACHE_CHECK([for inline], gmp_cv_c_inline,
+ [gmp_cv_c_inline=no
+ for i in inline __inline__ __inline; do
+@@ -2129,7 +2131,7 @@
+ dnl "yes" is used in the cache variable if plain "restrict" works, to make
+ dnl the configure message look nicer.
+
+-AC_DEFUN(GMP_C_RESTRICT,
++AC_DEFUN([GMP_C_RESTRICT],
+ [AC_CACHE_CHECK([for restrict], gmp_cv_c_restrict,
+ [gmp_cv_c_restrict=no
+ for r in restrict __restrict__ __restrict; do
+@@ -2178,7 +2180,7 @@
+ dnl ulongs with bits=8*sizeof, so it's academic. Strange systems can
+ dnl always have the right values put in gmp-mparam.h explicitly.
+
+-AC_DEFUN(GMP_C_SIZES,
++AC_DEFUN([GMP_C_SIZES],
+ [BITS_PER_MP_LIMB=[`sed -n 's/^#define BITS_PER_MP_LIMB[ ][ ]*\([0-9]*\).*$/\1/p' $gmp_mparam_source`]
+ if test -n "$BITS_PER_MP_LIMB" \
+ && grep "^#define BYTES_PER_MP_LIMB" $gmp_mparam_source >/dev/null; then : ;
+@@ -2199,7 +2201,7 @@
+ fi
+ fi
+ AC_SUBST(BITS_PER_MP_LIMB)
+-define([GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB],
++define([[GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB]],
+ [[#define __GMP_BITS_PER_MP_LIMB $BITS_PER_MP_LIMB
+ #define GMP_LIMB_BITS $BITS_PER_MP_LIMB]])
+
+@@ -2232,7 +2234,7 @@
+ dnl or very likely by the setups for _PROTO in gmp.h. On the other hand
+ dnl this test is nice and direct, being what we're going to actually use.
+
+-AC_DEFUN(GMP_C_STDARG,
++AC_DEFUN([GMP_C_STDARG],
+ [AC_CACHE_CHECK([whether <stdarg.h> exists and works],
+ gmp_cv_c_stdarg,
+ [AC_TRY_COMPILE(
+@@ -2261,7 +2263,7 @@
+ dnl available, and also to use gmp-impl.h for the conditionals detecting
+ dnl compiler builtin alloca's.
+
+-AC_DEFUN(GMP_FUNC_ALLOCA,
++AC_DEFUN([GMP_FUNC_ALLOCA],
+ [AC_REQUIRE([GMP_HEADER_ALLOCA])
+ AC_CACHE_CHECK([for alloca (via gmp-impl.h)],
+ gmp_cv_func_alloca,
+@@ -2278,7 +2280,7 @@
+ fi
+ ])
+
+-AC_DEFUN(GMP_HEADER_ALLOCA,
++AC_DEFUN([GMP_HEADER_ALLOCA],
+ [# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+ # for constant arguments. Useless!
+ AC_CACHE_CHECK([for working alloca.h],
+@@ -2299,7 +2301,7 @@
+ dnl Decide what to do about --enable-alloca from the user.
+ dnl This is a macro so it can require GMP_FUNC_ALLOCA.
+
+-AC_DEFUN(GMP_OPTION_ALLOCA,
++AC_DEFUN([GMP_OPTION_ALLOCA],
+ [AC_REQUIRE([GMP_FUNC_ALLOCA])
+ AC_CACHE_CHECK([how to allocate temporary memory],
+ gmp_cv_option_alloca,
+@@ -2355,7 +2357,7 @@
+ dnl
+ dnl FIXME: Run a program to try this, when doing a native build.
+
+-AC_DEFUN(GMP_FUNC_SSCANF_WRITABLE_INPUT,
++AC_DEFUN([GMP_FUNC_SSCANF_WRITABLE_INPUT],
+ [AC_CACHE_CHECK([whether sscanf needs writable input],
+ gmp_cv_func_sscanf_writable_input,
+ [case $host in
+@@ -2391,7 +2393,7 @@
+ dnl not sure which 2.0.x does which), but still puts the correct null
+ dnl terminated result into the buffer.
+
+-AC_DEFUN(GMP_FUNC_VSNPRINTF,
++AC_DEFUN([GMP_FUNC_VSNPRINTF],
+ [AC_REQUIRE([GMP_C_STDARG])
+ AC_CHECK_FUNC(vsnprintf,
+ [gmp_vsnprintf_exists=yes],
+@@ -2472,7 +2474,7 @@
+ dnl ----------
+ dnl Check whether gmp.h recognises the compiler as ANSI capable.
+
+-AC_DEFUN(GMP_H_ANSI,
++AC_DEFUN([GMP_H_ANSI],
+ [AC_REQUIRE([AC_PROG_CC_STDC])
+ case $ac_cv_prog_cc_stdc in
+ no)
+@@ -2495,7 +2497,7 @@
+ dnl If the compiler has an "inline" of some sort, check whether the
+ dnl #ifdef's in gmp.h recognise it.
+
+-AC_DEFUN(GMP_H_EXTERN_INLINE,
++AC_DEFUN([GMP_H_EXTERN_INLINE],
+ [AC_REQUIRE([GMP_C_INLINE])
+ case $gmp_cv_c_inline in
+ no) ;;
+@@ -2522,7 +2524,7 @@
+ dnl Check whether the #ifdef's in gmp.h recognise when stdio.h has been
+ dnl included to get FILE.
+
+-AC_DEFUN(GMP_H_HAVE_FILE,
++AC_DEFUN([GMP_H_HAVE_FILE],
+ [AC_TRY_COMPILE(
+ [#include <stdio.h>]
+ GMP_INCLUDE_GMP_H
+@@ -2539,7 +2541,7 @@
+ dnl Check whether the #ifdef's in gmp-impl.h recognise IEEE format and
+ dnl endianness.
+
+-AC_DEFUN(GMP_IMPL_H_IEEE_FLOATS,
++AC_DEFUN([GMP_IMPL_H_IEEE_FLOATS],
+ [case $host in
+ vax*-*-*)
+ # not IEEE (neither D nor G formats are IEEE)
+--- gmp-1.4.4/configure.in.orig 2004-09-21 15:02:43.000000000 +0200
++++ gmp-1.4.4/configure.in 2005-07-18 01:08:34.000000000 +0200
+@@ -26,15 +26,16 @@
+
+
+ AC_REVISION($Revision: 1.425.2.25 $)
+-AC_PREREQ(2.52)
+-AC_INIT(gmp-impl.h)
+-m4_pattern_forbid([^[ \t]*GMP_])
+-m4_pattern_forbid([^[ \t]*MPFR_CONFIGS])
+-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)
++AC_PREREQ(2.57)
++AC_INIT
++AC_CONFIG_SRCDIR([gmp-impl.h])
++
++
++
++
++
++
++
+
+ # If --target is not used then $target_alias is empty, but if say
+ # "./configure athlon-pc-freebsd3.5" is used, then all three of
+@@ -56,7 +57,7 @@
+ GMP_DEFINE_RAW("define_not_for_expansion(\`HAVE_HOST_CPU_$tmp_host')", POST)
+
+ AM_INIT_AUTOMAKE(gmp, GMP_VERSION)
+-AM_CONFIG_HEADER(config.h:config.in)
++AC_CONFIG_HEADERS([config.h:config.in])
+ AM_MAINTAINER_MODE
+
+
+@@ -212,7 +213,7 @@
+ # 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.
+ #
+@@ -299,7 +300,7 @@
+ # 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"
+@@ -1079,7 +1080,7 @@
+ CFLAGS_or_unset=${CFLAGS-'(unset)'}
+ CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ configure:__line__: User:
+ ABI=$ABI
+ CC=$CC
+@@ -1391,18 +1392,18 @@
+
+ # 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, if desired.
+ want_cxx=no
++AC_PROG_CXX
+ if test $enable_cxx != no; then
+ test_CXXFLAGS=${CXXFLAGS+set}
+- AC_PROG_CXX
+
+- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
+ cxxflags_ac_prog_cxx=$CXXFLAGS
+ cxxflags_list=ac_prog_cxx
+
+@@ -1478,7 +1479,7 @@
+ fi
+
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ configure:__line__: Decided:
+ ABI=$ABI
+ CC=$CC
+@@ -1720,9 +1721,9 @@
+
+ # FIXME: Autoconf 2.52 AC_C_BIGENDIAN bombs when cross compiling, but in the
+ # future the probes will be better and this override can be removed.
+-if test "$cross_compiling" = yes; then
+- ac_cv_c_bigendian=unknown
+-fi
++#if test "$cross_compiling" = yes; then
++# ac_cv_c_bigendian=unknown
++#fi
+ AC_C_BIGENDIAN
+ # Enhancement: In the future AC_C_BIGENDIAN will accept these actions as
+ # parameters.
+@@ -2168,7 +2169,7 @@
+
+ # Configs for demos/calc directory
+ #
+-# AC_SUBST is used here since with AM_CONFIG_HEADER automake would put
++# AC_SUBST is used here since with AC_CONFIG_HEADERS([]) automake would put
+ # demos/calc in the default $(DEFAULT_INCLUDES) for every directory,
+ # which would look very strange. Likewise demos/expr below.
+ #
+@@ -2207,7 +2208,7 @@
+ # FIXME: Upcoming version of autoconf/automake may not like broken lines.
+ # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
+
+-AC_OUTPUT(Makefile \
++AC_CONFIG_FILES([Makefile \
+ mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \
+ mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \
+ tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \
+@@ -2217,4 +2218,5 @@
+ mpfr/Makefile mpfr/tests/Makefile \
+ tune/Makefile \
+ demos/Makefile demos/calc/Makefile demos/expr/Makefile \
+- gmp.h:gmp-h.in mp.h:mp-h.in)
++ gmp.h:gmp-h.in mp.h:mp-h.in])
++AC_OUTPUT
diff --git a/recipes/gmp/gmp-4.2.1/amd64.patch b/recipes/gmp/gmp-4.2.1/amd64.patch
new file mode 100644
index 0000000000..67be9dd350
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.1/amd64.patch
@@ -0,0 +1,14 @@
+--- gmp-4.1.4/longlong.h.orig 2004-04-22 00:34:28.000000000 +0200
++++ gmp-4.1.4/longlong.h 2005-07-18 01:13:06.000000000 +0200
+@@ -738,8 +738,10 @@
+ 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/recipes/gmp/gmp-4.2.1/configure.patch b/recipes/gmp/gmp-4.2.1/configure.patch
new file mode 100644
index 0000000000..08f2172479
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.1/configure.patch
@@ -0,0 +1,195 @@
+ acinclude.m4 | 26 ++++++++++++++------------
+ configure.in | 24 +++++++++---------------
+ 2 files changed, 23 insertions(+), 27 deletions(-)
+
+Index: gmp-4.2.1/acinclude.m4
+===================================================================
+--- gmp-4.2.1.orig/acinclude.m4 2006-05-04 17:39:01.000000000 +0100
++++ gmp-4.2.1/acinclude.m4 2006-11-06 20:36:14.000000000 +0000
+@@ -32,20 +32,20 @@ dnl a_out.exe - OpenVMS DEC C called
+ 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(X86_PATTERN,
++define([X86_PATTERN],
+ [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-*]])
+
+
+@@ -64,7 +64,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'`]])
+
+
+@@ -73,7 +73,7 @@ dnl ----------------------------------
+ dnl Emit code to remove any occurance 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 :;
+@@ -89,12 +89,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
+@@ -115,7 +115,7 @@ dnl
+ dnl Dummy values for __GMP_BITS_PER_MP_LIMB and GMP_LIMB_BITS are 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_BITS_PER_MP_LIMB 123 /* dummy for GMP_NUMB_BITS etc */
+@@ -131,7 +131,7 @@ dnl Expand at autoconf time to the valu
+ 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[ ]+],[]),
+@@ -145,7 +145,7 @@ dnl The gmp version number, extracted f
+ 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
+ ifelse(m4_eval(GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in) > 0),1,
+@@ -1491,7 +1491,9 @@ esac
+ echo ["define(<CONFIG_TOP_SRCDIR>,<\`$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
+ ])
+
+
+Index: gmp-4.2.1/configure.in
+===================================================================
+--- gmp-4.2.1.orig/configure.in 2006-04-30 00:31:08.000000000 +0100
++++ gmp-4.2.1/configure.in 2006-11-06 20:39:17.000000000 +0000
+@@ -31,12 +31,6 @@ AC_REVISION($Revision: 1.11 $)
+ AC_PREREQ(2.59)
+ AC_INIT(GNU MP, GMP_VERSION, gmp-bugs@swox.com, 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)
+
+ # If --target is not used then $target_alias is empty, but if say
+ # "./configure athlon-pc-freebsd3.5" is used, then all three of
+@@ -277,7 +271,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.
+ #
+@@ -369,7 +363,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"
+@@ -1498,7 +1492,7 @@ esac
+ CFLAGS_or_unset=${CFLAGS-'(unset)'}
+ CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ User:
+ ABI=$ABI
+ CC=$CC
+@@ -1869,7 +1863,6 @@ 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
+
+@@ -1892,11 +1885,11 @@ AC_SUBST(CCAS)
+
+ # The C++ compiler, if desired.
+ want_cxx=no
++AC_PROG_CXX
+ if test $enable_cxx != no; then
+ test_CXXFLAGS=${CXXFLAGS+set}
+- AC_PROG_CXX
+
+- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
+ cxxflags_ac_prog_cxx=$CXXFLAGS
+ cxxflags_list=ac_prog_cxx
+
+@@ -2002,7 +1995,7 @@ case $host in
+ esac
+
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ Decided:
+ ABI=$ABI
+ CC=$CC
+@@ -3175,7 +3168,7 @@ GMP_FINISH
+ # FIXME: Upcoming version of autoconf/automake may not like broken lines.
+ # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
+
+-AC_OUTPUT(Makefile \
++AC_CONFIG_FILES([Makefile \
+ mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \
+ mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \
+ tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \
+@@ -3184,4 +3177,5 @@ AC_OUTPUT(Makefile \
+ tests/cxx/Makefile \
+ doc/Makefile tune/Makefile \
+ demos/Makefile demos/calc/Makefile demos/expr/Makefile \
+- gmp.h:gmp-h.in mp.h:mp-h.in)
++ gmp.h:gmp-h.in mp.h:mp-h.in])
++AC_OUTPUT
diff --git a/recipes/gmp/gmp-4.2.2/02_noexec-stack.diff b/recipes/gmp/gmp-4.2.2/02_noexec-stack.diff
new file mode 100644
index 0000000000..613589e347
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.2/02_noexec-stack.diff
@@ -0,0 +1,74 @@
+Index: acinclude.m4
+===================================================================
+RCS file: /cvsroot/pkg-gmp/gmp/acinclude.m4,v
+retrieving revision 1.3
+diff -u -b -B -r1.3 acinclude.m4
+--- gmp-4.2.2.orig/acinclude.m4 14 Apr 2006 22:48:55 -0000 1.3
++++ gmp-4.2.2/acinclude.m4 15 Apr 2006 06:11:48 -0000
+@@ -1613,6 +1613,34 @@
+ ])
+
+
++dnl Checks whether the stack can be marked nonexecutable by passing an option
++dnl to the C-compiler when acting on .s files. Appends that option to ASFLAGS.
++dnl This macro is adapted from one found in GLIBC-2.3.5.
++AC_DEFUN([CL_AS_NOEXECSTACK],[
++dnl AC_REQUIRE([AC_PROG_CC]) GMP uses something else
++AC_CACHE_CHECK([whether assembler supports --noexecstack option],
++cl_cv_as_noexecstack, [dnl
++ cat > conftest.c <<EOF
++void foo() {}
++EOF
++ if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS
++ -S -o conftest.s conftest.c >/dev/null]) \
++ && grep -q .note.GNU-stack conftest.s \
++ && AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS -Wa,--noexecstack
++ -c -o conftest.o conftest.s >/dev/null])
++ then
++ cl_cv_as_noexecstack=yes
++ else
++ cl_cv_as_noexecstack=no
++ fi
++ rm -f conftest*])
++ if test "$cl_cv_as_noexecstack" = yes; then
++ ASMFLAGS="$ASMFLAGS -Wa,--noexecstack"
++ fi
++ AC_SUBST(ASMFLAGS)
++])
++
++
+ dnl GMP_ASM_LABEL_SUFFIX
+ dnl --------------------
+ dnl : - is usual.
+Index: configure.in
+===================================================================
+RCS file: /cvsroot/pkg-gmp/gmp/configure.in,v
+retrieving revision 1.3
+diff -u -b -B -r1.3 configure.in
+--- gmp-4.2.2.orig/configure.in 14 Apr 2006 22:48:55 -0000 1.3
++++ gmp-4.2.2/configure.in 15 Apr 2006 06:11:49 -0000
+@@ -2024,6 +2024,8 @@
+ # Automake ansi2knr support.
+ AM_C_PROTOTYPES
+
++CL_AS_NOEXECSTACK
++
+ GMP_PROG_AR
+ GMP_PROG_NM
+
+Index: mpn/Makeasm.am
+===================================================================
+RCS file: /cvsroot/pkg-gmp/gmp/mpn/Makeasm.am,v
+retrieving revision 1.5
+diff -u -b -B -r1.5 Makeasm.am
+--- gmp-4.2.2.orig/mpn/Makeasm.am 14 Apr 2006 22:48:59 -0000 1.5
++++ gmp-4.2.2/mpn/Makeasm.am 15 Apr 2006 06:11:49 -0000
+@@ -24,7 +24,7 @@
+ # COMPILE minus CC.
+ #
+ COMPILE_FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ASMFLAGS)
+
+ # Flags used for preprocessing (in ansi2knr rules).
+ #
diff --git a/recipes/gmp/gmp-4.2.2/03_gnu89-inline.diff b/recipes/gmp/gmp-4.2.2/03_gnu89-inline.diff
new file mode 100644
index 0000000000..17e8915fbb
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.2/03_gnu89-inline.diff
@@ -0,0 +1,23 @@
+Index: gmp-h.in
+===================================================================
+RCS file: /cvsroot/pkg-gmp/gmp/gmp-h.in,v
+retrieving revision 1.4
+diff -u -b -B -r1.4 gmp-h.in
+--- gmp-4.2.2.orig/gmp-h.in 15 Sep 2007 23:05:28 -0000 1.4
++++ gmp-4.2.2/gmp-h.in 9 Apr 2008 05:30:42 -0000
+@@ -418,9 +418,13 @@
+ for an inline too, so as to correctly specify "dllimport" on windows, in
+ case the function is called rather than inlined.
+ GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+- inline semantics, unless -fgnu89-inline is used. */
++ inline semantics, unless -fgnu89-inline is used.
++
++ With GCC 4.2, `__GNUC_STDC_INLINE__' is never defined (because C99 inline
++ semantics are not supported), but a warning is issued in C99 mode if
++ `__gnu_inline__' is not used. */
+ #ifdef __GNUC__
+-#ifdef __GNUC_STDC_INLINE__
++#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2)
+ #define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
+ #else
+ #define __GMP_EXTERN_INLINE extern __inline__
diff --git a/recipes/gmp/gmp-4.2.2/amd64.patch b/recipes/gmp/gmp-4.2.2/amd64.patch
new file mode 100644
index 0000000000..67be9dd350
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.2/amd64.patch
@@ -0,0 +1,14 @@
+--- gmp-4.1.4/longlong.h.orig 2004-04-22 00:34:28.000000000 +0200
++++ gmp-4.1.4/longlong.h 2005-07-18 01:13:06.000000000 +0200
+@@ -738,8 +738,10 @@
+ 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/recipes/gmp/gmp-4.2.2/configure.patch b/recipes/gmp/gmp-4.2.2/configure.patch
new file mode 100644
index 0000000000..2a3b0e6fc1
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.2/configure.patch
@@ -0,0 +1,207 @@
+ acinclude.m4 | 26 ++++++++++++++------------
+ configure.in | 24 +++++++++---------------
+ 2 files changed, 23 insertions(+), 27 deletions(-)
+
+Index: gmp-4.2.2/acinclude.m4
+===================================================================
+--- gmp-4.2.2.orig/acinclude.m4 2008-05-01 11:07:43.000000000 +0200
++++ gmp-4.2.2/acinclude.m4 2008-05-01 11:07:48.000000000 +0200
+@@ -30,20 +30,20 @@
+ 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(X86_PATTERN,
++define([X86_PATTERN],
+ [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-*]])
+
+
+@@ -62,7 +62,7 @@
+ 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'`]])
+
+
+@@ -71,7 +71,7 @@
+ dnl Emit code to remove any occurance 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 :;
+@@ -87,12 +87,12 @@
+ 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
+@@ -113,7 +113,7 @@
+ dnl Dummy values for __GMP_BITS_PER_MP_LIMB and GMP_LIMB_BITS are 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_BITS_PER_MP_LIMB 123 /* dummy for GMP_NUMB_BITS etc */
+@@ -129,7 +129,7 @@
+ 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[ ]+],[]),
+@@ -143,7 +143,7 @@
+ 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
+ ifelse(m4_eval(GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in) > 0),1,
+@@ -1489,7 +1489,9 @@
+ echo ["define(<CONFIG_TOP_SRCDIR>,<\`$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
+ ])
+
+
+Index: gmp-4.2.2/configure.in
+===================================================================
+--- gmp-4.2.2.orig/configure.in 2008-05-01 11:07:43.000000000 +0200
++++ gmp-4.2.2/configure.in 2008-05-01 11:07:48.000000000 +0200
+@@ -29,12 +29,6 @@
+ AC_PREREQ(2.59)
+ AC_INIT(GNU MP, GMP_VERSION, gmp-bugs@swox.com, 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)
+
+ # If --target is not used then $target_alias is empty, but if say
+ # "./configure athlon-pc-freebsd3.5" is used, then all three of
+@@ -275,7 +269,7 @@
+ # 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.
+ #
+@@ -367,7 +361,7 @@
+ # 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"
+@@ -1518,7 +1512,7 @@
+ CFLAGS_or_unset=${CFLAGS-'(unset)'}
+ CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ User:
+ ABI=$ABI
+ CC=$CC
+@@ -1889,7 +1883,6 @@
+
+ # The C compiler and preprocessor, put into ANSI mode if possible.
+ AC_PROG_CC
+-AC_PROG_CC_STDC
+ AC_PROG_CPP
+ GMP_H_ANSI
+
+@@ -1912,11 +1905,11 @@
+
+ # The C++ compiler, if desired.
+ want_cxx=no
++AC_PROG_CXX
+ if test $enable_cxx != no; then
+ test_CXXFLAGS=${CXXFLAGS+set}
+- AC_PROG_CXX
+
+- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
+ cxxflags_ac_prog_cxx=$CXXFLAGS
+ cxxflags_list=ac_prog_cxx
+
+@@ -2022,7 +2015,7 @@
+ esac
+
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ Decided:
+ ABI=$ABI
+ CC=$CC
+@@ -3199,7 +3192,7 @@
+ # FIXME: Upcoming version of autoconf/automake may not like broken lines.
+ # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
+
+-AC_OUTPUT(Makefile \
++AC_CONFIG_FILES([Makefile \
+ mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \
+ mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \
+ tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \
+@@ -3208,4 +3201,5 @@
+ tests/cxx/Makefile \
+ doc/Makefile tune/Makefile \
+ demos/Makefile demos/calc/Makefile demos/expr/Makefile \
+- gmp.h:gmp-h.in mp.h:mp-h.in)
++ gmp.h:gmp-h.in mp.h:mp-h.in])
++AC_OUTPUT
+Index: gmp-4.2.2/gmp-h.in
+===================================================================
+--- gmp-4.2.2.orig/gmp-h.in 2007-09-03 18:05:40.000000000 +0200
++++ gmp-4.2.2/gmp-h.in 2008-05-01 11:10:42.000000000 +0200
+@@ -516,6 +516,7 @@
+
+ #if defined (__cplusplus)
+ extern "C" {
++#include <cstdio>
+ #ifdef _GMP_H_HAVE_FILE
+ using std::FILE;
+ #endif
diff --git a/recipes/gmp/gmp-4.2.2/mpf_set_str_c.diff b/recipes/gmp/gmp-4.2.2/mpf_set_str_c.diff
new file mode 100644
index 0000000000..1924611640
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.2/mpf_set_str_c.diff
@@ -0,0 +1,38 @@
+*** gmp-4.2.2.orig/mpf/set_str.c 30 Aug 2007 18:19:41 -0000
+--- gmp-4.2.2/mpf/set_str.c 10 Dec 2007 04:47:18 -0000
+*************** mpf_set_str (mpf_ptr x, const char *str,
+*** 272,277 ****
+
+ if (expptr != 0)
+! /* FIXME: Should do some error checking here. */
+! exp_in_base = strtol (expptr, (char **) 0, exp_base);
+ else
+ exp_in_base = 0;
+--- 272,298 ----
+
+ if (expptr != 0)
+! {
+! /* Scan and convert the exponent, in base exp_base. */
+! long dig, neg = -(long) ('-' == expptr[0]);
+! expptr -= neg; /* conditional increment */
+! c = (unsigned char) *expptr++;
+! dig = digit_value[c];
+! if (dig >= exp_base)
+! {
+! TMP_FREE;
+! return -1;
+! }
+! exp_in_base = dig;
+! c = (unsigned char) *expptr++;
+! dig = digit_value[c];
+! while (dig < exp_base)
+! {
+! exp_in_base = exp_in_base * exp_base;
+! exp_in_base += dig;
+! c = (unsigned char) *expptr++;
+! dig = digit_value[c];
+! }
+! exp_in_base = (exp_in_base ^ neg) - neg; /* conditional negation */
+! }
+ else
+ exp_in_base = 0;
diff --git a/recipes/gmp/gmp-4.2.4/amd64.patch b/recipes/gmp/gmp-4.2.4/amd64.patch
new file mode 100644
index 0000000000..67be9dd350
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.4/amd64.patch
@@ -0,0 +1,14 @@
+--- gmp-4.1.4/longlong.h.orig 2004-04-22 00:34:28.000000000 +0200
++++ gmp-4.1.4/longlong.h 2005-07-18 01:13:06.000000000 +0200
+@@ -738,8 +738,10 @@
+ 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/recipes/gmp/gmp-4.2.4/configure.patch b/recipes/gmp/gmp-4.2.4/configure.patch
new file mode 100644
index 0000000000..8056953230
--- /dev/null
+++ b/recipes/gmp/gmp-4.2.4/configure.patch
@@ -0,0 +1,195 @@
+ acinclude.m4 | 26 ++++++++++++++------------
+ configure.in | 24 +++++++++---------------
+ 2 files changed, 23 insertions(+), 27 deletions(-)
+
+Index: gmp-4.2.4/acinclude.m4
+===================================================================
+--- gmp-4.2.4.orig/acinclude.m4 2008-09-05 14:21:12.000000000 +0200
++++ gmp-4.2.4/acinclude.m4 2008-10-15 23:37:38.062976613 +0200
+@@ -30,20 +30,20 @@
+ 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(X86_PATTERN,
++define([X86_PATTERN],
+ [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-*]])
+
+
+@@ -62,7 +62,7 @@
+ 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'`]])
+
+
+@@ -71,7 +71,7 @@
+ dnl Emit code to remove any occurance 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 :;
+@@ -87,12 +87,12 @@
+ 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
+@@ -113,7 +113,7 @@
+ dnl Dummy values for __GMP_BITS_PER_MP_LIMB and GMP_LIMB_BITS are 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_BITS_PER_MP_LIMB 123 /* dummy for GMP_NUMB_BITS etc */
+@@ -129,7 +129,7 @@
+ 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[ ]+],[]),
+@@ -143,7 +143,7 @@
+ 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
+ ifelse(m4_eval(GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in) > 0),1,
+@@ -1506,7 +1506,9 @@
+ echo ["define(<CONFIG_TOP_SRCDIR>,<\`$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
+ ])
+
+
+Index: gmp-4.2.4/configure.in
+===================================================================
+--- gmp-4.2.4.orig/configure.in 2008-08-01 19:24:04.000000000 +0200
++++ gmp-4.2.4/configure.in 2008-10-15 23:35:03.466325346 +0200
+@@ -29,12 +29,6 @@
+ AC_PREREQ(2.59)
+ AC_INIT(GNU MP, GMP_VERSION, gmp-bugs@swox.com, 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)
+
+ # If --target is not used then $target_alias is empty, but if say
+ # "./configure athlon-pc-freebsd3.5" is used, then all three of
+@@ -278,7 +272,7 @@
+ # 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.
+ #
+@@ -370,7 +364,7 @@
+ # 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"
+@@ -1525,7 +1519,7 @@
+ CFLAGS_or_unset=${CFLAGS-'(unset)'}
+ CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ User:
+ ABI=$ABI
+ CC=$CC
+@@ -1896,7 +1890,6 @@
+
+ # The C compiler and preprocessor, put into ANSI mode if possible.
+ AC_PROG_CC
+-AC_PROG_CC_STDC
+ AC_PROG_CPP
+ GMP_H_ANSI
+
+@@ -1919,11 +1912,11 @@
+
+ # The C++ compiler, if desired.
+ want_cxx=no
++AC_PROG_CXX
+ if test $enable_cxx != no; then
+ test_CXXFLAGS=${CXXFLAGS+set}
+- AC_PROG_CXX
+
+- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
+ cxxflags_ac_prog_cxx=$CXXFLAGS
+ cxxflags_list=ac_prog_cxx
+
+@@ -2029,7 +2022,7 @@
+ esac
+
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ Decided:
+ ABI=$ABI
+ CC=$CC
+@@ -3208,7 +3201,7 @@
+ # FIXME: Upcoming version of autoconf/automake may not like broken lines.
+ # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
+
+-AC_OUTPUT(Makefile \
++AC_CONFIG_FILES([Makefile \
+ mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \
+ mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \
+ tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \
+@@ -3217,4 +3210,5 @@
+ tests/cxx/Makefile \
+ doc/Makefile tune/Makefile \
+ demos/Makefile demos/calc/Makefile demos/expr/Makefile \
+- gmp.h:gmp-h.in mp.h:mp-h.in)
++ gmp.h:gmp-h.in mp.h:mp-h.in])
++AC_OUTPUT
diff --git a/recipes/gmp/gmp-canadian_4.2.4.bb b/recipes/gmp/gmp-canadian_4.2.4.bb
new file mode 100644
index 0000000000..27d179a569
--- /dev/null
+++ b/recipes/gmp/gmp-canadian_4.2.4.bb
@@ -0,0 +1,24 @@
+PV = "4.2.4"
+require gmp_${PV}.bb
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gmp-${PV}"
+S = "${WORKDIR}/gmp-${PV}"
+
+inherit canadian-native
+
+# darwin 'hacks'
+EXTRA_OECONF_build-darwin = " --enable-shared "
+OLD_STAGING := "${STAGING_BINDIR}"
+OLD_TARGET := "${TARGET_SYS}"
+OLD_HOST := "${HOST_SYS}"
+OLD_BUILD := "${BUILD_SYS}"
+
+PATH_prepend_build-darwin = "${OLD_STAGING}/${OLD_HOST}:${OLD_STAGING}:"
+
+TARGET_SYS_build-darwin = "none-apple-darwin"
+HOST_SYS_build-darwin = "none-apple-darwin"
+BUILD_SYS_build-darwin = "none-apple-darwin"
+
+do_compile_append_build-darwin() {
+ oe_runmake check
+}
diff --git a/recipes/gmp/gmp-native.inc b/recipes/gmp/gmp-native.inc
new file mode 100644
index 0000000000..c3d36e0fdb
--- /dev/null
+++ b/recipes/gmp/gmp-native.inc
@@ -0,0 +1,23 @@
+require gmp_${PV}.bb
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gmp-${PV}"
+S = "${WORKDIR}/gmp-${PV}"
+
+inherit native
+
+# darwin 'hacks'
+EXTRA_OECONF_build-darwin = " --enable-shared "
+OLD_STAGING := "${STAGING_BINDIR}"
+OLD_TARGET := "${TARGET_SYS}"
+OLD_HOST := "${HOST_SYS}"
+OLD_BUILD := "${BUILD_SYS}"
+
+PATH_prepend_build-darwin = "${OLD_STAGING}/${OLD_HOST}:${OLD_STAGING}:"
+
+TARGET_SYS_build-darwin = "none-apple-darwin"
+HOST_SYS_build-darwin = "none-apple-darwin"
+BUILD_SYS_build-darwin = "none-apple-darwin"
+
+do_compile_append_build-darwin() {
+ oe_runmake check
+}
diff --git a/recipes/gmp/gmp-native_4.1.2.bb b/recipes/gmp/gmp-native_4.1.2.bb
new file mode 100644
index 0000000000..14e8587154
--- /dev/null
+++ b/recipes/gmp/gmp-native_4.1.2.bb
@@ -0,0 +1,2 @@
+PV = "4.1.2"
+require gmp-native.inc
diff --git a/recipes/gmp/gmp-native_4.2.1.bb b/recipes/gmp/gmp-native_4.2.1.bb
new file mode 100644
index 0000000000..8594f2cb0b
--- /dev/null
+++ b/recipes/gmp/gmp-native_4.2.1.bb
@@ -0,0 +1,2 @@
+PV = "4.2.1"
+require gmp-native.inc
diff --git a/recipes/gmp/gmp-native_4.2.2.bb b/recipes/gmp/gmp-native_4.2.2.bb
new file mode 100644
index 0000000000..af85db61f2
--- /dev/null
+++ b/recipes/gmp/gmp-native_4.2.2.bb
@@ -0,0 +1,2 @@
+PV = "4.2.2"
+require gmp-native.inc
diff --git a/recipes/gmp/gmp-native_4.2.4.bb b/recipes/gmp/gmp-native_4.2.4.bb
new file mode 100644
index 0000000000..1e0ffb4bed
--- /dev/null
+++ b/recipes/gmp/gmp-native_4.2.4.bb
@@ -0,0 +1,2 @@
+PV = "4.2.4"
+require gmp-native.inc
diff --git a/recipes/gmp/gmp.inc b/recipes/gmp/gmp.inc
new file mode 100644
index 0000000000..71ea128bc5
--- /dev/null
+++ b/recipes/gmp/gmp.inc
@@ -0,0 +1,18 @@
+SECTION = "libs"
+DESCRIPTION = "GNU multiprecision arithmetic library"
+HOMEPAGE = "http://www.swox.com/gmp/"
+LICENSE = "GPL LGPL"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/gmp/gmp-${PV}.tar.bz2 \
+ file://configure.patch;patch=1 \
+ file://amd64.patch;patch=1"
+
+inherit autotools
+
+ARM_INSTRUCTION_SET = "arm"
+
+acpaths = ""
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/recipes/gmp/gmp_4.1.2.bb b/recipes/gmp/gmp_4.1.2.bb
new file mode 100644
index 0000000000..45b2672ee7
--- /dev/null
+++ b/recipes/gmp/gmp_4.1.2.bb
@@ -0,0 +1,3 @@
+require gmp.inc
+
+SRC_URI += "file://gcc-compile.patch;patch=1" \ No newline at end of file
diff --git a/recipes/gmp/gmp_4.1.4.bb b/recipes/gmp/gmp_4.1.4.bb
new file mode 100644
index 0000000000..0b32f552e7
--- /dev/null
+++ b/recipes/gmp/gmp_4.1.4.bb
@@ -0,0 +1,5 @@
+require gmp.inc
+
+PR = "r1"
+
+SRC_URI += "file://sh4-asmfix.patch;patch=1" \ No newline at end of file
diff --git a/recipes/gmp/gmp_4.2.1.bb b/recipes/gmp/gmp_4.2.1.bb
new file mode 100644
index 0000000000..452553beda
--- /dev/null
+++ b/recipes/gmp/gmp_4.2.1.bb
@@ -0,0 +1,6 @@
+PR = "r2"
+
+SRC_URI_append += "file://sh4-asmfix.patch;patch=1 \
+ file://x86-fat.diff;patch=1;pnum=0 "
+
+require gmp.inc
diff --git a/recipes/gmp/gmp_4.2.2.bb b/recipes/gmp/gmp_4.2.2.bb
new file mode 100644
index 0000000000..295237f0f3
--- /dev/null
+++ b/recipes/gmp/gmp_4.2.2.bb
@@ -0,0 +1,8 @@
+PR = "r1"
+
+SRC_URI_append += "file://02_noexec-stack.diff;patch=1 \
+ file://03_gnu89-inline.diff;patch=1 \
+ file://mpf_set_str_c.diff;patch=1 \
+ file://sh4-asmfix.patch;patch=1 \
+ "
+require gmp.inc
diff --git a/recipes/gmp/gmp_4.2.4.bb b/recipes/gmp/gmp_4.2.4.bb
new file mode 100644
index 0000000000..b37c266c4f
--- /dev/null
+++ b/recipes/gmp/gmp_4.2.4.bb
@@ -0,0 +1,5 @@
+PR = "r0"
+
+SRC_URI_append += "file://sh4-asmfix.patch;patch=1 \
+ "
+require gmp.inc