From patchwork Mon Nov 24 22:56:30 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Aguilar X-Patchwork-Id: 414158 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id 2BA7C1400D2 for ; Tue, 25 Nov 2014 09:57:02 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 411339283C; Mon, 24 Nov 2014 22:57:01 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oHu857REFcMh; Mon, 24 Nov 2014 22:56:55 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 9054D9285E; Mon, 24 Nov 2014 22:56:52 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 0D09F1C1E4E for ; Mon, 24 Nov 2014 22:56:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 04EEB9283F for ; Mon, 24 Nov 2014 22:56:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xIAoxUcPJ9uH for ; Mon, 24 Nov 2014 22:56:39 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) by whitealder.osuosl.org (Postfix) with ESMTPS id 6A39A9281C for ; Mon, 24 Nov 2014 22:56:39 +0000 (UTC) Received: from localhost.localdomain (host89-115-dynamic.60-82-r.retail.telecomitalia.it [82.60.115.89]) by mrelayeu.kundenserver.de (node=mreue101) with ESMTP (Nemesis) id 0MCZWc-1Xjecg1e6M-009TL3; Mon, 24 Nov 2014 23:56:36 +0100 From: Pedro Aguilar To: buildroot@buildroot.org Date: Mon, 24 Nov 2014 23:56:30 +0100 Message-Id: <1416869790-12988-5-git-send-email-paguilar@paguilar.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1416869790-12988-1-git-send-email-paguilar@paguilar.org> References: <1416869790-12988-1-git-send-email-paguilar@paguilar.org> X-Provags-ID: V02:K0:ArzlbhZkS9YdHSs0rGLDM0otUWMkUkLlBCkGxli14JZ honf9ebQ1+CvC2XeuMhtw8INHL1T+k3NoPBsjz3iyxQjNz2CWv N0QPG0Nb11HCNRHzcqb6Rig/YJNttHjG5CrSpGADJiPXQ3Srnp dgLG4RPsUON92AbpFhRo0gzbEWR9NtR60Mr1IPsaVa40JKCxq4 LHHLpHH3e9zfY3dvQQEcwvTIoE/ErK+8P5ikhUpIiCkhMidN2c vX9qeHVhaxaPc+pZBaZyP79/NuM22STjKRkaplEuzyQvHcVaWv qhN0ue9fF+ZmgxUubdRiT/B2vuyNuvlxFw+cLbHzCBnhHYKDRV sNb+A2vcODQNd0k7GboxfDM27hJyDvMbwBg+AoJirVZTSyqypf B0kVDAakuT1lUb7tdI624cFMHvIJ5xZZ7I= X-UI-Out-Filterresults: notjunk:1; Subject: [Buildroot] [PATCH v5 4/4] guile: Add new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Guile is an interpreter and compiler for the Scheme programming language, a clean and elegant dialect of Lisp. The patch guile-01-fix_arm_endianness.patch is based on guile's git commit ^ffd3e55cfd Signed-off-by: Pedro Aguilar --- Changes v4 -> v5: - Add depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS # bdwgc - Break long line GUILE_CFLAGS to improve readability (All changes suggested by Yann Morin) Changes v3 -> v4: - Fix formatting issues (Suggested by Jerzy Grzegorek) Changes v2 -> v3: - Improve patches - Remove unused dependencies - Fix patches formatting (All changes suggested by Thomas Petazzoni) Changes v1 -> v2: - Add all needed dependencies - Explain GUILE_CONF_ENV arguments - Remove PKG_CONFIG_HOST_BINARY - Fix patches formatting - Add thread comments in Config.in (All changes suggested by Yann Morin) --- package/Config.in | 1 + package/guile/Config.in | 17 ++++++++++ package/guile/guile-01-fix_arm_endianness.patch | 25 +++++++++++++++ .../guile/guile-02-calculate-csqrt_manually.patch | 16 ++++++++++ package/guile/guile-03-remove_unused_funcs.patch | 36 ++++++++++++++++++++++ package/guile/guile.mk | 31 +++++++++++++++++++ 6 files changed, 126 insertions(+) create mode 100644 package/guile/Config.in create mode 100644 package/guile/guile-01-fix_arm_endianness.patch create mode 100644 package/guile/guile-02-calculate-csqrt_manually.patch create mode 100644 package/guile/guile-03-remove_unused_funcs.patch create mode 100644 package/guile/guile.mk diff --git a/package/Config.in b/package/Config.in index 1354c27..d45495d 100644 --- a/package/Config.in +++ b/package/Config.in @@ -391,6 +391,7 @@ endmenu menu "Interpreter languages and scripting" source "package/enscript/Config.in" source "package/erlang/Config.in" + source "package/guile/Config.in" source "package/haserl/Config.in" source "package/jamvm/Config.in" source "package/jimtcl/Config.in" diff --git a/package/guile/Config.in b/package/guile/Config.in new file mode 100644 index 0000000..8b75ca5 --- /dev/null +++ b/package/guile/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_GUILE + bool "guile" + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS # bdwgc + select BR2_PACKAGE_LIBUNISTRING + select BR2_PACKAGE_LIBFFI + select BR2_PACKAGE_GMP + select BR2_PACKAGE_BDWGC + help + Guile is an interpreter and compiler for the Scheme + programming language, a clean and elegant dialect of Lisp. + + http://www.gnu.org/software/guile + +comment "guile needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS + diff --git a/package/guile/guile-01-fix_arm_endianness.patch b/package/guile/guile-01-fix_arm_endianness.patch new file mode 100644 index 0000000..67c0b60 --- /dev/null +++ b/package/guile/guile-01-fix_arm_endianness.patch @@ -0,0 +1,25 @@ +Fix support for ARM endianness, otherwise it gives the error +"unknown CPU endianness" + +Signed-off-by: Pedro Aguilar + +diff -Nau guile-2.0.11.orig/module/system/base/target.scm guile-2.0.11/module/system/base/target.scm +--- guile-2.0.11.orig/module/system/base/target.scm 2013-02-28 09:42:45.000000000 +0100 ++++ guile-2.0.11/module/system/base/target.scm 2014-11-03 23:05:01.789338997 +0100 +@@ -70,7 +70,15 @@ + ((member cpu '("sparc" "sparc64" "powerpc" "powerpc64" "spu" + "mips" "mips64")) + (endianness big)) +- ((string-match "^arm.*el" cpu) ++ ((string-match "^arm.*el" cpu) ++ (endianness little)) ++ ((string-match "^arm.*eb" cpu) ++ (endianness big)) ++ ((string-prefix? "arm" cpu) ;ARMs are LE by default ++ (endianness little)) ++ ((string-match "^aarch64.*be" cpu) ++ (endianness big)) ++ ((string=? "aarch64" cpu) + (endianness little)) + (else + (error "unknown CPU endianness" cpu))))) diff --git a/package/guile/guile-02-calculate-csqrt_manually.patch b/package/guile/guile-02-calculate-csqrt_manually.patch new file mode 100644 index 0000000..98bb0b6 --- /dev/null +++ b/package/guile/guile-02-calculate-csqrt_manually.patch @@ -0,0 +1,16 @@ +Avoid using scm_from_complex_double(csqrt()) when building with uclibc. + +Signed-off-by: Pedro Aguilar + +diff -Nau guile-2.0.11.orig/configure.ac guile-2.0.11/configure.ac +--- guile-2.0.11.orig/configure.ac 2014-03-12 14:36:02.000000000 +0100 ++++ guile-2.0.11/configure.ac 2014-11-03 23:59:51.897267207 +0100 +@@ -862,7 +862,7 @@ + }]])], + [guile_cv_use_csqrt=yes], + [guile_cv_use_csqrt="no, glibc 2.3 bug"], +- [guile_cv_use_csqrt="yes, hopefully (cross-compiling)"])]) ++ [guile_cv_use_csqrt="no (cross-compiling)"])]) + case $guile_cv_use_csqrt in + yes*) + AC_DEFINE([HAVE_USABLE_CSQRT], 1, [Define to 1 if csqrt is bug-free]) diff --git a/package/guile/guile-03-remove_unused_funcs.patch b/package/guile/guile-03-remove_unused_funcs.patch new file mode 100644 index 0000000..3d70ee9 --- /dev/null +++ b/package/guile/guile-03-remove_unused_funcs.patch @@ -0,0 +1,36 @@ +Remove unused static inline functions str_upcase_l() and +str_downcase_l() that cause the compilation error: +'dereferencing pointer to incomplete type'. + +Signed-off-by: Pedro Aguilar + +diff -Nau guile-2.0.11.orig/libguile/i18n.c guile-2.0.11/libguile/i18n.c +--- guile-2.0.11.orig/libguile/i18n.c 2014-01-21 22:25:11.000000000 +0100 ++++ guile-2.0.11/libguile/i18n.c 2014-11-04 23:18:52.675435613 +0100 +@@ -851,26 +851,6 @@ + *dst = '\0'; + } + +-#ifdef USE_GNU_LOCALE_API +-static inline void +-str_upcase_l (register char *dst, register const char *src, +- scm_t_locale locale) +-{ +- for (; *src != '\0'; src++, dst++) +- *dst = toupper_l (*src, locale); +- *dst = '\0'; +-} +- +-static inline void +-str_downcase_l (register char *dst, register const char *src, +- scm_t_locale locale) +-{ +- for (; *src != '\0'; src++, dst++) +- *dst = tolower_l (*src, locale); +- *dst = '\0'; +-} +-#endif +- + + SCM_DEFINE (scm_string_locale_lt, "string-locale