mirror of
https://github.com/AxioDL/lld.git
synced 2026-03-30 11:44:17 -07:00
7f81d50d4c
These were 3 last synthetics that were added in addPredefinedSections() instead of createSyntheticSections(). Now it is possible to move addition to correct common place. Also patch fixes testcase which discards .shstrtab, by restricting doing that. Differential revision: https://reviews.llvm.org/D28561 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@291908 91177308-0d34-0410-b5e6-96231b3b80d8
108 lines
4.2 KiB
ArmAsm
108 lines
4.2 KiB
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
|
|
|
# Empty SECTIONS command.
|
|
# RUN: echo "SECTIONS {}" > %t.script
|
|
# RUN: ld.lld -o %t1 --script %t.script %t
|
|
# RUN: llvm-objdump -section-headers %t1 | \
|
|
# RUN: FileCheck -check-prefix=SEC-DEFAULT %s
|
|
|
|
# SECTIONS command with the same order as default.
|
|
# RUN: echo "SECTIONS { \
|
|
# RUN: .text : { *(.text) } \
|
|
# RUN: .data : { *(.data) } }" > %t.script
|
|
# RUN: ld.lld -o %t2 --script %t.script %t
|
|
# RUN: llvm-objdump -section-headers %t2 | \
|
|
# RUN: FileCheck -check-prefix=SEC-DEFAULT %s
|
|
|
|
# Idx Name Size
|
|
# SEC-DEFAULT: 1 .text 0000000e {{[0-9a-f]*}} TEXT DATA
|
|
# SEC-DEFAULT: 2 .data 00000020 {{[0-9a-f]*}} DATA
|
|
# SEC-DEFAULT: 3 other 00000003 {{[0-9a-f]*}} DATA
|
|
# SEC-DEFAULT: 4 .bss 00000002 {{[0-9a-f]*}} BSS
|
|
# SEC-DEFAULT: 5 .comment 00000008 {{[0-9a-f]*}}
|
|
# SEC-DEFAULT: 6 .symtab 00000030 {{[0-9a-f]*}}
|
|
# SEC-DEFAULT: 7 .shstrtab 0000003b {{[0-9a-f]*}}
|
|
# SEC-DEFAULT: 8 .strtab 00000008 {{[0-9a-f]*}}
|
|
|
|
# Sections are put in order specified in linker script, other than alloc
|
|
# sections going first.
|
|
# RUN: echo "SECTIONS { \
|
|
# RUN: .bss : { *(.bss) } \
|
|
# RUN: other : { *(other) } \
|
|
# RUN: .shstrtab : { *(.shstrtab) } \
|
|
# RUN: .symtab : { *(.symtab) } \
|
|
# RUN: .strtab : { *(.strtab) } \
|
|
# RUN: .data : { *(.data) } \
|
|
# RUN: .text : { *(.text) } }" > %t.script
|
|
# RUN: ld.lld -o %t3 --script %t.script %t
|
|
# RUN: llvm-objdump -section-headers %t3 | \
|
|
# RUN: FileCheck -check-prefix=SEC-ORDER %s
|
|
|
|
# Idx Name Size
|
|
# SEC-ORDER: 1 .bss 00000002 {{[0-9a-f]*}} BSS
|
|
# SEC-ORDER: 2 other 00000003 {{[0-9a-f]*}} DATA
|
|
# SEC-ORDER: 3 .shstrtab 0000003b {{[0-9a-f]*}}
|
|
# SEC-ORDER: 4 .symtab 00000030 {{[0-9a-f]*}}
|
|
# SEC-ORDER: 5 .strtab 00000008 {{[0-9a-f]*}}
|
|
# SEC-ORDER: 6 .data 00000020 {{[0-9a-f]*}} DATA
|
|
# SEC-ORDER: 7 .text 0000000e {{[0-9a-f]*}} TEXT DATA
|
|
|
|
# .text and .data have swapped names but proper sizes and types.
|
|
# RUN: echo "SECTIONS { \
|
|
# RUN: .data : { *(.text) } \
|
|
# RUN: .text : { *(.data) } }" > %t.script
|
|
# RUN: ld.lld -o %t4 --script %t.script %t
|
|
# RUN: llvm-objdump -section-headers %t4 | \
|
|
# RUN: FileCheck -check-prefix=SEC-SWAP-NAMES %s
|
|
|
|
# Idx Name Size
|
|
# SEC-SWAP-NAMES: 1 .data 0000000e {{[0-9a-f]*}} TEXT DATA
|
|
# SEC-SWAP-NAMES: 2 .text 00000020 {{[0-9a-f]*}} DATA
|
|
# SEC-SWAP-NAMES: 3 other 00000003 {{[0-9a-f]*}} DATA
|
|
# SEC-SWAP-NAMES: 4 .bss 00000002 {{[0-9a-f]*}} BSS
|
|
# SEC-SWAP-NAMES: 5 .comment 00000008 {{[0-9a-f]*}}
|
|
# SEC-SWAP-NAMES: 6 .symtab 00000030 {{[0-9a-f]*}}
|
|
# SEC-SWAP-NAMES: 7 .shstrtab 0000003b {{[0-9a-f]*}}
|
|
# SEC-SWAP-NAMES: 8 .strtab 00000008 {{[0-9a-f]*}}
|
|
|
|
# Attemp to discard .shstrtab section.
|
|
# RUN: echo "SECTIONS { /DISCARD/ : { *(.shstrtab) } }" > %t.script
|
|
# RUN: not ld.lld -o %t5 --script %t.script %t 2>&1 | \
|
|
# RUN: FileCheck -check-prefix=SEC-DISCARD %s
|
|
# SEC-DISCARD: discarding .shstrtab section is not allowed
|
|
|
|
# Multiple SECTIONS command specifying additional input section descriptions
|
|
# for the same output section description - input sections are merged into
|
|
# one output section.
|
|
# RUN: echo "SECTIONS { \
|
|
# RUN: .text : { *(.text) } \
|
|
# RUN: .data : { *(.data) } } \
|
|
# RUN: SECTIONS { \
|
|
# RUN: .data : { *(other) } }" > %t.script
|
|
# RUN: ld.lld -o %t6 --script %t.script %t
|
|
# RUN: llvm-objdump -section-headers %t6 | \
|
|
# RUN: FileCheck -check-prefix=SEC-MULTI %s
|
|
|
|
# Idx Name Size
|
|
# SEC-MULTI: 1 .text 0000000e {{[0-9a-f]*}} TEXT DATA
|
|
# SEC-MULTI: 2 .data 00000023 {{[0-9a-f]*}} DATA
|
|
# SEC-MULTI: 3 .bss 00000002 {{[0-9a-f]*}} BSS
|
|
# SEC-MULTI: 4 .comment 00000008 {{[0-9a-f]*}}
|
|
# SEC-MULTI: 5 .symtab 00000030 {{[0-9a-f]*}}
|
|
# SEC-MULTI: 6 .shstrtab 00000035 {{[0-9a-f]*}}
|
|
# SEC-MULTI: 7 .strtab 00000008 {{[0-9a-f]*}}
|
|
|
|
.globl _start
|
|
_start:
|
|
mov $60, %rax
|
|
mov $42, %rdi
|
|
|
|
.section .data,"aw"
|
|
.quad 10, 10, 20, 20
|
|
.section other,"aw"
|
|
.short 10
|
|
.byte 20
|
|
.section .bss,"",@nobits
|
|
.short 0
|