Build libgccjit in CI
This commit is contained in:
parent
4bcaa4fe39
commit
95b49e7d73
@ -3394,7 +3394,6 @@ impl Step for CodegenGCC {
|
|||||||
.arg("--out-dir")
|
.arg("--out-dir")
|
||||||
.arg(builder.stage_out(compiler, Mode::ToolRustc).join("cg_gcc"))
|
.arg(builder.stage_out(compiler, Mode::ToolRustc).join("cg_gcc"))
|
||||||
.arg("--release")
|
.arg("--release")
|
||||||
.arg("--no-default-features")
|
|
||||||
.arg("--mini-tests")
|
.arg("--mini-tests")
|
||||||
.arg("--std-tests");
|
.arg("--std-tests");
|
||||||
cargo.args(builder.config.test_args());
|
cargo.args(builder.config.test_args());
|
||||||
|
28
src/ci/docker/host-x86_64/dist-x86_64-linux/build-gccjit.sh
Normal file
28
src/ci/docker/host-x86_64/dist-x86_64-linux/build-gccjit.sh
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
cd $1
|
||||||
|
|
||||||
|
# Setting up folders for GCC
|
||||||
|
git clone https://github.com/antoyo/gcc gcc-src
|
||||||
|
cd gcc-src
|
||||||
|
git checkout $(head -1 /scripts/libgccjit.version)
|
||||||
|
|
||||||
|
mkdir ../gcc-build ../gcc-install
|
||||||
|
cd ../gcc-build
|
||||||
|
|
||||||
|
# Building GCC.
|
||||||
|
../gcc-src/configure \
|
||||||
|
--enable-host-shared \
|
||||||
|
--enable-languages=jit \
|
||||||
|
--enable-checking=release \
|
||||||
|
--disable-bootstrap \
|
||||||
|
--disable-multilib \
|
||||||
|
--prefix=$(pwd)/../gcc-install
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
rm -rf ../gcc-src
|
||||||
|
ln -s /scripts/gcc-install/lib/libgccjit.so /usr/lib/x86_64-linux-gnu/libgccjit.so
|
||||||
|
ln -s /scripts/gcc-install/lib/libgccjit.so /usr/lib/x86_64-linux-gnu/libgccjit.so.0
|
@ -0,0 +1 @@
|
|||||||
|
b6f163f52
|
@ -15,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
sudo \
|
sudo \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
tidy \
|
tidy \
|
||||||
libgccjit-12-dev \
|
|
||||||
\
|
\
|
||||||
# Install dependencies for chromium browser
|
# Install dependencies for chromium browser
|
||||||
gconf-service \
|
gconf-service \
|
||||||
@ -57,13 +56,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
lsb-release \
|
lsb-release \
|
||||||
xdg-utils \
|
xdg-utils \
|
||||||
wget \
|
wget \
|
||||||
|
# libgccjit dependencies
|
||||||
|
flex \
|
||||||
|
libmpfr-dev \
|
||||||
|
libgmp-dev \
|
||||||
|
libmpc3 \
|
||||||
|
libmpc-dev \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
COPY scripts/sccache.sh /scripts/
|
||||||
RUN sh /scripts/sccache.sh
|
RUN sh /scripts/sccache.sh
|
||||||
|
|
||||||
# Make `libgccjit.so` accessible.
|
|
||||||
RUN ln -s /usr/lib/gcc/x86_64-linux-gnu/12/libgccjit.so /usr/lib/x86_64-linux-gnu/libgccjit.so
|
|
||||||
# Fix rustc_codegen_gcc lto issues.
|
# Fix rustc_codegen_gcc lto issues.
|
||||||
ENV GCC_EXEC_PREFIX="/usr/lib/gcc/"
|
ENV GCC_EXEC_PREFIX="/usr/lib/gcc/"
|
||||||
|
|
||||||
@ -92,6 +95,11 @@ ENV RUST_CONFIGURE_ARGS \
|
|||||||
|
|
||||||
ENV HOST_TARGET x86_64-unknown-linux-gnu
|
ENV HOST_TARGET x86_64-unknown-linux-gnu
|
||||||
|
|
||||||
|
COPY host-x86_64/dist-x86_64-linux/libgccjit.version /scripts/
|
||||||
|
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
||||||
|
|
||||||
|
RUN sh /scripts/build-gccjit.sh /scripts
|
||||||
|
|
||||||
ENV SCRIPT /tmp/checktools.sh ../x.py && \
|
ENV SCRIPT /tmp/checktools.sh ../x.py && \
|
||||||
NODE_PATH=`npm root -g` python3 ../x.py test tests/rustdoc-gui --stage 2 \
|
NODE_PATH=`npm root -g` python3 ../x.py test tests/rustdoc-gui --stage 2 \
|
||||||
--test-args "'--no-sandbox --jobs 1'"
|
--test-args "'--no-sandbox --jobs 1'"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user