diff mbox

[1/2] package/libgc: add Boehm-Demers-Weiser gc library

Message ID 1396868422-5757-2-git-send-email-alex.bennee@linaro.org
State Superseded
Headers show

Commit Message

Alex Bennée April 7, 2014, 11 a.m. UTC
This is needed for applications like Zile

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex@bennee.com>
---
 package/Config.in       |  1 +
 package/libgc/Config.in |  9 +++++++++
 package/libgc/libgc.mk  | 23 +++++++++++++++++++++++
 3 files changed, 33 insertions(+)
 create mode 100644 package/libgc/Config.in
 create mode 100644 package/libgc/libgc.mk

Comments

Yann E. MORIN April 7, 2014, 8:26 p.m. UTC | #1
Alex, Alex, All,

On 2014-04-07 12:00 +0100, Alex Bennée spake thusly:
> This is needed for applications like Zile
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Signed-off-by: Alex Bennée <alex@bennee.com>

Woot! It's not that often with have a schizophrenic contributor! ;-)

[--SNIP--]
> diff --git a/package/libgc/libgc.mk b/package/libgc/libgc.mk
> new file mode 100644
> index 0000000..e5c4609
> --- /dev/null
> +++ b/package/libgc/libgc.mk
> @@ -0,0 +1,23 @@
> +################################################################################
> +#
> +# Boehm-Demers-Weiser's GC
> +#
> +################################################################################
> +
> +LIBGC_VERSION = 7.4.0
> +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz

Use parenthesis when evaluating variables, not curly-braces:
    LIBGC_SOURCE = gc-$(LIBGC_VERSION).tar.gz

> +LIBGC_SITE = http://www.hboehm.info/gc/gc_source/
> +LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz

Ditto, parenthesis.

> +LIBGC_LICENSE = GPLv1+
> +LIBGC_LICENSE_FILES = COPYING
> +LIBGC_INSTALL_STAGING = YES
> +
> +define LIBGC_POST_EXTRACT_INC_LIBATOMIC
> +	env

This is not needed.

> +	mkdir -p $(@D)/libatomic_ops
> +	tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops
> +endef
> +
> +LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC

I know this is how upstream suggests building, but I can refrain from
finding this really ugly... Yuck! :-(

Anyway: can't use you use something like:

    LIBGC_LIBATOMIC_OPS = libatomic_ops-${LIBGC_VERSION}.tar.gz
    LIBGC_EXTRA_DOWNLOADS = $(LIBGC_LIBATOMIC_OPS)

    define LIBGC_POST_EXTRACT_INC_LIBATOMIC
        $(INSTALL) -d -m 0755 $(LSOF_DIR)/libatomic_ops && \
        $(call suitable-extractor,$(LIBGC_LIBATOMIC_OPS)) $(DL_DIR)/$(LIBGC_LIBATOMIC_OPS) |\
            $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(LSOF_DIR)/libatomic_opsi $(TAR_OPTIONS) -
    endef
    LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC

Note LIBGC_LIBATOMIC_OPS is not strictly required, but I find it cleaner
to use, rather than call suitabel-extract on _EXTRA_DOWNLOADS, which is
a plual and could contain more than one file. That's purely for
aesthetics.

> +$(eval $(autotools-package))

Regards,
Yann E. MORIN.
Thomas Petazzoni April 7, 2014, 9:39 p.m. UTC | #2
Dear Alex Bennée,

On Mon,  7 Apr 2014 12:00:21 +0100, Alex Bennée wrote:

> diff --git a/package/libgc/Config.in b/package/libgc/Config.in
> new file mode 100644
> index 0000000..bac636c
> --- /dev/null
> +++ b/package/libgc/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_LIBGC
> +	bool "libgc"
> +	help
> +          The Boehm-Demers-Weiser conservative garbage collector can be used
> +          as a garbage collecting replacement for C malloc or C++ new. It allows
> +          you to allocate memory basically as you normally would, without
> +          explicitly deallocating memory that is no longer useful.
> +
> +          http://www.hboehm.info/gc/

Indentation for the help text should be one tab + two spaces.


> +################################################################################
> +#
> +# Boehm-Demers-Weiser's GC

We normally just want the package name here, i.e the same as the
directory name.

> +#
> +################################################################################
> +
> +LIBGC_VERSION = 7.4.0
> +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz
> +LIBGC_SITE = http://www.hboehm.info/gc/gc_source/
> +LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz
> +LIBGC_LICENSE = GPLv1+
> +LIBGC_LICENSE_FILES = COPYING
> +LIBGC_INSTALL_STAGING = YES
> +
> +define LIBGC_POST_EXTRACT_INC_LIBATOMIC
> +	env
> +	mkdir -p $(@D)/libatomic_ops
> +	tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops
> +endef

We have a libatomic_ops package in Buildroot. Wouldn't it be possible
to use it instead?

Thomas
Alex Bennée April 8, 2014, 10:20 a.m. UTC | #3
Yann E. MORIN <yann.morin.1998@free.fr> writes:

> Alex, Alex, All,
>
> On 2014-04-07 12:00 +0100, Alex Bennée spake thusly:
>> This is needed for applications like Zile
>> 
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Signed-off-by: Alex Bennée <alex@bennee.com>
>
> Woot! It's not that often with have a schizophrenic contributor! ;-)

Yeah I blame format-patch for that one!

>
> [--SNIP--]
>> diff --git a/package/libgc/libgc.mk b/package/libgc/libgc.mk
>> new file mode 100644
>> index 0000000..e5c4609
>> --- /dev/null
>> +++ b/package/libgc/libgc.mk
>> @@ -0,0 +1,23 @@
>> +################################################################################
>> +#
>> +# Boehm-Demers-Weiser's GC
>> +#
>> +################################################################################
>> +
>> +LIBGC_VERSION = 7.4.0
>> +LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz
>
> Use parenthesis when evaluating variables, not curly-braces:
>     LIBGC_SOURCE = gc-$(LIBGC_VERSION).tar.gz
>
>> +LIBGC_SITE = http://www.hboehm.info/gc/gc_source/
>> +LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz
>
> Ditto, parenthesis.
>
>> +LIBGC_LICENSE = GPLv1+
>> +LIBGC_LICENSE_FILES = COPYING
>> +LIBGC_INSTALL_STAGING = YES
>> +
>> +define LIBGC_POST_EXTRACT_INC_LIBATOMIC
>> +	env
>
> This is not needed.
>
>> +	mkdir -p $(@D)/libatomic_ops
>> +	tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops
>> +endef
>> +
>> +LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC
>
> I know this is how upstream suggests building, but I can refrain from
> finding this really ugly... Yuck! :-(
>
> Anyway: can't use you use something like:
>
>     LIBGC_LIBATOMIC_OPS = libatomic_ops-${LIBGC_VERSION}.tar.gz
>     LIBGC_EXTRA_DOWNLOADS = $(LIBGC_LIBATOMIC_OPS)
>
>     define LIBGC_POST_EXTRACT_INC_LIBATOMIC
>         $(INSTALL) -d -m 0755 $(LSOF_DIR)/libatomic_ops && \
>         $(call suitable-extractor,$(LIBGC_LIBATOMIC_OPS)) $(DL_DIR)/$(LIBGC_LIBATOMIC_OPS) |\
>             $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(LSOF_DIR)/libatomic_opsi $(TAR_OPTIONS) -
>     endef
>     LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC
>
> Note LIBGC_LIBATOMIC_OPS is not strictly required, but I find it cleaner
> to use, rather than call suitabel-extract on _EXTRA_DOWNLOADS, which is
> a plual and could contain more than one file. That's purely for
> aesthetics.

I'll look at using the buildroot defined one.

>
>> +$(eval $(autotools-package))
>
> Regards,
> Yann E. MORIN.
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index e816603..5cdf72b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -786,6 +786,7 @@  source "package/libev/Config.in"
 source "package/libevdev/Config.in"
 source "package/libevent/Config.in"
 source "package/libffi/Config.in"
+source "package/libgc/Config.in"
 source "package/libglib2/Config.in"
 source "package/libical/Config.in"
 source "package/libnspr/Config.in"
diff --git a/package/libgc/Config.in b/package/libgc/Config.in
new file mode 100644
index 0000000..bac636c
--- /dev/null
+++ b/package/libgc/Config.in
@@ -0,0 +1,9 @@ 
+config BR2_PACKAGE_LIBGC
+	bool "libgc"
+	help
+          The Boehm-Demers-Weiser conservative garbage collector can be used
+          as a garbage collecting replacement for C malloc or C++ new. It allows
+          you to allocate memory basically as you normally would, without
+          explicitly deallocating memory that is no longer useful.
+
+          http://www.hboehm.info/gc/
diff --git a/package/libgc/libgc.mk b/package/libgc/libgc.mk
new file mode 100644
index 0000000..e5c4609
--- /dev/null
+++ b/package/libgc/libgc.mk
@@ -0,0 +1,23 @@ 
+################################################################################
+#
+# Boehm-Demers-Weiser's GC
+#
+################################################################################
+
+LIBGC_VERSION = 7.4.0
+LIBGC_SOURCE = gc-${LIBGC_VERSION}.tar.gz
+LIBGC_SITE = http://www.hboehm.info/gc/gc_source/
+LIBGC_EXTRA_DOWNLOADS = libatomic_ops-${LIBGC_VERSION}.tar.gz
+LIBGC_LICENSE = GPLv1+
+LIBGC_LICENSE_FILES = COPYING
+LIBGC_INSTALL_STAGING = YES
+
+define LIBGC_POST_EXTRACT_INC_LIBATOMIC
+	env
+	mkdir -p $(@D)/libatomic_ops
+	tar -xvf ${BR2_DL_DIR}/libatomic_ops-${LIBGC_VERSION}.tar.gz --strip-components=1 -C $(@D)/libatomic_ops
+endef
+
+LIBGC_POST_EXTRACT_HOOKS += LIBGC_POST_EXTRACT_INC_LIBATOMIC
+
+$(eval $(autotools-package))