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

Placing llvm-tools installed via rustup onto the PATH #3397

Open
davidhewitt opened this issue Jul 4, 2023 · 2 comments
Open

Placing llvm-tools installed via rustup onto the PATH #3397

davidhewitt opened this issue Jul 4, 2023 · 2 comments

Comments

@davidhewitt
Copy link

Problem you are trying to solve

I have been working with the llvm-tools-preview component (in this case llvm-profdata).

These executables seem to be installed into an atypical bin directory inside the toolchain directory:

# location of llvm-profdata
~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata

# location of rustc
~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc

This means that for whatever combination of OS / target / toolchain I am running, I need to deduce the correct path to llvm-profdata myself. See for example https://github.com/pydantic/pydantic-core/blob/5c696e5ab32f323753f6c4da0000f4475225673c/.github/workflows/ci.yml#L471

Solution you'd like

It would be nice to have a supported way in rustup to run llvm-profdata for the target toolchain. Maybe rustup run could add this bin directory onto the PATH, so that e.g. rustup run stable llvm-profdata just works.

Notes

No response

@bradjc
Copy link

bradjc commented Jul 21, 2023

This would be very helpful.

As another example, here is our workaround:

https://github.com/tock/tock/blob/f96c4ef49b25d696f2f54622bc604b32d0201cd2/boards/Makefile.common#L207

@rbtcollins
Copy link
Contributor

I don't think we would start mucking with PATH again. See #3178.

If rustup which and rustup run, which exist to run arbitrary commands within a toolchain cannot find these binaries-in-odd-places, I think extending them to do so (safely, with root path escapes prevented etc) would be entirely reasonable.

Another approach - and this seems best to me, would be to put these files in the bin directory in the toolchain.

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

No branches or pull requests

3 participants