Skip to content

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

@debohman

Description

@debohman

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions