-
Notifications
You must be signed in to change notification settings - Fork 11
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
No profiles generated #56
Comments
Hi, could you please share the reproducer program? Also, does it work when you don't use |
The reproducer is any program, as demonstrated by doing cargo init / cargo new and just building the default hello world program. I will try the flags after work tomorrow. |
I see. It works for me, so it might be some environment thing. Did any files appear in |
No files appeared in |
|
~/.cargo/config.toml: [build]
rustc-wrapper = "/usr/bin/sccache"
[target.x86_64-unknown-linux-gnu]
linker = "/usr/bin/clang"
# If I comment out the following line, cargo-pgo starts working (traces start showing up in target/pgo-profiles)
rustflags = ["-C", "link-arg=--ld-path=/usr/bin/mold"] Strangely if I follow the following manual steps from the page you linked: # STEP 0: Make sure there is no left-over profiling data from previous runs
rm -rf /tmp/pgo-data
# STEP 1: Build the instrumented binaries
RUSTFLAGS="-Cprofile-generate=/tmp/pgo-data" \
cargo build --release --target=x86_64-unknown-linux-gnu
# STEP 2: Run the instrumented binaries with some typical data
target/x86_64-unknown-linux-gnu/release/pgo-reproducer Then I do get profiles in |
Because maybe it is useful to debug this: ❯ mold --version
mold 2.31.0 (20fa8d56f5e0c47d1f4bbf7b829c12d3f43298e1; compatible with GNU ld)
❯ clang --version
clang version 17.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin |
Ah, this might be the weird interaction of trying to combine multiple sources of RUSTFLAGS (#49). I'll try to take a look later. |
Right, so the issue is that |
I seem to remember I did that to fix some issue involving cross compilation with cross-rs. Or maybe it was embedded cross compiling to ESP32 (I have done both). That said, I would expect such flags to be appending rather than over writing, that is a bit of a footgun. |
Yeah, that's sadly a cargo issue (rust-lang/cargo#5376). |
Having similar issue. [profile.release]
codegen-units = 1
lto = "fat"
panic = "abort"
strip = false
debug = 1 |
Do you perhaps have a |
This also happens on a much larger program, but I thought a small test case that didn't depend on running on either Arch Linux or Debian specifically would be useful.
The reason I'm trying to use nightly is that I want to use this together with
cargo-remark
, which complains if I don't use nightly. But it just doesn't seem to work. But the same seems to happen on stable 1.78.System info:
The text was updated successfully, but these errors were encountered: