[lld] r282147 - Handle multiple .tbss sections.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 22 05:00:08 PDT 2016


Author: rafael
Date: Thu Sep 22 07:00:08 2016
New Revision: 282147

URL: http://llvm.org/viewvc/llvm-project?rev=282147&view=rev
Log:
Handle multiple .tbss sections.

Added:
    lld/trunk/test/ELF/linkerscript/multiple-tbss.s
Modified:
    lld/trunk/ELF/LinkerScript.cpp

Modified: lld/trunk/ELF/LinkerScript.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LinkerScript.cpp?rev=282147&r1=282146&r2=282147&view=diff
==============================================================================
--- lld/trunk/ELF/LinkerScript.cpp (original)
+++ lld/trunk/ELF/LinkerScript.cpp Thu Sep 22 07:00:08 2016
@@ -373,7 +373,9 @@ template <class ELFT> void LinkerScript<
   // .foo { *(.aaa) a = SIZEOF(.foo); *(.bbb) }
   CurOutSec->setSize(Pos - CurOutSec->getVA());
 
-  if (!IsTbss)
+  if (IsTbss)
+    ThreadBssOffset = Pos - Dot;
+  else
     Dot = Pos;
 }
 

Added: lld/trunk/test/ELF/linkerscript/multiple-tbss.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/multiple-tbss.s?rev=282147&view=auto
==============================================================================
--- lld/trunk/test/ELF/linkerscript/multiple-tbss.s (added)
+++ lld/trunk/test/ELF/linkerscript/multiple-tbss.s Thu Sep 22 07:00:08 2016
@@ -0,0 +1,17 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: echo "SECTIONS { }" > %t.script
+# RUN: ld.lld -T %t.script %t.o -o %t
+# RUN: llvm-readobj -l %t | FileCheck %s
+
+# CHECK:      Type: PT_TLS
+# CHECK-NEXT: Offset:
+# CHECK-NEXT: VirtualAddress:
+# CHECK-NEXT: PhysicalAddress:
+# CHECK-NEXT: FileSize: 0
+# CHECK-NEXT: MemSize: 9
+
+.section        .tbss,"awT", at nobits
+.quad   0
+.section        foo,"awT", at nobits
+.byte 0




More information about the llvm-commits mailing list