2003-01-25 01:20:25 +08:00
|
|
|
#source: tlsbinpic_64.s
|
|
|
|
#source: tlsbin_64.s
|
|
|
|
#as: -m64 -Aesame
|
|
|
|
#ld: -shared -melf64_s390
|
|
|
|
#objdump: -dzrj.text
|
|
|
|
#target: s390x-*-*
|
|
|
|
|
|
|
|
# PT_TLS layout is:
|
|
|
|
# Offset from Offset from Name
|
|
|
|
# TCB base TCB end
|
|
|
|
# 0x00 -0xa0 sg1..sg2
|
|
|
|
# 0x20 -0x80 sl1..sl2
|
|
|
|
# 0x40 -0x60 sh1..sh2
|
|
|
|
# 0x60 -0x40 bg1..bg2
|
|
|
|
# 0x80 -0x20 bl1..bl2
|
|
|
|
|
|
|
|
.*: +file format elf64-s390
|
|
|
|
|
|
|
|
Disassembly of section .text:
|
|
|
|
|
2004-05-12 01:08:38 +08:00
|
|
|
0+[0-9a-f]+ <fn2>:
|
2003-01-25 01:20:25 +08:00
|
|
|
# function prolog
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\)
|
|
|
|
+[0-9a-f]+: a7 d5 00 3e bras %r13,[0-9a-f]+ <fn2\+0x82>
|
2003-01-25 01:20:25 +08:00
|
|
|
# sG1@tlsgd
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
|
|
|
+[0-9a-f]+: 00 00 00 60 .long 0x00000060
|
2003-01-25 01:20:25 +08:00
|
|
|
# sG2@tlsgd
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
|
|
|
+[0-9a-f]+: 00 00 00 48 .long 0x00000048
|
2003-01-25 01:20:25 +08:00
|
|
|
# sg1@tlsgd
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 60 .long 0xffffff60
|
2003-01-25 01:20:25 +08:00
|
|
|
# sl1@tlsgd
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 80 .long 0xffffff80
|
2003-01-25 01:20:25 +08:00
|
|
|
# sh1@tlsgd
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
|
2003-01-25 01:20:25 +08:00
|
|
|
# sl1@tlsldm
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
2003-01-25 01:20:25 +08:00
|
|
|
# sl1@dtpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 80 .long 0xffffff80
|
2003-01-25 01:20:25 +08:00
|
|
|
# sl2@dtpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 84 .long 0xffffff84
|
2003-01-25 01:20:25 +08:00
|
|
|
# sh1@tlsldm
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
2003-01-25 01:20:25 +08:00
|
|
|
# sh1@dtpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
|
2003-01-25 01:20:25 +08:00
|
|
|
# sh2@dtpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff a4 .long 0xffffffa4
|
2003-01-25 01:20:25 +08:00
|
|
|
# sG2@gotntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
|
|
|
+[0-9a-f]+: 00 00 00 48 .long 0x00000048
|
2003-01-25 01:20:25 +08:00
|
|
|
# sg1@gotntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 60 .long 0xffffff60
|
2003-01-25 01:20:25 +08:00
|
|
|
# sl1@gotntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 80 .long 0xffffff80
|
2003-01-25 01:20:25 +08:00
|
|
|
# sh1@gotntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
|
2003-01-25 01:20:25 +08:00
|
|
|
# function prolog
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: b9 04 00 ef lgr %r14,%r15
|
|
|
|
+[0-9a-f]+: a7 fb ff 60 aghi %r15,-160
|
|
|
|
+[0-9a-f]+: c0 c0 [0-9a-f ]+ larl %r12,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_>
|
|
|
|
+[0-9a-f]+: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# extract TCB
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
|
|
|
|
+[0-9a-f]+: eb 94 00 20 00 0d sllg %r9,%r4,32
|
|
|
|
+[0-9a-f]+: b2 4f 00 91 ear %r9,%a1
|
2003-01-25 01:20:25 +08:00
|
|
|
# GD -> IE because variable is not defined in executable
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 c0 d0 00 00 04 lg %r12,0\(%r13\)
|
|
|
|
+[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
|
|
|
|
+[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# GD -> IE because variable is not defined in executable where
|
|
|
|
# the variable is referenced through IE too
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 20 d0 08 00 04 lg %r2,8\(%r13\)
|
|
|
|
+[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
|
|
|
|
+[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# GD -> LE with global variable defined in executable
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 20 d0 10 00 04 lg %r2,16\(%r13\)
|
|
|
|
+[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xca>
|
|
|
|
+[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# GD -> LE with local variable defined in executable
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 20 d0 18 00 04 lg %r2,24\(%r13\)
|
|
|
|
+[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xda>
|
|
|
|
+[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# GD -> LE with hidden variable defined in executable
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 20 d0 20 00 04 lg %r2,32\(%r13\)
|
|
|
|
+[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xea>
|
|
|
|
+[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# LD -> LE
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 20 d0 28 00 04 lg %r2,40\(%r13\)
|
|
|
|
+[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xfa>
|
|
|
|
+[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
|
|
|
|
+[0-9a-f]+: e3 40 d0 30 00 04 lg %r4,48\(%r13\)
|
|
|
|
+[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
|
|
|
|
+[0-9a-f]+: e3 40 d0 38 00 04 lg %r4,56\(%r13\)
|
|
|
|
+[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
|
|
|
|
+[0-9a-f]+: e3 20 d0 40 00 04 lg %r2,64\(%r13\)
|
|
|
|
+[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0x11e>
|
|
|
|
+[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
|
|
|
|
+[0-9a-f]+: e3 40 d0 48 00 04 lg %r4,72\(%r13\)
|
|
|
|
+[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
|
|
|
|
+[0-9a-f]+: e3 40 d0 50 00 04 lg %r4,80\(%r13\)
|
|
|
|
+[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against global var
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 58 00 04 lg %r3,88\(%r13\)
|
|
|
|
+[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE -> LE against global var defined in exec
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 60 00 04 lg %r3,96\(%r13\)
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE -> LE against local var
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 68 00 04 lg %r3,104\(%r13\)
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE -> LE against hidden var
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 70 00 04 lg %r3,112\(%r13\)
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against global var with larl got access
|
Enhance objdump so that it will use .got, .plt and .plt.got section symbols when disassembling, and it will use dynamic relocs to interpret entries in the PLT and GOT.
binutils * objdump.c (is_significant_symbol_name): New function.
(remove_useless_symbols): Do not remove significanr symbols.
(find_symbol_for_address): If an exact match for the specified
address has not been found, try scanning the dynamic relocs to see
if one of these matches the address. If so, use the symbol
associated with the reloc.
(objdump_print_addr_with_symbol): Do not print offsets to symbols
with no value.
(disassemble_section): Only use dynamic relocs if the user
requested this.
(disassemble_data): Always load dynamic relocs if they are
available.
ld * ld-aarch64/emit-relocs-515-be.d: Adjust output to match change
in objdump.
* ld-aarch64/emit-relocs-515.d: Likewise.
* ld-aarch64/emit-relocs-516-be.d: Likewise.
* ld-aarch64/emit-relocs-516.d: Likewise.
* ld-aarch64/farcall-b-plt.d: Likewise.
* ld-aarch64/farcall-bl-plt.d: Likewise.
* ld-aarch64/gc-plt-relocs.d: Likewise.
* ld-aarch64/tls-desc-ie.d: Likewise.
* ld-aarch64/tls-tiny-desc.d: Likewise.
* ld-aarch64/tls-tiny-gd.d: Likewise.
* ld-aarch64/tls-tiny-ie.d: Likewise.
* ld-arm/arm-app-abs32.d: Likewise.
* ld-arm/arm-app.d: Likewise.
* ld-arm/arm-lib-plt32.d: Likewise.
* ld-arm/arm-lib.d: Likewise.
* ld-arm/armthumb-lib.d: Likewise.
* ld-arm/cortex-a8-fix-b-plt.d: Likewise.
* ld-arm/cortex-a8-fix-bcc-plt.d: Likewise.
* ld-arm/cortex-a8-fix-bl-plt.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-plt.d: Likewise.
* ld-arm/cortex-a8-fix-blx-plt.d: Likewise.
* ld-arm/farcall-mixed-app-v5.d: Likewise.
* ld-arm/farcall-mixed-app.d: Likewise.
* ld-arm/farcall-mixed-app2.d: Likewise.
* ld-arm/farcall-mixed-lib-v4t.d: Likewise.
* ld-arm/farcall-mixed-lib.d: Likewise.
* ld-arm/ifunc-10.dd: Likewise.
* ld-arm/ifunc-14.dd: Likewise.
* ld-arm/ifunc-15.dd: Likewise.
* ld-arm/ifunc-3.dd: Likewise.
* ld-arm/ifunc-4.dd: Likewise.
* ld-arm/ifunc-9.dd: Likewise.
* ld-arm/long-plt-format.d: Likewise.
* ld-arm/mixed-app-v5.d: Likewise.
* ld-arm/mixed-app.d: Likewise.
* ld-arm/mixed-lib.d: Likewise.
* ld-arm/tls-lib-loc.d: Likewise.
* ld-cris/dso-pltdis1.d: Likewise.
* ld-cris/dso-pltdis2.d: Likewise.
* ld-cris/dso12-pltdis.d: Likewise.
* ld-elf/symbolic-func.r: Likewise.
* ld-frv/fdpic-pie-1.d: Likewise.
* ld-frv/fdpic-pie-2.d: Likewise.
* ld-frv/fdpic-pie-6.d: Likewise.
* ld-frv/fdpic-pie-7.d: Likewise.
* ld-frv/fdpic-pie-8.d: Likewise.
* ld-frv/fdpic-shared-1.d: Likewise.
* ld-frv/fdpic-shared-2.d: Likewise.
* ld-frv/fdpic-shared-3.d: Likewise.
* ld-frv/fdpic-shared-4.d: Likewise.
* ld-frv/fdpic-shared-5.d: Likewise.
* ld-frv/fdpic-shared-6.d: Likewise.
* ld-frv/fdpic-shared-7.d: Likewise.
* ld-frv/fdpic-shared-8.d: Likewise.
* ld-frv/fdpic-shared-local-2.d: Likewise.
* ld-frv/fdpic-shared-local-8.d: Likewise.
* ld-frv/fdpic-static-1.d: Likewise.
* ld-frv/fdpic-static-2.d: Likewise.
* ld-frv/fdpic-static-6.d: Likewise.
* ld-frv/fdpic-static-7.d: Likewise.
* ld-frv/fdpic-static-8.d: Likewise.
* ld-frv/tls-dynamic-2.d: Likewise.
* ld-frv/tls-initial-shared-2.d: Likewise.
* ld-frv/tls-relax-shared-2.d: Likewise.
* ld-frv/tls-shared-2.d: Likewise.
* ld-i386/plt-nacl.pd: Likewise.
* ld-i386/plt-pic-nacl.pd: Likewise.
* ld-i386/plt-pic.pd: Likewise.
* ld-i386/plt.pd: Likewise.
* ld-i386/pr19636-1d-nacl.d: Likewise.
* ld-i386/pr19636-1d.d: Likewise.
* ld-i386/pr19636-2c-nacl.d: Likewise.
* ld-i386/pr19636-2c.d: Likewise.
* ld-ifunc/ifunc-21-x86-64.d: Likewise.
* ld-ifunc/ifunc-22-x86-64.d: Likewise.
* ld-ifunc/pr17154-i386.d: Likewise.
* ld-ifunc/pr17154-x86-64.d: Likewise.
* ld-m68k/plt1-68020.d: Likewise.
* ld-m68k/plt1-cpu32.d: Likewise.
* ld-m68k/plt1-isab.d: Likewise.
* ld-m68k/plt1-isac.d: Likewise.
* ld-metag/shared.d: Likewise.
* ld-metag/stub_pic_app.d: Likewise.
* ld-metag/stub_pic_shared.d: Likewise.
* ld-metag/stub_shared.d: Likewise.
* ld-s390/tlsbin_64.dd: Likewise.
* ld-s390/tlspic_64.dd: Likewise.
* ld-tic6x/shlib-1.dd: Likewise.
* ld-tic6x/shlib-1b.dd: Likewise.
* ld-tic6x/shlib-1rb.dd: Likewise.
* ld-tic6x/shlib-app-1.dd: Likewise.
* ld-tic6x/shlib-app-1b.dd: Likewise.
* ld-tic6x/shlib-app-1r.dd: Likewise.
* ld-tic6x/shlib-app-1rb.dd: Likewise.
* ld-tic6x/shlib-noindex.dd: Likewise.
* ld-vax-elf/export-class-data.dd: Likewise.
* ld-vax-elf/plt-local-lib.dd: Likewise.
* ld-vax-elf/plt-local.dd: Likewise.
* ld-x86-64/bnd-ifunc-2.d: Likewise.
* ld-x86-64/bnd-plt-1.d: Likewise.
* ld-x86-64/gotpcrel1.dd: Likewise.
* ld-x86-64/libno-plt-1b.dd: Likewise.
* ld-x86-64/load1c-nacl.d: Likewise.
* ld-x86-64/load1c.d: Likewise.
* ld-x86-64/load1d-nacl.d: Likewise.
* ld-x86-64/load1d.d: Likewise.
* ld-x86-64/mov1a.d: Likewise.
* ld-x86-64/mov1b.d: Likewise.
* ld-x86-64/mov1c.d: Likewise.
* ld-x86-64/mov1d.d: Likewise.
* ld-x86-64/mov2a.d: Likewise.
* ld-x86-64/mov2b.d: Likewise.
* ld-x86-64/mov2c.d: Likewise.
* ld-x86-64/mov2d.d: Likewise.
* ld-x86-64/mpx3.dd: Likewise.
* ld-x86-64/mpx4.dd: Likewise.
* ld-x86-64/no-plt-1a.dd: Likewise.
* ld-x86-64/no-plt-1b.dd: Likewise.
* ld-x86-64/no-plt-1c.dd: Likewise.
* ld-x86-64/no-plt-1e.dd: Likewise.
* ld-x86-64/no-plt-1f.dd: Likewise.
* ld-x86-64/no-plt-1g.dd: Likewise.
* ld-x86-64/plt-main-bnd.dd: Likewise.
* ld-x86-64/plt-nacl.pd: Likewise.
* ld-x86-64/plt.pd: Likewise.
* ld-x86-64/pr18591.d: Likewise.
* ld-x86-64/pr19609-1c.d: Likewise.
* ld-x86-64/pr19609-1e.d: Likewise.
* ld-x86-64/pr19609-1j.d: Likewise.
* ld-x86-64/pr19609-1l.d: Likewise.
* ld-x86-64/pr19609-1m.d: Likewise.
* ld-x86-64/pr19609-5b.d: Likewise.
* ld-x86-64/pr19609-5c.d: Likewise.
* ld-x86-64/pr19609-5e.d: Likewise.
* ld-x86-64/pr19609-6b.d: Likewise.
* ld-x86-64/pr19609-7b.d: Likewise.
* ld-x86-64/pr19609-7d.d: Likewise.
* ld-x86-64/pr19636-2d.d: Likewise.
* ld-x86-64/pr20093-1.d: Likewise.
* ld-x86-64/pr20093-2.d: Likewise.
* ld-x86-64/pr20253-1b.d: Likewise.
* ld-x86-64/pr20253-1d.d: Likewise.
* ld-x86-64/pr20253-1f.d: Likewise.
* ld-x86-64/pr20253-1h.d: Likewise.
* ld-x86-64/pr20253-1j.d: Likewise.
* ld-x86-64/pr20253-1l.d: Likewise.
* ld-x86-64/protected3.d: Likewise.
* ld-x86-64/tlsbin.dd: Likewise.
* ld-x86-64/tlsbin2.dd: Likewise.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-x86-64/tlsdesc-nacl.pd: Likewise.
* ld-x86-64/tlsdesc.dd: Likewise.
* ld-x86-64/tlsdesc.pd: Likewise.
* ld-x86-64/tlsgd10.dd: Likewise.
* ld-x86-64/tlsgd5.dd: Likewise.
* ld-x86-64/tlsgd6.dd: Likewise.
* ld-x86-64/tlsgd8.dd: Likewise.
* ld-x86-64/tlsgdesc.dd: Likewise.
* ld-x86-64/tlspic.dd: Likewise.
* ld-x86-64/tlspic2.dd: Likewise.
2016-10-11 Nick Clifton <nickc@redhat.com>
PR ld/20535
* emultempl/elf32.em (_search_needed): Add support for pseudo
environment variables supported by ld.so. Namely $ORIGIN, $LIB
and $PLATFORM.
* configure.ac: Add getauxval to list AC_CHECK_FUNCS list.
* config.in: Regenerate.
* configure: Regenerate.
2016-10-11 Alan Modra <amodra@gmail.com>
* ldlang.c (lang_do_assignments_1): Descend into output section
statements that do not yet have bfd sections. Set symbol section
temporarily for symbols defined in such statements to the undefined
section. Don't error on data or reloc statements until final phase.
* ldexp.c (exp_fold_tree_1 <etree_assign>): Handle bfd_und_section
in expld.section.
* testsuite/ld-mmix/bpo-10.d: Adjust.
* testsuite/ld-mmix/bpo-11.d: Adjust.
2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* emulparams/elf64_s390.sh: Move binary start to 16M.
* testsuite/ld-s390/tlsbin_64.dd: Adjust testcases accordingly.
* testsuite/ld-s390/tlsbin_64.rd: Likewise.
2016-10-07 Alan Modra <amodra@gmail.com>
* ldexp.c (MAX): Define.
(exp_unop, exp_binop, exp_trinop): Alloc at least enough for
etree_type.value.
2016-10-07 Alan Modra <amodra@gmail.com>
* testsuite/lib/ld-lib.exp (is_generic_elf): New, extracted from..
* testsuite/ld-elf/elf.exp: ..here.
2016-10-06 Ludovic Court?s <ludo@gnu.org>
* emulparams/elf32bmipn32-defs.sh: Shift quote of
"x$EMULATION_NAME" to the left to work around
<http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-007>.
2016-10-06 Alan Modra <amodra@gmail.com>
* lexsup.c: Spell fall through comments consistently and add
missing fall through comments.
2016-10-06 Alan Modra <amodra@gmail.com>
* plugin.c (asymbol_from_plugin_symbol): Avoid compiler warning
by adding return.
2016-10-04 Alan Modra <amodra@gmail.com>
* ld.texinfo (Expression Section): Update result of arithmetic
expressions.
* ldexp.c (arith_result_section): New function.
(fold_binary): Use it.
2016-10-04 Alan Modra <amodra@gmail.com>
* ldexp.c (exp_value_fold): New function.
(exp_unop, exp_binop, exp_trinop): Use it.
2016-09-30 Alan Modra <amodra@gmail.com>
* scripttempl/v850.sc: Don't reference __ctbp, __ep, __gp when
not relocating.
* scripttempl/v850_rh850.sc: Likewise.
2016-09-30 Alan Modra <amodra@gmail.com>
PR ld/20528
* testsuite/ld-elf/pr20528a.d: xfail generic elf targets. Allow
multiple .text sections for hppa-linux.
* testsuite/ld-elf/pr20528b.d: Likewise.
2016-09-30 Alan Modra <amodra@gmail.com>
* ldmain.c (default_bfd_error_handler): New function pointer.
(ld_bfd_error_handler): New function.
(main): Arrange to call it on bfd errors/warnings.
(ld_bfd_assert_handler): Enable tail call.
2016-09-30 Alan Modra <amodra@gmail.com>
* ldlang.c (ignore_bfd_errors): Update params.
2016-09-29 H.J. Lu <hongjiu.lu@intel.com>
PR ld/20528
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
merge 2 sections with different SHF_EXCLUDE.
* testsuite/ld-elf/pr20528a.d: New file.
* testsuite/ld-elf/pr20528a.s: Likewise.
* testsuite/ld-elf/pr20528b.d: Likewise.
* testsuite/ld-elf/pr20528b.s: Likewise.
2016-09-28 Christophe Lyon <christophe.lyon@linaro.org>
PR ld/20608
* testsuite/ld-arm/arm-elf.exp: Handle new testcase.
* testsuite/ld-arm/farcall-mixed-app2.d: New file.
* testsuite/ld-arm/farcall-mixed-app2.r: Likewise.
* testsuite/ld-arm/farcall-mixed-app2.s: Likewise.
* testsuite/ld-arm/farcall-mixed-app2.sym: Likewise.
2016-09-26 Vlad Zakharov <vzakhar@synopsys.com>
* Makefile.in: Regenerate.
* configure: Likewise.
2016-09-26 Alan Modra <amodra@gmail.com>
* testsuite/ld-powerpc/attr-gnu-4-4.s: Delete.
* testsuite/ld-powerpc/attr-gnu-4-14.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-24.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-34.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-41.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-32.d: Adjust expected warning.
* testsuite/ld-powerpc/attr-gnu-8-23.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-01.d: Adjust expected output.
* testsuite/ld-powerpc/attr-gnu-4-02.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-03.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-10.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-11.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-20.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-22.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-33.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-8-11.d: Likewise.
* testsuite/ld-powerpc/powerpc.exp: Don't run deleted tests.
2016-09-23 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
PR ld/20595
* testsuite/ld-arm/unwind-4.d: Add -q option to linker command
line and -r option to objdump command line. Match emitted relocs
to make sure that superflous relocs are not generated.
2016-09-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* emulparams/elf64_s390.sh: Change TEXT_START_ADDR to 256MB.
* testsuite/ld-s390/tlsbin_64.dd: Adjust testcase accordingly.
* testsuite/ld-s390/tlsbin_64.rd: Likewise.
2016-09-22 Nick Clifton <nickc@redhat.com>
* emultempl/elf32.em (_try_needed): In verbose mode, report failed
attempts to find a needed library.
2016-09-21 Richard Sandiford <richard.sandiford@arm.com>
* testsuite/ld-aarch64/emit-relocs-28.d: Expect spaces after ","
in addresses.
* testsuite/ld-aarch64/emit-relocs-301-be.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-301.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-302-be.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-302.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-310-be.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-310.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-313.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-515-be.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-515.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-516-be.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-516.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-531.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-532.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-533.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-534.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-535.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-536.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-537.d: Likewise.
* testsuite/ld-aarch64/emit-relocs-538.d: Likewise.
* testsuite/ld-aarch64/erratum835769.d: Likewise.
* testsuite/ld-aarch64/erratum843419.d: Likewise.
* testsuite/ld-aarch64/farcall-b-plt.d: Likewise.
* testsuite/ld-aarch64/farcall-bl-plt.d: Likewise.
* testsuite/ld-aarch64/gc-plt-relocs.d: Likewise.
* testsuite/ld-aarch64/ifunc-21.d: Likewise.
* testsuite/ld-aarch64/ifunc-7c.d: Likewise.
* testsuite/ld-aarch64/tls-desc-ie.d: Likewise.
* testsuite/ld-aarch64/tls-large-desc-be.d: Likewise.
* testsuite/ld-aarch64/tls-large-desc.d: Likewise.
* testsuite/ld-aarch64/tls-large-ie-be.d: Likewise.
* testsuite/ld-aarch64/tls-large-ie.d: Likewise.
* testsuite/ld-aarch64/tls-relax-all.d: Likewise.
* testsuite/ld-aarch64/tls-relax-gd-ie.d: Likewise.
* testsuite/ld-aarch64/tls-relax-gdesc-ie-2.d: Likewise.
* testsuite/ld-aarch64/tls-relax-gdesc-ie.d: Likewise.
* testsuite/ld-aarch64/tls-relax-large-desc-ie-be.d: Likewise.
* testsuite/ld-aarch64/tls-relax-large-desc-ie.d: Likewise.
* testsuite/ld-aarch64/tls-tiny-desc.d: Likewise.
* testsuite/ld-aarch64/tls-tiny-gd.d: Likewise.
gas * gas/arm/tls.d: Adjust output to match change in objdump.
2016-10-11 20:50:10 +08:00
|
|
|
+[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <.*>
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against global var defined in exec with larl got access
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x38>
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against local var with larl got access
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x20>
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against hidden var with larl got access
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x40>
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against global var with small got access (no optimization)
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 c0 28 00 04 lg %r3,40\(%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against global var defined in exec with small got access
|
|
|
|
# (no optimization)
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 c0 38 00 04 lg %r3,56\(%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against local var with small got access (no optimization)
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 c0 20 00 04 lg %r3,32\(%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against hidden var with small got access (no optimization)
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 c0 40 00 04 lg %r3,64\(%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# function epilog
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
|
|
|
|
+[0-9a-f]+: 07 fe br %r14
|
2010-09-27 21:33:00 +08:00
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|
2003-01-25 01:20:25 +08:00
|
|
|
|
2004-05-12 01:08:38 +08:00
|
|
|
0+[0-9a-f]+ <_start>:
|
2003-01-25 01:20:25 +08:00
|
|
|
# function prolog
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
|
|
|
|
+[0-9a-f]+: a7 d5 00 16 bras %r13,[0-9a-f]+ <_start\+0x30>
|
2003-01-25 01:20:25 +08:00
|
|
|
# sG6@indntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
|
2016-10-10 23:09:03 +08:00
|
|
|
+[0-9a-f]+: 01 00 18 98 .long 0x01001898
|
2003-01-25 01:20:25 +08:00
|
|
|
# bg6@indntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff d4 .long 0xffffffd4
|
2003-01-25 01:20:25 +08:00
|
|
|
# bl6@indntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff f4 .long 0xfffffff4
|
2003-01-25 01:20:25 +08:00
|
|
|
# sh6@indntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff b4 .long 0xffffffb4
|
2003-01-25 01:20:25 +08:00
|
|
|
# sg3@indntpoff
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
|
|
|
|
+[0-9a-f]+: ff ff ff 68 .long 0xffffff68
|
2003-01-25 01:20:25 +08:00
|
|
|
# function prolog
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: b9 04 00 ef lgr %r14,%r15
|
|
|
|
+[0-9a-f]+: a7 fb ff 60 aghi %r15,-160
|
|
|
|
+[0-9a-f]+: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# extract TCB
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
|
|
|
|
+[0-9a-f]+: eb 94 00 20 00 0d sllg %r9,%r4,32
|
|
|
|
+[0-9a-f]+: b2 4f 00 91 ear %r9,%a1
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE against global var
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 00 00 04 lg %r3,0\(%r13\)
|
|
|
|
+[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
|
|
|
|
+[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE -> LE against global var defined in exec
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 08 00 04 lg %r3,8\(%r13\)
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE -> LE against local var
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 10 00 04 lg %r3,16\(%r13\)
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# IE -> LE against hidden but not local var
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 30 d0 18 00 04 lg %r3,24\(%r13\)
|
|
|
|
+[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# LE, global var defined in exec
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: e3 40 d0 20 00 04 lg %r4,32\(%r13\)
|
|
|
|
+[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
|
2003-01-25 01:20:25 +08:00
|
|
|
# function epilog
|
2004-05-12 01:08:38 +08:00
|
|
|
+[0-9a-f]+: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
|
|
|
|
+[0-9a-f]+: 07 fe br %r14
|
2010-09-27 21:33:00 +08:00
|
|
|
+[0-9a-f]+: 07 07 nopr %r7
|