diff --git a/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp b/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp index 4f48378186f0..821a7b3cc44e 100644 --- a/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp @@ -510,17 +510,6 @@ private: // I am not sure on If this is going to hold as an invariant. Revisit. if (!Name) return Name.takeError(); - - if (SymRef.isCommon()) { - // Symbols in SHN_COMMON refer to uninitialized data. The st_value - // field holds alignment constraints. - Symbol &S = - G->addCommonSymbol(*Name, Scope::Default, getCommonSection(), 0, - SymRef.st_size, SymRef.getValue(), false); - JITSymbolTable[SymbolIndex] = &S; - continue; - } - // TODO: weak and hidden if (SymRef.isExternal()) bindings = {Linkage::Strong, Scope::Default}; @@ -561,12 +550,18 @@ private: JITSymbolTable[SymbolIndex] = &S; } + // } // TODO: The following has to be implmented. // leaving commented out to save time for future patchs /* G->addAbsoluteSymbol(*Name, SymRef.getValue(), SymRef.st_size, Linkage::Strong, Scope::Default, false); - */ + + if(SymRef.isCommon()) { + G->addCommonSymbol(*Name, Scope::Default, getCommonSection(), 0, 0, + SymRef.getValue(), false); + } + */ } } return Error::success(); diff --git a/llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_common.s b/llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_common.s deleted file mode 100644 index 865b3f8aa49a..000000000000 --- a/llvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_common.s +++ /dev/null @@ -1,25 +0,0 @@ -# RUN: rm -rf %t && mkdir -p %t -# RUN: llvm-mc -triple=x86_64-unknown-linux -position-independent -filetype=obj -o %t/elf_common.o %s -# RUN: llvm-jitlink -entry=load_common -noexec -check %s %t/elf_common.o - - .text - .file "elf_common.c" - .globl load_common - .p2align 4, 0x90 - .type load_common,@function - -load_common: -# Check that common variable GOT entry is synthesized correctly. In order to -# prevent the optimizer from relaxing the edge, we use a movl instruction. -# jitlink-check: decode_operand(load_common, 4) = \ -# jitlink-check: got_addr(elf_common.o, common_data) - next_pc(load_common) -# jitlink-check: *{8}(got_addr(elf_common.o, common_data)) = common_data - movl common_data@GOTPCREL(%rip), %eax - ret -.Lfunc_end0: - .size load_common, .Lfunc_end0-load_common - -# Check that common is zero-filled. -# jitlink-check: *{4}(common_data) = 0 - .type common_data,@object - .comm common_data,4,4