package/guile: New package
v3 cover package/guile: New package
This patch should fix all the suggestions made by Thomas and Arnout for guile and bdwgc, respectively.
The patch adds the following:
- libatomic_ops: Add host-autotools-package
- libunistring: Add host-autotools-package
- bdwgc: New package. A garbage collector library for C/C++
- Guile: New package. A progamming language similar to Lisp.
Pedro Aguilar (4):
libatomic_ops: Add host-autotools-package
bdwgc: new package
libunistring: Add host-autotools-package
guile: new package
package/Config.in | 2 ++ package/bdwgc/Config.in | 11 +++++++ package/bdwgc/bdwgc.mk | 21 +++++++++++++ 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 | 26 ++++++++++++++++ package/libatomic_ops/libatomic_ops.mk | 1 + package/libunistring/libunistring.mk | 1 + 10 files changed, 154 insertions(+) create mode 100644 package/bdwgc/Config.in create mode 100644 package/bdwgc/bdwgc.mk 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
Signature · 1 line
1.9.1
PATCH v3 1/4 libatomic_ops: Add host-autotools-package
The host-libatomic_ops is needed by host-bdwgc that is needed in turn by guile.
bdwgc bundles its own version of libatomic_ops, but it's prefered to use the external one that is the default.
---
Changes v1 -> v2:
- Add host-libatomic_ops (suggested by Yann Morin)
--- package/libatomic_ops/libatomic_ops.mk | 1 + 1 file changed, 1 insertion(+)
package/libatomic_ops/libatomic_ops.mk +1 -0
@@ -20,3 +20,4 @@ LIBATOMIC_OPS_LICENSE_FILES = doc/LICENSING.txt COPYING LIBATOMIC_OPS_INSTALL_STAGING = YES $(eval $(autotools-package)) +$(eval $(host-autotools-package))
Signature · 1 line
1.9.1
PATCH v3 2/4 bdwgc: new package
In reply to Pedro Aguilarbdwgc is a garbage collector for C and C++. The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C 'malloc' or C++ 'new'.
---
Changes v2 -> v3:
- bdwgc belongs to Libraries/Other
- Fix license file name
- Comment options properly
- Fix a formatting issue
(All changes suggested by Arnout Vandecappelle)
Changes v1 -> v2:
- Add external default dependency on libatomic_ops
- Fix several formatting issues
(All changes suggested by Yann Morin)
--- package/Config.in | 1 + package/bdwgc/Config.in | 11 +++++++++++ package/bdwgc/bdwgc.mk | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 package/bdwgc/Config.in create mode 100644 package/bdwgc/bdwgc.mk
package/Config.in +1 -0
@@ -848,6 +848,7 @@ menu "Other" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in" source "package/armadillo/Config.in" + source "package/bdwgc/Config.in" source "package/boost/Config.in" source "package/clapack/Config.in" source "package/classpath/Config.in"
package/bdwgc/Config.in new file +11 -0
@@ -0,0 +1,11 @@ +config BR2_PACKAGE_BDWGC + bool "bdwgc" + depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS + select BR2_PACKAGE_LIBATOMIC_OPS + help + The Boehm-Demers-Weiser conservative garbage collector can + be used as a garbage collecting replacement for C 'malloc' + or C++ 'new'. + + http://www.hboehm.info/gc/ +
package/bdwgc/bdwgc.mk new file +21 -0
@@ -0,0 +1,21 @@ +################################################################################ +# +# bdwgc +# +################################################################################ + +BDWGC_VERSION = 7.2f +BDWGC_SOURCE = gc-$(BDWGC_VERSION).tar.gz +BDWGC_SITE = http://www.hboehm.info/gc/gc_source +BDWGC_INSTALL_STAGING = YES +BDWGC_LICENSE = bdwgc license +BDWGC_LICENSE_FILES = README.QUICK + +# Patching libtool breaks build +BDWGC_LIBTOOL_PATCH = NO + +BDWGC_DEPENDENCIES = host-bdwgc libatomic_ops + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) +
Signature · 1 line
1.9.1
PATCH v3 2/4 bdwgc: new package
Hi Pedro,
Quoted 74 lines
bdwgc is a garbage collector for C and C++. The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C 'malloc' or C++ 'new'.
Signed-off-by Pedro Aguilar <[email protected]>---
Changes v2 -> v3:
- bdwgc belongs to Libraries/Other
- Fix license file name
- Comment options properly
- Fix a formatting issue
(All changes suggested by Arnout Vandecappelle)Changes v1 -> v2:
- Add external default dependency onlibatomic_ops
- Fix several formatting issues
(All changes suggested by Yann Morin)Signed-off-by Pedro Aguilar <[email protected]>--- package/Config.in | 1 + package/bdwgc/Config.in | 11 +++++++++++ package/bdwgc/bdwgc.mk | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+)create mode 100644 package/bdwgc/Config.in
create mode 100644package/bdwgc/bdwgc.mkpackage/Config.in +1
-0@@ -848,6 +848,7 @@ menu "Other" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in" source "package/armadillo/Config.in" + source "package/bdwgc/Config.in" source "package/boost/Config.in" source "package/clapack/Config.in" source "package/classpath/Config.in"package/bdwgc/Config.in new file +11
-0@@ -0,0 +1,11 @@ +config BR2_PACKAGE_BDWGC + bool "bdwgc" + depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS + select BR2_PACKAGE_LIBATOMIC_OPS + help + The Boehm-Demers-Weiser conservative garbage collector can + be used as a garbage collecting replacement for C 'malloc' + or C++ 'new'. + + http://www.hboehm.info/gc/ +package/bdwgc/bdwgc.mk new file +11
-0@@ -0,0 +1,21 @@ +################################################################################ +# +# bdwgc +# +################################################################################ + +BDWGC_VERSION = 7.2f +BDWGC_SOURCE = gc-$(BDWGC_VERSION).tar.gz +BDWGC_SITE = http://www.hboehm.info/gc/gc_source +BDWGC_INSTALL_STAGING = YES +BDWGC_LICENSE = bdwgc license
package/bdwgc/bdwgc.mk line 21
Quoted 10 lines
package/bdwgc/bdwgc.mk new file +10
-0+BDWGC_LICENSE_FILES = README.QUICK + +# Patching libtool breaks build +BDWGC_LIBTOOL_PATCH = NO + +BDWGC_DEPENDENCIES = host-bdwgc libatomic_ops + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) +
This trailing empty line is not needed. Same in patch 4/4.
Regards,
Jerzy
PATCH v3 2/4 bdwgc: new package
Hi Jerzy,
I just fixed it. I'm sending the patch.
Thanks.
Quoted 95 lines · Jerzy Grzegorek
Hi Pedro,
Quoted 76 lines
bdwgc is a garbage collector for C and C++. The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C 'malloc' or C++ 'new'.
Signed-off-by Pedro Aguilar <[email protected]>---
Changes v2 -> v3:
- bdwgc belongs to Libraries/Other
- Fix license file name
- Comment options properly
- Fix a formatting issue
(All changes suggested by Arnout Vandecappelle)Changes v1 -> v2:
- Add external default dependency onlibatomic_ops
- Fix several formatting issues
(All changes suggested by Yann Morin)Signed-off-by Pedro Aguilar <[email protected]>--- package/Config.in | 1 + package/bdwgc/Config.in | 11 +++++++++++ package/bdwgc/bdwgc.mk | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+)create mode 100644 package/bdwgc/Config.in
create mode 100644package/bdwgc/bdwgc.mkpackage/Config.in +1
-0@@ -848,6 +848,7 @@ menu "Other" source "package/apr-util/Config.in" source "package/argp-standalone/Config.in" source "package/armadillo/Config.in" + source "package/bdwgc/Config.in" source "package/boost/Config.in" source "package/clapack/Config.in" source "package/classpath/Config.in"package/bdwgc/Config.in new file +11
-0@@ -0,0 +1,11 @@ +config BR2_PACKAGE_BDWGC + bool "bdwgc" + depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS + select BR2_PACKAGE_LIBATOMIC_OPS + help + The Boehm-Demers-Weiser conservative garbage collector can + be used as a garbage collecting replacement for C 'malloc' + or C++ 'new'. + + http://www.hboehm.info/gc/ +package/bdwgc/bdwgc.mk new file +11
-0@@ -0,0 +1,21 @@ +################################################################################ +# +# bdwgc +# +################################################################################ + +BDWGC_VERSION = 7.2f +BDWGC_SOURCE = gc-$(BDWGC_VERSION).tar.gz +BDWGC_SITE = http://www.hboehm.info/gc/gc_source +BDWGC_INSTALL_STAGING = YES +BDWGC_LICENSE = bdwgc licensepackage/bdwgc/bdwgc.mk line 21
Quoted 10 lines
package/bdwgc/bdwgc.mk new file +10
-0+BDWGC_LICENSE_FILES = README.QUICK + +# Patching libtool breaks build +BDWGC_LIBTOOL_PATCH = NO + +BDWGC_DEPENDENCIES = host-bdwgc libatomic_ops + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) +This trailing empty line is not needed. Same in patch 4/4.
Regards,
Jerzy
Signature · 2 lines
Pedro Aguilar http://paguilar.org
PATCH v3 3/4 libunistring: Add host-autotools-package
In reply to Pedro AguilarThe host-libunistring is needed by guile
---
Changes v1 -> v2:
- Add host-libunistring (suggested by Yann Morin)
--- package/libunistring/libunistring.mk | 1 + 1 file changed, 1 insertion(+)
package/libunistring/libunistring.mk +1 -0
@@ -17,3 +17,4 @@ LIBUNISTRING_CONF_OPTS += --disable-threads endif $(eval $(autotools-package)) +$(eval $(host-autotools-package))
Signature · 1 line
1.9.1
PATCH v3 4/4 guile: new package
In reply to Pedro AguilarGuile is an interpreter and compiler for the Scheme programming language, a clean and elegant dialect of Lisp.
---
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 | 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 | 26 ++++++++++++++++ 6 files changed, 119 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
package/Config.in +1 -0
@@ -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"
package/guile/Config.in new file +15 -0
@@ -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
package/guile/guile-01-fix_arm_endianness.patch new file +25 -0
@@ -0,0 +1,25 @@ +Fix support for ARM endianness, otherwise it gives the error +"unknown CPU endianness" + +Signed-off-by: Pedro Aguilar <[email protected]> + +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)))))
package/guile/guile-02-calculate-csqrt_manually.patch new file +16 -0
@@ -0,0 +1,16 @@ +Avoid using scm_from_complex_double(csqrt()) when building with uclibc. + +Signed-off-by: Pedro Aguilar <[email protected]> + +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])
package/guile/guile-03-remove_unused_funcs.patch new file +36 -0
@@ -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 <[email protected]> + +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),
package/guile/guile.mk new file +26 -0
@@ -0,0 +1,26 @@ +################################################################################ +# +# guile +# +################################################################################ + +GUILE_VERSION = 2.0.11 +GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz +GUILE_SITE = $(BR2_GNU_MIRROR)/guile +GUILE_INSTALL_STAGING = YES +GUILE_LICENSE = LGPLv3+ +GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER +GUILE_DEPENDENCIES = host-guile libunistring libffi gmp bdwgc + +HOST_GUILE_DEPENDENCIES = host-libunistring host-libffi host-gmp host-bdwgc host-flex host-libtool + +# The HAVE_GC* CFLAGS specify that we wil use internal callbacks instead +# of the ones provided by bdwgc. Eg. HAVE_GC_SET_FINALIZER_NOTIFIER specifies +# that we won't use bdwgc's GC_finalizer_notifier callback. +# Trying to use these specific bdwgc's callbacks breaks guile's building. +GUILE_CONF_ENV += GUILE_FOR_BUILD=$(HOST_DIR)/usr/bin/guile \ + CFLAGS="$(TARGET_CFLAGS) -DHAVE_GC_SET_FINALIZER_NOTIFIER -DHAVE_GC_GET_HEAP_USAGE_SAFE -DHAVE_GC_GET_FREE_SPACE_DIVISOR -DHAVE_GC_SET_FINALIZE_ON_DEMAND" + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) +
Signature · 1 line
1.9.1