Index: lld/trunk/ELF/Symbols.h =================================================================== --- lld/trunk/ELF/Symbols.h +++ lld/trunk/ELF/Symbols.h @@ -473,6 +473,7 @@ Sym->ExportDynamic = Old.ExportDynamic; Sym->CanInline = Old.CanInline; Sym->Traced = Old.Traced; + Sym->IsPreemptible = Old.IsPreemptible; Sym->ScriptDefined = Old.ScriptDefined; // Print out a log message if --trace-symbol was specified. Index: lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s =================================================================== --- lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s +++ lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s @@ -0,0 +1,14 @@ +# REQUIRES: x86 + +# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o +# RUN: echo '{ common; };' > %t.list +# RUN: ld.lld --dynamic-list %t.list -shared %t.o -o %t.so + +# RUN: llvm-readobj -r %t.so | FileCheck %s + +# CHECK: R_X86_64_GLOB_DAT common 0x0 + +movq common@gotpcrel(%rip), %rax + +.type common,@object +.comm common,4,4