Commit 6322f25e authored by Pedro Aguilar's avatar Pedro Aguilar Committed by Thomas Petazzoni
Browse files

guile: Add new package



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

[Thomas:
 - rewrap comments and help text.
 - add missing host-gettext dependency, since gettext.m4 is needed for
   the package to autoreconf.
 - add missing host-pkgconf dependency.
 - add dependency on wchar, inherited from libunistring.]

Signed-off-by: default avatarPedro Aguilar <paguilar@paguilar.org>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 8df26dea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -392,6 +392,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"
+18 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_GUILE
	bool "guile"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS # bdwgc
	depends on BR2_USE_WCHAR # libunistring
	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, wchar"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
+25 −0
Original line number Diff line number Diff line
Fix support for ARM endianness, otherwise it gives the error
"unknown CPU endianness"

Signed-off-by: Pedro Aguilar <paguilar@paguilar.org>

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)))))
+16 −0
Original line number Diff line number Diff line
Avoid using scm_from_complex_double(csqrt()) when building with uclibc.

Signed-off-by: Pedro Aguilar <paguilar@paguilar.org>

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])
+36 −0
Original line number Diff line number Diff line
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 <paguilar@paguilar.org>

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<?", 2, 1, 0,
 	    (SCM s1, SCM s2, SCM locale),
Loading