[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