Skip to content

fix rustc build with llvm head #96362

Closed
@nico

Description

@nico

building rust started failing like so:

rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-475f372969e8d34a/out/llvm-wrapper/PassWrapper.o" "-c" "llvm-wrapper/PassWrapper.cpp"
   cargo:warning=llvm-wrapper/PassWrapper.cpp:124:15: error: use of undeclared identifier 'createAddressSanitizerFunctionPass'; did you mean 'createHWAddressSanitizerLegacyPassPass'?
   cargo:warning=  return wrap(createAddressSanitizerFunctionPass(CompileKernel, Recover, UseAfterScope));
   cargo:warning=              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cargo:warning=              createHWAddressSanitizerLegacyPassPass
   cargo:warning=/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h:54:1: note: 'createHWAddressSanitizerLegacyPassPass' declared here
   cargo:warning=createHWAddressSanitizerLegacyPassPass(bool CompileKernel = false,
   cargo:warning=^
   cargo:warning=llvm-wrapper/PassWrapper.cpp:130:15: error: use of undeclared identifier 'createModuleAddressSanitizerLegacyPassPass'; did you mean 'createHWAddressSanitizerLegacyPassPass'?
   cargo:warning=  return wrap(createModuleAddressSanitizerLegacyPassPass(CompileKernel, Recover));
   cargo:warning=              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cargo:warning=              createHWAddressSanitizerLegacyPassPass
   cargo:warning=/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h:54:1: note: 'createHWAddressSanitizerLegacyPassPass' declared here
   cargo:warning=createHWAddressSanitizerLegacyPassPass(bool CompileKernel = false,
   cargo:warning=^
   cargo:warning=llvm-wrapper/PassWrapper.cpp:136:15: error: use of undeclared identifier 'createMemorySanitizerLegacyPassPass'
   cargo:warning=  return wrap(createMemorySanitizerLegacyPassPass(
   cargo:warning=              ^
   cargo:warning=llvm-wrapper/PassWrapper.cpp:168:17: error: no member named 'populateThinLTOPassManager' in 'llvm::PassManagerBuilder'; did you mean 'populateModulePassManager'?
   cargo:warning=  unwrap(PMBR)->populateThinLTOPassManager(*unwrap(PMR));
   cargo:warning=                ^~~~~~~~~~~~~~~~~~~~~~~~~~
   cargo:warning=                populateModulePassManager
   cargo:warning=/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h:226:8: note: 'populateModulePassManager' declared here
   cargo:warning=  void populateModulePassManager(legacy::PassManagerBase &MPM);
   cargo:warning=       ^
   cargo:warning=4 errors generated.
   exit status: 1

Need to update rust code to work after https://reviews.llvm.org/D124216 (createAddressSanitizerFunctionPass, createModuleAddressSanitizerLegacyPassPass removal, https://reviews.llvm.org/D123882 populateThinLTOPassManager removal).

6234a56 has a related example.

@nikic Do you know if Augie (or anyone else) has a patch for this already?

@adetaylor

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