[lld] r330483 - COFF: Merge .bss into .data by default.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 20 14:30:36 PDT 2018


Author: pcc
Date: Fri Apr 20 14:30:36 2018
New Revision: 330483

URL: http://llvm.org/viewvc/llvm-project?rev=330483&view=rev
Log:
COFF: Merge .bss into .data by default.

Differential Revision: https://reviews.llvm.org/D45803

Modified:
    lld/trunk/COFF/Driver.cpp
    lld/trunk/test/COFF/common-alignment.test
    lld/trunk/test/COFF/common.test
    lld/trunk/test/COFF/pdb-globals.test
    lld/trunk/test/COFF/secrel-common.s
    lld/trunk/test/COFF/section-size.s

Modified: lld/trunk/COFF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=330483&r1=330482&r2=330483&view=diff
==============================================================================
--- lld/trunk/COFF/Driver.cpp (original)
+++ lld/trunk/COFF/Driver.cpp Fri Apr 20 14:30:36 2018
@@ -1109,6 +1109,7 @@ void LinkerDriver::link(ArrayRef<const c
   parseMerge(".idata=.rdata");
   parseMerge(".didat=.rdata");
   parseMerge(".edata=.rdata");
+  parseMerge(".bss=.data");
 
   // Handle /section
   for (auto *Arg : Args.filtered(OPT_section))

Modified: lld/trunk/test/COFF/common-alignment.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/common-alignment.test?rev=330483&r1=330482&r2=330483&view=diff
==============================================================================
--- lld/trunk/test/COFF/common-alignment.test (original)
+++ lld/trunk/test/COFF/common-alignment.test Fri Apr 20 14:30:36 2018
@@ -23,10 +23,6 @@ sections:
       - VirtualAddress:  6
         SymbolName:      bssdata4_align16
         Type:            IMAGE_REL_AMD64_ADDR32
-  - Name:            .data
-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
-    Alignment:       4
-    SectionData:     03000000
   - Name:            .drectve
     Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
     Alignment:       1
@@ -45,18 +41,6 @@ symbols:
       NumberOfLinenumbers: 0
       CheckSum:        0
       Number:          0
-  - Name:            .data
-    Value:           0
-    SectionNumber:   2
-    SimpleType:      IMAGE_SYM_TYPE_NULL
-    ComplexType:     IMAGE_SYM_DTYPE_NULL
-    StorageClass:    IMAGE_SYM_CLASS_STATIC
-    SectionDefinition:
-      Length:          4
-      NumberOfRelocations: 0
-      NumberOfLinenumbers: 0
-      CheckSum:        0
-      Number:          0
   - Name:            main
     Value:           0
     SectionNumber:   1

Modified: lld/trunk/test/COFF/common.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/common.test?rev=330483&r1=330482&r2=330483&view=diff
==============================================================================
--- lld/trunk/test/COFF/common.test (original)
+++ lld/trunk/test/COFF/common.test Fri Apr 20 14:30:36 2018
@@ -35,10 +35,6 @@ sections:
       - VirtualAddress:  21
         SymbolName:      bssdata16
         Type:            IMAGE_REL_AMD64_ADDR32
-  - Name:            .data
-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
-    Alignment:       4
-    SectionData:     03000000
 symbols:
   - Name:            .text
     Value:           0
@@ -52,18 +48,6 @@ symbols:
       NumberOfLinenumbers: 0
       CheckSum:        0
       Number:          0
-  - Name:            .data
-    Value:           0
-    SectionNumber:   2
-    SimpleType:      IMAGE_SYM_TYPE_NULL
-    ComplexType:     IMAGE_SYM_DTYPE_NULL
-    StorageClass:    IMAGE_SYM_CLASS_STATIC
-    SectionDefinition:
-      Length:          4
-      NumberOfRelocations: 0
-      NumberOfLinenumbers: 0
-      CheckSum:        0
-      Number:          0
   - Name:            main
     Value:           0
     SectionNumber:   1

Modified: lld/trunk/test/COFF/pdb-globals.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-globals.test?rev=330483&r1=330482&r2=330483&view=diff
==============================================================================
--- lld/trunk/test/COFF/pdb-globals.test (original)
+++ lld/trunk/test/COFF/pdb-globals.test Fri Apr 20 14:30:36 2018
@@ -24,7 +24,7 @@ CHECK-NEXT:            module = 1, sum n
 CHECK-NEXT:      312 | S_PROCREF [size = 40] `HelloPoint::HelloPoint`
 CHECK-NEXT:            module = 1, sum name = 0, offset = 376
 CHECK-NEXT:      232 | S_GDATA32 [size = 28] `__purecall`
-CHECK-NEXT:            type = 0x0403 (void*), addr = 0000:0000
+CHECK-NEXT:            type = 0x0403 (void*), addr = 0003:0004
 CHECK-NEXT:      260 | S_GDATA32 [size = 24] `GlobalVar`
 CHECK-NEXT:            type = 0x100B (const int*), addr = 0003:0000
 CHECK-NEXT:      284 | S_LDATA32 [size = 28] `ConstantVar`

Modified: lld/trunk/test/COFF/secrel-common.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/secrel-common.s?rev=330483&r1=330482&r2=330483&view=diff
==============================================================================
--- lld/trunk/test/COFF/secrel-common.s (original)
+++ lld/trunk/test/COFF/secrel-common.s Fri Apr 20 14:30:36 2018
@@ -2,7 +2,7 @@
 # RUN: lld-link -entry:main -nodefaultlib %t.obj -out:%t.exe
 # RUN: llvm-readobj %t.exe -sections -section-data | FileCheck %s
 
-# Section relocations against common symbols resolve to .bss.
+# Section relocations against common symbols resolve to .bss (merged into .data).
 
 # CHECK: Sections [
 # CHECK:   Section {
@@ -15,16 +15,17 @@
 # CHECK:   }
 # CHECK:   Section {
 # CHECK:     Number: 2
-# CHECK:     Name: .bss (2E 62 73 73 00 00 00 00)
-# CHECK:     VirtualSize: 0x4
-# CHECK:   }
-# CHECK:   Section {
-# CHECK:     Number: 3
 # CHECK:     Name: .rdata (2E 72 64 61 74 61 00 00)
 # CHECK:     SectionData (
-# CHECK:       0000: 00000000 02000000 |........|
+# CHECK:       0000: 00020000 03000000 |........|
 # CHECK:     )
 # CHECK:   }
+# CHECK:   Section {
+# CHECK:     Number: 3
+# CHECK:     Name: .data (2E 64 61 74 61 00 00 00)
+# CHECK:     VirtualSize: 0x204
+# CHECK:     RawDataSize: 512
+# CHECK:   }
 # CHECK-NOT: Section
 # CHECK: ]
 
@@ -39,3 +40,6 @@ ret
 .secrel32 common_global
 .secidx common_global
 .short 0
+
+.section .data,"drw"
+.zero 512

Modified: lld/trunk/test/COFF/section-size.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/section-size.s?rev=330483&r1=330482&r2=330483&view=diff
==============================================================================
--- lld/trunk/test/COFF/section-size.s (original)
+++ lld/trunk/test/COFF/section-size.s Fri Apr 20 14:30:36 2018
@@ -7,7 +7,7 @@
 # Run: lld-link -entry:main %tmain.obj %t3.obj -out:%t.exe
 
 # RUN: not lld-link -entry:main %tmain.obj %t1.obj %t2.obj -out:%t.exe 2>&1 | FileCheck %s
-# CHECK: error: section larger than 4 GiB: .bss
+# CHECK: error: section larger than 4 GiB: .data
 
 .globl main
 main:




More information about the llvm-commits mailing list