Skip to content

Cannot build *-unknown-uefi target with profiler = true #118184

Open

Description

When building this:

./x build library/std --target x86_64-unknown-uefi

with this config.toml:

[llvm]
download-ci-llvm = true

[target.x86_64-unknown-uefi]
profiler = true

It turns out that build.rs in library/profile_builtins failed to build the profileing code in LLVM compiler-rt.

I am not sure whether it makes sense for setting profiler in UEFI target. Feel free to close this if it is intended to not support.

Meta

rust-lang/rust commit

6d2b84b3ed7848fd91b8d6151d4451b3103ed816
Backtrace

 ./x build library/std --target x86_64-unknown-uefi
Building bootstrap
    Finished dev [unoptimized] target(s) in 0.03s
Building stage0 library artifacts (x86_64-unknown-linux-gnu)
    Finished release [optimized] target(s) in 0.09s
Building compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu)
    Finished release [optimized] target(s) in 0.16s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 library artifacts {std} (x86_64-unknown-linux-gnu -> x86_64-unknown-uefi)
   Compiling profiler_builtins v0.0.0 (/home/dev/rust/library/profiler_builtins)
   Compiling std v0.0.0 (/home/dev/rust/library/std)
The following warnings were emitted during compilation:

warning: profiler_builtins@0.0.0: clang-16: warning: argument unused during compilation: '--gcc-toolchain=/nix/store/hf2gy3km07d5m0p1lwmja0rg9wlnmyr7-gcc-12.3.0' [-Wunused-command-line-argument]
warning: profiler_builtins@0.0.0: ../../src/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c:33:10: fatal error: 'windows.h' file not found
warning: profiler_builtins@0.0.0: #include <windows.h>
warning: profiler_builtins@0.0.0:          ^~~~~~~~~~~
warning: profiler_builtins@0.0.0: 1 error generated.

error: failed to run custom build command for `profiler_builtins v0.0.0 (/home/dev/rust/library/profiler_builtins)`

Caused by:
  process didn't exit successfully: `/home/dev/rust/build/x86_64-unknown-linux-gnu/stage1-std/release/build/profiler_builtins-53581af9689cca4b/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=LLVM_PROFILER_RT_LIB
  TARGET = Some("x86_64-unknown-uefi")
  OPT_LEVEL = Some("3")
  HOST = Some("x86_64-unknown-linux-gnu")
  cargo:rerun-if-env-changed=CC_x86_64-unknown-uefi
  CC_x86_64-unknown-uefi = None
  cargo:rerun-if-env-changed=CC_x86_64_unknown_uefi
  CC_x86_64_unknown_uefi = Some("clang")
  cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-uefi
  CFLAGS_x86_64-unknown-uefi = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_uefi
  CFLAGS_x86_64_unknown_uefi = Some("-ffunction-sections -fdata-sections --target=x86_64-unknown-windows-gnu")
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  running: "clang" "-O3" "-ffunction-sections" "-fdata-sections" "--target=x86_64-unknown-windows-gnu" "-ffunction-sections" "-fdata-sections" "--target=x86_64-unknown-windows-gnu" "-I" "../../src/llvm-project/compiler-rt/include" "-fno-builtin" "-fomit-frame-pointer" "-fvisibility=hidden" "-DVISIBILITY_HIDDEN" "-DCOMPILER_RT_HAS_UNAME=1" "-DCOMPILER_RT_HAS_ATOMICS=1" "-o" "/home/dev/rust/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-uefi/release/build/profiler_builtins-65f9c5b87ee47c1a/out/../../src/llvm-project/compiler-rt/lib/profile/GCDAProfiling.o" "-c" "../../src/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c"
  cargo:warning=clang-16: warning: argument unused during compilation: '--gcc-toolchain=/nix/store/hf2gy3km07d5m0p1lwmja0rg9wlnmyr7-gcc-12.3.0' [-Wunused-command-line-argument]
  cargo:warning=../../src/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c:33:10: fatal error: 'windows.h' file not found
  cargo:warning=#include <windows.h>
  cargo:warning=         ^~~~~~~~~~~
  cargo:warning=1 error generated.
  exit status: 1

  --- stderr


  error occurred: Command "clang" "-O3" "-ffunction-sections" "-fdata-sections" "--target=x86_64-unknown-windows-gnu" "-ffunction-sections" "-fdata-sections" "--target=x86_64-unknown-windows-gnu" "-I" "../../src/llvm-project/compiler-rt/include" "-fno-builtin" "-fomit-frame-pointer" "-fvisibility=hidden" "-DVISIBILITY_HIDDEN" "-DCOMPILER_RT_HAS_UNAME=1" "-DCOMPILER_RT_HAS_ATOMICS=1" "-o" "/home/dev/rust/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-uefi/release/build/profiler_builtins-65f9c5b87ee47c1a/out/../../src/llvm-project/compiler-rt/lib/profile/GCDAProfiling.o" "-c" "../../src/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c" with args "clang" did not execute successfully (status code exit status: 1).

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

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.O-UEFIUEFIT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions