Skip to content

rustc-1.72.1 does not build against llvm-17.0.1 #116020

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

Closed
debohman opened this issue Sep 21, 2023 · 2 comments
Closed

rustc-1.72.1 does not build against llvm-17.0.1 #116020

debohman opened this issue Sep 21, 2023 · 2 comments
Labels
C-bug Category: This is a bug.

Comments

@debohman
Copy link

rustc-1.72.1 does not build against llvm-17.0.1. I just installed llvm-17 on my x86_64-apple-darwin system, and tried to build rustc using the tarball release. It fails during:

Building compiler artifacts (stage0 -> stage1, x86_64-apple-darwin)
The following warnings were emitted during compilation:

warning: llvm-wrapper/PassWrapper.cpp:668:14: error: no matching constructor for initialization of 'PGOOptions'
warning:   668 |     PGOOpt = PGOOptions(PGOGenPath, "", "",
warning:       |              ^          ~~~~~~~~~~~~~~~~~~~
warning:   669 | #if LLVM_VERSION_GE(17, 0)
warning:       | ~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   670 |                         FS,
warning:       |                         ~~~
warning:   671 | #endif
warning:       | ~~~~~~
warning:   672 |                         PGOOptions::IRInstr, PGOOptions::NoCSAction,
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   673 |                         DebugInfoForProfiling);
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
warning:    31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
warning:       |   ^
warning:    32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
warning:       |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
warning:    36 |   PGOOptions(const PGOOptions &);
warning:       |   ^          ~~~~~~~~~~~~~~~~~~
warning: llvm-wrapper/PassWrapper.cpp:676:14: error: no matching constructor for initialization of 'PGOOptions'
warning:   676 |     PGOOpt = PGOOptions(PGOUsePath, "", "",
warning:       |              ^          ~~~~~~~~~~~~~~~~~~~
warning:   677 | #if LLVM_VERSION_GE(17, 0)
warning:       | ~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   678 |                         FS,
warning:       |                         ~~~
warning:   679 | #endif
warning:       | ~~~~~~
warning:   680 |                         PGOOptions::IRUse, PGOOptions::NoCSAction,
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   681 |                         DebugInfoForProfiling);
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
warning:    31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
warning:       |   ^
warning:    32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
warning:       |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
warning:    36 |   PGOOptions(const PGOOptions &);
warning:       |   ^          ~~~~~~~~~~~~~~~~~~
warning: llvm-wrapper/PassWrapper.cpp:683:14: error: no matching constructor for initialization of 'PGOOptions'
warning:   683 |     PGOOpt = PGOOptions(PGOSampleUsePath, "", "",
warning:       |              ^          ~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   684 | #if LLVM_VERSION_GE(17, 0)
warning:       | ~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   685 |                         FS,
warning:       |                         ~~~
warning:   686 | #endif
warning:       | ~~~~~~
warning:   687 |                         PGOOptions::SampleUse, PGOOptions::NoCSAction,
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   688 |                         DebugInfoForProfiling);
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
warning:    31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
warning:       |   ^
warning:    32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
warning:       |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
warning:    36 |   PGOOptions(const PGOOptions &);
warning:       |   ^          ~~~~~~~~~~~~~~~~~~
warning: llvm-wrapper/PassWrapper.cpp:690:14: error: no matching constructor for initialization of 'PGOOptions'
warning:   690 |     PGOOpt = PGOOptions("", "", "",
warning:       |              ^          ~~~~~~~~~~~
warning:   691 | #if LLVM_VERSION_GE(17, 0)
warning:       | ~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   692 |                         FS,
warning:       |                         ~~~
warning:   693 | #endif
warning:       | ~~~~~~
warning:   694 |                         PGOOptions::NoAction, PGOOptions::NoCSAction,
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:   695 |                         DebugInfoForProfiling);
warning:       |                         ~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
warning:    31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
warning:       |   ^
warning:    32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
warning:       |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
warning: /usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
warning:    36 |   PGOOptions(const PGOOptions &);
warning:       |   ^          ~~~~~~~~~~~~~~~~~~
warning: 4 errors generated.

error: failed to run custom build command for `rustc_llvm v0.0.0 (/tera/tera/debo/Projects/rustc/rustc-1.72.1-src/compiler/rustc_llvm)`

Caused by:
  process didn't exit successfully: `/tera/tera/debo/Projects/rustc/rustc-1.72.1-src/build/x86_64-apple-darwin/stage0-rustc/release/build/rustc_llvm-4a091f77a713dfda/build-script-build` (exit status: 1)
  --- stdout
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-arch" "x86_64" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-arch" "x86_64" "-stdlib=libc++" "-I/usr/local/include" "-std=c++17" "-fno-exceptions" "-funwind-tables" "-fno-rtti" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_ASMPARSER" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_COVERAGE" "-DLLVM_COMPONENT_INSTRUMENTATION" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LINKER" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_X86" "-DNDEBUG" "-o" "/tera/tera/debo/Projects/rustc/rustc-1.72.1-src/build/x86_64-apple-darwin/stage0-rustc/x86_64-apple-darwin/release/build/rustc_llvm-8f77287f6e90bc50/out/llvm-wrapper/PassWrapper.o" "-c" "llvm-wrapper/PassWrapper.cpp"
  cargo:warning=llvm-wrapper/PassWrapper.cpp:668:14: error: no matching constructor for initialization of 'PGOOptions'
  cargo:warning=  668 |     PGOOpt = PGOOptions(PGOGenPath, "", "",
  cargo:warning=      |              ^          ~~~~~~~~~~~~~~~~~~~
  cargo:warning=  669 | #if LLVM_VERSION_GE(17, 0)
  cargo:warning=      | ~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  670 |                         FS,
  cargo:warning=      |                         ~~~
  cargo:warning=  671 | #endif
  cargo:warning=      | ~~~~~~
  cargo:warning=  672 |                         PGOOptions::IRInstr, PGOOptions::NoCSAction,
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  673 |                         DebugInfoForProfiling);
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
  cargo:warning=   31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
  cargo:warning=      |   ^
  cargo:warning=   32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
  cargo:warning=      |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
  cargo:warning=   36 |   PGOOptions(const PGOOptions &);
  cargo:warning=      |   ^          ~~~~~~~~~~~~~~~~~~
  cargo:warning=llvm-wrapper/PassWrapper.cpp:676:14: error: no matching constructor for initialization of 'PGOOptions'
  cargo:warning=  676 |     PGOOpt = PGOOptions(PGOUsePath, "", "",
  cargo:warning=      |              ^          ~~~~~~~~~~~~~~~~~~~
  cargo:warning=  677 | #if LLVM_VERSION_GE(17, 0)
  cargo:warning=      | ~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  678 |                         FS,
  cargo:warning=      |                         ~~~
  cargo:warning=  679 | #endif
  cargo:warning=      | ~~~~~~
  cargo:warning=  680 |                         PGOOptions::IRUse, PGOOptions::NoCSAction,
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  681 |                         DebugInfoForProfiling);
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
  cargo:warning=   31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
  cargo:warning=      |   ^
  cargo:warning=   32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
  cargo:warning=      |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
  cargo:warning=   36 |   PGOOptions(const PGOOptions &);
  cargo:warning=      |   ^          ~~~~~~~~~~~~~~~~~~
  cargo:warning=llvm-wrapper/PassWrapper.cpp:683:14: error: no matching constructor for initialization of 'PGOOptions'
  cargo:warning=  683 |     PGOOpt = PGOOptions(PGOSampleUsePath, "", "",
  cargo:warning=      |              ^          ~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  684 | #if LLVM_VERSION_GE(17, 0)
  cargo:warning=      | ~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  685 |                         FS,
  cargo:warning=      |                         ~~~
  cargo:warning=  686 | #endif
  cargo:warning=      | ~~~~~~
  cargo:warning=  687 |                         PGOOptions::SampleUse, PGOOptions::NoCSAction,
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  688 |                         DebugInfoForProfiling);
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
  cargo:warning=   31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
  cargo:warning=      |   ^
  cargo:warning=   32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
  cargo:warning=      |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
  cargo:warning=   36 |   PGOOptions(const PGOOptions &);
  cargo:warning=      |   ^          ~~~~~~~~~~~~~~~~~~
  cargo:warning=llvm-wrapper/PassWrapper.cpp:690:14: error: no matching constructor for initialization of 'PGOOptions'
  cargo:warning=  690 |     PGOOpt = PGOOptions("", "", "",
  cargo:warning=      |              ^          ~~~~~~~~~~~
  cargo:warning=  691 | #if LLVM_VERSION_GE(17, 0)
  cargo:warning=      | ~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  692 |                         FS,
  cargo:warning=      |                         ~~~
  cargo:warning=  693 | #endif
  cargo:warning=      | ~~~~~~
  cargo:warning=  694 |                         PGOOptions::NoAction, PGOOptions::NoCSAction,
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=  695 |                         DebugInfoForProfiling);
  cargo:warning=      |                         ~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:30:3: note: candidate constructor not viable: no known conversion from 'IntrusiveRefCntPtr<FileSystem>' to 'std::string' (aka 'basic_string<char>') for 4th argument
  cargo:warning=   31 |   PGOOptions(std::string ProfileFile, std::string CSProfileGenFile,
  cargo:warning=      |   ^
  cargo:warning=   32 |              std::string ProfileRemappingFile, std::string MemoryProfile,
  cargo:warning=      |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=/usr/local/include/llvm/Support/PGOOptions.h:36:3: note: candidate constructor not viable: requires 1 argument, but 7 were provided
  cargo:warning=   36 |   PGOOptions(const PGOOptions &);
  cargo:warning=      |   ^          ~~~~~~~~~~~~~~~~~~
  cargo:warning=4 errors generated.
  exit status: 1

  --- stderr


  error occurred: Command "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-arch" "x86_64" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-arch" "x86_64" "-stdlib=libc++" "-I/usr/local/include" "-std=c++17" "-fno-exceptions" "-funwind-tables" "-fno-rtti" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_ASMPARSER" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_COVERAGE" "-DLLVM_COMPONENT_INSTRUMENTATION" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LINKER" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_X86" "-DNDEBUG" "-o" "/tera/tera/debo/Projects/rustc/rustc-1.72.1-src/build/x86_64-apple-darwin/stage0-rustc/x86_64-apple-darwin/release/build/rustc_llvm-8f77287f6e90bc50/out/llvm-wrapper/PassWrapper.o" "-c" "llvm-wrapper/PassWrapper.cpp" with args "c++" did not execute successfully (status code exit status: 1).


warning: build failed, waiting for other jobs to finish...
Build completed unsuccessfully in 0:03:25

Is this a known issue, that llvm-17 and rustc-1.72.1 are not compatible?

@debohman debohman added the C-bug Category: This is a bug. label Sep 21, 2023
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Sep 21, 2023
@nikic
Copy link
Contributor

nikic commented Sep 21, 2023

rustc 1.73 is the first version to use LLVM 17.

@nikic nikic closed this as not planned Won't fix, can't repro, duplicate, stale Sep 21, 2023
@debohman
Copy link
Author

Fair enough. Thank you.

@fmease fmease removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug.
Projects
None yet
Development

No branches or pull requests

4 participants