[clang] Reland [Clang][Cmake] fix libtool duplicate member name warnings (PR #133850)
Farzon Lotfi via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 6 22:01:52 PDT 2025
farzonl wrote:
> I'm still somewhat confused about why that one file in particular is problematic, but I guess if this works it's fine.
>
> Would making these OBJECT instead of STATIC libraries avoid the issue perhaps?
No OBJECT seems to cause many more linker errors. So i'm going to stick with the current solution and merge in the morning if there are no other concerns.
```bash
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)
>>> referenced by CGBuiltin.cpp:65 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:65)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(unsigned int, clang::CallExpr const*, llvm::Triple::ArchType)
>>> referenced by CGBuiltin.cpp:69 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:69)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitBPFBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:72 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:72)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:75 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:75)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:80 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:80)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:83 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:83)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
>>> referenced by CGBuiltin.cpp:102 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:102)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitSystemZBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:85 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:85)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitNVPTXBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:88 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:88)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:91 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:91)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitHexagonBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:93 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:93)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitRISCVBuiltinExpr(unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot)
>>> referenced by CGBuiltin.cpp:96 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:96)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitSPIRVBuiltinExpr(unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:98 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:98)
>>> CGBuiltin.cpp.o:(EmitTargetArchBuiltinExpr(clang::CodeGen::CodeGenFunction*, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Triple::ArchType)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitScalarOrConstFoldImmArg(unsigned int, unsigned int, clang::CallExpr const*)
>>> referenced by CGBuiltin.cpp:6050 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:6050)
>>> CGBuiltin.cpp.o:(clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(clang::GlobalDecl, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenModule::handleCUDALaunchBoundsAttr(llvm::Function*, clang::CUDALaunchBoundsAttr const*, int*, int*, int*)
>>> referenced by CGOpenMPRuntime.cpp:5885 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:5885)
>>> CGOpenMPRuntime.cpp.o:(clang::CodeGen::CGOpenMPRuntime::computeMinAndMaxThreadsAndTeams(clang::OMPExecutableDirective const&, clang::CodeGen::CodeGenFunction&, llvm::OpenMPIRBuilder::TargetKernelDefaultAttrs&)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenModule::handleAMDGPUFlatWorkGroupSizeAttr(llvm::Function*, clang::AMDGPUFlatWorkGroupSizeAttr const*, clang::ReqdWorkGroupSizeAttr const*, int*, int*)
>>> referenced by CGOpenMPRuntime.cpp:5888 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:5888)
>>> CGOpenMPRuntime.cpp.o:(clang::CodeGen::CGOpenMPRuntime::computeMinAndMaxThreadsAndTeams(clang::OMPExecutableDirective const&, clang::CodeGen::CodeGenFunction&, llvm::OpenMPIRBuilder::TargetKernelDefaultAttrs&)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenModule::handleAMDGPUWavesPerEUAttr(llvm::Function*, clang::AMDGPUWavesPerEUAttr const*)
>>> referenced by CGOpenMPRuntime.cpp:5937 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:5937)
>>> CGOpenMPRuntime.cpp.o:(clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunctionHelper(clang::OMPExecutableDirective const&, llvm::StringRef, llvm::Function*&, llvm::Constant*&, bool, clang::CodeGen::RegionCodeGenTy const&)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::computeSPIRKernelABIInfo(clang::CodeGen::CodeGenModule&, clang::CodeGen::CGFunctionInfo&)
>>> referenced by CGCall.cpp:844 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CGCall.cpp:844)
>>> CGCall.cpp.o:(clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(clang::CanQual<clang::Type>, clang::CodeGen::FnInfoOpts, llvm::ArrayRef<clang::CanQual<clang::Type>>, clang::FunctionType::ExtInfo, llvm::ArrayRef<clang::FunctionType::ExtParameterInfo>, clang::CodeGen::RequiredArgs)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitAArch64CpuSupports(llvm::ArrayRef<llvm::StringRef>)
>>> referenced by CodeGenFunction.cpp:2881 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:2881)
>>> CodeGenFunction.cpp.o:(clang::CodeGen::CodeGenFunction::FormAArch64ResolverCondition(clang::CodeGen::CodeGenFunction::FMVResolverOption const&)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitX86CpuSupports(llvm::ArrayRef<llvm::StringRef>)
>>> referenced by CodeGenFunction.cpp:2893 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:2893)
>>> CodeGenFunction.cpp.o:(clang::CodeGen::CodeGenFunction::FormX86ResolverCondition(clang::CodeGen::CodeGenFunction::FMVResolverOption const&)) in archive lib/libclangCodeGen.a
>>> referenced by CodeGenFunction.cpp:2899 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:2899)
>>> CodeGenFunction.cpp.o:(clang::CodeGen::CodeGenFunction::FormX86ResolverCondition(clang::CodeGen::CodeGenFunction::FMVResolverOption const&)) in archive lib/libclangCodeGen.a
ld.lld: error: undefined symbol: clang::CodeGen::CodeGenFunction::EmitX86CpuIs(llvm::StringRef)
>>> referenced by CodeGenFunction.cpp:2895 (/mnt/DevDrive/projects/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:2895)
>>> CodeGenFunction.cpp.o:(clang::CodeGen::CodeGenFunction::FormX86ResolverCondition(clang::CodeGen::CodeGenFunction::FMVResolverOption const&)) in archive lib/libclangCodeGen.a
ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```
https://github.com/llvm/llvm-project/pull/133850
More information about the cfe-commits
mailing list