Its PR34712, GNU linkers recently changed default values to "both" of "sysv". Patch do the same for all targets except MIPS, where .gnu.hash section is not yet supported. Code suggested by Rui Ueyama. Differential revision: https://reviews.llvm.org/D38407 llvm-svn: 315051
92 lines
2.2 KiB
ArmAsm
92 lines
2.2 KiB
ArmAsm
// REQUIRES: x86
|
|
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
|
// RUN: ld.lld --hash-style=sysv %t -o %tout -shared
|
|
// RUN: llvm-objdump -d %tout | FileCheck -check-prefix=DISASM %s
|
|
// RUN: llvm-readobj -symbols -r %tout | FileCheck -check-prefix=SYMBOL %s
|
|
|
|
// DISASM: _start:
|
|
// DISASM: 1000: {{.*}} callq 10
|
|
// DISASM: 1005: {{.*}} callq 8
|
|
// DISASM: 100a: {{.*}} callq 3
|
|
// DISASM: Disassembly of section foo:
|
|
// DISASM: __start_foo:
|
|
// DISASM: 100f: 90 nop
|
|
// DISASM: 1010: 90 nop
|
|
// DISASM: 1011: 90 nop
|
|
// DISASM: Disassembly of section bar:
|
|
// DISASM: __start_bar:
|
|
// DISASM: 1012: 90 nop
|
|
// DISASM: 1013: 90 nop
|
|
// DISASM: 1014: 90 nop
|
|
|
|
|
|
// SYMBOL: Relocations [
|
|
// SYMBOL-NEXT: Section ({{.*}}) .rela.dyn {
|
|
// SYMBOL-NEXT: 0x2010 R_X86_64_64 __stop_zed1 0x0
|
|
// SYMBOL-NEXT: 0x2018 R_X86_64_64 __stop_zed1 0x1
|
|
// SYMBOL-NEXT: 0x2000 R_X86_64_64 __stop_zed2 0x0
|
|
// SYMBOL-NEXT: 0x2008 R_X86_64_64 __stop_zed2 0x1
|
|
// SYMBOL-NEXT: }
|
|
// SYMBOL-NEXT: ]
|
|
|
|
// SYMBOL: Symbol {
|
|
// SYMBOL: Name: __start_bar
|
|
// SYMBOL: Value: 0x1012
|
|
// SYMBOL: STV_HIDDEN
|
|
// SYMBOL: Section: bar
|
|
// SYMBOL: }
|
|
// SYMBOL-NOT: Section: __stop_bar
|
|
// SYMBOL: Symbol {
|
|
// SYMBOL: Name: __start_foo
|
|
// SYMBOL: Value: 0x100F
|
|
// SYMBOL: STV_HIDDEN
|
|
// SYMBOL: Section: foo
|
|
// SYMBOL: }
|
|
// SYMBOL: Symbol {
|
|
// SYMBOL: Name: __stop_foo
|
|
// SYMBOL: Value: 0x1012
|
|
// STMBOL: STV_HIDDEN
|
|
// SYMBOL: Section: foo
|
|
// SYMBOL: }
|
|
|
|
// SYMBOL: Symbol {
|
|
// SYMBOL: Name: __stop_zed1
|
|
// SYMBOL: Value: 0x2010
|
|
// STMBOL: Other: 0
|
|
// SYMBOL: Section: zed1
|
|
// SYMBOL: }
|
|
// SYMBOL: Symbol {
|
|
// SYMBOL: Name: __stop_zed2
|
|
// SYMBOL: Value: 0x2020
|
|
// STMBOL: Other: 0
|
|
// SYMBOL: Section: zed2
|
|
// SYMBOL: }
|
|
|
|
.hidden __start_foo
|
|
.hidden __stop_foo
|
|
.hidden __start_bar
|
|
.global _start
|
|
.text
|
|
_start:
|
|
call __start_foo
|
|
call __stop_foo
|
|
call __start_bar
|
|
|
|
.section foo,"ax"
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
.section bar,"ax"
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
.section zed1, "aw"
|
|
.quad __stop_zed2
|
|
.quad __stop_zed2 + 1
|
|
|
|
.section zed2, "aw"
|
|
.quad __stop_zed1
|
|
.quad __stop_zed1 + 1
|