1111 fail-fast : false
1212 max-parallel : 4
1313 matrix :
14- include :
15- - glibc_version : ' 2.31'
16- ubuntu_version : ' 20.04'
17- - glibc_version : ' 2.33'
18- ubuntu_version : ' 21.04'
19- - glibc_version : ' 2.35'
20- ubuntu_version : ' 22.04'
21- - glibc_version : ' 2.36'
22- ubuntu_version : ' 22.10'
23- - glibc_version : ' 2.37'
24- ubuntu_version : ' 23.04'
25- - glibc_version : ' 2.39'
26- ubuntu_version : ' 24.04'
14+ glibc_version : ['2.31', '2.33', '2.35', '2.36', '2.37', '2.39']
2715 wavpack_version : ['5.7.0'] # Stick to stable version for now
2816
2917 env :
@@ -38,12 +26,41 @@ jobs:
3826 - name : Create Dockerfile for glibc build
3927 run : |
4028 cat > Dockerfile.build << 'EOF'
41- ARG UBUNTU_VERSION
4229 ARG GLIBC_VERSION
43- FROM ubuntu:${UBUNTU_VERSION} as glibc-builder
30+ FROM ubuntu:22.04 as base
31+ # Install common dependencies for all builds
32+ RUN apt-get update && apt-get install -y \
33+ build-essential \
34+ wget \
35+ bzip2 \
36+ automake \
37+ libtool \
38+ gcc-multilib \
39+ gawk \
40+ bison \
41+ python3 \
42+ gettext \
43+ texinfo \
44+ pkg-config \
45+ file \
46+ patchelf \
47+ && ln -s /usr/bin/python3 /usr/bin/python \
48+ && rm -rf /var/lib/apt/lists/*
4449
50+ # Map glibc versions to Ubuntu versions for the system libc
51+ FROM ubuntu:20.04 as glibc-builder-2.31
52+ FROM ubuntu:21.04 as glibc-builder-2.33
53+ FROM ubuntu:22.04 as glibc-builder-2.35
54+ FROM ubuntu:22.10 as glibc-builder-2.36
55+ FROM ubuntu:23.04 as glibc-builder-2.37
56+ FROM ubuntu:24.04 as glibc-builder-2.39
57+
58+ FROM glibc-builder-${GLIBC_VERSION} as builder
59+ COPY --from=base /usr/bin /usr/bin
60+ COPY --from=base /usr/lib /usr/lib
61+ COPY --from=base /usr/include /usr/include
62+ COPY --from=base /lib /lib
4563 ARG GLIBC_VERSION
46- ARG UBUNTU_VERSION
4764 ENV GLIBC_VERSION=${GLIBC_VERSION}
4865
4966 # Install build dependencies
@@ -79,12 +96,13 @@ jobs:
7996 && mkdir glibc-build \
8097 && cd glibc-build \
8198 && echo "Configuring glibc..." \
82- && ../glibc-${GLIBC_VERSION}/configure \
99+ && CFLAGS="-O2 -U_FORTIFY_SOURCE" ../glibc-${GLIBC_VERSION}/configure \
83100 --prefix=/home/builder/glibc-install \
84101 --disable-werror \
85102 --enable-add-ons \
86103 --with-headers=/usr/include \
87104 --without-selinux \
105+ --disable-stack-protector \
88106 > ../configure.log 2>&1 || (cat ../configure.log && false) \
89107 && echo "Building glibc..." \
90108 && make -j$(nproc) > ../make.log 2>&1 || (cat ../make.log && false) \
@@ -153,7 +171,6 @@ jobs:
153171 run : |
154172 docker build \
155173 --build-arg GLIBC_VERSION=${{ matrix.glibc_version }} \
156- --build-arg UBUNTU_VERSION=${{ matrix.ubuntu_version }} \
157174 --build-arg WAVPACK_VERSION=${{ matrix.wavpack_version }} \
158175 -f Dockerfile.build \
159176 -t wavpack-builder .
0 commit comments