Explicitly declare a library dependency of LLVM*Desc to
authorOscar Fuentes <ofv@wanadoo.es>
Thu, 28 Jul 2011 02:33:52 +0000 (02:33 +0000)
committerOscar Fuentes <ofv@wanadoo.es>
Thu, 28 Jul 2011 02:33:52 +0000 (02:33 +0000)
LLVM*AsmPrinter.

GenLibDeps.pl fails to detect vtable references. As this is the only
referenced symbol from LLVM*Desc to LLVM*AsmPrinter on optimized
builds, the algorithm that creates the list of libraries to be linked
into tools doesn't know about the dependency and sometimes places the
libraries on the wrong order, yielding error messages like this:

../../lib/libLLVMARMDesc.a(ARMMCTargetDesc.cpp.o): In function
`llvm::ARMInstPrinter::ARMInstPrinter(llvm::MCAsmInfo const&)':
ARMMCTargetDesc.cpp:(.text._ZN4llvm14ARMInstPrinterC1ERKNS_9MCAsmInfoE
[llvm::ARMInstPrinter::ARMInstPrinter(llvm::MCAsmInfo
const&)]+0x2a): undefined reference to `vtable for
llvm::ARMInstPrinter'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136328 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/MCTargetDesc/CMakeLists.txt
lib/Target/MBlaze/MCTargetDesc/CMakeLists.txt
lib/Target/MSP430/MCTargetDesc/CMakeLists.txt
lib/Target/Mips/MCTargetDesc/CMakeLists.txt
lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
lib/Target/X86/MCTargetDesc/CMakeLists.txt

index aca56716779acc22f7d252af0c4631883913d3e3..df2cf81be2c51b871321f5d92a5b7bd881ecaafc 100644 (file)
@@ -10,3 +10,5 @@ add_dependencies(LLVMARMDesc ARMCommonTableGen)
 
 # Hack: we need to include 'main' target directory to grab private headers
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR}/..)
+
+target_link_libraries(LLVMARMDesc LLVMARMAsmPrinter)
index ef8d679d745da978d6bdd42750fe0776a3ad8231..247dfe884ea91ce105226c08d3510f9ee9e320ad 100644 (file)
@@ -5,3 +5,5 @@ add_llvm_library(LLVMMBlazeDesc
   MBlazeMCTargetDesc.cpp
   )
 add_dependencies(LLVMMBlazeDesc MBlazeCommonTableGen)
+
+target_link_libraries(LLVMMBlazeDesc LLVMMBlazeAsmPrinter)
index f30317b606b89e4eb867519574721ef220460200..45b9ae8895446769573a33cd8f1612d1bc72be50 100644 (file)
@@ -3,3 +3,5 @@ add_llvm_library(LLVMMSP430Desc
   MSP430MCAsmInfo.cpp
   )
 add_dependencies(LLVMMSP430Desc MSP430CommonTableGen)
+
+target_link_libraries(LLVMMSP430Desc LLVMMSP430AsmPrinter)
index 332c1a0a8b0e3f88538261e0afcfc462a17def40..98760c5cd25efc7d08af18c9d1521bbcbe81e370 100644 (file)
@@ -3,3 +3,5 @@ add_llvm_library(LLVMMipsDesc
   MipsMCAsmInfo.cpp
   )
 add_dependencies(LLVMMipsDesc MipsCommonTableGen)
+
+target_link_libraries(LLVMMipsDesc LLVMMipsAsmPrinter)
index a2b20b29c7d64caea5a0f81c824b8c944c4b67de..78e7ab5a808a524100ab373b5b48a4bee6c9122a 100644 (file)
@@ -6,3 +6,5 @@ add_llvm_library(LLVMPowerPCDesc
   PPCPredicates.cpp
   )
 add_dependencies(LLVMPowerPCDesc PowerPCCommonTableGen)
+
+target_link_libraries(LLVMPowerPCDesc LLVMPowerPCAsmPrinter)
index be113711c0556283c5e2ac989993265473b9236b..4e7995d76b82a7a3edcd6045fa6b212538a6827e 100644 (file)
@@ -9,3 +9,5 @@ add_dependencies(LLVMX86Desc X86CommonTableGen)
 
 # Hack: we need to include 'main' target directory to grab private headers
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR}/..)
+
+target_link_libraries(LLVMX86Desc LLVMX86AsmPrinter)