Skip to content

x.py dist rustc-src does not include llvm-project/third-party/siphash #145117

Description

@lambdageek

Summary

Since rust-lang/llvm-project@7f3afab, llvm/lib/Support now depends on third-party/siphash.

Bootstrap filters the llvm-project subdirectory when creating a tarball. As a result, building from the tarball fails with:

FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/SipHash.cpp.o
/bin/c++ ... -isystem /mnt/vss/_work/1/s/rust.sdk.source/src/llvm-project/llvm/../third-party/siphash/include ... -c /mnt/vss/_work/1/s/rust.sdk.source/src/llvm-project/llvm/lib/Support/SipHash.cpp
/mnt/vss/_work/1/s/rust.sdk.source/src/llvm-project/llvm/lib/Support/SipHash.cpp:15:10: fatal error: siphash/SipHash.h: No such file or directory
   15 | #include "siphash/SipHash.h"
      |          ^~~~~~~~~~~~~~~~~~~

Command used

./x.py dist rustc-src

Expected behaviour

A tarball is produced that can be used to build the rust toolchain

Actual behaviour

Build fails while building LLVM

Bootstrap configuration (bootstrap.toml)

# Use different pre-set defaults than the global defaults.
#
# See `src/bootstrap/defaults` for more information.
# Note that this has no default value (x.py uses the defaults in `bootstrap.example.toml`).
profile = 'dist'

[llvm]

# Whether to use Ninja to build LLVM. This runs much faster than make.
ninja = false

[gcc]

[build]

# Instead of downloading the src/stage0 version of Cargo specified, use
# this Cargo binary instead to build all Rust code
# If you set this, you likely want to set `rustc` as well.
cargo = '/Users/alklig/.msrustup/toolchains/ms-beta/bin/cargo'

# Instead of downloading the src/stage0 version of the compiler
# specified, use this rustc binary instead as the stage0 snapshot compiler.
# If you set this, you likely want to set `cargo` as well.
rustc = '/Users/alklig/.msrustup/toolchains/ms-beta/bin/rustc'

# Instead of downloading the src/stage0 version of rustfmt specified,
# use this rustfmt binary instead as the stage0 snapshot rustfmt.
rustfmt = '/usr/bin/false'

# Instead of downloading the src/stage0 version of cargo-clippy specified,
# use this cargo-clippy binary instead as the stage0 snapshot cargo-clippy.
#
# Note that this option should be used with the same toolchain as the `rustc` option above.
# Otherwise, clippy is likely to fail due to a toolchain conflict.
cargo-clippy = '/usr/bin/false'

# Arguments passed to the `./configure` script, used during distcheck. You
# probably won't fill this in but rather it's filled in by the `./configure`
# script. Useful for debugging.
configure-args = ['--set', 'build.cargo-clippy=/usr/bin/false', '--set', 'build.rustfmt=/usr/bin/false', '--set', 'build.cargo=/Users/alklig/.msrustup/toolchains/ms-beta/bin/cargo', '--set', 'build.rustc=/Users/alklig/.msrustup/toolchains/ms-beta/bin/rustc', '--release-channel=dev', '--set', 'llvm.ninja=false', '--set', 'dist.vendor=false', '--dist-compression-formats=gz']

[install]

[rust]

# The "channel" for the Rust build to produce. The stable/beta channels only
# allow using stable features, whereas the nightly and dev channels allow using
# nightly features.
#
# You can set the channel to "auto-detect" to load the channel name from `src/ci/channel`.
#
# If using tarball sources, default value is "auto-detect", otherwise, it's "dev".
channel = 'dev'

[dist]

# List of compression formats to use when generating dist tarballs. The list of
# formats is provided to rust-installer, which must support all of them.
#
# This list must be non-empty.
compression-formats = ['gz']

# Whether to vendor dependencies for the dist tarball.
vendor = false

[target.aarch64-apple-darwin]

Operating system

macOS 15.6

HEAD

2886b36

Additional context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions