From 33c9433ed4ad8edc1992b7996465cd50462237c1 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Wed, 28 Jan 2015 01:30:37 +0000 Subject: Revert r227247 and r227228: "Add weak symbol support to RuntimeDyld". This has wider implications than I expected when I reviewed the patch: It can cause JIT crashes where clients have used the default value for AbortOnFailure during symbol lookup. I'm currently investigating alternative approaches and I hope to have this back in tree soon. llvm-svn: 227287 --- llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp | 42 ---------------------- 1 file changed, 42 deletions(-) (limited to 'llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp') diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp index f9ca0fc8717..64d8c2fca04 100644 --- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp +++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp @@ -13,7 +13,6 @@ //===----------------------------------------------------------------------===// #include "llvm/ExecutionEngine/MCJIT.h" -#include "llvm/Support/DynamicLibrary.h" #include "MCJITTestBase.h" #include "gtest/gtest.h" @@ -200,45 +199,4 @@ TEST_F(MCJITTest, multiple_decl_lookups) { EXPECT_EQ(A, B) << "Repeat calls to getPointerToFunction fail."; } -// Test weak symbol linking when the weak symbol is present in a shared -// library -TEST_F(MCJITTest, weak_symbol_present) { - SKIP_UNSUPPORTED_PLATFORM; - - int FakeWeakSymbol; - llvm::sys::DynamicLibrary::AddSymbol("FakeWeakSymbol", &FakeWeakSymbol); - createJITFromAssembly( - "$FakeWeakSymbol = comdat any\n" - "@FakeWeakSymbol = linkonce_odr global i32 42, comdat, align 4\n" - "define i32 @weak_test(i32* %arg) {\n" - " %r = icmp eq i32* %arg, @FakeWeakSymbol\n" - " %ret = zext i1 %r to i32\n" - " ret i32 %ret\n" - " }"); - - uint64_t Addr = TheJIT->getFunctionAddress("weak_test");; - EXPECT_TRUE(Addr != 0); - int32_t(*FuncPtr)(int32_t *) = (int32_t(*)(int32_t *))Addr; - EXPECT_EQ(FuncPtr(&FakeWeakSymbol),1); - EXPECT_TRUE(TheJIT->getGlobalValueAddress("FakeWeakSymbol") == 0); -} - -// Test weak symbol linking when the weak symbol is not present in a -// shared library -TEST_F(MCJITTest, weak_symbol_absent) { - SKIP_UNSUPPORTED_PLATFORM; - - SMDiagnostic Error; - createJITFromAssembly( - " $FakeWeakSymbol2 = comdat any\n" - " @FakeWeakSymbol2 = linkonce_odr global i32 42, comdat, align 4\n" - " define i32* @get_weak() {\n" - " ret i32* @FakeWeakSymbol2\n" - " }\n"); - void*(*FuncPtr)() = - (void*(*)(void))TheJIT->getFunctionAddress("get_weak"); - EXPECT_EQ(FuncPtr(),(void*)TheJIT->getGlobalValueAddress("FakeWeakSymbol2")); -} - - } -- cgit v1.2.3