Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Python and Clang on x86 dist images #81489

Merged
merged 2 commits into from Jan 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/bootstrap/native.rs
Expand Up @@ -201,7 +201,7 @@ impl Step for Llvm {
if builder.config.llvm_thin_lto {
cfg.define("LLVM_ENABLE_LTO", "Thin");
if !target.contains("apple") {
cfg.define("LLVM_ENABLE_LLD", "ON");
cfg.define("LLVM_USE_LINKER", "lld");
}
}

Expand Down Expand Up @@ -556,6 +556,9 @@ impl Step for Lld {
t!(fs::create_dir_all(&out_dir));

let mut cfg = cmake::Config::new(builder.src.join("src/llvm-project/lld"));
if let Some(ref linker) = builder.config.llvm_use_linker {
cfg.define("LLVM_USE_LINKER", linker);
}
configure_cmake(builder, target, &mut cfg, true);

// This is an awful, awful hack. Discovered when we migrated to using
Expand Down
8 changes: 5 additions & 3 deletions src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
Expand Up @@ -68,11 +68,11 @@ RUN ./build-binutils.sh
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
RUN ./build-gcc.sh && apt-get remove -y gcc g++

# Debian 6 has Python 2.6 by default, but LLVM needs 2.7+
# Debian 6 has Python 2.6 by default, but LLVM >= 12 needs Python 3
COPY host-x86_64/dist-x86_64-linux/build-python.sh /tmp/
RUN ./build-python.sh

# LLVM needs cmake 3.4.3 or higher, and is planning to raise to 3.13.4.
# LLVM needs cmake 3.13.4 or higher
COPY host-x86_64/dist-x86_64-linux/build-cmake.sh /tmp/
RUN ./build-cmake.sh

Expand All @@ -94,8 +94,10 @@ ENV RUST_CONFIGURE_ARGS \
--set target.i686-unknown-linux-gnu.linker=clang \
--build=i686-unknown-linux-gnu \
--set llvm.ninja=false \
--set llvm.use-linker=lld \
--set rust.use-lld=true \
--set rust.jemalloc
ENV SCRIPT python2.7 ../x.py dist --build $HOSTS --host $HOSTS --target $HOSTS
ENV SCRIPT python3 ../x.py dist --build $HOSTS --host $HOSTS --target $HOSTS
ENV CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER=clang

# This was added when we switched from gcc to clang. It's not clear why this is
Expand Down
8 changes: 5 additions & 3 deletions src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
Expand Up @@ -68,11 +68,11 @@ RUN ./build-binutils.sh
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
RUN ./build-gcc.sh && apt-get remove -y gcc g++

# Debian 6 has Python 2.6 by default, but LLVM needs 2.7+
# Debian 6 has Python 2.6 by default, but LLVM >= 12 needs Python 3
COPY host-x86_64/dist-x86_64-linux/build-python.sh /tmp/
RUN ./build-python.sh

# LLVM needs cmake 3.4.3 or higher, and is planning to raise to 3.13.4.
# LLVM needs cmake 3.13.4 or higher
COPY host-x86_64/dist-x86_64-linux/build-cmake.sh /tmp/
RUN ./build-cmake.sh

Expand All @@ -99,8 +99,10 @@ ENV RUST_CONFIGURE_ARGS \
--set target.x86_64-unknown-linux-gnu.ranlib=/rustroot/bin/llvm-ranlib \
--set llvm.thin-lto=true \
--set llvm.ninja=false \
--set llvm.use-linker=lld \
--set rust.use-lld=true \
--set rust.jemalloc
ENV SCRIPT ../src/ci/pgo.sh python2.7 ../x.py dist \
ENV SCRIPT ../src/ci/pgo.sh python3 ../x.py dist \
--host $HOSTS --target $HOSTS \
--include-default-paths \
src/tools/build-manifest
Expand Down
2 changes: 1 addition & 1 deletion src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh
Expand Up @@ -4,7 +4,7 @@ set -ex

source shared.sh

LLVM=llvmorg-10.0.0
LLVM=llvmorg-11.0.1

mkdir llvm-project
cd llvm-project
Expand Down
6 changes: 3 additions & 3 deletions src/ci/docker/host-x86_64/dist-x86_64-linux/build-python.sh
Expand Up @@ -3,7 +3,7 @@
set -ex
source shared.sh

curl https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz | \
curl https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz | \
tar xzf -

mkdir python-build
Expand All @@ -12,10 +12,10 @@ cd python-build
# Gotta do some hackery to tell python about our custom OpenSSL build, but other
# than that fairly normal.
CFLAGS='-I /rustroot/include' LDFLAGS='-L /rustroot/lib -L /rustroot/lib64' \
hide_output ../Python-2.7.12/configure --prefix=/rustroot
hide_output ../Python-3.9.1/configure --prefix=/rustroot
hide_output make -j10
hide_output make install

cd ..
rm -rf python-build
rm -rf Python-2.7.12
rm -rf Python-3.9.1
2 changes: 1 addition & 1 deletion src/ci/pgo.sh
Expand Up @@ -4,7 +4,7 @@ set -euxo pipefail

rm -rf /tmp/rustc-pgo

python2.7 ../x.py build --target=$PGO_HOST --host=$PGO_HOST \
python3 ../x.py build --target=$PGO_HOST --host=$PGO_HOST \
--stage 2 library/std --rust-profile-generate=/tmp/rustc-pgo

./build/$PGO_HOST/stage2/bin/rustc --edition=2018 \
Expand Down