From 2db74c67cb169a1ed28fa14e5f89a6e64b4fb7a4 Mon Sep 17 00:00:00 2001 From: Bogdan Marinescu Date: Tue, 31 Jul 2012 15:33:25 +0300 Subject: guile: updated to 2.0.6 Some patches (disable_goops_optimizations, fix_cross_compilation) don't seem to be needed anymore. Others (change-install-data-hook, mark-unused-modules) were updated to work on 2.0.6. Tested by building and running guile under QEMU with core-image-sato-sdk and also builing guile on MIPS. (From OE-Core rev: 310f169d3d89f3a4fc6a540974a30c7eb565db3a) Signed-off-by: Bogdan Marinescu Signed-off-by: Richard Purdie --- ...all-data-hook-to-install-exec-hook-in-gui.patch | 13 ++- ...-modules-are-removed-gc-test-as-unresolve.patch | 29 +++---- .../guile_2.0.5_disable_goops_optimizations.patch | 32 -------- .../files/guile_2.0.5_fix_cross_compilation.patch | 47 ----------- .../guile/files/guile_2.0.5_fix_sed_error.patch | 24 ------ .../guile/files/guile_2.0.6_fix_sed_error.patch | 24 ++++++ .../recipes-devtools/guile/files/remove-gets.patch | 23 ------ meta/recipes-devtools/guile/guile_2.0.5.bb | 95 ---------------------- meta/recipes-devtools/guile/guile_2.0.6.bb | 90 ++++++++++++++++++++ 9 files changed, 134 insertions(+), 243 deletions(-) delete mode 100644 meta/recipes-devtools/guile/files/guile_2.0.5_disable_goops_optimizations.patch delete mode 100644 meta/recipes-devtools/guile/files/guile_2.0.5_fix_cross_compilation.patch delete mode 100644 meta/recipes-devtools/guile/files/guile_2.0.5_fix_sed_error.patch create mode 100644 meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch delete mode 100644 meta/recipes-devtools/guile/files/remove-gets.patch delete mode 100644 meta/recipes-devtools/guile/guile_2.0.5.bb create mode 100644 meta/recipes-devtools/guile/guile_2.0.6.bb diff --git a/meta/recipes-devtools/guile/files/change-install-data-hook-to-install-exec-hook-in-gui.patch b/meta/recipes-devtools/guile/files/change-install-data-hook-to-install-exec-hook-in-gui.patch index 9445fca640..b9d1ca5143 100644 --- a/meta/recipes-devtools/guile/files/change-install-data-hook-to-install-exec-hook-in-gui.patch +++ b/meta/recipes-devtools/guile/files/change-install-data-hook-to-install-exec-hook-in-gui.patch @@ -22,18 +22,15 @@ Signed-off-by: Song.Li 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/Makefile.am b/meta/Makefile.am -index f26fc44..e603e5c 100644 +index a05730d..bd20784 100644 --- a/meta/Makefile.am +++ b/meta/Makefile.am -@@ -27,7 +27,7 @@ EXTRA_DIST= \ +@@ -28,7 +28,7 @@ EXTRA_DIST= \ guild.in guile-config.in # What we now call `guild' used to be known as `guile-tools'. -install-data-hook: +install-exec-hook: - cd $(DESTDIR)$(bindir) && rm -f guile-tools$(EXEEXT) && \ - $(LN_S) guild$(EXEEXT) guile-tools$(EXEEXT) - --- -1.7.9.5 - + guild="`echo $(ECHO_N) guild \ + | $(SED) -e '$(program_transform_name)'`$(EXEEXT)" ; \ + guile_tools="`echo $(ECHO_N) guile-tools \ diff --git a/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch b/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch index 06c849432b..43238a7d2e 100644 --- a/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch +++ b/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch @@ -15,24 +15,25 @@ garbage collector. 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/test-suite/tests/gc.test b/test-suite/tests/gc.test -index 97eeb19..58e4936 100644 +index a969752..8c8e13e 100644 --- a/test-suite/tests/gc.test +++ b/test-suite/tests/gc.test -@@ -80,11 +80,12 @@ - (gc) ;; thrice: because the test doesn't succeed with only +@@ -84,11 +84,13 @@ ;; one gc round. not sure why. -- (= (let lp ((i 0)) -- (if (guard) -- (lp (1+ i)) -- i)) -- total))) -+ (or (= (let lp ((i 0)) -+ (if (guard) -+ (lp (1+ i)) -+ i)) -+ total) -+ (throw 'unresolved)))) + (maybe-gc-flakiness +- (= (let lp ((i 0)) +- (if (guard) +- (lp (1+ i)) +- i)) +- total)))) ++ (or (= (let lp ((i 0)) ++ (if (guard) ++ (lp (1+ i)) ++ i)) ++ total) ++ (throw 'unresolved))))) ++ (pass-if "Lexical vars are collectable" (let ((l (compile diff --git a/meta/recipes-devtools/guile/files/guile_2.0.5_disable_goops_optimizations.patch b/meta/recipes-devtools/guile/files/guile_2.0.5_disable_goops_optimizations.patch deleted file mode 100644 index 8609775310..0000000000 --- a/meta/recipes-devtools/guile/files/guile_2.0.5_disable_goops_optimizations.patch +++ /dev/null @@ -1,32 +0,0 @@ -commit f7d8efc630ce45f5d82aae5b2682d261e5541d5f -Author: Andy Wingo -Date: Sun Apr 15 13:00:30 2012 -0700 - - disable optimizations in goops dispatch procedures - - * module/oop/goops/dispatch.scm: Disable peval and cse. - -Upstream-Status: Backported - -diff --git a/module/oop/goops/dispatch.scm b/module/oop/goops/dispatch.scm -index e433b86..b12ab15 100644 ---- a/module/oop/goops/dispatch.scm -+++ b/module/oop/goops/dispatch.scm -@@ -1,4 +1,4 @@ --;;;; Copyright (C) 1999, 2000, 2001, 2003, 2006, 2009 Free Software Foundation, Inc. -+;;;; Copyright (C) 1999, 2000, 2001, 2003, 2006, 2009, 2012 Free Software Foundation, Inc. - ;;;; - ;;;; This library is free software; you can redistribute it and/or - ;;;; modify it under the terms of the GNU Lesser General Public -@@ -178,7 +178,9 @@ - '()) - (acons gf gf-sym '())))) - (define (comp exp vals) -- (let ((p ((@ (system base compile) compile) exp #:env *dispatch-module*))) -+ (let ((p ((@ (system base compile) compile) exp -+ #:env *dispatch-module* -+ #:opts '(#:partial-eval? #f #:cse? #f)))) - (apply p vals))) - - ;; kick it. - diff --git a/meta/recipes-devtools/guile/files/guile_2.0.5_fix_cross_compilation.patch b/meta/recipes-devtools/guile/files/guile_2.0.5_fix_cross_compilation.patch deleted file mode 100644 index b81f02e82a..0000000000 --- a/meta/recipes-devtools/guile/files/guile_2.0.5_fix_cross_compilation.patch +++ /dev/null @@ -1,47 +0,0 @@ -commit f3b312a19d70293d7a3407fc4ef479183edd7cca -Author: Ludovic Courtès -Date: Wed Jun 20 01:11:44 2012 +0200 - - Fix cross-compilation of GOOPS-using code. - - Fixes . - Reported by Bogdan A. Marinescu . - - * module/oop/goops/dispatch.scm (compute-dispatch-procedure)[comp]: - Wrap `compile' call in (with-target %host-type ...). - -Upstream-Status: Backported - -diff --git a/module/oop/goops/dispatch.scm b/module/oop/goops/dispatch.scm -index b12ab15..de5359f 100644 ---- a/module/oop/goops/dispatch.scm -+++ b/module/oop/goops/dispatch.scm -@@ -25,6 +25,7 @@ - #:use-module (oop goops) - #:use-module (oop goops util) - #:use-module (oop goops compile) -+ #:use-module (system base target) - #:export (memoize-method!) - #:no-backtrace) - -@@ -178,11 +179,15 @@ - '()) - (acons gf gf-sym '())))) - (define (comp exp vals) -- (let ((p ((@ (system base compile) compile) exp -- #:env *dispatch-module* -- #:opts '(#:partial-eval? #f #:cse? #f)))) -- (apply p vals))) -- -+ ;; When cross-compiling Guile itself, the native Guile must generate -+ ;; code for the host. -+ (with-target %host-type -+ (lambda () -+ (let ((p ((@ (system base compile) compile) exp -+ #:env *dispatch-module* -+ #:opts '(#:partial-eval? #f #:cse? #f)))) -+ (apply p vals))))) -+ - ;; kick it. - (scan)) - diff --git a/meta/recipes-devtools/guile/files/guile_2.0.5_fix_sed_error.patch b/meta/recipes-devtools/guile/files/guile_2.0.5_fix_sed_error.patch deleted file mode 100644 index e5dc226370..0000000000 --- a/meta/recipes-devtools/guile/files/guile_2.0.5_fix_sed_error.patch +++ /dev/null @@ -1,24 +0,0 @@ -Upstream-Status: Pending - -This fixes sed issue when prefix has / in it, like /usr/local - -autoreconf error avoided: -| sed: -e expression #1, char 9: unknown option to `s' -| configure.ac:39: error: AC_INIT should be called with package and version arguments - -Signed-Off-by: Nitin A Kamble -2012/05/01 - -Index: guile-2.0.5/build-aux/git-version-gen -=================================================================== ---- guile-2.0.5.orig/build-aux/git-version-gen -+++ guile-2.0.5/build-aux/git-version-gen -@@ -187,7 +187,7 @@ else - v=UNKNOWN - fi - --v=`echo "$v" |sed "s/^$prefix//"` -+v=`echo "$v" |sed "s#^$prefix##"` - - # Test whether to append the "-dirty" suffix only if the version - # string we're using came from git. I.e., skip the test if it's "UNKNOWN" diff --git a/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch b/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch new file mode 100644 index 0000000000..e5dc226370 --- /dev/null +++ b/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch @@ -0,0 +1,24 @@ +Upstream-Status: Pending + +This fixes sed issue when prefix has / in it, like /usr/local + +autoreconf error avoided: +| sed: -e expression #1, char 9: unknown option to `s' +| configure.ac:39: error: AC_INIT should be called with package and version arguments + +Signed-Off-by: Nitin A Kamble +2012/05/01 + +Index: guile-2.0.5/build-aux/git-version-gen +=================================================================== +--- guile-2.0.5.orig/build-aux/git-version-gen ++++ guile-2.0.5/build-aux/git-version-gen +@@ -187,7 +187,7 @@ else + v=UNKNOWN + fi + +-v=`echo "$v" |sed "s/^$prefix//"` ++v=`echo "$v" |sed "s#^$prefix##"` + + # Test whether to append the "-dirty" suffix only if the version + # string we're using came from git. I.e., skip the test if it's "UNKNOWN" diff --git a/meta/recipes-devtools/guile/files/remove-gets.patch b/meta/recipes-devtools/guile/files/remove-gets.patch deleted file mode 100644 index 6d3605f106..0000000000 --- a/meta/recipes-devtools/guile/files/remove-gets.patch +++ /dev/null @@ -1,23 +0,0 @@ -ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it - -Signed-off-by: Khem Raj - -Upstream-Status: Pending -Index: guile-2.0.5/lib/stdio.in.h -=================================================================== ---- guile-2.0.5.orig/lib/stdio.in.h 2012-01-24 03:06:06.000000000 -0800 -+++ guile-2.0.5/lib/stdio.in.h 2012-07-04 12:28:15.617108481 -0700 -@@ -711,11 +711,13 @@ - _GL_CXXALIAS_SYS (gets, char *, (char *s)); - # undef gets - # endif -+# if defined gets - _GL_CXXALIASWARN (gets); - /* It is very rare that the developer ever has full control of stdin, - so any use of gets warrants an unconditional warning. Assume it is - always declared, since it is required by C89. */ - _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -+# endif - #endif - - diff --git a/meta/recipes-devtools/guile/guile_2.0.5.bb b/meta/recipes-devtools/guile/guile_2.0.5.bb deleted file mode 100644 index 8fae7125f4..0000000000 --- a/meta/recipes-devtools/guile/guile_2.0.5.bb +++ /dev/null @@ -1,95 +0,0 @@ -SUMMARY = "Guile is the GNU Ubiquitous Intelligent Language for Extensions." -DESCRIPTION = "Guile is the GNU Ubiquitous Intelligent Language for Extensions,\ - the official extension language for the GNU operating system.\ - Guile is a library designed to help programmers create flexible applications.\ - Using Guile in an application allows the application's functionality to be\ - extended by users or other programmers with plug-ins, modules, or scripts.\ - Guile provides what might be described as 'practical software freedom,'\ - making it possible for users to customize an application to meet their\ - needs without digging into the application's internals." - -HOMEPAGE = "http://www.gnu.org/software/guile/" -SECTION = "devel" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.gz \ - file://debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch \ - file://debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch \ - file://opensuse/guile-64bit.patch \ - file://guile_2.0.5_fix_sed_error.patch \ - file://guile_2.0.5_disable_goops_optimizations.patch \ - file://guile_2.0.5_fix_cross_compilation.patch \ - file://remove-gets.patch \ - file://arm_endianness.patch \ - file://change-install-data-hook-to-install-exec-hook-in-gui.patch \ - " - -# file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch -# file://opensuse/guile-turn-off-gc-test.patch - -SRC_URI[md5sum] = "bcf70d54b44c99cb9acd3f63c5486b4b" -SRC_URI[sha256sum] = "2a026ea6cdbc51ca71bcd9787839debfa45ac5db1e26dc00b30ca9b128b10956" - -PR = "r5" - -inherit autotools gettext -BBCLASSEXTEND = "native" - -DEPENDS = "libunistring bdwgc gmp libtool libffi" -# add guile-native only to the target recipe's DEPENDS -DEPENDS += "${@['guile-native libatomics-ops', ''][d.getVar('PN', True) != 'guile']}" - -EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix', ''][bb.data.inherits_class('native',d)]}" - -do_configure_prepend() { - mkdir -p po -} - -export GUILE_FOR_BUILD="${BUILD_SYS}-guile" - -do_compile_append() { - # just for target recipe - if [ "${PN}" == "guile" ] - then - sed -i -e s:${STAGING_DIR_TARGET}::g \ - -e s:/${TARGET_SYS}::g \ - -e s:-L/usr/lib::g \ - -e s:-isystem/usr/include::g \ - -e s:,/usr/lib:,\$\{libdir\}:g \ - meta/guile-2.0.pc - fi -} - -do_install_append_virtclass-native() { - install -m 0755 ${D}${bindir}/guile ${D}${bindir}/${HOST_SYS}-guile - - create_wrapper ${D}/${bindir}/guile \ - GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \ - GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache - create_wrapper ${D}${bindir}/${HOST_SYS}-guile \ - GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \ - GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache -} - -SYSROOT_PREPROCESS_FUNCS = "guile_cross_config" - -guile_cross_config() { - # this is only for target recipe - if [ "${PN}" == "guile" ] - then - # Create guile-config returning target values instead of native values - install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS} - echo '#!'`which ${BUILD_SYS}-guile`$' \\\n--no-auto-compile -e main -s\n!#\n(define %guile-build-info '\'\( \ - > guile-config.cross - sed -n -e 's:^[ \t]*{[ \t]*": (:' \ - -e 's:",[ \t]*": . ":' \ - -e 's:" *}, *\\:"):' \ - -e 's:^.*cachedir.*$::' \ - -e '/^ (/p' \ - < libguile/libpath.h >> guile-config.cross - echo '))' >> guile-config.cross - cat meta/guile-config >> guile-config.cross - install guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config - fi -} diff --git a/meta/recipes-devtools/guile/guile_2.0.6.bb b/meta/recipes-devtools/guile/guile_2.0.6.bb new file mode 100644 index 0000000000..a9df4f768f --- /dev/null +++ b/meta/recipes-devtools/guile/guile_2.0.6.bb @@ -0,0 +1,90 @@ +SUMMARY = "Guile is the GNU Ubiquitous Intelligent Language for Extensions." +DESCRIPTION = "Guile is the GNU Ubiquitous Intelligent Language for Extensions,\ + the official extension language for the GNU operating system.\ + Guile is a library designed to help programmers create flexible applications.\ + Using Guile in an application allows the application's functionality to be\ + extended by users or other programmers with plug-ins, modules, or scripts.\ + Guile provides what might be described as 'practical software freedom,'\ + making it possible for users to customize an application to meet their\ + needs without digging into the application's internals." + +HOMEPAGE = "http://www.gnu.org/software/guile/" +SECTION = "devel" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.gz \ + file://debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch \ + file://debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch \ + file://opensuse/guile-64bit.patch \ + file://guile_2.0.6_fix_sed_error.patch \ + file://arm_endianness.patch \ + file://change-install-data-hook-to-install-exec-hook-in-gui.patch \ + " + +# file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch +# file://opensuse/guile-turn-off-gc-test.patch + +SRC_URI[md5sum] = "3438cd4415c0c43ca93a20e845eba7e2" +SRC_URI[sha256sum] = "3ece055145a5020dd36b84f5fbccd4b3846a671960dd5ee55931555f03200950" + +inherit autotools gettext +BBCLASSEXTEND = "native" + +DEPENDS = "libunistring bdwgc gmp libtool libffi" +# add guile-native only to the target recipe's DEPENDS +DEPENDS += "${@['guile-native libatomics-ops', ''][d.getVar('PN', True) != 'guile']}" + +EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix', ''][bb.data.inherits_class('native',d)]}" + +do_configure_prepend() { + mkdir -p po +} + +export GUILE_FOR_BUILD="${BUILD_SYS}-guile" + +do_compile_append() { + # just for target recipe + if [ "${PN}" == "guile" ] + then + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + -e s:-L/usr/lib::g \ + -e s:-isystem/usr/include::g \ + -e s:,/usr/lib:,\$\{libdir\}:g \ + meta/guile-2.0.pc + fi +} + +do_install_append_virtclass-native() { + install -m 0755 ${D}${bindir}/guile ${D}${bindir}/${HOST_SYS}-guile + + create_wrapper ${D}/${bindir}/guile \ + GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \ + GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache + create_wrapper ${D}${bindir}/${HOST_SYS}-guile \ + GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \ + GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache +} + +SYSROOT_PREPROCESS_FUNCS = "guile_cross_config" + +guile_cross_config() { + # this is only for target recipe + if [ "${PN}" == "guile" ] + then + # Create guile-config returning target values instead of native values + install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS} + echo '#!'`which ${BUILD_SYS}-guile`$' \\\n--no-auto-compile -e main -s\n!#\n(define %guile-build-info '\'\( \ + > guile-config.cross + sed -n -e 's:^[ \t]*{[ \t]*": (:' \ + -e 's:",[ \t]*": . ":' \ + -e 's:" *}, *\\:"):' \ + -e 's:^.*cachedir.*$::' \ + -e '/^ (/p' \ + < libguile/libpath.h >> guile-config.cross + echo '))' >> guile-config.cross + cat meta/guile-config >> guile-config.cross + install guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config + fi +} -- cgit v1.2.3-54-g00ecf