to separate commons based on file name patterns. The following linker script
construct does not work because commons are allocated before section placement
is done and the only synthesized BssSection that holds all commons has no file
associated with it:
SECTIONS { .common_0 : { *file0.o(COMMON) }}
This patch changes the allocation of commons to create a section per common
symbol and let the section logic do the layout.
Differential revision: https://reviews.llvm.org/D37489
llvm-svn: 312796
26 lines
1004 B
ArmAsm
26 lines
1004 B
ArmAsm
# REQUIRES: x86
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
|
|
|
# RUN: echo "SECTIONS { /DISCARD/ : { *(.shstrtab) } }" > %t.script
|
|
# RUN: not ld.lld -o %t --script %t.script %t.o 2>&1 | \
|
|
# RUN: FileCheck -check-prefix=SHSTRTAB %s
|
|
# SHSTRTAB: discarding .shstrtab section is not allowed
|
|
|
|
# RUN: echo "SECTIONS { /DISCARD/ : { *(.dynamic) } }" > %t.script
|
|
# RUN: not ld.lld -pie -o %t --script %t.script %t.o 2>&1 | \
|
|
# RUN: FileCheck -check-prefix=DYNAMIC %s
|
|
# DYNAMIC: discarding .dynamic section is not allowed
|
|
|
|
# RUN: echo "SECTIONS { /DISCARD/ : { *(.dynsym) } }" > %t.script
|
|
# RUN: not ld.lld -pie -o %t --script %t.script %t.o 2>&1 | \
|
|
# RUN: FileCheck -check-prefix=DYNSYM %s
|
|
# DYNSYM: discarding .dynsym section is not allowed
|
|
|
|
# RUN: echo "SECTIONS { /DISCARD/ : { *(.dynstr) } }" > %t.script
|
|
# RUN: not ld.lld -pie -o %t --script %t.script %t.o 2>&1 | \
|
|
# RUN: FileCheck -check-prefix=DYNSTR %s
|
|
# DYNSTR: discarding .dynstr section is not allowed
|
|
|
|
.comm foo,4,4
|