sgraenitz added a comment. In D146154#4203277 <https://reviews.llvm.org/D146154#4203277>, @aprantl wrote:
> Here is an example of how the Swift Runtime plugin detects both itself and > whether ObjC interop is enabled. Basically all I'm asking is to not > accidentally break this mechanism. Thanks for the link! I think Swift is doing the exact right thing here: it requests the Apple ObjC V2 runtime explicitly in https://github.com/apple/llvm-project/blob/fcf8f57c74defcc0c422331cb90a3b9dd8d7b476/lldb/source/Plugins/LanguageRuntime/Swift/SwiftLanguageRuntime.cpp#L102-L106 Anyway, I updated my patch to do the symbol lookup, because the pure presence of an ObjC runtime makes for some interesting regressions in the test suite. E.g. here we enable ObjC in C++ code <https://github.com/llvm/llvm-project/blob/release/16.x/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp#L554-L555> if the runtime exists: lang_opts.ObjC = process_sp->GetLanguageRuntime(lldb::eLanguageTypeObjC) != nullptr; ================ Comment at: lldb/source/Plugins/LanguageRuntime/ObjC/GNUstepObjCRuntime/GNUstepObjCRuntime.cpp:62 + images.FindSymbolsWithNameAndType(ConstString("__objc_load"), + eSymbolTypeCode, objc_mandatory); + if (objc_mandatory.GetSize() == 0) ---------------- There is no EH personality on Windows so I am checking for a core ObjC runtime symbol. Hope that's ok? I put a list with all DLL symbols here: https://gist.github.com/weliveindetail/0c57135741b314d2952236bcffae0ab1 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146154/new/ https://reviews.llvm.org/D146154 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits