Alex Susu via llvm-dev
2021-Feb-03 21:43 UTC
[llvm-dev] Linker error while building a new back end in the latest LLVM from GitHub
Hello.
I am trying to build against the latest LLVM source from GitHub (from Jan
23 2021) my
Connex processor back end, which is mostly inspired from the BPF and Mips back
end.
I did my best to correct all the errors that appeared, but I now get a
rather strange
linker error that I don't know exactly how to solve (maybe somebody is more
experienced
than me on this). Maybe I have an error in lib/Target/Connex/CMakeLists.txt.
The error I get while building LLVM is:
<<cd
/home/asusu/LLVM/llvm2021_01_23/llvm-project/build/lib/Target/Connex &&
/usr/bin/cmake -E cmake_link_script CMakeFiles/LLVMConnexCodeGen.dir/link.txt
--verbose=1
/usr/bin/c++ -fPIC -fPIC -fvisibility-inlines-hidden -Werror=date-time
-Wall
-Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers
-pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized
-Wno-class-memaccess -Wno-redundant-move -Wno-noexcept-type
-Wdelete-non-virtual-dtor
-Wsuggest-override -Wno-comment -g
-Wl,-rpath-link,/home/asusu/LLVM/llvm2021_01_23/llvm-project/build/./lib
-Wl,-z,defs
-Wl,-z,nodelete -shared -Wl,-soname,libLLVMConnexCodeGen.so.12git -o
../../libLLVMConnexCodeGen.so.12git
CMakeFiles/LLVMConnexCodeGen.dir/ConnexAsmPrinter.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexFrameLowering.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexHazardRecognizer.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexInstrInfo.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexISelDAGToDAG.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexISelLowering.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexMCInstLower.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexRegisterInfo.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexSelectionDAGInfo.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexSubtarget.cpp.o
CMakeFiles/LLVMConnexCodeGen.dir/ConnexTargetMachine.cpp.o
-Wl,-rpath,"\$ORIGIN/../lib"
../../libLLVMAsmPrinter.so.12git ../../libLLVMConnexDesc.so.12git
../../libLLVMConnexInfo.so.12git ../../libLLVMSelectionDAG.so.12git
../../libLLVMCodeGen.so.12git ../../libLLVMTarget.so.12git
../../libLLVMMC.so.12git
../../libLLVMCore.so.12git ../../libLLVMSupport.so.12git
-Wl,-rpath-link,/home/asusu/LLVM/llvm2021_01_23/llvm-project/build/lib
/usr/bin/ld: CMakeFiles/LLVMConnexCodeGen.dir/ConnexTargetMachine.cpp.o:
in
function
`llvm::TargetTransformInfo::Model<llvm::ConnexTTIImpl>::~Model()':
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfo.h:1672:
undefined reference to `llvm::TargetTransformInfo::Concept::~Concept()'
/usr/bin/ld: CMakeFiles/LLVMConnexCodeGen.dir/ConnexTargetMachine.cpp.o:
in
function
`llvm::TargetTransformInfoImplCRTPBase<llvm::ConnexTTIImpl>::getUserCost(llvm::User
const*, llvm::ArrayRef<llvm::Value const*>,
llvm::TargetTransformInfo::TargetCostKind)':
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:911:
undefined reference to
`llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(unsigned
int, llvm::CallBase const&)'
/usr/bin/ld:
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:953:
undefined reference to `llvm::TargetTransformInfo::getOperandInfo(llvm::Value
const*,
llvm::TargetTransformInfo::OperandValueProperties&)'
...
...
/usr/bin/ld:
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/CodeGen/BasicTTIImpl.h:1805:
undefined
reference to `llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(unsigned
int,
llvm::Type*, llvm::ArrayRef<llvm::Type*>)'
/usr/bin/ld:
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/CodeGen/BasicTTIImpl.h:1826:
undefined
reference to `llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(unsigned
int,
llvm::Type*, llvm::ArrayRef<llvm::Type*>, llvm::FastMathFlags)'
collect2: error: ld returned 1 exit status>>
Please find if you have the time also most of the source files of my Connex
LLVM back
end in the ZIP archive at this address:
https://sites.google.com/site/alexsusu/myfilecabinet/Connex_be.zip (please note
the file
ERROR_LINKER.txt contains the above mentioned linker error).
Please let me know if you want me to provide any further information about
my build.
Thank you very much,
Alex
Alex Susu via llvm-dev
2021-Feb-06 17:26 UTC
[llvm-dev] Linker error while building a new back end in the latest LLVM from GitHub
Hello.
I would like to come back to this message.
It seems the reason of these linker errors are some changes performed in
LLVM itself
in the last 2 years, since I am able to run my back end in an older LLVM build
downloaded
from the source repository in Mar 2019. I apologize for being a bit in the haze
- I didn't
follow closely the changes performed to LLVM lately.
If interested please find my main CMakeLists.txt for my Connex LLVM back
end:
add_llvm_component_group(Connex)
set(LLVM_TARGET_DEFINITIONS Connex.td)
tablegen(LLVM ConnexGenRegisterInfo.inc -gen-register-info)
tablegen(LLVM ConnexGenInstrInfo.inc -gen-instr-info)
tablegen(LLVM ConnexGenAsmWriter.inc -gen-asm-writer)
tablegen(LLVM ConnexGenAsmMatcher.inc -gen-asm-matcher)
tablegen(LLVM ConnexGenDAGISel.inc -gen-dag-isel)
tablegen(LLVM ConnexGenMCCodeEmitter.inc -gen-emitter)
tablegen(LLVM ConnexGenCallingConv.inc -gen-callingconv)
tablegen(LLVM ConnexGenSubtargetInfo.inc -gen-subtarget)
add_public_tablegen_target(ConnexCommonTableGen)
add_llvm_target(ConnexCodeGen
ConnexAsmPrinter.cpp
ConnexFrameLowering.cpp
ConnexHazardRecognizer.cpp
# ConnexHazardRecognizerPreRAScheduler.cpp
ConnexInstrInfo.cpp
ConnexISelDAGToDAG.cpp
ConnexISelLowering.cpp
ConnexMCInstLower.cpp
ConnexRegisterInfo.cpp
ConnexSelectionDAGInfo.cpp
ConnexSubtarget.cpp
ConnexTargetMachine.cpp
LINK_COMPONENTS
#Analysis
AsmPrinter
CodeGen
Core
ConnexDesc
ConnexInfo
MC
SelectionDAG
Support
Target
#TransformUtils
ADD_TO_COMPONENT
Connex
)
#add_subdirectory(AsmParser) # 2021_01
#add_subdirectory(InstPrinter)
#add_subdirectory(Disassembler)
add_subdirectory(MCTargetDesc)
add_subdirectory(TargetInfo)
Please keep in mind that the source files of my Connex LLVM back
end are in a ZIP archive at this address:
https://sites.google.com/site/alexsusu/myfilecabinet/Connex_be.zip .
Thank you very much,
Alex
On 2/3/2021 11:43 PM, Alex Susu wrote:> Hello.
> I am trying to build against the latest LLVM source from GitHub (from
Jan 23 2021) my
> Connex processor back end, which is mostly inspired from the BPF and Mips
back end.
> I did my best to correct all the errors that appeared, but I now get a
rather strange
> linker error that I don't know exactly how to solve (maybe somebody is
more experienced
> than me on this). Maybe I have an error in
lib/Target/Connex/CMakeLists.txt.
>
> The error I get while building LLVM is:
> <<cd
/home/asusu/LLVM/llvm2021_01_23/llvm-project/build/lib/Target/Connex &&
> /usr/bin/cmake -E cmake_link_script
CMakeFiles/LLVMConnexCodeGen.dir/link.txt --verbose=1
> /usr/bin/c++ -fPIC -fPIC -fvisibility-inlines-hidden
-Werror=date-time -Wall
> -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers
> -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized
> -Wno-class-memaccess -Wno-redundant-move -Wno-noexcept-type
-Wdelete-non-virtual-dtor
> -Wsuggest-override -Wno-comment -g
> -Wl,-rpath-link,/home/asusu/LLVM/llvm2021_01_23/llvm-project/build/./lib
-Wl,-z,defs
> -Wl,-z,nodelete -shared -Wl,-soname,libLLVMConnexCodeGen.so.12git -o
> ../../libLLVMConnexCodeGen.so.12git
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexAsmPrinter.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexFrameLowering.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexHazardRecognizer.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexInstrInfo.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexISelDAGToDAG.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexISelLowering.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexMCInstLower.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexRegisterInfo.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexSelectionDAGInfo.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexSubtarget.cpp.o
> CMakeFiles/LLVMConnexCodeGen.dir/ConnexTargetMachine.cpp.o
-Wl,-rpath,"\$ORIGIN/../lib"
> ../../libLLVMAsmPrinter.so.12git ../../libLLVMConnexDesc.so.12git
> ../../libLLVMConnexInfo.so.12git ../../libLLVMSelectionDAG.so.12git
> ../../libLLVMCodeGen.so.12git ../../libLLVMTarget.so.12git
../../libLLVMMC.so.12git
> ../../libLLVMCore.so.12git ../../libLLVMSupport.so.12git
> -Wl,-rpath-link,/home/asusu/LLVM/llvm2021_01_23/llvm-project/build/lib
> /usr/bin/ld:
CMakeFiles/LLVMConnexCodeGen.dir/ConnexTargetMachine.cpp.o: in
> function
`llvm::TargetTransformInfo::Model<llvm::ConnexTTIImpl>::~Model()':
>
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfo.h:1672:
> undefined reference to `llvm::TargetTransformInfo::Concept::~Concept()'
> /usr/bin/ld:
CMakeFiles/LLVMConnexCodeGen.dir/ConnexTargetMachine.cpp.o: in
> function
>
`llvm::TargetTransformInfoImplCRTPBase<llvm::ConnexTTIImpl>::getUserCost(llvm::User
> const*, llvm::ArrayRef<llvm::Value const*>,
llvm::TargetTransformInfo::TargetCostKind)':
>
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:911:
> undefined reference to
`llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(unsigned
> int, llvm::CallBase const&)'
> /usr/bin/ld:
>
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:953:
> undefined reference to
`llvm::TargetTransformInfo::getOperandInfo(llvm::Value const*,
> llvm::TargetTransformInfo::OperandValueProperties&)'
> ...
> ...
> /usr/bin/ld:
>
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/CodeGen/BasicTTIImpl.h:1805:
undefined
> reference to
`llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(unsigned int,
> llvm::Type*, llvm::ArrayRef<llvm::Type*>)'
> /usr/bin/ld:
>
/home/asusu/LLVM/llvm2021_01_23/llvm-project/llvm/include/llvm/CodeGen/BasicTTIImpl.h:1826:
undefined
> reference to
`llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(unsigned int,
> llvm::Type*, llvm::ArrayRef<llvm::Type*>, llvm::FastMathFlags)'
> collect2: error: ld returned 1 exit status>>
>
>
> Please find if you have the time also most of the source files of my
Connex LLVM back
> end in the ZIP archive at this address:
> https://sites.google.com/site/alexsusu/myfilecabinet/Connex_be.zip (please
note the file
> ERROR_LINKER.txt contains the above mentioned linker error).
> Please let me know if you want me to provide any further information
about my build.
>
> Thank you very much,
> Alex