[llvm] 536acc2 - [ORC] Fix COFFAutoImportGeneratorTest on Darwin. (#213616)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 3 02:31:19 PDT 2026
Author: Lang Hames
Date: 2026-08-03T19:31:15+10:00
New Revision: 536acc23e473855f900e0ef65fd1a3fc254264b0
URL: https://github.com/llvm/llvm-project/commit/536acc23e473855f900e0ef65fd1a3fc254264b0
DIFF: https://github.com/llvm/llvm-project/commit/536acc23e473855f900e0ef65fd1a3fc254264b0.diff
LOG: [ORC] Fix COFFAutoImportGeneratorTest on Darwin. (#213616)
Add linker-level mangling prefix for lookups on Darwin.
These should fix the build failures associated with PR203914 on Darwin,
e.g. https://lab.llvm.org/buildbot/#/builders/23/builds/21523
Added:
Modified:
llvm/unittests/ExecutionEngine/Orc/COFFAutoImportGeneratorTest.cpp
Removed:
################################################################################
diff --git a/llvm/unittests/ExecutionEngine/Orc/COFFAutoImportGeneratorTest.cpp b/llvm/unittests/ExecutionEngine/Orc/COFFAutoImportGeneratorTest.cpp
index be5ed872cf365..bfc015c12e0f2 100644
--- a/llvm/unittests/ExecutionEngine/Orc/COFFAutoImportGeneratorTest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/COFFAutoImportGeneratorTest.cpp
@@ -48,6 +48,12 @@ extern "C" unsigned long GetCurrentThreadId(void);
#define AIG_SYM2 "getppid"
#endif
+#ifdef __APPLE__
+#define MANGLING_PREFIX "_"
+#else
+#define MANGLING_PREFIX ""
+#endif // __APPLE__
+
using namespace llvm;
using namespace llvm::orc;
@@ -108,14 +114,14 @@ TEST_F(COFFAutoImportGeneratorTest, SynthesizesImpSlotAndThunk) {
JD.addGenerator(std::move(*AIGOrErr));
// The __imp_ slot holds the symbol's real address in the library.
- auto ImpSym = ES.lookup(&JD, "__imp_" AIG_SYM1);
+ auto ImpSym = ES.lookup(&JD, "__imp_" MANGLING_PREFIX AIG_SYM1);
ASSERT_THAT_EXPECTED(ImpSym, Succeeded());
void **Slot = ImpSym->getAddress().toPtr<void **>();
EXPECT_EQ(*Slot, RealSym1);
// The thunk is a distinct, synthesized definition (so &X yields the thunk,
// not the implementation in the library) ...
- auto ThunkSym = ES.lookup(&JD, AIG_SYM1);
+ auto ThunkSym = ES.lookup(&JD, MANGLING_PREFIX AIG_SYM1);
ASSERT_THAT_EXPECTED(ThunkSym, Succeeded());
EXPECT_NE(ThunkSym->getAddress(), ImpSym->getAddress());
EXPECT_NE(ThunkSym->getAddress().toPtr<void *>(), RealSym1);
@@ -155,7 +161,8 @@ TEST_F(COFFAutoImportGeneratorTest, StubsResourceTrackerLifecycle) {
// No stubs synthesized yet.
EXPECT_EQ(AIG.getImportStubsResourceTracker(), nullptr);
- ASSERT_THAT_EXPECTED(ES.lookup(&JD, "__imp_" AIG_SYM1), Succeeded());
+ ASSERT_THAT_EXPECTED(ES.lookup(&JD, "__imp_" MANGLING_PREFIX AIG_SYM1),
+ Succeeded());
ResourceTrackerSP RT1 = AIG.getImportStubsResourceTracker();
ASSERT_NE(RT1, nullptr);
EXPECT_FALSE(RT1->isDefunct());
@@ -166,7 +173,8 @@ TEST_F(COFFAutoImportGeneratorTest, StubsResourceTrackerLifecycle) {
EXPECT_TRUE(RT1->isDefunct());
// A later import transparently starts a fresh tracker.
- ASSERT_THAT_EXPECTED(ES.lookup(&JD, "__imp_" AIG_SYM2), Succeeded());
+ ASSERT_THAT_EXPECTED(ES.lookup(&JD, "__imp_" MANGLING_PREFIX AIG_SYM2),
+ Succeeded());
ResourceTrackerSP RT2 = AIG.getImportStubsResourceTracker();
ASSERT_NE(RT2, nullptr);
EXPECT_NE(RT2, RT1);
More information about the llvm-commits
mailing list