From d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 1 Sep 2010 19:09:11 +0100 Subject: packages: Separate out most of the remaining packages into recipes Signed-off-by: Richard Purdie --- .../gmp/gmp-4.2.1/disable-stdc.patch | 31 ++++ meta/recipes-support/gmp/gmp.inc | 16 ++ meta/recipes-support/gmp/gmp/amd64.patch | 14 ++ meta/recipes-support/gmp/gmp/configure.patch | 195 +++++++++++++++++++++ meta/recipes-support/gmp/gmp/sh4-asmfix.patch | 26 +++ meta/recipes-support/gmp/gmp/use-includedir.patch | 13 ++ meta/recipes-support/gmp/gmp_4.2.1.bb | 14 ++ meta/recipes-support/gmp/gmp_5.0.1.bb | 7 + 8 files changed, 316 insertions(+) create mode 100644 meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch create mode 100644 meta/recipes-support/gmp/gmp.inc create mode 100644 meta/recipes-support/gmp/gmp/amd64.patch create mode 100644 meta/recipes-support/gmp/gmp/configure.patch create mode 100644 meta/recipes-support/gmp/gmp/sh4-asmfix.patch create mode 100644 meta/recipes-support/gmp/gmp/use-includedir.patch create mode 100644 meta/recipes-support/gmp/gmp_4.2.1.bb create mode 100644 meta/recipes-support/gmp/gmp_5.0.1.bb (limited to 'meta/recipes-support/gmp') diff --git a/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch b/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch new file mode 100644 index 0000000000..83c9eae36a --- /dev/null +++ b/meta/recipes-support/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 , 2010-08-13 +# +# (this patch is licensed under GPLv2+) + +diff --git a/configure.in b/configure.in +index 450cc92..aab0b59 100644 +--- a/configure.in ++++ b/configure.in +@@ -1869,9 +1869,7 @@ AC_SUBST(DEFN_LONG_LONG_LIMB) + + # The C compiler and preprocessor, put into ANSI mode if possible. + AC_PROG_CC +-AC_PROG_CC_STDC + AC_PROG_CPP +-GMP_H_ANSI + + + # The C compiler on the build system, and associated tests. diff --git a/meta/recipes-support/gmp/gmp.inc b/meta/recipes-support/gmp/gmp.inc new file mode 100644 index 0000000000..6b56f7e7c8 --- /dev/null +++ b/meta/recipes-support/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-support/gmp/gmp/amd64.patch b/meta/recipes-support/gmp/gmp/amd64.patch new file mode 100644 index 0000000000..67be9dd350 --- /dev/null +++ b/meta/recipes-support/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-support/gmp/gmp/configure.patch b/meta/recipes-support/gmp/gmp/configure.patch new file mode 100644 index 0000000000..ed0c02d86c --- /dev/null +++ b/meta/recipes-support/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(,<\`$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 <&AS_MESSAGE_LOG_FD() <&AC_FD_CC ++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD() + cxxflags_ac_prog_cxx=$CXXFLAGS + cxxflags_list=ac_prog_cxx + +@@ -2120,7 +2113,7 @@ case $host in + esac + + +-cat >&AC_FD_CC <&AS_MESSAGE_LOG_FD() <