All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v4 4/4] guile: new package
Date: Tue, 18 Nov 2014 22:18:19 +0100	[thread overview]
Message-ID: <20141118211819.GL4333@free.fr> (raw)
In-Reply-To: <1415310486-25904-5-git-send-email-paguilar@paguilar.org>

Pedro, All,

On 2014-11-06 22:48 +0100, Pedro Aguilar spake thusly:
> Guile is an interpreter and compiler for the Scheme programming
> language, a clean and elegant dialect of Lisp.
> 
> Signed-off-by: Pedro Aguilar <paguilar@paguilar.org>
[--SNIP--]
> 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

Since you select bdwgc, you must also inherot from its dependencies:

    depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS # bdwgc

[--SNIP--]
> 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 <paguilar@paguilar.org>

Did you try to send that patch upstream?

> +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)

Nit-picking: that replacement line is not properly aligned.

[--SNIP--]
> 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 <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)"])])

Not OK: it is possible to be cross-compiling with glibc, in which
case the result should be 'yes'.

> +   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 <paguilar@paguilar.org>

Indeed, those functions are never called. WTF... :-/

[--SNIP--]
> diff --git a/package/guile/guile.mk b/package/guile/guile.mk
> new file mode 100644
> index 0000000..e0d7e80
> --- /dev/null
> +++ b/package/guile/guile.mk
> @@ -0,0 +1,25 @@
> +################################################################################
> +#
> +# 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"

This line is overly long. What about (with tabs, not spaces):

    GUILE_CFLAGS = \
        -DHAVE_GC_SET_FINALIZER_NOTIFIER \
        -DHAVE_GC_GET_HEAP_USAGE_SAFE \
        -DHAVE_GC_GET_FREE_SPACE_DIVISOR \
        -DHAVE_GC_SET_FINALIZE_ON_DEMAND

    GUILE_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) $(GUILE_CFLAGS)"

Regards,
Yann E. MORIN.

> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))
> -- 
> 1.9.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2014-11-18 21:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-06 21:48 [Buildroot] [PATCH v4 0/4] package/guile: New package Pedro Aguilar
2014-11-06 21:48 ` [Buildroot] [PATCH v4 1/4] libatomic_ops: Add host-autotools-package Pedro Aguilar
2014-11-18 20:35   ` Yann E. MORIN
2014-11-06 21:48 ` [Buildroot] [PATCH v4 2/4] bdwgc: new package Pedro Aguilar
2014-11-18 20:59   ` Yann E. MORIN
2014-11-20 21:47     ` Pedro Aguilar
2014-11-23 15:23       ` Yann E. MORIN
2014-11-06 21:48 ` [Buildroot] [PATCH v4 3/4] libunistring: Add host-autotools-package Pedro Aguilar
2014-11-18 21:03   ` Yann E. MORIN
2014-11-06 21:48 ` [Buildroot] [PATCH v4 4/4] guile: new package Pedro Aguilar
2014-11-18 21:18   ` Yann E. MORIN [this message]
2014-11-20 23:02     ` Pedro Aguilar
2014-11-23 15:29       ` Yann E. MORIN
2014-11-23 19:20         ` Pedro Aguilar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141118211819.GL4333@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.