Skip to content

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

@lambdageek

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

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