From f46ae8bbd26da090cbd209ba2cb4a7a1e8694657 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Tue, 12 Dec 2023 14:31:48 +0900 Subject: [PATCH] Update bdwgc --- buildtools/bdwgc/Dockerfile | 6 ++---- buildtools/bdwgc/bdwgc.patch | 13 ------------- wasm/libgc.a | Bin 282808 -> 283398 bytes 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/buildtools/bdwgc/Dockerfile b/buildtools/bdwgc/Dockerfile index 293eb26..b2c0ffa 100644 --- a/buildtools/bdwgc/Dockerfile +++ b/buildtools/bdwgc/Dockerfile @@ -5,15 +5,13 @@ FROM ghcr.io/webassembly/wasi-sdk:wasi-sdk-20 RUN apt-get -y update && apt-get -y install curl patch -RUN mkdir -p /bdwgc && curl -L https://github.com/ivmai/bdwgc/archive/1d9826992aa2a2783c9badbacddae70fdf7fffee.tar.gz | tar -xz --strip-components 1 -C /bdwgc +RUN mkdir -p /bdwgc && curl -L https://github.com/ivmai/bdwgc/archive/a753bcb459649d20331d9c9f1dba94588ef56829.tar.gz | tar -xz --strip-components 1 -C /bdwgc WORKDIR /bdwgc ADD bdwgc.patch bdwgc.patch RUN patch -p1 < bdwgc.patch RUN ./autogen.sh -# While signals aren't actually used the header file is included unconditionally. We can enable the header file -# without linking the actual signals library because the functions aren't called. -ENV CFLAGS -O3 -D_WASI_EMULATED_SIGNAL ${CFLAGS} +ENV CFLAGS -O3 ${CFLAGS} # host is required by configure but not used so set it arbitrarily RUN ./configure --disable-threads --disable-shared --disable-gcj-support --disable-java-finalization --disable-atomic-uncollectible --host=i686-pc-linux-gnu diff --git a/buildtools/bdwgc/bdwgc.patch b/buildtools/bdwgc/bdwgc.patch index eaacd31..f5ff9df 100644 --- a/buildtools/bdwgc/bdwgc.patch +++ b/buildtools/bdwgc/bdwgc.patch @@ -11,16 +11,3 @@ index 6970e6f2..a3af3824 100644 # if defined(GC_THREADS) && !defined(CPPCHECK) # error No threads support yet # endif -@@ -3008,10 +3010,10 @@ EXTERN_C_BEGIN - - /* Whether GC_page_size is to be set to a value other than page size. */ - #if defined(CYGWIN32) && (defined(MPROTECT_VDB) || defined(USE_MUNMAP)) \ -- || (!defined(ANY_MSWIN) && !defined(USE_MMAP) \ -+ || (!defined(ANY_MSWIN) && !defined(WASI) && !defined(USE_MMAP) \ - && (defined(GC_DISABLE_INCREMENTAL) || defined(DEFAULT_VDB))) - /* Cygwin: use the allocation granularity instead. */ -- /* Other than Windows: use HBLKSIZE instead (unless mmap() is used). */ -+ /* Other than Windows or WASI: use HBLKSIZE instead (unless mmap() is used). */ - # define ALT_PAGESIZE_USED - # ifndef GC_NO_VALLOC - /* Nonetheless, we need the real page size is some extra functions. */ diff --git a/wasm/libgc.a b/wasm/libgc.a index e29744abf12415b79979d2277f69806faeb5fbd8..f7ed7715795d24a9134fc6ffe6a62d8fe9e894d6 100644 GIT binary patch delta 17122 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

m8(Zj5 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