From 920e3d99e60c0823334d0e4c820f182e073eb655 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 19 Mar 2025 05:19:17 +0000 Subject: [PATCH] Switch repository layout to use a virtual manifest The current setup has the `Cargo.toml` for `compiler-builtins` at the repository root, which means all support crates and other files are located within the package root. This works for now but is not the cleanest setup since files that should or shouldn't be included in the package need to be configured in `Cargo.toml`. If we eventually merge `libm` development into this repository, it would be nice to make this separation more straightforward. Begin cleaning things up by moving the crate source to a new `compiler-builtins` directory and adding a virtual manifest. For now the `libm` submodule is also moved, but in the future it can likely move back to the top level (ideally `compiler-builtins/src` would contain a symlink to `libm/src/math`, but unfortunately it seems like Cargo does not like something about the submodule + symlink combination). --- .github/workflows/main.yml | 3 +- .github/workflows/publish.yml | 2 +- .gitmodules | 4 +- Cargo.toml | 80 +------------------ builtins-test-intrinsics/Cargo.toml | 2 +- builtins-test-intrinsics/build.rs | 2 +- ci/run-docker.sh | 2 +- ci/run.sh | 4 +- compiler-builtins/Cargo.toml | 72 +++++++++++++++++ build.rs => compiler-builtins/build.rs | 4 +- .../configure.rs | 0 libm => compiler-builtins/libm | 0 {src => compiler-builtins/src}/aarch64.rs | 0 .../src}/aarch64_linux.rs | 0 {src => compiler-builtins/src}/arm.rs | 0 {src => compiler-builtins/src}/arm_linux.rs | 0 {src => compiler-builtins/src}/float/add.rs | 0 {src => compiler-builtins/src}/float/cmp.rs | 0 {src => compiler-builtins/src}/float/conv.rs | 0 {src => compiler-builtins/src}/float/div.rs | 0 .../src}/float/extend.rs | 0 {src => compiler-builtins/src}/float/mod.rs | 0 {src => compiler-builtins/src}/float/mul.rs | 0 {src => compiler-builtins/src}/float/pow.rs | 0 {src => compiler-builtins/src}/float/sub.rs | 0 .../src}/float/traits.rs | 0 {src => compiler-builtins/src}/float/trunc.rs | 0 {src => compiler-builtins/src}/hexagon.rs | 0 .../src}/hexagon/dfaddsub.s | 0 .../src}/hexagon/dfdiv.s | 0 .../src}/hexagon/dffma.s | 0 .../src}/hexagon/dfminmax.s | 0 .../src}/hexagon/dfmul.s | 0 .../src}/hexagon/dfsqrt.s | 0 .../src}/hexagon/divdi3.s | 0 .../src}/hexagon/divsi3.s | 0 .../src}/hexagon/fastmath2_dlib_asm.s | 0 .../src}/hexagon/fastmath2_ldlib_asm.s | 0 .../src}/hexagon/func_macro.s | 0 .../src}/hexagon/memcpy_forward_vp4cp4n2.s | 0 .../src}/hexagon/memcpy_likely_aligned.s | 0 .../src}/hexagon/moddi3.s | 0 .../src}/hexagon/modsi3.s | 0 .../src}/hexagon/sfdiv_opt.s | 0 .../src}/hexagon/sfsqrt_opt.s | 0 .../src}/hexagon/udivdi3.s | 0 .../src}/hexagon/udivmoddi4.s | 0 .../src}/hexagon/udivmodsi4.s | 0 .../src}/hexagon/udivsi3.s | 0 .../src}/hexagon/umoddi3.s | 0 .../src}/hexagon/umodsi3.s | 0 {src => compiler-builtins/src}/int/addsub.rs | 0 {src => compiler-builtins/src}/int/big.rs | 0 {src => compiler-builtins/src}/int/bswap.rs | 0 .../src}/int/leading_zeros.rs | 0 {src => compiler-builtins/src}/int/mod.rs | 0 {src => compiler-builtins/src}/int/mul.rs | 0 {src => compiler-builtins/src}/int/sdiv.rs | 0 {src => compiler-builtins/src}/int/shift.rs | 0 .../int/specialized_div_rem/asymmetric.rs | 0 .../int/specialized_div_rem/binary_long.rs | 0 .../src}/int/specialized_div_rem/delegate.rs | 0 .../src}/int/specialized_div_rem/mod.rs | 0 .../int/specialized_div_rem/norm_shift.rs | 0 .../src}/int/specialized_div_rem/trifecta.rs | 0 .../src}/int/trailing_zeros.rs | 0 {src => compiler-builtins/src}/int/traits.rs | 0 {src => compiler-builtins/src}/int/udiv.rs | 0 {src => compiler-builtins/src}/lib.miri.rs | 0 {src => compiler-builtins/src}/lib.rs | 3 +- {src => compiler-builtins/src}/macros.rs | 0 {src => compiler-builtins/src}/math.rs | 0 {src => compiler-builtins/src}/mem/impls.rs | 0 {src => compiler-builtins/src}/mem/mod.rs | 0 {src => compiler-builtins/src}/mem/x86_64.rs | 0 {src => compiler-builtins/src}/probestack.rs | 0 {src => compiler-builtins/src}/riscv.rs | 0 {src => compiler-builtins/src}/x86.rs | 0 {src => compiler-builtins/src}/x86_64.rs | 0 crates/panic-handler/Cargo.toml | 4 + testcrate/Cargo.toml | 2 +- testcrate/build.rs | 2 +- 82 files changed, 95 insertions(+), 91 deletions(-) create mode 100644 compiler-builtins/Cargo.toml rename build.rs => compiler-builtins/build.rs (100%) rename configure.rs => compiler-builtins/configure.rs (100%) rename libm => compiler-builtins/libm (100%) rename {src => compiler-builtins/src}/aarch64.rs (100%) rename {src => compiler-builtins/src}/aarch64_linux.rs (100%) rename {src => compiler-builtins/src}/arm.rs (100%) rename {src => compiler-builtins/src}/arm_linux.rs (100%) rename {src => compiler-builtins/src}/float/add.rs (100%) rename {src => compiler-builtins/src}/float/cmp.rs (100%) rename {src => compiler-builtins/src}/float/conv.rs (100%) rename {src => compiler-builtins/src}/float/div.rs (100%) rename {src => compiler-builtins/src}/float/extend.rs (100%) rename {src => compiler-builtins/src}/float/mod.rs (100%) rename {src => compiler-builtins/src}/float/mul.rs (100%) rename {src => compiler-builtins/src}/float/pow.rs (100%) rename {src => compiler-builtins/src}/float/sub.rs (100%) rename {src => compiler-builtins/src}/float/traits.rs (100%) rename {src => compiler-builtins/src}/float/trunc.rs (100%) rename {src => compiler-builtins/src}/hexagon.rs (100%) rename {src => compiler-builtins/src}/hexagon/dfaddsub.s (100%) rename {src => compiler-builtins/src}/hexagon/dfdiv.s (100%) rename {src => compiler-builtins/src}/hexagon/dffma.s (100%) rename {src => compiler-builtins/src}/hexagon/dfminmax.s (100%) rename {src => compiler-builtins/src}/hexagon/dfmul.s (100%) rename {src => compiler-builtins/src}/hexagon/dfsqrt.s (100%) rename {src => compiler-builtins/src}/hexagon/divdi3.s (100%) rename {src => compiler-builtins/src}/hexagon/divsi3.s (100%) rename {src => compiler-builtins/src}/hexagon/fastmath2_dlib_asm.s (100%) rename {src => compiler-builtins/src}/hexagon/fastmath2_ldlib_asm.s (100%) rename {src => compiler-builtins/src}/hexagon/func_macro.s (100%) rename {src => compiler-builtins/src}/hexagon/memcpy_forward_vp4cp4n2.s (100%) rename {src => compiler-builtins/src}/hexagon/memcpy_likely_aligned.s (100%) rename {src => compiler-builtins/src}/hexagon/moddi3.s (100%) rename {src => compiler-builtins/src}/hexagon/modsi3.s (100%) rename {src => compiler-builtins/src}/hexagon/sfdiv_opt.s (100%) rename {src => compiler-builtins/src}/hexagon/sfsqrt_opt.s (100%) rename {src => compiler-builtins/src}/hexagon/udivdi3.s (100%) rename {src => compiler-builtins/src}/hexagon/udivmoddi4.s (100%) rename {src => compiler-builtins/src}/hexagon/udivmodsi4.s (100%) rename {src => compiler-builtins/src}/hexagon/udivsi3.s (100%) rename {src => compiler-builtins/src}/hexagon/umoddi3.s (100%) rename {src => compiler-builtins/src}/hexagon/umodsi3.s (100%) rename {src => compiler-builtins/src}/int/addsub.rs (100%) rename {src => compiler-builtins/src}/int/big.rs (100%) rename {src => compiler-builtins/src}/int/bswap.rs (100%) rename {src => compiler-builtins/src}/int/leading_zeros.rs (100%) rename {src => compiler-builtins/src}/int/mod.rs (100%) rename {src => compiler-builtins/src}/int/mul.rs (100%) rename {src => compiler-builtins/src}/int/sdiv.rs (100%) rename {src => compiler-builtins/src}/int/shift.rs (100%) rename {src => compiler-builtins/src}/int/specialized_div_rem/asymmetric.rs (100%) rename {src => compiler-builtins/src}/int/specialized_div_rem/binary_long.rs (100%) rename {src => compiler-builtins/src}/int/specialized_div_rem/delegate.rs (100%) rename {src => compiler-builtins/src}/int/specialized_div_rem/mod.rs (100%) rename {src => compiler-builtins/src}/int/specialized_div_rem/norm_shift.rs (100%) rename {src => compiler-builtins/src}/int/specialized_div_rem/trifecta.rs (100%) rename {src => compiler-builtins/src}/int/trailing_zeros.rs (100%) rename {src => compiler-builtins/src}/int/traits.rs (100%) rename {src => compiler-builtins/src}/int/udiv.rs (100%) rename {src => compiler-builtins/src}/lib.miri.rs (100%) rename {src => compiler-builtins/src}/lib.rs (96%) rename {src => compiler-builtins/src}/macros.rs (100%) rename {src => compiler-builtins/src}/math.rs (100%) rename {src => compiler-builtins/src}/mem/impls.rs (100%) rename {src => compiler-builtins/src}/mem/mod.rs (100%) rename {src => compiler-builtins/src}/mem/x86_64.rs (100%) rename {src => compiler-builtins/src}/probestack.rs (100%) rename {src => compiler-builtins/src}/riscv.rs (100%) rename {src => compiler-builtins/src}/x86.rs (100%) rename {src => compiler-builtins/src}/x86_64.rs (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 50844a66c..c337c26a2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -4,7 +4,6 @@ on: [push, pull_request] env: RUSTDOCFLAGS: -Dwarnings RUSTFLAGS: -Dwarnings - RUST_COMPILER_RT_ROOT: ./compiler-rt jobs: test: @@ -133,6 +132,8 @@ jobs: if: steps.cache-compiler-rt.outputs.cache-hit != 'true' run: ./ci/download-compiler-rt.sh shell: bash + - run: echo "RUST_COMPILER_RT_ROOT=$(realpath ./compiler-rt)" >> "$GITHUB_ENV" + shell: bash # Non-linux tests just use our raw script - run: ./ci/run.sh ${{ matrix.target }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d568f3757..7d6a8df03 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -22,7 +22,7 @@ jobs: - name: Install Rust (rustup) run: rustup update nightly --no-self-update && rustup default nightly - name: Publish `libm` as part of builtins, rather than its own crate - run: rm libm/Cargo.toml + run: rm compiler-builtins/libm/Cargo.toml - name: Run release-plz uses: MarcoIeni/release-plz-action@v0.5 env: diff --git a/.gitmodules b/.gitmodules index 726b1c5c6..a0b0d021d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "libm"] - path = libm +[submodule "compiler-builtins/libm"] + path = compiler-builtins/libm url = https://github.com/rust-lang/libm.git diff --git a/Cargo.toml b/Cargo.toml index 60de27758..db4c45dfa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,88 +1,16 @@ -[package] -authors = ["Jorge Aparicio "] -name = "compiler_builtins" -version = "0.1.151" -license = "MIT AND Apache-2.0 WITH LLVM-exception AND (MIT OR Apache-2.0)" -readme = "README.md" -repository = "https://github.com/rust-lang/compiler-builtins" -homepage = "https://github.com/rust-lang/compiler-builtins" -documentation = "https://docs.rs/compiler_builtins" -edition = "2021" -description = """ -Compiler intrinsics used by the Rust compiler. Also available for other targets -if necessary! -""" -include = [ - '/Cargo.toml', - '/build.rs', - '/configure.rs', - '/src/*', - '/examples/*', - '/LICENSE.txt', - '/README.md', - '/compiler-rt/*', - '/libm/src/math/*', -] -links = 'compiler-rt' - -[lib] -test = false - -[dependencies] -# For more information on this dependency see -# https://github.com/rust-lang/rust/tree/master/library/rustc-std-workspace-core -core = { version = "1.0.0", optional = true, package = 'rustc-std-workspace-core' } - -[build-dependencies] -cc = { optional = true, version = "1.0" } - -[dev-dependencies] -panic-handler = { path = 'crates/panic-handler' } - -[features] -default = ["compiler-builtins"] - -# Enable compilation of C code in compiler-rt, filling in some more optimized -# implementations and also filling in unimplemented intrinsics -c = ["cc"] - -# Workaround for the Cranelift codegen backend. Disables any implementations -# which use inline assembly and fall back to pure Rust versions (if avalible). -no-asm = [] - -# Workaround for codegen backends which haven't yet implemented `f16` and -# `f128` support. Disabled any intrinsics which use those types. -no-f16-f128 = [] - -# Flag this library as the unstable compiler-builtins lib -compiler-builtins = [] - -# Generate memory-related intrinsics like memcpy -mem = [] - -# Mangle all names so this can be linked in with other versions or other -# compiler-rt implementations. Also used for testing -mangled-names = [] - -# Only used in the compiler's build system -rustc-dep-of-std = ['compiler-builtins', 'core'] - -# This makes certain traits and function specializations public that -# are not normally public but are required by the `testcrate` -public-test-deps = [] - [workspace] -resolver = "2" +resolver = "3" members = [ - # Note that builtins-test-intrinsics cannot be a default member because it + # Note that builtins-test-intrinsics cannot be a default member because it # needs the `mangled-names` feature disabled, while `testcrate` needs it # enabled. "builtins-test-intrinsics", + "compiler-builtins", "testcrate", ] default-members = [ - ".", + "compiler-builtins", "testcrate", ] diff --git a/builtins-test-intrinsics/Cargo.toml b/builtins-test-intrinsics/Cargo.toml index 9b2e5bb7c..9dbd3c32f 100644 --- a/builtins-test-intrinsics/Cargo.toml +++ b/builtins-test-intrinsics/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" publish = false [dependencies] -compiler_builtins = { path = "../", features = ["compiler-builtins"]} +compiler_builtins = { path = "../compiler-builtins", features = ["compiler-builtins"]} panic-handler = { path = '../crates/panic-handler' } [features] diff --git a/builtins-test-intrinsics/build.rs b/builtins-test-intrinsics/build.rs index a38c6c1ff..89b126ff2 100644 --- a/builtins-test-intrinsics/build.rs +++ b/builtins-test-intrinsics/build.rs @@ -1,5 +1,5 @@ mod builtins_configure { - include!("../configure.rs"); + include!("../compiler-builtins/configure.rs"); } fn main() { diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 215ad71a3..5e19cf4d0 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -38,7 +38,7 @@ run() { fi if [ -d compiler-rt ]; then - export RUST_COMPILER_RT_ROOT=./compiler-rt + export RUST_COMPILER_RT_ROOT="/checkout/compiler-rt" fi if [ "${GITHUB_ACTIONS:-}" = "true" ]; then diff --git a/ci/run.sh b/ci/run.sh index 3625dde79..9abbf25a7 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -23,7 +23,7 @@ fi if [ "${NO_STD:-}" = "1" ]; then echo "nothing to do for no_std" else - run="cargo test --manifest-path testcrate/Cargo.toml --no-fail-fast --target $target" + run="cargo test --package testcrate --no-fail-fast --target $target" $run $run --release $run --features c @@ -38,7 +38,7 @@ fi if [ "${TEST_VERBATIM:-}" = "1" ]; then verb_path=$(cmd.exe //C echo \\\\?\\%cd%\\testcrate\\target2) - cargo build --manifest-path testcrate/Cargo.toml \ + cargo build --package testcrate \ --target "$target" --target-dir "$verb_path" --features c fi diff --git a/compiler-builtins/Cargo.toml b/compiler-builtins/Cargo.toml new file mode 100644 index 000000000..9797b5e65 --- /dev/null +++ b/compiler-builtins/Cargo.toml @@ -0,0 +1,72 @@ +[package] +authors = ["Jorge Aparicio "] +name = "compiler_builtins" +version = "0.1.151" +license = "MIT AND Apache-2.0 WITH LLVM-exception AND (MIT OR Apache-2.0)" +readme = "../README.md" +repository = "https://github.com/rust-lang/compiler-builtins" +homepage = "https://github.com/rust-lang/compiler-builtins" +documentation = "https://docs.rs/compiler_builtins" +edition = "2021" +description = """ +Compiler intrinsics used by the Rust compiler. Also available for other targets +if necessary! +""" +include = [ + '/Cargo.toml', + '/build.rs', + '/configure.rs', + '/src/*', + '../LICENSE.txt', + '../README.md', + '../compiler-rt/*', + 'libm/src/math/*', +] +links = 'compiler-rt' + +[lib] +test = false +bench = false + +[dependencies] +# For more information on this dependency see +# https://github.com/rust-lang/rust/tree/master/library/rustc-std-workspace-core +core = { version = "1.0.0", optional = true, package = 'rustc-std-workspace-core' } + +[build-dependencies] +cc = { optional = true, version = "1.0" } + +[dev-dependencies] +panic-handler = { path = '../crates/panic-handler' } + +[features] +default = ["compiler-builtins"] + +# Enable compilation of C code in compiler-rt, filling in some more optimized +# implementations and also filling in unimplemented intrinsics +c = ["cc"] + +# Workaround for the Cranelift codegen backend. Disables any implementations +# which use inline assembly and fall back to pure Rust versions (if avalible). +no-asm = [] + +# Workaround for codegen backends which haven't yet implemented `f16` and +# `f128` support. Disabled any intrinsics which use those types. +no-f16-f128 = [] + +# Flag this library as the unstable compiler-builtins lib +compiler-builtins = [] + +# Generate memory-related intrinsics like memcpy +mem = [] + +# Mangle all names so this can be linked in with other versions or other +# compiler-rt implementations. Also used for testing +mangled-names = [] + +# Only used in the compiler's build system +rustc-dep-of-std = ['compiler-builtins', 'core'] + +# This makes certain traits and function specializations public that +# are not normally public but are required by the `testcrate` +public-test-deps = [] diff --git a/build.rs b/compiler-builtins/build.rs similarity index 100% rename from build.rs rename to compiler-builtins/build.rs index 3003d51af..fdfb61b17 100644 --- a/build.rs +++ b/compiler-builtins/build.rs @@ -1,7 +1,7 @@ -use std::{collections::BTreeMap, env, path::PathBuf, sync::atomic::Ordering}; - mod configure; +use std::{collections::BTreeMap, env, path::PathBuf, sync::atomic::Ordering}; + use configure::{configure_aliases, configure_f16_f128, Target}; fn main() { diff --git a/configure.rs b/compiler-builtins/configure.rs similarity index 100% rename from configure.rs rename to compiler-builtins/configure.rs diff --git a/libm b/compiler-builtins/libm similarity index 100% rename from libm rename to compiler-builtins/libm diff --git a/src/aarch64.rs b/compiler-builtins/src/aarch64.rs similarity index 100% rename from src/aarch64.rs rename to compiler-builtins/src/aarch64.rs diff --git a/src/aarch64_linux.rs b/compiler-builtins/src/aarch64_linux.rs similarity index 100% rename from src/aarch64_linux.rs rename to compiler-builtins/src/aarch64_linux.rs diff --git a/src/arm.rs b/compiler-builtins/src/arm.rs similarity index 100% rename from src/arm.rs rename to compiler-builtins/src/arm.rs diff --git a/src/arm_linux.rs b/compiler-builtins/src/arm_linux.rs similarity index 100% rename from src/arm_linux.rs rename to compiler-builtins/src/arm_linux.rs diff --git a/src/float/add.rs b/compiler-builtins/src/float/add.rs similarity index 100% rename from src/float/add.rs rename to compiler-builtins/src/float/add.rs diff --git a/src/float/cmp.rs b/compiler-builtins/src/float/cmp.rs similarity index 100% rename from src/float/cmp.rs rename to compiler-builtins/src/float/cmp.rs diff --git a/src/float/conv.rs b/compiler-builtins/src/float/conv.rs similarity index 100% rename from src/float/conv.rs rename to compiler-builtins/src/float/conv.rs diff --git a/src/float/div.rs b/compiler-builtins/src/float/div.rs similarity index 100% rename from src/float/div.rs rename to compiler-builtins/src/float/div.rs diff --git a/src/float/extend.rs b/compiler-builtins/src/float/extend.rs similarity index 100% rename from src/float/extend.rs rename to compiler-builtins/src/float/extend.rs diff --git a/src/float/mod.rs b/compiler-builtins/src/float/mod.rs similarity index 100% rename from src/float/mod.rs rename to compiler-builtins/src/float/mod.rs diff --git a/src/float/mul.rs b/compiler-builtins/src/float/mul.rs similarity index 100% rename from src/float/mul.rs rename to compiler-builtins/src/float/mul.rs diff --git a/src/float/pow.rs b/compiler-builtins/src/float/pow.rs similarity index 100% rename from src/float/pow.rs rename to compiler-builtins/src/float/pow.rs diff --git a/src/float/sub.rs b/compiler-builtins/src/float/sub.rs similarity index 100% rename from src/float/sub.rs rename to compiler-builtins/src/float/sub.rs diff --git a/src/float/traits.rs b/compiler-builtins/src/float/traits.rs similarity index 100% rename from src/float/traits.rs rename to compiler-builtins/src/float/traits.rs diff --git a/src/float/trunc.rs b/compiler-builtins/src/float/trunc.rs similarity index 100% rename from src/float/trunc.rs rename to compiler-builtins/src/float/trunc.rs diff --git a/src/hexagon.rs b/compiler-builtins/src/hexagon.rs similarity index 100% rename from src/hexagon.rs rename to compiler-builtins/src/hexagon.rs diff --git a/src/hexagon/dfaddsub.s b/compiler-builtins/src/hexagon/dfaddsub.s similarity index 100% rename from src/hexagon/dfaddsub.s rename to compiler-builtins/src/hexagon/dfaddsub.s diff --git a/src/hexagon/dfdiv.s b/compiler-builtins/src/hexagon/dfdiv.s similarity index 100% rename from src/hexagon/dfdiv.s rename to compiler-builtins/src/hexagon/dfdiv.s diff --git a/src/hexagon/dffma.s b/compiler-builtins/src/hexagon/dffma.s similarity index 100% rename from src/hexagon/dffma.s rename to compiler-builtins/src/hexagon/dffma.s diff --git a/src/hexagon/dfminmax.s b/compiler-builtins/src/hexagon/dfminmax.s similarity index 100% rename from src/hexagon/dfminmax.s rename to compiler-builtins/src/hexagon/dfminmax.s diff --git a/src/hexagon/dfmul.s b/compiler-builtins/src/hexagon/dfmul.s similarity index 100% rename from src/hexagon/dfmul.s rename to compiler-builtins/src/hexagon/dfmul.s diff --git a/src/hexagon/dfsqrt.s b/compiler-builtins/src/hexagon/dfsqrt.s similarity index 100% rename from src/hexagon/dfsqrt.s rename to compiler-builtins/src/hexagon/dfsqrt.s diff --git a/src/hexagon/divdi3.s b/compiler-builtins/src/hexagon/divdi3.s similarity index 100% rename from src/hexagon/divdi3.s rename to compiler-builtins/src/hexagon/divdi3.s diff --git a/src/hexagon/divsi3.s b/compiler-builtins/src/hexagon/divsi3.s similarity index 100% rename from src/hexagon/divsi3.s rename to compiler-builtins/src/hexagon/divsi3.s diff --git a/src/hexagon/fastmath2_dlib_asm.s b/compiler-builtins/src/hexagon/fastmath2_dlib_asm.s similarity index 100% rename from src/hexagon/fastmath2_dlib_asm.s rename to compiler-builtins/src/hexagon/fastmath2_dlib_asm.s diff --git a/src/hexagon/fastmath2_ldlib_asm.s b/compiler-builtins/src/hexagon/fastmath2_ldlib_asm.s similarity index 100% rename from src/hexagon/fastmath2_ldlib_asm.s rename to compiler-builtins/src/hexagon/fastmath2_ldlib_asm.s diff --git a/src/hexagon/func_macro.s b/compiler-builtins/src/hexagon/func_macro.s similarity index 100% rename from src/hexagon/func_macro.s rename to compiler-builtins/src/hexagon/func_macro.s diff --git a/src/hexagon/memcpy_forward_vp4cp4n2.s b/compiler-builtins/src/hexagon/memcpy_forward_vp4cp4n2.s similarity index 100% rename from src/hexagon/memcpy_forward_vp4cp4n2.s rename to compiler-builtins/src/hexagon/memcpy_forward_vp4cp4n2.s diff --git a/src/hexagon/memcpy_likely_aligned.s b/compiler-builtins/src/hexagon/memcpy_likely_aligned.s similarity index 100% rename from src/hexagon/memcpy_likely_aligned.s rename to compiler-builtins/src/hexagon/memcpy_likely_aligned.s diff --git a/src/hexagon/moddi3.s b/compiler-builtins/src/hexagon/moddi3.s similarity index 100% rename from src/hexagon/moddi3.s rename to compiler-builtins/src/hexagon/moddi3.s diff --git a/src/hexagon/modsi3.s b/compiler-builtins/src/hexagon/modsi3.s similarity index 100% rename from src/hexagon/modsi3.s rename to compiler-builtins/src/hexagon/modsi3.s diff --git a/src/hexagon/sfdiv_opt.s b/compiler-builtins/src/hexagon/sfdiv_opt.s similarity index 100% rename from src/hexagon/sfdiv_opt.s rename to compiler-builtins/src/hexagon/sfdiv_opt.s diff --git a/src/hexagon/sfsqrt_opt.s b/compiler-builtins/src/hexagon/sfsqrt_opt.s similarity index 100% rename from src/hexagon/sfsqrt_opt.s rename to compiler-builtins/src/hexagon/sfsqrt_opt.s diff --git a/src/hexagon/udivdi3.s b/compiler-builtins/src/hexagon/udivdi3.s similarity index 100% rename from src/hexagon/udivdi3.s rename to compiler-builtins/src/hexagon/udivdi3.s diff --git a/src/hexagon/udivmoddi4.s b/compiler-builtins/src/hexagon/udivmoddi4.s similarity index 100% rename from src/hexagon/udivmoddi4.s rename to compiler-builtins/src/hexagon/udivmoddi4.s diff --git a/src/hexagon/udivmodsi4.s b/compiler-builtins/src/hexagon/udivmodsi4.s similarity index 100% rename from src/hexagon/udivmodsi4.s rename to compiler-builtins/src/hexagon/udivmodsi4.s diff --git a/src/hexagon/udivsi3.s b/compiler-builtins/src/hexagon/udivsi3.s similarity index 100% rename from src/hexagon/udivsi3.s rename to compiler-builtins/src/hexagon/udivsi3.s diff --git a/src/hexagon/umoddi3.s b/compiler-builtins/src/hexagon/umoddi3.s similarity index 100% rename from src/hexagon/umoddi3.s rename to compiler-builtins/src/hexagon/umoddi3.s diff --git a/src/hexagon/umodsi3.s b/compiler-builtins/src/hexagon/umodsi3.s similarity index 100% rename from src/hexagon/umodsi3.s rename to compiler-builtins/src/hexagon/umodsi3.s diff --git a/src/int/addsub.rs b/compiler-builtins/src/int/addsub.rs similarity index 100% rename from src/int/addsub.rs rename to compiler-builtins/src/int/addsub.rs diff --git a/src/int/big.rs b/compiler-builtins/src/int/big.rs similarity index 100% rename from src/int/big.rs rename to compiler-builtins/src/int/big.rs diff --git a/src/int/bswap.rs b/compiler-builtins/src/int/bswap.rs similarity index 100% rename from src/int/bswap.rs rename to compiler-builtins/src/int/bswap.rs diff --git a/src/int/leading_zeros.rs b/compiler-builtins/src/int/leading_zeros.rs similarity index 100% rename from src/int/leading_zeros.rs rename to compiler-builtins/src/int/leading_zeros.rs diff --git a/src/int/mod.rs b/compiler-builtins/src/int/mod.rs similarity index 100% rename from src/int/mod.rs rename to compiler-builtins/src/int/mod.rs diff --git a/src/int/mul.rs b/compiler-builtins/src/int/mul.rs similarity index 100% rename from src/int/mul.rs rename to compiler-builtins/src/int/mul.rs diff --git a/src/int/sdiv.rs b/compiler-builtins/src/int/sdiv.rs similarity index 100% rename from src/int/sdiv.rs rename to compiler-builtins/src/int/sdiv.rs diff --git a/src/int/shift.rs b/compiler-builtins/src/int/shift.rs similarity index 100% rename from src/int/shift.rs rename to compiler-builtins/src/int/shift.rs diff --git a/src/int/specialized_div_rem/asymmetric.rs b/compiler-builtins/src/int/specialized_div_rem/asymmetric.rs similarity index 100% rename from src/int/specialized_div_rem/asymmetric.rs rename to compiler-builtins/src/int/specialized_div_rem/asymmetric.rs diff --git a/src/int/specialized_div_rem/binary_long.rs b/compiler-builtins/src/int/specialized_div_rem/binary_long.rs similarity index 100% rename from src/int/specialized_div_rem/binary_long.rs rename to compiler-builtins/src/int/specialized_div_rem/binary_long.rs diff --git a/src/int/specialized_div_rem/delegate.rs b/compiler-builtins/src/int/specialized_div_rem/delegate.rs similarity index 100% rename from src/int/specialized_div_rem/delegate.rs rename to compiler-builtins/src/int/specialized_div_rem/delegate.rs diff --git a/src/int/specialized_div_rem/mod.rs b/compiler-builtins/src/int/specialized_div_rem/mod.rs similarity index 100% rename from src/int/specialized_div_rem/mod.rs rename to compiler-builtins/src/int/specialized_div_rem/mod.rs diff --git a/src/int/specialized_div_rem/norm_shift.rs b/compiler-builtins/src/int/specialized_div_rem/norm_shift.rs similarity index 100% rename from src/int/specialized_div_rem/norm_shift.rs rename to compiler-builtins/src/int/specialized_div_rem/norm_shift.rs diff --git a/src/int/specialized_div_rem/trifecta.rs b/compiler-builtins/src/int/specialized_div_rem/trifecta.rs similarity index 100% rename from src/int/specialized_div_rem/trifecta.rs rename to compiler-builtins/src/int/specialized_div_rem/trifecta.rs diff --git a/src/int/trailing_zeros.rs b/compiler-builtins/src/int/trailing_zeros.rs similarity index 100% rename from src/int/trailing_zeros.rs rename to compiler-builtins/src/int/trailing_zeros.rs diff --git a/src/int/traits.rs b/compiler-builtins/src/int/traits.rs similarity index 100% rename from src/int/traits.rs rename to compiler-builtins/src/int/traits.rs diff --git a/src/int/udiv.rs b/compiler-builtins/src/int/udiv.rs similarity index 100% rename from src/int/udiv.rs rename to compiler-builtins/src/int/udiv.rs diff --git a/src/lib.miri.rs b/compiler-builtins/src/lib.miri.rs similarity index 100% rename from src/lib.miri.rs rename to compiler-builtins/src/lib.miri.rs diff --git a/src/lib.rs b/compiler-builtins/src/lib.rs similarity index 96% rename from src/lib.rs rename to compiler-builtins/src/lib.rs index 6f5bd8598..16de96b4d 100644 --- a/src/lib.rs +++ b/compiler-builtins/src/lib.rs @@ -44,8 +44,7 @@ pub mod int; pub mod math; pub mod mem; -// `libm` expects its `support` module to be available in the crate root. This config can be -// cleaned up once `libm` is made always available. +// `libm` expects its `support` module to be available in the crate root. use math::libm::support; #[cfg(target_arch = "arm")] diff --git a/src/macros.rs b/compiler-builtins/src/macros.rs similarity index 100% rename from src/macros.rs rename to compiler-builtins/src/macros.rs diff --git a/src/math.rs b/compiler-builtins/src/math.rs similarity index 100% rename from src/math.rs rename to compiler-builtins/src/math.rs diff --git a/src/mem/impls.rs b/compiler-builtins/src/mem/impls.rs similarity index 100% rename from src/mem/impls.rs rename to compiler-builtins/src/mem/impls.rs diff --git a/src/mem/mod.rs b/compiler-builtins/src/mem/mod.rs similarity index 100% rename from src/mem/mod.rs rename to compiler-builtins/src/mem/mod.rs diff --git a/src/mem/x86_64.rs b/compiler-builtins/src/mem/x86_64.rs similarity index 100% rename from src/mem/x86_64.rs rename to compiler-builtins/src/mem/x86_64.rs diff --git a/src/probestack.rs b/compiler-builtins/src/probestack.rs similarity index 100% rename from src/probestack.rs rename to compiler-builtins/src/probestack.rs diff --git a/src/riscv.rs b/compiler-builtins/src/riscv.rs similarity index 100% rename from src/riscv.rs rename to compiler-builtins/src/riscv.rs diff --git a/src/x86.rs b/compiler-builtins/src/x86.rs similarity index 100% rename from src/x86.rs rename to compiler-builtins/src/x86.rs diff --git a/src/x86_64.rs b/compiler-builtins/src/x86_64.rs similarity index 100% rename from src/x86_64.rs rename to compiler-builtins/src/x86_64.rs diff --git a/crates/panic-handler/Cargo.toml b/crates/panic-handler/Cargo.toml index 96b83eaa2..a6764fc48 100644 --- a/crates/panic-handler/Cargo.toml +++ b/crates/panic-handler/Cargo.toml @@ -5,4 +5,8 @@ authors = ["Alex Crichton "] edition = "2024" publish = false +[lib] +test = false +bench = false + [dependencies] diff --git a/testcrate/Cargo.toml b/testcrate/Cargo.toml index 71c461c57..be60e694f 100644 --- a/testcrate/Cargo.toml +++ b/testcrate/Cargo.toml @@ -18,7 +18,7 @@ rand_xoshiro = "0.6" rustc_apfloat = "0.2.1" [dependencies.compiler_builtins] -path = ".." +path = "../compiler-builtins" default-features = false features = ["public-test-deps"] diff --git a/testcrate/build.rs b/testcrate/build.rs index 566b985d2..e8f4eb4dd 100644 --- a/testcrate/build.rs +++ b/testcrate/build.rs @@ -1,7 +1,7 @@ use std::collections::HashSet; mod builtins_configure { - include!("../configure.rs"); + include!("../compiler-builtins/configure.rs"); } /// Features to enable