Skip to content

rustc wrapper respects CARGO_BUILD_TARGET #421

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

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

@@ -743,8 +743,8 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr
function rustc(io::IO, p::AbstractPlatform)
extra_cmds = """
if [[ " \${ARGS[@]} " == *'--target'* ]]; then
if ! [[ " \${ARGS[@]} " =~ --target(=| )$(map_rust_target(p)) ]]; then
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected $(map_rust_target(p)))" >&2
if ! [[ " \${ARGS[@]} " =~ --target(=| )\${CARGO_BUILD_TARGET} ]]; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also below

@ericphanson
Copy link
Author

hm, I'm getting

[00:11:46]   error: Error loading target specification: Could not find specification for target "${CARGO_BUILD_TARGET}". Run `rustc --print target-list` for a list of built-in targets

in https://buildkite.com/julialang/yggdrasil/builds/19293#019612bb-7055-4dd9-b309-95acdc4cdd2c/684-846 using this PR, is it somehow passing that literal string instead of interpolating?

src/Runner.jl Outdated
if ! [[ " \${ARGS[@]} " =~ --target(=| )$(map_rust_target(p)) ]]; then
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected $(map_rust_target(p)))" >&2
if ! [[ " \${ARGS[@]} " =~ --target(=| )\${CARGO_BUILD_TARGET} ]]; then
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected \${CARGO_BUILD_TARGET}, which is `CARGO_BUILD_TARGET`)" >&2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't use backticks, they're doing command substitution inside double quotes

@ericphanson
Copy link
Author

ah figured it out with the help of shell syntax highlighting (copied the snippet into a new textfile..). Single quotes don't allow env interpolation.

if ! [[ " \${ARGS[@]} " =~ --target(=| )$(map_rust_target(p)) ]]; then
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected $(map_rust_target(p)))" >&2
if ! [[ " \${ARGS[@]} " =~ --target(=| )\${CARGO_BUILD_TARGET} ]]; then
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected \${CARGO_BUILD_TARGET}, which is CARGO_BUILD_TARGET)" >&2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I don't understand this message now. It'd read something like

(Expected x86_64-unknown-linux-gnu, which is CARGO_BUILD_TARGET)

Copy link
Author

@ericphanson ericphanson Apr 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to say why it expects that. Would this be better?

Suggested change
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected \${CARGO_BUILD_TARGET}, which is CARGO_BUILD_TARGET)" >&2
echo "Attempting to invoke targeted 'rustc' wrapper with a different target! (Expected CARGO_BUILD_TARGET=\${CARGO_BUILD_TARGET})" >&2

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

Successfully merging this pull request may close these issues.

2 participants