From 6d9958ee9da793e4c87853e5c74d264423a68f33 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Mon, 25 Jul 2016 01:16:26 -0700 Subject: guile: 2.0.11 -> 2.0.12 * Remove these patches which already in the source: - libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch - remove_strcase_l_funcs.patch - 0001-libguile-Check-for-strtol_l-during-configure.patch * Update 0002-Recognize-nios2-as-compilation-target.patch (From OE-Core rev: 42fd94e8168e618b7a45b1261ee5c06bb38548e4) Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- ...guile-Check-for-strtol_l-during-configure.patch | 56 --------- ...002-Recognize-nios2-as-compilation-target.patch | 20 ++-- ...guile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch | 43 ------- .../guile/files/remove_strcase_l_funcs.patch | 38 ------ meta/recipes-devtools/guile/guile_2.0.11.bb | 128 --------------------- meta/recipes-devtools/guile/guile_2.0.12.bb | 121 +++++++++++++++++++ 6 files changed, 129 insertions(+), 277 deletions(-) delete mode 100644 meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch delete mode 100644 meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch delete mode 100644 meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch delete mode 100644 meta/recipes-devtools/guile/guile_2.0.11.bb create mode 100644 meta/recipes-devtools/guile/guile_2.0.12.bb (limited to 'meta/recipes-devtools/guile') diff --git a/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch b/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch deleted file mode 100644 index 24f073f9fb..0000000000 --- a/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 814d6fb6c1f4a544c8fd37f5a390ba020c2d8c85 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 10 Jan 2016 22:28:17 +0000 -Subject: [PATCH] libguile: Check for strtol_l during configure - -strtol_l is a gnu extention which may not be available on other linux -libc implementations e.g. musl. Therefore check for this funciton and -conditionalize the use of it. - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - configure.ac | 5 +++-- - libguile/i18n.c | 2 +- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 3969929..f8a6a1a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -752,7 +752,8 @@ AC_CHECK_HEADERS([assert.h crt_externs.h]) - # truncate - not in mingw - # isblank - available as a GNU extension or in C99 - # _NSGetEnviron - Darwin specific --# strcoll_l, newlocale - GNU extensions (glibc), also available on Darwin -+# strcoll_l, newlocale, strtol_l - GNU extensions (glibc), -+# also available on Darwin - # fork - unavailable on Windows - # utimensat - posix.1-2008 - # sched_getaffinity, sched_setaffinity - GNU extensions (glibc) -@@ -768,7 +769,7 @@ AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid \ - getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp \ - index bcopy memcpy rindex truncate unsetenv isblank _NSGetEnviron \ - strcoll strcoll_l newlocale utimensat sched_getaffinity \ -- sched_setaffinity sendfile]) -+ sched_setaffinity sendfile strtol_l]) - - AM_CONDITIONAL([BUILD_ICE_9_POPEN], - [test "x$enable_posix" = "xyes" && test "x$ac_cv_func_fork" = "xyes"]) -diff --git a/libguile/i18n.c b/libguile/i18n.c -index 97d44b0..9fb6976 100644 ---- a/libguile/i18n.c -+++ b/libguile/i18n.c -@@ -1352,7 +1352,7 @@ SCM_DEFINE (scm_locale_string_to_integer, "locale-string->integer", - - if (c_locale != NULL) - { --#ifdef USE_GNU_LOCALE_API -+#if defined(USE_GNU_LOCALE_API) && defined(HAVE_STRTOL_L) - c_result = strtol_l (c_str, &c_endptr, c_base, c_locale); - #else - RUN_IN_LOCALE_SECTION (c_locale, --- -2.7.0 - diff --git a/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch b/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch index 519585b8e9..8e84747704 100644 --- a/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch +++ b/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch @@ -10,27 +10,23 @@ Upstream-Status: Submitted [ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22480 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/system/base/target.scm b/module/system/base/target.scm -index d60a8e0..d1f6cff 100644 --- a/module/system/base/target.scm +++ b/module/system/base/target.scm @@ -65,7 +65,7 @@ (cond ((string-match "^i[0-9]86$" cpu) (endianness little)) ((member cpu '("x86_64" "ia64" -- "powerpcle" "powerpc64le" "mipsel" "mips64el")) -+ "powerpcle" "powerpc64le" "mipsel" "mips64el" "nios2")) +- "powerpcle" "powerpc64le" "mipsel" "mips64el" "sh4")) ++ "powerpcle" "powerpc64le" "mipsel" "mips64el" "sh4" "nios2")) (endianness little)) ((member cpu '("sparc" "sparc64" "powerpc" "powerpc64" "spu" - "mips" "mips64")) -@@ -100,7 +100,7 @@ + "mips" "mips64" "m68k" "s390x")) +@@ -108,7 +108,7 @@ ((string-match "64$" cpu) 8) - ((string-match "64[lbe][lbe]$" cpu) 8) -- ((member cpu '("sparc" "powerpc" "mips" "mipsel")) 4) -+ ((member cpu '("sparc" "powerpc" "mips" "mipsel" "nios2")) 4) + ((string-match "64_?[lbe][lbe]$" cpu) 8) +- ((member cpu '("sparc" "powerpc" "mips" "mipsel" "m68k" "sh4")) 4) ++ ((member cpu '("sparc" "powerpc" "mips" "mipsel" "m68k" "sh4" "nios2")) 4) + ((member cpu '("s390x")) 8) ((string-match "^arm.*" cpu) 4) (else (error "unknown CPU word size" cpu))))) - --- -2.7.0.rc3 - diff --git a/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch b/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch deleted file mode 100644 index e50059a7e6..0000000000 --- a/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch +++ /dev/null @@ -1,43 +0,0 @@ -From a85c78ea1393985fdb6e6678dea19135c553d341 Mon Sep 17 00:00:00 2001 -From: Mark H Weaver -Date: Fri, 19 Sep 2014 21:18:09 -0400 -Subject: [PATCH] VM: ASM_MUL for ARM: Add earlyclobber constraint to the SMULL - outputs. - -Reported by Rob Browning . - -* libguile/vm-i-scheme.c (ASM_MUL)[ARM]: Add earlyclobber (&) constraint - to the SMULL output registers. - -Author: Mark H Weaver - -Upstream-Status: Backport - -Signed-off-by: Jackie Huang ---- - libguile/vm-i-scheme.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c -index 587aa95..162efab 100644 ---- a/libguile/vm-i-scheme.c -+++ b/libguile/vm-i-scheme.c -@@ -1,5 +1,4 @@ --/* Copyright (C) 2001, 2009, 2010, 2011, 2012, 2013, -- * 2014 Free Software Foundation, Inc. -+/* Copyright (C) 2001, 2009-2014 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 License -@@ -363,7 +362,7 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2) - { \ - scm_t_signed_bits rlo, rhi; \ - asm ("smull %0, %1, %2, %3\n" \ -- : "=r" (rlo), "=r" (rhi) \ -+ : "=&r" (rlo), "=&r" (rhi) \ - : "r" (SCM_UNPACK (x) - scm_tc2_int), \ - "r" (SCM_I_INUM (y))); \ - if (SCM_LIKELY (SCM_SRS (rlo, 31) == rhi)) \ --- -2.3.5 - diff --git a/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch b/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch deleted file mode 100644 index e7a06fef17..0000000000 --- a/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch +++ /dev/null @@ -1,38 +0,0 @@ -These unused functions cause build failures with uclibc since they reference __uclibc_locale_struct -and this is exposed by uclibc API headers only if C locales are built, but for OE we build full locale -support - -Signed-off-by: Khem Raj -Upstream-Status: Pending -Index: guile-2.0.11/libguile/i18n.c -=================================================================== ---- guile-2.0.11.orig/libguile/i18n.c -+++ guile-2.0.11/libguile/i18n.c -@@ -851,27 +851,6 @@ str_downcase (register char *dst, regist - *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 ${B}/guile-config.cross - sed -n -e 's:^[ \t]*{[ \t]*": (:' \ - -e 's:",[ \t]*": . ":' \ - -e 's:" *}, *\\:"):' \ - -e 's:^.*cachedir.*$::' \ - -e '/^ (/p' \ - < ${B}/libguile/libpath.h >> ${B}/guile-config.cross - echo '))' >> ${B}/guile-config.cross - cat ${B}/meta/guile-config >> ${B}/guile-config.cross - install ${B}/guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config - fi -} - -# Guile needs the compiled files to be newer than the source, and it won't -# auto-compile into the prefix even if it can write there, so touch them here as -# sysroot is managed. -SSTATEPOSTINSTFUNCS += "guile_sstate_postinst" -guile_sstate_postinst() { - if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ] - then - find ${STAGING_DIR_TARGET}/${libdir}/guile/2.0/ccache -type f | xargs touch - fi -} - -# http://errors.yoctoproject.org/Errors/Details/20491/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/meta/recipes-devtools/guile/guile_2.0.12.bb b/meta/recipes-devtools/guile/guile_2.0.12.bb new file mode 100644 index 0000000000..d2fe511ae4 --- /dev/null +++ b/meta/recipes-devtools/guile/guile_2.0.12.bb @@ -0,0 +1,121 @@ +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.xz \ + 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://arm_aarch64.patch \ + file://workaround-ice-ssa-corruption.patch \ + file://libguile-Makefile.am-hook.patch \ + file://0002-Recognize-nios2-as-compilation-target.patch \ + " + +SRC_URI[md5sum] = "081fdf80cd3a76f260a2a0d87f773d6b" +SRC_URI[sha256sum] = "de8187736f9b260f2fa776ed39b52cb74dd389ccf7039c042f0606270196b7e9" + +inherit autotools gettext pkgconfig texinfo +BBCLASSEXTEND = "native" + +DEPENDS = "libunistring bdwgc gmp libtool libffi ncurses readline" +# add guile-native only to the target recipe's DEPENDS +DEPENDS_append_class-target = " guile-native libatomic-ops" + +# The comment of the script guile-config said it has been deprecated but we should +# at least add the required dependency to make it work since we still provide the script. +RDEPENDS_${PN} = "pkgconfig" + +RDEPENDS_${PN}_append_libc-glibc_class-target = " glibc-gconv-iso8859-1" + +EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix --without-libreadline-prefix', ''][bb.data.inherits_class('native',d)]}" + +EXTRA_OECONF_append_class-target = " --with-libunistring-prefix=${STAGING_LIBDIR} \ + --with-libgmp-prefix=${STAGING_LIBDIR} \ + --with-libltdl-prefix=${STAGING_LIBDIR}" +EXTRA_OECONF_append_libc-uclibc = " guile_cv_use_csqrt=no " + +CFLAGS_append_libc-musl = " -DHAVE_GC_SET_FINALIZER_NOTIFIER \ + -DHAVE_GC_GET_HEAP_USAGE_SAFE \ + -DHAVE_GC_GET_FREE_SPACE_DIVISOR \ + -DHAVE_GC_SET_FINALIZE_ON_DEMAND \ + " + +do_configure_prepend() { + mkdir -p po +} + +export GUILE_FOR_BUILD="${BUILD_SYS}-guile" + +do_install_append_class-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 +} + +do_install_append_class-target() { + # cleanup buildpaths in scripts + sed -i -e 's:${STAGING_DIR_NATIVE}::' ${D}${bindir}/guile-config + sed -i -e 's:${STAGING_DIR_HOST}::' ${D}${bindir}/guile-snarf + + sed -i -e 's:${STAGING_DIR_TARGET}::g' ${D}${libdir}/pkgconfig/guile-2.0.pc +} + +do_install_append_libc-musl() { + rm -f ${D}${libdir}/charset.alias +} + +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 '\'\( \ + > ${B}/guile-config.cross + sed -n -e 's:^[ \t]*{[ \t]*": (:' \ + -e 's:",[ \t]*": . ":' \ + -e 's:" *}, *\\:"):' \ + -e 's:^.*cachedir.*$::' \ + -e '/^ (/p' \ + < ${B}/libguile/libpath.h >> ${B}/guile-config.cross + echo '))' >> ${B}/guile-config.cross + cat ${B}/meta/guile-config >> ${B}/guile-config.cross + install ${B}/guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config + fi +} + +# Guile needs the compiled files to be newer than the source, and it won't +# auto-compile into the prefix even if it can write there, so touch them here as +# sysroot is managed. +SSTATEPOSTINSTFUNCS += "guile_sstate_postinst" +guile_sstate_postinst() { + if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ] + then + find ${STAGING_DIR_TARGET}/${libdir}/guile/2.0/ccache -type f | xargs touch + fi +} + +# http://errors.yoctoproject.org/Errors/Details/20491/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" -- cgit v1.2.3-54-g00ecf