Index: lldb/source/API/SystemInitializerFull.cpp =================================================================== --- lldb/source/API/SystemInitializerFull.cpp +++ lldb/source/API/SystemInitializerFull.cpp @@ -34,135 +34,18 @@ SystemInitializerFull::~SystemInitializerFull() {} -#define LLDB_PROCESS_AArch64(op) op(ABIAArch64); -#define LLDB_PROCESS_ARM(op) op(ABIARM); -#define LLDB_PROCESS_ARC(op) op(ABIARC); -#define LLDB_PROCESS_Hexagon(op) op(ABIHexagon); -#define LLDB_PROCESS_Mips(op) op(ABIMips); -#define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC); -#define LLDB_PROCESS_SystemZ(op) op(ABISystemZ); -#define LLDB_PROCESS_X86(op) op(ABIX86); - -#define LLDB_PROCESS_AMDGPU(op) -#define LLDB_PROCESS_AVR(op) -#define LLDB_PROCESS_BPF(op) -#define LLDB_PROCESS_Lanai(op) -#define LLDB_PROCESS_MSP430(op) -#define LLDB_PROCESS_NVPTX(op) -#define LLDB_PROCESS_RISCV(op) -#define LLDB_PROCESS_Sparc(op) -#define LLDB_PROCESS_WebAssembly(op) -#define LLDB_PROCESS_XCore(op) - llvm::Error SystemInitializerFull::Initialize() { if (auto e = SystemInitializerCommon::Initialize()) return e; - LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad); - LLDB_PLUGIN_INITIALIZE(ObjectFileELF); - LLDB_PLUGIN_INITIALIZE(ObjectFileMachO); - LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF); - LLDB_PLUGIN_INITIALIZE(ObjectFileWasm); - - LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive); - LLDB_PLUGIN_INITIALIZE(ObjectContainerMachOArchive); - - LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone); - -#if LLDB_ENABLE_PYTHON - LLDB_PLUGIN_INITIALIZE(OperatingSystemPython); -#endif - -#if LLDB_ENABLE_PYTHON - LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython); -#endif - -#if LLDB_ENABLE_LUA - LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua); -#endif - LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD); - LLDB_PLUGIN_INITIALIZE(PlatformLinux); - LLDB_PLUGIN_INITIALIZE(PlatformNetBSD); - LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD); - LLDB_PLUGIN_INITIALIZE(PlatformWindows); - LLDB_PLUGIN_INITIALIZE(PlatformAndroid); - LLDB_PLUGIN_INITIALIZE(PlatformMacOSX); - // Initialize LLVM and Clang llvm::InitializeAllTargets(); llvm::InitializeAllAsmPrinters(); llvm::InitializeAllTargetMCs(); llvm::InitializeAllDisassemblers(); - LLDB_PLUGIN_INITIALIZE(TypeSystemClang); - -#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE) -#include "llvm/Config/Targets.def" - - LLDB_PLUGIN_INITIALIZE(ArchitectureArm); - LLDB_PLUGIN_INITIALIZE(ArchitectureMips); - LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64); - - LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC); - - LLDB_PLUGIN_INITIALIZE(JITLoaderGDB); - LLDB_PLUGIN_INITIALIZE(ProcessElfCore); - LLDB_PLUGIN_INITIALIZE(ProcessMachCore); - LLDB_PLUGIN_INITIALIZE(ProcessMinidump); - LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker); - - LLDB_PLUGIN_INITIALIZE(SymbolVendorELF); - LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad); - LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF); - LLDB_PLUGIN_INITIALIZE(SymbolFilePDB); - LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab); - LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm); - LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation); - LLDB_PLUGIN_INITIALIZE(UnwindAssemblyX86); - - LLDB_PLUGIN_INITIALIZE(InstructionARM); - LLDB_PLUGIN_INITIALIZE(InstructionARM64); - LLDB_PLUGIN_INITIALIZE(InstructionMIPS); - LLDB_PLUGIN_INITIALIZE(InstructionMIPS64); - LLDB_PLUGIN_INITIALIZE(InstructionPPC64); - - LLDB_PLUGIN_INITIALIZE(CXXItaniumABI); - LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime); - LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX); - LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime); - - LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage); - LLDB_PLUGIN_INITIALIZE(ObjCLanguage); - LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage); - -#if defined(_WIN32) - LLDB_PLUGIN_INITIALIZE(ProcessWindows); -#endif -#if defined(__FreeBSD__) - LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD); -#endif -#if defined(__APPLE__) - LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX); - LLDB_PLUGIN_INITIALIZE(ProcessMacOSXKernel); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel); -#endif - - // This plugin is valid on any host that talks to a Darwin remote. It - // shouldn't be limited to __APPLE__. - LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog); - - // Platform agnostic plugins - LLDB_PLUGIN_INITIALIZE(PlatformGDB); - - LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD); +#define LLDB_PLUGIN(p) LLDB_PLUGIN_INITIALIZE(p); +#include "Plugins/Plugins.def" // Scan for any system or user LLDB plug-ins PluginManager::Initialize(); @@ -185,102 +68,8 @@ // Terminate and unload and loaded system or user LLDB plug-ins PluginManager::Terminate(); - LLDB_PLUGIN_TERMINATE(TypeSystemClang); - - LLDB_PLUGIN_TERMINATE(ArchitectureArm); - LLDB_PLUGIN_TERMINATE(ArchitectureMips); - LLDB_PLUGIN_TERMINATE(ArchitecturePPC64); - -#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE) -#include "llvm/Config/Targets.def" - - LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC); - - LLDB_PLUGIN_TERMINATE(JITLoaderGDB); - LLDB_PLUGIN_TERMINATE(ProcessElfCore); - LLDB_PLUGIN_TERMINATE(ProcessMachCore); - LLDB_PLUGIN_TERMINATE(ProcessMinidump); - LLDB_PLUGIN_TERMINATE(MemoryHistoryASan); - - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan); - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan); - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan); - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker); - - LLDB_PLUGIN_TERMINATE(SymbolVendorWasm); - LLDB_PLUGIN_TERMINATE(SymbolVendorELF); - LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad); - LLDB_PLUGIN_TERMINATE(SymbolFileDWARF); - LLDB_PLUGIN_TERMINATE(SymbolFilePDB); - LLDB_PLUGIN_TERMINATE(SymbolFileSymtab); - LLDB_PLUGIN_TERMINATE(UnwindAssemblyX86); - LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation); - - LLDB_PLUGIN_TERMINATE(InstructionARM); - LLDB_PLUGIN_TERMINATE(InstructionARM64); - LLDB_PLUGIN_TERMINATE(InstructionMIPS); - LLDB_PLUGIN_TERMINATE(InstructionMIPS64); - LLDB_PLUGIN_TERMINATE(InstructionPPC64); - - LLDB_PLUGIN_TERMINATE(CXXItaniumABI); - LLDB_PLUGIN_TERMINATE(AppleObjCRuntime); - LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX); - LLDB_PLUGIN_TERMINATE(RenderScriptRuntime); - - LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage); - LLDB_PLUGIN_TERMINATE(ObjCLanguage); - LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage); - -#if defined(__APPLE__) - LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel); - LLDB_PLUGIN_TERMINATE(ProcessMacOSXKernel); - LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX); -#endif - -#if defined(__FreeBSD__) - LLDB_PLUGIN_TERMINATE(ProcessFreeBSD); -#endif - Debugger::SettingsTerminate(); - - LLDB_PLUGIN_TERMINATE(PlatformGDB); - LLDB_PLUGIN_TERMINATE(ProcessGDBRemote); - LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog); - - LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD); - LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD); - LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic); - LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD); - - LLDB_PLUGIN_TERMINATE(PlatformFreeBSD); - LLDB_PLUGIN_TERMINATE(PlatformLinux); - LLDB_PLUGIN_TERMINATE(PlatformNetBSD); - LLDB_PLUGIN_TERMINATE(PlatformOpenBSD); - LLDB_PLUGIN_TERMINATE(PlatformWindows); - LLDB_PLUGIN_TERMINATE(PlatformAndroid); - LLDB_PLUGIN_TERMINATE(PlatformMacOSX); - - LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad); - LLDB_PLUGIN_TERMINATE(ObjectFileELF); - LLDB_PLUGIN_TERMINATE(ObjectFileMachO); - LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF); - LLDB_PLUGIN_TERMINATE(ObjectFileWasm); - - LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive); - LLDB_PLUGIN_TERMINATE(ObjectContainerMachOArchive); - -#if LLDB_ENABLE_PYTHON - LLDB_PLUGIN_TERMINATE(OperatingSystemPython); -#endif - -#if LLDB_ENABLE_PYTHON - LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython); -#endif - -#if LLDB_ENABLE_LUA - LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua); -#endif - - LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); +#define LLDB_PLUGIN(p) LLDB_PLUGIN_TERMINATE(p); +#include "Plugins/Plugins.def" // Now shutdown the common parts, in reverse order. SystemInitializerCommon::Terminate(); Index: lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp =================================================================== --- lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp +++ lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp @@ -55,7 +55,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(ABISysV_arc) +LLDB_PLUGIN(ABISysV_arc, ABIARC) namespace { namespace dwarf { Index: lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp =================================================================== --- lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp +++ lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp @@ -34,8 +34,6 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN_ADV(ABIMacOSX_arm, ABIARM) - static RegisterInfo g_register_infos[] = { // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME // DWARF GENERIC PROCESS PLUGIN Index: lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp =================================================================== --- lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp +++ lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp @@ -32,7 +32,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(ABISysV_hexagon) +LLDB_PLUGIN_ADV(ABISysV_hexagon, ABIHexagon) static RegisterInfo g_register_infos[] = { // hexagon-core.xml Index: lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp =================================================================== --- lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp +++ lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp @@ -32,7 +32,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(ABISysV_s390x) +LLDB_PLUGIN_ADV(ABISysV_s390x, ABISystemZ) enum dwarf_regnums { // General Purpose Registers Index: lldb/source/Plugins/CMakeLists.txt =================================================================== --- lldb/source/Plugins/CMakeLists.txt +++ lldb/source/Plugins/CMakeLists.txt @@ -30,7 +30,11 @@ foreach(p ${LLDB_ALL_PLUGINS}) # Strip lldbPlugin form the plugin name. string(SUBSTRING ${p} 10 -1 pStripped) - set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_PLUGIN(${pStripped})\n") + if(${pStripped} MATCHES "^ScriptInterpreter*") + set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_SCRIPT_PLUGIN(${pStripped})\n") + else() + set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_PLUGIN(${pStripped})\n") + endif() endforeach(p) configure_file( @@ -38,4 +42,4 @@ ${CMAKE_CURRENT_BINARY_DIR}/Plugins.def ) -set_property(GLOBAL PROPERTY PLUGINS_DEF_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set_property(GLOBAL PROPERTY LLDB_PLUGINS_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}) Index: lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp =================================================================== --- lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp +++ lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp @@ -25,6 +25,8 @@ using namespace lldb; using namespace lldb_private; +LLDB_PLUGIN(DynamicLoaderHexagonDYLD) + // Aidan 21/05/2014 // // Notes about hexagon dynamic loading: Index: lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp =================================================================== --- lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp +++ lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp @@ -29,7 +29,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(DynamicLoaderPOSIXDYLD) +LLDB_PLUGIN_ADV(DynamicLoaderPOSIXDYLD, DynamicLoaderPosixDYLD) void DynamicLoaderPOSIXDYLD::Initialize() { PluginManager::RegisterPlugin(GetPluginNameStatic(), Index: lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt =================================================================== --- lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt +++ lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt @@ -2,7 +2,7 @@ set(tablegen_deps intrinsics_gen) endif() -add_lldb_library(lldbPluginExpressionParserClang PLUGIN +add_lldb_library(lldbPluginExpressionParserClang ASTResultSynthesizer.cpp ASTStructExtractor.cpp ASTUtils.cpp Index: lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp =================================================================== --- lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp +++ lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp @@ -40,7 +40,7 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(EmulateInstructionMIPS) +LLDB_PLUGIN_ADV(EmulateInstructionMIPS, InstructionMIPS) #define UInt(x) ((uint64_t)x) #define integer int64_t Index: lldb/source/Plugins/Language/ObjC/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Language/ObjC/CMakeLists.txt +++ lldb/source/Plugins/Language/ObjC/CMakeLists.txt @@ -8,7 +8,7 @@ set(EXTRA_CXXFLAGS ${EXTRA_CXXFLAGS} -Wno-nested-anon-types) endif () -add_lldb_library(lldbPluginObjCLanguage PLUGIN +add_lldb_library(lldbPluginObjCLanguage ObjCLanguage.cpp CF.cpp Cocoa.cpp Index: lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt =================================================================== --- lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt +++ lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginCPPRuntime PLUGIN +add_lldb_library(lldbPluginCPPRuntime CPPLanguageRuntime.cpp LINK_LIBS Index: lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt =================================================================== --- lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt +++ lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginObjCRuntime PLUGIN +add_lldb_library(lldbPluginObjCRuntime ObjCLanguageRuntime.cpp LINK_LIBS Index: lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp +++ lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp @@ -39,6 +39,8 @@ using namespace lldb; using namespace lldb_private; +LLDB_PLUGIN(ObjectFileJIT) + char ObjectFileJIT::ID; void ObjectFileJIT::Initialize() { Index: lldb/source/Plugins/Platform/POSIX/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Platform/POSIX/CMakeLists.txt +++ lldb/source/Plugins/Platform/POSIX/CMakeLists.txt @@ -1,4 +1,4 @@ -add_lldb_library(lldbPluginPlatformPOSIX PLUGIN +add_lldb_library(lldbPluginPlatformPOSIX PlatformPOSIX.cpp LINK_LIBS Index: lldb/source/Plugins/Plugins.def.in =================================================================== --- lldb/source/Plugins/Plugins.def.in +++ lldb/source/Plugins/Plugins.def.in @@ -22,6 +22,11 @@ # error Please define the macro LLDB_PLUGIN(PluginName) #endif +#ifndef LLDB_SCRIPT_PLUGIN +#define LLDB_SCRIPT_PLUGIN(p) LLDB_PLUGIN(p) +#endif + @LLDB_ENUM_PLUGINS@ #undef LLDB_PLUGIN +#undef LLDB_SCRIPT_PLUGIN Index: lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp =================================================================== --- lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp +++ lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp @@ -66,6 +66,8 @@ using namespace llvm::codeview; using namespace llvm::pdb; +LLDB_PLUGIN(SymbolFileNativePDB) + char SymbolFileNativePDB::ID; static lldb::LanguageType TranslateLanguage(PDB_Lang lang) { Index: lldb/tools/lldb-test/CMakeLists.txt =================================================================== --- lldb/tools/lldb-test/CMakeLists.txt +++ lldb/tools/lldb-test/CMakeLists.txt @@ -1,4 +1,5 @@ get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS) +get_property(LLDB_PLUGINS_INCLUDES GLOBAL PROPERTY LLDB_PLUGINS_INCLUDE_DIR) add_lldb_tool(lldb-test FormatUtil.cpp @@ -23,5 +24,6 @@ LINK_COMPONENTS Support ) - -include_directories(${LLDB_SOURCE_DIR}/source) + +target_include_directories(lldb-test PRIVATE ${LLDB_PLUGINS_INCLUDES}) +target_include_directories(lldb-test PRIVATE ${LLDB_SOURCE_DIR}/source) Index: lldb/tools/lldb-test/SystemInitializerTest.cpp =================================================================== --- lldb/tools/lldb-test/SystemInitializerTest.cpp +++ lldb/tools/lldb-test/SystemInitializerTest.cpp @@ -17,88 +17,9 @@ #include -LLDB_PLUGIN_DECLARE(ABIMacOSX_arm64) -LLDB_PLUGIN_DECLARE(ABISysV_arm64) -LLDB_PLUGIN_DECLARE(ABIMacOSX_arm) -LLDB_PLUGIN_DECLARE(ABISysV_arm) -LLDB_PLUGIN_DECLARE(ABISysV_arc) -LLDB_PLUGIN_DECLARE(ABISysV_hexagon) -LLDB_PLUGIN_DECLARE(ABISysV_mips) -LLDB_PLUGIN_DECLARE(ABISysV_mips64) -LLDB_PLUGIN_DECLARE(ABISysV_ppc) -LLDB_PLUGIN_DECLARE(ABISysV_ppc64) -LLDB_PLUGIN_DECLARE(ABISysV_s390x) -LLDB_PLUGIN_DECLARE(ABIMacOSX_i386) -LLDB_PLUGIN_DECLARE(ABISysV_i386) -LLDB_PLUGIN_DECLARE(ABISysV_x86_64) -LLDB_PLUGIN_DECLARE(ABIWindows_x86_64) -LLDB_PLUGIN_DECLARE(ObjectFileBreakpad) -LLDB_PLUGIN_DECLARE(ObjectFileELF) -LLDB_PLUGIN_DECLARE(ObjectFileMachO) -LLDB_PLUGIN_DECLARE(ObjectFilePECOFF) -LLDB_PLUGIN_DECLARE(ObjectFileWasm) -LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive) -LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO) -LLDB_PLUGIN_DECLARE(ScriptInterpreterNone) -LLDB_PLUGIN_DECLARE(PlatformFreeBSD) -LLDB_PLUGIN_DECLARE(PlatformLinux) -LLDB_PLUGIN_DECLARE(PlatformNetBSD) -LLDB_PLUGIN_DECLARE(PlatformOpenBSD) -LLDB_PLUGIN_DECLARE(PlatformWindows) -LLDB_PLUGIN_DECLARE(PlatformAndroid) -LLDB_PLUGIN_DECLARE(PlatformMacOSX) -LLDB_PLUGIN_DECLARE(TypeSystemClang) -LLDB_PLUGIN_DECLARE(ArchitectureArm) -LLDB_PLUGIN_DECLARE(ArchitectureMips) -LLDB_PLUGIN_DECLARE(ArchitecturePPC64) -LLDB_PLUGIN_DECLARE(DisassemblerLLVMC) -LLDB_PLUGIN_DECLARE(JITLoaderGDB) -LLDB_PLUGIN_DECLARE(ProcessElfCore) -LLDB_PLUGIN_DECLARE(ProcessMachCore) -LLDB_PLUGIN_DECLARE(ProcessMinidump) -LLDB_PLUGIN_DECLARE(MemoryHistoryASan) -LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan) -LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan) -LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan) -LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker) -LLDB_PLUGIN_DECLARE(SymbolVendorELF) -LLDB_PLUGIN_DECLARE(SymbolFileBreakpad) -LLDB_PLUGIN_DECLARE(SymbolFileDWARF) -LLDB_PLUGIN_DECLARE(SymbolFilePDB) -LLDB_PLUGIN_DECLARE(SymbolFileSymtab) -LLDB_PLUGIN_DECLARE(SymbolVendorWasm) -LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation) -LLDB_PLUGIN_DECLARE(UnwindAssembly_x86) -LLDB_PLUGIN_DECLARE(EmulateInstructionARM) -LLDB_PLUGIN_DECLARE(EmulateInstructionARM64) -LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS) -LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS64) -LLDB_PLUGIN_DECLARE(EmulateInstructionPPC64) -LLDB_PLUGIN_DECLARE(ItaniumABILanguageRuntime) -LLDB_PLUGIN_DECLARE(AppleObjCRuntime) -LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX) -LLDB_PLUGIN_DECLARE(RenderScriptRuntime) -LLDB_PLUGIN_DECLARE(CPlusPlusLanguage) -LLDB_PLUGIN_DECLARE(ObjCLanguage) -LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage) -#if defined(_WIN32) -LLDB_PLUGIN_DECLARE(ProcessWindows) -#endif -#if defined(__FreeBSD__) -LLDB_PLUGIN_DECLARE(ProcessFreeBSD) -#endif -#if defined(__APPLE__) -LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX) -LLDB_PLUGIN_DECLARE(ProcessKDP) -LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel) -#endif -LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog) -LLDB_PLUGIN_DECLARE(PlatformRemoteGDBServer) -LLDB_PLUGIN_DECLARE(ProcessGDBRemote) -LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD) -LLDB_PLUGIN_DECLARE(DynamicLoaderPOSIXDYLD) -LLDB_PLUGIN_DECLARE(DynamicLoaderStatic) -LLDB_PLUGIN_DECLARE(DynamicLoaderWindowsDYLD) +#undef LLDB_PLUGIN +#define LLDB_PLUGIN(p) LLDB_PLUGIN_DECLARE(p) +#include "Plugins.def" using namespace lldb_private; @@ -106,137 +27,18 @@ SystemInitializerTest::~SystemInitializerTest() {} -#define LLDB_PROCESS_AArch64(op) \ - op(ABIMacOSX_arm64); \ - op(ABISysV_arm64); -#define LLDB_PROCESS_ARM(op) \ - op(ABIMacOSX_arm); \ - op(ABISysV_arm); -#define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon); -#define LLDB_PROCESS_Mips(op) \ - op(ABISysV_mips); \ - op(ABISysV_mips64); -#define LLDB_PROCESS_PowerPC(op) \ - op(ABISysV_ppc); \ - op(ABISysV_ppc64); -#define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x); -#define LLDB_PROCESS_X86(op) \ - op(ABIMacOSX_i386); \ - op(ABISysV_i386); \ - op(ABISysV_x86_64); \ - op(ABIWindows_x86_64); - -#define LLDB_PROCESS_AMDGPU(op) -#define LLDB_PROCESS_ARC(op) -#define LLDB_PROCESS_AVR(op) -#define LLDB_PROCESS_BPF(op) -#define LLDB_PROCESS_Lanai(op) -#define LLDB_PROCESS_MSP430(op) -#define LLDB_PROCESS_NVPTX(op) -#define LLDB_PROCESS_RISCV(op) -#define LLDB_PROCESS_Sparc(op) -#define LLDB_PROCESS_WebAssembly(op) -#define LLDB_PROCESS_XCore(op) - llvm::Error SystemInitializerTest::Initialize() { if (auto e = SystemInitializerCommon::Initialize()) return e; - LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad); - LLDB_PLUGIN_INITIALIZE(ObjectFileELF); - LLDB_PLUGIN_INITIALIZE(ObjectFileMachO); - LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF); - LLDB_PLUGIN_INITIALIZE(ObjectFileWasm); - - LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive); - LLDB_PLUGIN_INITIALIZE(ObjectContainerUniversalMachO); +#define LLDB_SCRIPT_PLUGIN(p) +#define LLDB_PLUGIN(p) LLDB_PLUGIN_INITIALIZE(p); +#include "Plugins.def" + // We undef'd LLDB_SCRIPT_PLUGIN so we need to initialize + // ScriptInterpreterNone manually. LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone); - LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD); - LLDB_PLUGIN_INITIALIZE(PlatformLinux); - LLDB_PLUGIN_INITIALIZE(PlatformNetBSD); - LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD); - LLDB_PLUGIN_INITIALIZE(PlatformWindows); - LLDB_PLUGIN_INITIALIZE(PlatformAndroid); - LLDB_PLUGIN_INITIALIZE(PlatformMacOSX); - - // Initialize LLVM and Clang - llvm::InitializeAllTargets(); - llvm::InitializeAllAsmPrinters(); - llvm::InitializeAllTargetMCs(); - llvm::InitializeAllDisassemblers(); - - LLDB_PLUGIN_INITIALIZE(TypeSystemClang); - -#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE) -#include "llvm/Config/Targets.def" - - LLDB_PLUGIN_INITIALIZE(ArchitectureArm); - LLDB_PLUGIN_INITIALIZE(ArchitectureMips); - LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64); - - LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC); - - LLDB_PLUGIN_INITIALIZE(JITLoaderGDB); - LLDB_PLUGIN_INITIALIZE(ProcessElfCore); - LLDB_PLUGIN_INITIALIZE(ProcessMachCore); - LLDB_PLUGIN_INITIALIZE(ProcessMinidump); - LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan); - LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker); - - LLDB_PLUGIN_INITIALIZE(SymbolVendorELF); - LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad); - LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF); - LLDB_PLUGIN_INITIALIZE(SymbolFilePDB); - LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab); - LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm); - LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation); - LLDB_PLUGIN_INITIALIZE(UnwindAssembly_x86); - - LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM); - LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM64); - LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS); - LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS64); - LLDB_PLUGIN_INITIALIZE(EmulateInstructionPPC64); - - LLDB_PLUGIN_INITIALIZE(ItaniumABILanguageRuntime); - LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime); - LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX); - LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime); - - LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage); - LLDB_PLUGIN_INITIALIZE(ObjCLanguage); - LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage); - -#if defined(_WIN32) - LLDB_PLUGIN_INITIALIZE(ProcessWindows); -#endif -#if defined(__FreeBSD__) - LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD); -#endif -#if defined(__APPLE__) - LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX); - LLDB_PLUGIN_INITIALIZE(ProcessKDP); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel); -#endif - - // This plugin is valid on any host that talks to a Darwin remote. It - // shouldn't be limited to __APPLE__. - LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog); - - // Platform agnostic plugins - LLDB_PLUGIN_INITIALIZE(PlatformRemoteGDBServer); - - LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic); - LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD); - // Scan for any system or user LLDB plug-ins PluginManager::Initialize(); @@ -258,89 +60,12 @@ // Terminate and unload and loaded system or user LLDB plug-ins PluginManager::Terminate(); - LLDB_PLUGIN_TERMINATE(TypeSystemClang); - - LLDB_PLUGIN_TERMINATE(ArchitectureArm); - LLDB_PLUGIN_TERMINATE(ArchitectureMips); - LLDB_PLUGIN_TERMINATE(ArchitecturePPC64); - -#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE) -#include "llvm/Config/Targets.def" - - LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC); - - LLDB_PLUGIN_TERMINATE(JITLoaderGDB); - LLDB_PLUGIN_TERMINATE(ProcessElfCore); - LLDB_PLUGIN_TERMINATE(ProcessMachCore); - LLDB_PLUGIN_TERMINATE(ProcessMinidump); - LLDB_PLUGIN_TERMINATE(MemoryHistoryASan); - - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan); - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan); - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan); - LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker); - - LLDB_PLUGIN_TERMINATE(SymbolVendorWasm); - LLDB_PLUGIN_TERMINATE(SymbolVendorELF); - LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad); - LLDB_PLUGIN_TERMINATE(SymbolFileDWARF); - LLDB_PLUGIN_TERMINATE(SymbolFilePDB); - LLDB_PLUGIN_TERMINATE(SymbolFileSymtab); - LLDB_PLUGIN_TERMINATE(UnwindAssembly_x86); - LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation); - - LLDB_PLUGIN_TERMINATE(EmulateInstructionARM); - LLDB_PLUGIN_TERMINATE(EmulateInstructionARM64); - LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS); - LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS64); - LLDB_PLUGIN_TERMINATE(EmulateInstructionPPC64); - - LLDB_PLUGIN_TERMINATE(ItaniumABILanguageRuntime); - LLDB_PLUGIN_TERMINATE(AppleObjCRuntime); - LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX); - LLDB_PLUGIN_TERMINATE(RenderScriptRuntime); - - LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage); - LLDB_PLUGIN_TERMINATE(ObjCLanguage); - LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage); - -#if defined(__APPLE__) - LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel); - LLDB_PLUGIN_TERMINATE(ProcessKDP); - LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX); -#endif - -#if defined(__FreeBSD__) - LLDB_PLUGIN_TERMINATE(ProcessFreeBSD); -#endif - Debugger::SettingsTerminate(); - - LLDB_PLUGIN_TERMINATE(PlatformRemoteGDBServer); - LLDB_PLUGIN_TERMINATE(ProcessGDBRemote); - LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog); - - LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD); - LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD); - LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic); - LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD); - - LLDB_PLUGIN_TERMINATE(PlatformFreeBSD); - LLDB_PLUGIN_TERMINATE(PlatformLinux); - LLDB_PLUGIN_TERMINATE(PlatformNetBSD); - LLDB_PLUGIN_TERMINATE(PlatformOpenBSD); - LLDB_PLUGIN_TERMINATE(PlatformWindows); - LLDB_PLUGIN_TERMINATE(PlatformAndroid); - LLDB_PLUGIN_TERMINATE(PlatformMacOSX); - - LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad); - LLDB_PLUGIN_TERMINATE(ObjectFileELF); - LLDB_PLUGIN_TERMINATE(ObjectFileMachO); - LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF); - LLDB_PLUGIN_TERMINATE(ObjectFileWasm); - - LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive); - LLDB_PLUGIN_TERMINATE(ObjectContainerUniversalMachO); +#define LLDB_SCRIPT_PLUGIN(p) +#define LLDB_PLUGIN(p) LLDB_PLUGIN_TERMINATE(p); +#include "Plugins.def" + // We undef'd LLDB_SCRIPT_PLUGIN so we need to terminate + // ScriptInterpreterNone manually. LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone); // Now shutdown the common parts, in reverse order. Index: lldb/unittests/Disassembler/CMakeLists.txt =================================================================== --- lldb/unittests/Disassembler/CMakeLists.txt +++ lldb/unittests/Disassembler/CMakeLists.txt @@ -6,7 +6,7 @@ lldbCore lldbSymbol lldbTarget - lldbPluginDisassemblerLLVM + lldbPluginDisassemblerLLVMC lldbPluginProcessUtility LINK_COMPONENTS Support Index: lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt =================================================================== --- lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt +++ lldb/unittests/UnwindAssembly/ARM64/CMakeLists.txt @@ -5,7 +5,7 @@ lldbSymbol lldbTarget lldbPluginUnwindAssemblyInstEmulation - lldbPluginDisassemblerLLVM + lldbPluginDisassemblerLLVMC lldbPluginInstructionARM64 lldbPluginProcessUtility LINK_COMPONENTS Index: lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt =================================================================== --- lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt +++ lldb/unittests/UnwindAssembly/PPC64/CMakeLists.txt @@ -5,7 +5,7 @@ lldbSymbol lldbTarget lldbPluginUnwindAssemblyInstEmulation - lldbPluginDisassemblerLLVM + lldbPluginDisassemblerLLVMC lldbPluginInstructionPPC64 lldbPluginProcessUtility LINK_COMPONENTS