Date: Wednesday, August 26, 2015 @ 06:58:44 Author: bpiotrowski Revision: 244864
upgpkg: gc 7.4.2-3 add patch exporting GC_push_all_eager Added: gc/trunk/gc-7.4.2-Export-GC-push-all-eager.patch Modified: gc/trunk/PKGBUILD -----------------------------------------+ PKGBUILD | 10 +++++-- gc-7.4.2-Export-GC-push-all-eager.patch | 38 ++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-08-26 02:36:17 UTC (rev 244863) +++ PKGBUILD 2015-08-26 04:58:44 UTC (rev 244864) @@ -4,7 +4,7 @@ pkgname=gc pkgver=7.4.2 -pkgrel=2 +pkgrel=3 pkgdesc="A garbage collector for C and C++" arch=('i686' 'x86_64') url="http://www.hboehm.info/gc/" @@ -11,9 +11,11 @@ license=('GPL') depends=('gcc-libs' 'libatomic_ops') source=("http://www.hboehm.info/gc/gc_source/${pkgname}-${pkgver}.tar.gz" - noelision.patch) + noelision.patch + gc-7.4.2-Export-GC-push-all-eager.patch) md5sums=('12c05fd2811d989341d8c6d81f66af87' - '0be354bf60cc18363dc4c1601697717b') + '0be354bf60cc18363dc4c1601697717b' + '26984d81b4ab2b0281583a5442c26863') prepare() { cd ${pkgname}-${pkgver} @@ -22,6 +24,8 @@ # https://github.com/ivmai/bdwgc/pull/51 patch -p1 -i ../noelision.patch + patch -p1 -i ../gc-7.4.2-Export-GC-push-all-eager.patch + sed -i 's#pkgdata#doc#' doc/doc.am } Added: gc-7.4.2-Export-GC-push-all-eager.patch =================================================================== --- gc-7.4.2-Export-GC-push-all-eager.patch (rev 0) +++ gc-7.4.2-Export-GC-push-all-eager.patch 2015-08-26 04:58:44 UTC (rev 244864) @@ -0,0 +1,38 @@ +From e2a14481796cd4b073298a9c895b03015c72e02c Mon Sep 17 00:00:00 2001 +From: Ivan Maidanski <iv...@mail.ru> +Date: Tue, 23 Jun 2015 15:17:27 +0300 +Subject: [PATCH] Export GC_push_all_eager + +* include/gc_mark.h (GC_push_all_eager): New API function declaration. +* mark.c (GC_push_all_eager): Add GC_API, GC_CALL; change arguments +type from ptr_t to char*. +--- + include/gc_mark.h | 1 + + mark.c | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/gc_mark.h b/include/gc_mark.h +index dcadf42..0b19ea9 100644 +--- a/include/gc_mark.h ++++ b/include/gc_mark.h +@@ -276,6 +276,7 @@ GC_API void GC_CALL GC_set_mark_bit(const void *) GC_ATTR_NONNULL(1); + /* (GC_push_conditional pushes either all or only dirty pages depending */ + /* on the third argument.) */ + GC_API void GC_CALL GC_push_all(char * /* bottom */, char * /* top */); ++GC_API void GC_CALL GC_push_all_eager(char * /* bottom */, char * /* top */); + GC_API void GC_CALL GC_push_conditional(char * /* bottom */, char * /* top */, + int /* bool all */); + +diff --git a/mark.c b/mark.c +index 80d09cf..89f64cc 100644 +--- a/mark.c ++++ b/mark.c +@@ -1488,7 +1488,7 @@ void GC_print_trace(word gc_no) + * and scans the entire region immediately, in case the contents + * change. + */ +-GC_INNER void GC_push_all_eager(ptr_t bottom, ptr_t top) ++GC_API void GC_CALL GC_push_all_eager(char *bottom, char *top) + { + word * b = (word *)(((word) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1)); + word * t = (word *)(((word) top) & ~(ALIGNMENT-1));