Skip to content

Commit bb025ed

Browse files
Drop building libgc on Linux (#300)
1 parent 91393d0 commit bb025ed

File tree

2 files changed

+12
-25
lines changed

2 files changed

+12
-25
lines changed

linux/Dockerfile

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,3 @@
1-
FROM debian:11 AS debian
2-
3-
RUN apt-get update \
4-
&& apt-get install -y build-essential libevent-dev libpcre2-dev automake libtool pkg-config git curl llvm-13 clang-13 \
5-
&& (pkg-config || true)
6-
7-
ARG release
8-
ENV CFLAGS="-fPIC -pipe ${release:+-O2}"
9-
ENV CC="clang-13"
10-
11-
# Build libgc
12-
ARG gc_version
13-
14-
RUN git clone https://github.com/ivmai/bdwgc \
15-
&& cd bdwgc \
16-
&& git checkout ${gc_version} \
17-
&& ./autogen.sh \
18-
&& ./configure --disable-debug --disable-shared --enable-large-config \
19-
&& make -j$(nproc)
20-
211
FROM alpine:3.17
222

233
# Install dependencies
@@ -85,15 +65,10 @@ RUN git clone https://github.com/crystal-lang/shards \
8565
\
8666
&& ([ "$(ldd bin/shards 2>&1 | wc -l)" -eq "1" ] || { echo 'shards is not statically linked'; ldd bin/shards; exit 1; })
8767

88-
COPY --from=debian /bdwgc/.libs/libgc.a /libgc-debian.a
89-
9068
ARG package_iteration
9169

9270
RUN \
93-
# Copy libgc.a to /lib/crystal/
9471
mkdir -p /output/lib/crystal/ \
95-
&& cp /libgc-debian.a /output/lib/crystal/libgc.a \
96-
\
9772
# Install crystal
9873
&& make -C /crystal install DESTDIR=/output PREFIX= \
9974
\

linux/bundled.dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ RUN apt-get update \
55

66
ENV CFLAGS="-fPIC -pipe ${release:+-O2}"
77

8+
# Build libgc
9+
FROM debian AS bdwgc
10+
ARG gc_version
11+
RUN curl -L https://github.com/ivmai/bdwgc/archive/refs/tags/${gc_version}.tar.gz | tar -zx \
12+
&& mv bdwgc-* bdwgc-${gc_version} \
13+
&& cd bdwgc-${gc_version} \
14+
&& ./autogen.sh \
15+
&& ./configure --disable-debug --disable-shared --enable-large-config \
16+
&& make -j$(nproc)
17+
818
# build libpcre2
919
FROM debian AS libpcre2
1020
ARG libpcre2_version
@@ -27,12 +37,14 @@ RUN git clone https://github.com/libevent/libevent \
2737
FROM debian
2838
ARG crystal_version
2939
ARG package_iteration
40+
ARG gc_version
3041
ARG libpcre2_version
3142
ARG libevent_version
3243

3344
RUN mkdir -p /output/lib/crystal/lib/
3445

3546
# Copy libraries
47+
COPY --from=bdwgc bdwgc-${gc_version}/.libs/libgc.a /output/lib/crystal/
3648
COPY --from=libpcre2 pcre2-${libpcre2_version}/.libs/libpcre2-8.a /output/lib/crystal/
3749
COPY --from=libevent libevent/.libs/libevent.a libevent/.libs/libevent_pthreads.a /output/lib/crystal/
3850

0 commit comments

Comments
 (0)