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

Rollup of 10 pull requests #135820

Closed
wants to merge 23 commits into from
Closed
Changes from 2 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
cf34545
CI: build FreeBSD artifacts on FreeBSD 13.4
asomers Oct 27, 2024
0454d79
Fixup: fix clang command lines in another file
asomers Jan 12, 2025
b2b12ae
Add an example of using `carrying_mul_add` to write wider multiplication
scottmcm Jan 20, 2025
8dec09f
support wasm inline assembly in naked functions
folkertdev Jan 15, 2025
bcf478b
work around the `wasm32-unknown-unknown` ABI being broken
folkertdev Jan 17, 2025
a175e8d
CI: free disk on linux arm runner
marcoieni Jan 20, 2025
9d6a1c9
Shorten linker output even more when `--verbose` is not present
jyn514 Jan 18, 2025
9d88b82
Ignore `mermaid.min.js`
jyn514 Jan 20, 2025
51af4d6
Add Kobzol on vacation
Kobzol Jan 21, 2025
00381ea
Make it possible to build GCC on CI
Kobzol Jan 2, 2025
bac4db3
Use `structurally_normalize` instead of manual `normalizes-to` goals
BoxyUwU Jan 21, 2025
dbf4040
Rename `structurally_normalize` to `structurally_normalize_ty`
BoxyUwU Jan 21, 2025
587b9c6
[cfg_match] Document the use of expressions
c410-f3r Jan 21, 2025
e0b3a04
Rollup merge of #132232 - asomers:fbsd-13.4, r=Mark-Simulacrum
jieyouxu Jan 21, 2025
f99cae1
Rollup merge of #135625 - c410-f3r:cfg-match-foo-bar-baz, r=tgross35,…
jieyouxu Jan 21, 2025
6195f5a
Rollup merge of #135638 - Kobzol:gcc-ci, r=onur-ozkan
jieyouxu Jan 21, 2025
d0fb727
Rollup merge of #135648 - folkertdev:naked-asm-wasm, r=bjorn3
jieyouxu Jan 21, 2025
212bc7a
Rollup merge of #135707 - jyn514:linker-messages-2, r=bjorn3
jieyouxu Jan 21, 2025
54c9c0e
Rollup merge of #135750 - scottmcm:cma-example, r=cuviper
jieyouxu Jan 21, 2025
e03e725
Rollup merge of #135779 - marcoieni:free-disk-arm-runner, r=Kobzol
jieyouxu Jan 21, 2025
f23106a
Rollup merge of #135793 - jyn514:gitignore, r=jieyouxu
jieyouxu Jan 21, 2025
276905e
Rollup merge of #135810 - Kobzol:kobzol-parental-leave, r=Kobzol
jieyouxu Jan 21, 2025
102d45e
Rollup merge of #135816 - BoxyUwU:root_normalizes_to_goal_ice, r=lcnr
jieyouxu Jan 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 50 additions & 4 deletions src/bootstrap/src/core/build_steps/gcc.rs
Original file line number Diff line number Diff line change
@@ -12,6 +12,8 @@ use std::fs;
use std::path::PathBuf;
use std::sync::OnceLock;

use build_helper::ci::CiEnv;

use crate::Kind;
use crate::core::builder::{Builder, RunConfig, ShouldRun, Step};
use crate::core::config::TargetSelection;
@@ -112,16 +114,60 @@ impl Step for Gcc {
return true;
}

command(root.join("contrib/download_prerequisites")).current_dir(&root).run(builder);
command(root.join("configure"))
// GCC creates files (e.g. symlinks to the downloaded dependencies)
// in the source directory, which does not work with our CI setup, where we mount
// source directories as read-only on Linux.
// Therefore, as a part of the build in CI, we first copy the whole source directory
// to the build directory, and perform the build from there.
let src_dir = if CiEnv::is_ci() {
let src_dir = builder.gcc_out(target).join("src");
if src_dir.exists() {
builder.remove_dir(&src_dir);
}
builder.create_dir(&src_dir);
builder.cp_link_r(&root, &src_dir);
src_dir
} else {
root
};

command(src_dir.join("contrib/download_prerequisites")).current_dir(&src_dir).run(builder);
let mut configure_cmd = command(src_dir.join("configure"));
configure_cmd
.current_dir(&out_dir)
// On CI, we compile GCC with Clang.
// The -Wno-everything flag is needed to make GCC compile with Clang 19.
// `-g -O2` are the default flags that are otherwise used by Make.
// FIXME(kobzol): change the flags once we have [gcc] configuration in config.toml.
.env("CXXFLAGS", "-Wno-everything -g -O2")
.env("CFLAGS", "-Wno-everything -g -O2")
.arg("--enable-host-shared")
.arg("--enable-languages=jit")
.arg("--enable-checking=release")
.arg("--disable-bootstrap")
.arg("--disable-multilib")
.arg(format!("--prefix={}", install_dir.display()))
.run(builder);
.arg(format!("--prefix={}", install_dir.display()));
let cc = builder.build.cc(target).display().to_string();
let cc = builder
.build
.config
.ccache
.as_ref()
.map_or_else(|| cc.clone(), |ccache| format!("{ccache} {cc}"));
configure_cmd.env("CC", cc);

if let Ok(ref cxx) = builder.build.cxx(target) {
let cxx = cxx.display().to_string();
let cxx = builder
.build
.config
.ccache
.as_ref()
.map_or_else(|| cxx.clone(), |ccache| format!("{ccache} {cxx}"));
configure_cmd.env("CXX", cxx);
}
configure_cmd.run(builder);

command("make").current_dir(&out_dir).arg(format!("-j{}", builder.jobs())).run(builder);
command("make").current_dir(&out_dir).arg("install").run(builder);

1 change: 1 addition & 0 deletions src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
Original file line number Diff line number Diff line change
@@ -34,6 +34,7 @@ RUN yum upgrade -y && \
python3 \
unzip \
wget \
flex \
xz \
zlib-devel.i686 \
zlib-devel.x86_64 \
6 changes: 6 additions & 0 deletions src/ci/docker/scripts/build-zstd.sh
Original file line number Diff line number Diff line change
@@ -25,5 +25,11 @@ cd zstd-$ZSTD
CFLAGS=-fPIC hide_output make -j$(nproc) VERBOSE=1
hide_output make install

# It doesn't seem to be possible to move destination directory
# of the `make install` above. We thus copy the built artifacts
# manually to our custom rustroot, so that it can be found through
# LD_LIBRARY_PATH.
cp /usr/local/lib/libzstd* /rustroot/lib64

cd ..
rm -rf zstd-$ZSTD