1# syntax=docker/dockerfile:1 2FROM --platform=linux/amd64 debian:bookworm-slim AS builder 3 4ENV DEBIAN_FRONTEND=noninteractive 5 6RUN <<EOF 7#!/bin/bash 8 set -e 9 apt-get -y update 10 11 DEPS=( 12 bison 13 build-essential 14 ca-certificates 15 flex 16 g++-multilib 17 libc6-dev-i386 18 libgmp-dev 19 libisl-dev 20 libmpc-dev 21 libmpfr-dev 22 patch 23 wget 24 ) 25 26 apt-get -y --no-install-recommends install "${DEPS[@]}" 27 rm -rf /var/lib/apt/lists/* 28EOF 29 30RUN wget -q https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.xz -O - | tar xJ --strip=1 31RUN wget -q https://xenbits.xen.org/people/andrewcoop/gcc-11.2-Add-fcf-check-attribute-yes-no.patch -O - | patch -p1 32RUN ./configure \ 33 --prefix=/opt/gcc-11-ibt \ 34 --enable-languages=c \ 35 --disable-nls \ 36 --disable-threads \ 37 --disable-bootstrap \ 38 --disable-shared \ 39 --disable-libmudflap \ 40 --disable-libssp \ 41 --disable-libgomp \ 42 --disable-decimal-float \ 43 --disable-libquadmath \ 44 --disable-libatomic \ 45 --disable-libcc1 \ 46 --disable-libmpx 47RUN make -j`nproc` && make -j`nproc` install 48 49 50FROM --platform=linux/amd64 debian:bookworm-slim 51COPY --from=builder /opt/gcc-11-ibt /opt/gcc-11-ibt 52 53LABEL maintainer.name="The Xen Project" \ 54 maintainer.email="xen-devel@lists.xenproject.org" 55 56ENV DEBIAN_FRONTEND=noninteractive 57ENV PATH="/opt/gcc-11-ibt/bin:${PATH}" 58 59RUN <<EOF 60#!/bin/bash 61 set -e 62 63 useradd --create-home user 64 65 apt-get -y update 66 67 DEPS=( 68 # Xen 69 bison 70 build-essential 71 checkpolicy 72 flex 73 python3-minimal 74 ) 75 76 apt-get -y --no-install-recommends install "${DEPS[@]}" 77 rm -rf /var/lib/apt/lists/* 78EOF 79 80USER user 81WORKDIR /build 82