From patchwork Thu Nov 6 21:48:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Aguilar X-Patchwork-Id: 407734 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id A070B1400A0 for ; Fri, 7 Nov 2014 08:48:39 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id D4F1C33A74; Thu, 6 Nov 2014 21:48:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 83vfY495khki; Thu, 6 Nov 2014 21:48:32 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id D525233DAF; Thu, 6 Nov 2014 21:48:27 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id BF4971C151C for ; Thu, 6 Nov 2014 21:48:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id BA7E1A28E7 for ; Thu, 6 Nov 2014 21:48:20 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WpGRENfa1TFW for ; Thu, 6 Nov 2014 21:48:19 +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 fraxinus.osuosl.org (Postfix) with ESMTPS id D0B04A2643 for ; Thu, 6 Nov 2014 21:48:18 +0000 (UTC) Received: from localhost.localdomain (host153-179-dynamic.4-87-r.retail.telecomitalia.it [87.4.179.153]) by mrelayeu.kundenserver.de (node=mreue105) with ESMTP (Nemesis) id 0M72xB-1Y0KSp3dUD-00wku9; Thu, 06 Nov 2014 22:48:15 +0100 From: Pedro Aguilar To: buildroot@buildroot.org Date: Thu, 6 Nov 2014 22:48:06 +0100 Message-Id: <1415310486-25904-5-git-send-email-paguilar@paguilar.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1415310486-25904-1-git-send-email-paguilar@paguilar.org> References: <1415310486-25904-1-git-send-email-paguilar@paguilar.org> X-Provags-ID: V02:K0:yImQG+Z/iPQN+5q98NArhCd0VXYRpmULIxzMmua3eTm VVFG0PHITu9fnbCd8pnYuvDFEisKQdQ27ReSDVmkqD7+4LSi5w jlbqGs1b0vo366pPTTc1TjyS9m2HhBcsF59foNkrNkh1L7/Fva eh6ma4XtRNqO0yjR1qmoQqdPCSnXa6f0THF19l7vaBZHdHTdci fwvFCd93WcqHGnoO4iVzkdOM/K2qYCIHrFC+SDnQAU4Pi/mOCR YXhiH52gkYK2TLTKgRNH4TRviQ0/C3Gqiihh7vdMML47w3NULz qBj4PdtZa6+ZgurNijvPuVicgIlxgjGmhs4uzo6d/jSGdsiGuo sVPY0mcKSRJCOLroO/eEuMPlPY1Icd8Xk459+dDlVBGL9+Vvj8 d8BpxcN+qLgmOgjzt8LXWokASXH3CFp5k8= X-UI-Out-Filterresults: notjunk:1; Subject: [Buildroot] [PATCH v4 4/4] guile: 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. Signed-off-by: Pedro Aguilar --- 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) Signed-off-by: Pedro Aguilar --- package/Config.in | 1 + package/guile/Config.in | 15 +++++++++ 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 | 25 +++++++++++++++ 6 files changed, 118 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..85671e0 --- /dev/null +++ b/package/guile/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_GUILE + bool "guile" + depends on BR2_TOOLCHAIN_HAS_THREADS + 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..a30a241 --- /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