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
77 lines
1.9 KiB
ArmAsm
77 lines
1.9 KiB
ArmAsm
# REQUIRES: x86
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
|
# RUN: echo "{ foo; zed; };" > %t.list
|
|
# RUN: echo "{ global: foo; bar; local: *; };" > %t.vers
|
|
# RUN: ld.lld --hash-style=sysv -fatal-warnings -dynamic-list %t.list -version-script %t.vers -shared %t.o -o %t.so
|
|
# RUN: llvm-readobj -r %t.so | FileCheck --check-prefix=RELOCS %s
|
|
# RUN: llvm-readobj -dyn-symbols %t.so | FileCheck --check-prefix=DYNSYMS %s
|
|
|
|
# RELOCS: Relocations [
|
|
# RELOCS-NEXT: Section ({{.*}}) .rela.plt {
|
|
# RELOCS-NEXT: R_X86_64_JUMP_SLOT foo 0x0
|
|
# RELOCS-NEXT: R_X86_64_JUMP_SLOT ext 0x0
|
|
# RELOCS-NEXT: }
|
|
# RELOCS-NEXT: ]
|
|
|
|
# DYNSYMS: DynamicSymbols [
|
|
# DYNSYMS-NEXT: Symbol {
|
|
# DYNSYMS-NEXT: Name: @ (0)
|
|
# DYNSYMS-NEXT: Value: 0x0
|
|
# DYNSYMS-NEXT: Size: 0
|
|
# DYNSYMS-NEXT: Binding: Local
|
|
# DYNSYMS-NEXT: Type: None
|
|
# DYNSYMS-NEXT: Other: 0
|
|
# DYNSYMS-NEXT: Section: Undefined
|
|
# DYNSYMS-NEXT: }
|
|
# DYNSYMS-NEXT: Symbol {
|
|
# DYNSYMS-NEXT: Name: bar@
|
|
# DYNSYMS-NEXT: Value:
|
|
# DYNSYMS-NEXT: Size:
|
|
# DYNSYMS-NEXT: Binding: Global
|
|
# DYNSYMS-NEXT: Type:
|
|
# DYNSYMS-NEXT: Other:
|
|
# DYNSYMS-NEXT: Section:
|
|
# DYNSYMS-NEXT: }
|
|
# DYNSYMS-NEXT: Symbol {
|
|
# DYNSYMS-NEXT: Name: ext@
|
|
# DYNSYMS-NEXT: Value:
|
|
# DYNSYMS-NEXT: Size:
|
|
# DYNSYMS-NEXT: Binding: Global
|
|
# DYNSYMS-NEXT: Type:
|
|
# DYNSYMS-NEXT: Other:
|
|
# DYNSYMS-NEXT: Section:
|
|
# DYNSYMS-NEXT: }
|
|
# DYNSYMS-NEXT: Symbol {
|
|
# DYNSYMS-NEXT: Name: foo@
|
|
# DYNSYMS-NEXT: Value:
|
|
# DYNSYMS-NEXT: Size:
|
|
# DYNSYMS-NEXT: Binding: Global
|
|
# DYNSYMS-NEXT: Type:
|
|
# DYNSYMS-NEXT: Other:
|
|
# DYNSYMS-NEXT: Section:
|
|
# DYNSYMS-NEXT: }
|
|
# DYNSYMS-NEXT: ]
|
|
|
|
.globl foo
|
|
foo:
|
|
ret
|
|
|
|
.globl bar
|
|
bar:
|
|
ret
|
|
|
|
.globl baz
|
|
baz:
|
|
ret
|
|
|
|
.globl zed
|
|
zed:
|
|
ret
|
|
|
|
call foo@PLT
|
|
call bar@PLT
|
|
call baz@PLT
|
|
call zed@PLT
|
|
call ext@PLT
|