summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gmp
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-devtools/gmp
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadopenembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.bz2
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.xz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.zip
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-devtools/gmp')
-rw-r--r--meta/recipes-devtools/gmp/gmp-4.2.1/disable-stdc.patch31
-rw-r--r--meta/recipes-devtools/gmp/gmp.inc16
-rw-r--r--meta/recipes-devtools/gmp/gmp/amd64.patch14
-rw-r--r--meta/recipes-devtools/gmp/gmp/configure.patch195
-rw-r--r--meta/recipes-devtools/gmp/gmp/sh4-asmfix.patch26
-rw-r--r--meta/recipes-devtools/gmp/gmp/use-includedir.patch13
-rw-r--r--meta/recipes-devtools/gmp/gmp_4.2.1.bb14
-rw-r--r--meta/recipes-devtools/gmp/gmp_5.0.1.bb7
8 files changed, 316 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gmp/gmp-4.2.1/disable-stdc.patch b/meta/recipes-devtools/gmp/gmp-4.2.1/disable-stdc.patch
new file mode 100644
index 000000000..83c9eae36
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp-4.2.1/disable-stdc.patch
@@ -0,0 +1,31 @@
+# "extern inline" in traditional gcc means that the function should be
+# inlined wherever it's seen, while in C99, "extern inline" means that i
+# the function should only be inlined where the inline definition is
+# seen while in other places it's not inlined:
+# http://gcc.gnu.org/ml/gcc/2006-11/msg00006.html
+#
+# gmp checks "--std=gnu99" to use C99 convention however it internally
+# defines some "extern inline" functions in gmp.h, which is included
+# by mainly .c files and finally lead a flood of redefinition function
+# errors when linking objects together.
+#
+# So disable C99/ANSI detection to stick to tranditional gcc behavior
+#
+# by Kevin Tian <kevin.tian@intel.com>, 2010-08-13
+#
+# (this patch is licensed under GPLv2+)
+
+diff --git a/configure.in b/configure.in
+index 450cc92..aab0b59 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1869,9 +1869,7 @@ AC_SUBST(DEFN_LONG_LONG_LIMB)
+
+ # The C compiler and preprocessor, put into ANSI mode if possible.
+ AC_PROG_CC
+-AC_PROG_CC_STDC
+ AC_PROG_CPP
+-GMP_H_ANSI
+
+
+ # The C compiler on the build system, and associated tests.
diff --git a/meta/recipes-devtools/gmp/gmp.inc b/meta/recipes-devtools/gmp/gmp.inc
new file mode 100644
index 000000000..6b56f7e7c
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp.inc
@@ -0,0 +1,16 @@
+SECTION = "devel"
+DESCRIPTION = "GNU multiprecision arithmetic library"
+HOMEPAGE = "http://www.swox.com/gmp/"
+LICENSE = "GPLv3 LGPLv3"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/gmp/gmp-${PV}.tar.bz2 \
+ file://configure.patch \
+ file://amd64.patch "
+
+inherit autotools
+
+ARM_INSTRUCTION_SET = "arm"
+
+acpaths = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/gmp/gmp/amd64.patch b/meta/recipes-devtools/gmp/gmp/amd64.patch
new file mode 100644
index 000000000..67be9dd35
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp/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/meta/recipes-devtools/gmp/gmp/configure.patch b/meta/recipes-devtools/gmp/gmp/configure.patch
new file mode 100644
index 000000000..ed0c02d86
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp/configure.patch
@@ -0,0 +1,195 @@
+ acinclude.m4 | 26 ++++++++++++++------------
+ configure.in | 24 +++++++++---------------
+ 2 files changed, 23 insertions(+), 27 deletions(-)
+
+Index: gmp-5.0.1/acinclude.m4
+===================================================================
+--- gmp-5.0.1.orig/acinclude.m4
++++ gmp-5.0.1/acinclude.m4
+@@ -30,20 +30,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*-*-* | geode*-*-* | atom-*-*]])
+
+ define(X86_64_PATTERN,
+@@ -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 occurrence of ITEM from $LISTVAR. ITEM can be a
+ dnl shell expression like $foo if desired.
+
+-define(GMP_REMOVE_FROM_LIST,
++define([GMP_REMOVE_FROM_LIST],
+ [remove_from_list_tmp=
+ for remove_from_list_i in $[][$1]; do
+ if test $remove_from_list_i = [$2]; then :;
+@@ -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 value for GMP_LIMB_BITS is enough
+ dnl for all current configure-time uses of gmp.h.
+
+-define(GMP_INCLUDE_GMP_H,
++define([GMP_INCLUDE_GMP_H],
+ [[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */
+ #define GMP_NAIL_BITS $GMP_NAIL_BITS
+ #define GMP_LIMB_BITS 123
+@@ -130,7 +130,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[ ]+],[]),
+@@ -144,7 +144,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
+ .GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in)])
+@@ -1506,7 +1506,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-5.0.1/configure.in
+===================================================================
+--- gmp-5.0.1.orig/configure.in
++++ gmp-5.0.1/configure.in
+@@ -29,12 +29,6 @@ AC_REVISION($Revision$)
+ AC_PREREQ(2.59)
+ AC_INIT(GNU MP, GMP_VERSION, gmp-bugs@gmplib.org, 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
+@@ -303,7 +297,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.
+ #
+@@ -395,7 +389,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"
+@@ -1580,7 +1574,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
+@@ -1987,7 +1981,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
+
+@@ -2010,11 +2003,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
+
+@@ -2120,7 +2113,7 @@ case $host in
+ esac
+
+
+-cat >&AC_FD_CC <<EOF
++cat >&AS_MESSAGE_LOG_FD() <<EOF
+ Decided:
+ ABI=$ABI
+ CC=$CC
+@@ -3376,7 +3369,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 \
+@@ -3385,4 +3378,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/meta/recipes-devtools/gmp/gmp/sh4-asmfix.patch b/meta/recipes-devtools/gmp/gmp/sh4-asmfix.patch
new file mode 100644
index 000000000..1a01f6153
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp/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/meta/recipes-devtools/gmp/gmp/use-includedir.patch b/meta/recipes-devtools/gmp/gmp/use-includedir.patch
new file mode 100644
index 000000000..ee3891f80
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp/use-includedir.patch
@@ -0,0 +1,13 @@
+Index: gmp-4.2.4/Makefile.am
+===================================================================
+--- gmp-4.2.4.orig/Makefile.am 2008-09-10 19:31:27.000000000 +0000
++++ gmp-4.2.4/Makefile.am 2009-07-06 20:19:19.000000000 +0000
+@@ -106,7 +106,7 @@
+ # but anyone knowledgable enough to be playing with exec_prefix will be able
+ # to address that.
+ #
+-includeexecdir = $(exec_prefix)/include
++includeexecdir = $(includedir)
+ include_HEADERS = $(GMPXX_HEADERS_OPTION)
+ nodist_includeexec_HEADERS = gmp.h $(MPBSD_HEADERS_OPTION)
+ lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) $(MPBSD_LTLIBRARIES_OPTION)
diff --git a/meta/recipes-devtools/gmp/gmp_4.2.1.bb b/meta/recipes-devtools/gmp/gmp_4.2.1.bb
new file mode 100644
index 000000000..d70dcf266
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp_4.2.1.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers"
+HOMEPAGE = "http://gmplib.org/"
+BUGTRACKER = "http://gmplib.org/mailman/listinfo/gmp-bugs"
+# demo is licensed under GPLv2+, which however we don't package at all
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a \
+ file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24 \
+ file://gmp-h.in;startline=6;endline=21;md5=5e25ffd16996faba8c1cd27b04b16099"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/gmp/${BP}.tar.bz2 \
+ file://disable-stdc.patch"
+
+inherit autotools
diff --git a/meta/recipes-devtools/gmp/gmp_5.0.1.bb b/meta/recipes-devtools/gmp/gmp_5.0.1.bb
new file mode 100644
index 000000000..dd908bd7c
--- /dev/null
+++ b/meta/recipes-devtools/gmp/gmp_5.0.1.bb
@@ -0,0 +1,7 @@
+require gmp.inc
+
+PR = "r0"
+
+SRC_URI_append += "file://sh4-asmfix.patch \
+ file://use-includedir.patch "
+