[ELF][test] Add test for --gc-sections + many sections
This test covers the case where --gc-sections is used when there are many sections. In particular, it ensures that there is no adverse interaction with common and absolute symbols. Reviewed by: MaskRay, grimar Differential Revision: https://reviews.llvm.org/D76003
This commit is contained in:
parent
0aa9c5429b
commit
b4d0384a6c
|
|
@ -11,13 +11,64 @@
|
|||
// CHECK-NEXT: Binding: Global
|
||||
// CHECK-NEXT: Type: None
|
||||
// CHECK-NEXT: Other: 0
|
||||
// CHECK-NEXT: Section: dm
|
||||
// CHECK-NEXT: Section: dn
|
||||
|
||||
// Show that --gc-sections works when there are many sections, and that
|
||||
// referenced common and absolute symbols in such cases are not removed, nor are
|
||||
// they incorrectly attributed to the sections with index 0xFFF1 or 0xFFF2.
|
||||
// RUN: ld.lld %t.o -T %t.script -o %t --gc-sections
|
||||
// RUN: llvm-readobj --symbols --sections %t | FileCheck %s --check-prefix=GC
|
||||
|
||||
// GC: Sections [
|
||||
// GC-NEXT: Section {
|
||||
// GC-NEXT: Index: 0
|
||||
// GC-NEXT: Name: (0)
|
||||
// GC: Section {
|
||||
// GC-NEXT: Index: 1
|
||||
// GC-NEXT: Name: dn
|
||||
// GC: Section {
|
||||
// GC-NEXT: Index: 2
|
||||
// GC-NEXT: Name: .bss
|
||||
// GC: Section {
|
||||
// GC-NEXT: Index: 3
|
||||
// GC-NEXT: Name: .comment
|
||||
// GC: Section {
|
||||
// GC-NEXT: Index: 4
|
||||
// GC-NEXT: Name: .symtab
|
||||
// GC: Section {
|
||||
// GC-NEXT: Index: 5
|
||||
// GC-NEXT: Name: .shstrtab
|
||||
// GC: Section {
|
||||
// GC-NEXT: Index: 6
|
||||
// GC-NEXT: Name: .strtab
|
||||
// GC-NOT: Section {
|
||||
|
||||
// GC: Symbols [
|
||||
// GC-NEXT: Symbol {
|
||||
// GC-NEXT: Name: (0)
|
||||
// GC: Symbol {
|
||||
// GC-NEXT: Name: sdn
|
||||
// GC: Symbol {
|
||||
// GC-NEXT: Name: _start
|
||||
// GC: Symbol {
|
||||
// GC-NEXT: Name: abs
|
||||
// GC: Symbol {
|
||||
// GC-NEXT: Name: common
|
||||
// GC-NOT: Symbol {
|
||||
|
||||
.macro gen_sections4 x
|
||||
.section a\x,"a"
|
||||
.global sa\x
|
||||
sa\x:
|
||||
.section b\x,"a"
|
||||
.global sa\x
|
||||
sb\x:
|
||||
.section c\x,"a"
|
||||
.global sa\x
|
||||
sc\x:
|
||||
.section d\x,"a"
|
||||
.global sa\x
|
||||
sd\x:
|
||||
.endm
|
||||
|
||||
.macro gen_sections8 x
|
||||
|
|
@ -85,9 +136,6 @@
|
|||
gen_sections16384 b\x
|
||||
.endm
|
||||
|
||||
.bss
|
||||
.section bar
|
||||
|
||||
gen_sections32768 a
|
||||
gen_sections16384 b
|
||||
gen_sections8192 c
|
||||
|
|
@ -95,12 +143,20 @@ gen_sections4096 d
|
|||
gen_sections2048 e
|
||||
gen_sections1024 f
|
||||
gen_sections512 g
|
||||
gen_sections128 h
|
||||
gen_sections64 i
|
||||
gen_sections32 j
|
||||
gen_sections16 k
|
||||
gen_sections8 l
|
||||
gen_sections4 m
|
||||
gen_sections256 h
|
||||
gen_sections128 i
|
||||
gen_sections64 j
|
||||
gen_sections32 k
|
||||
gen_sections16 l
|
||||
gen_sections8 m
|
||||
gen_sections4 n
|
||||
|
||||
.global abs
|
||||
abs = 0x12345678
|
||||
|
||||
.comm common,4,4
|
||||
|
||||
.global _start
|
||||
_start:
|
||||
.quad abs
|
||||
.quad common
|
||||
|
|
|
|||
Loading…
Reference in New Issue