mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
a24bb4f0cc
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.
379 lines
13 KiB
Plaintext
379 lines
13 KiB
Plaintext
#source: tlspic3.s
|
|
#source: tlspic2.s
|
|
#as: --64
|
|
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
|
|
#objdump: -drj.text -Mintel64
|
|
#target: x86_64-*-*
|
|
|
|
.*: +file format elf64-x86-64.*
|
|
|
|
Disassembly of section .text:
|
|
|
|
0+1000 <fn1>:
|
|
+1000: 55[ ]+push %rbp
|
|
+1001: 48 89 e5[ ]+mov %rsp,%rbp
|
|
+1004: 90[ ]+nop *
|
|
+1005: 90[ ]+nop *
|
|
+1006: 90[ ]+nop *
|
|
+1007: 90[ ]+nop *
|
|
# GD
|
|
+1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
+100f: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 sg1
|
|
+1010: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+1017: [0-9a-f ]+
|
|
+1018: 90[ ]+nop *
|
|
+1019: 90[ ]+nop *
|
|
+101a: 90[ ]+nop *
|
|
+101b: 90[ ]+nop *
|
|
# GD -> IE because variable is referenced through IE too
|
|
+101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+1023: 00 00 *
|
|
+1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+102c: 90[ ]+nop *
|
|
+102d: 90[ ]+nop *
|
|
+102e: 90[ ]+nop *
|
|
+102f: 90[ ]+nop *
|
|
# GD against local variable
|
|
+1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
+1037: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
|
|
+1038: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+103f: [0-9a-f ]+
|
|
+1040: 90[ ]+nop *
|
|
+1041: 90[ ]+nop *
|
|
+1042: 90[ ]+nop *
|
|
+1043: 90[ ]+nop *
|
|
# GD -> IE against local variable referenced through IE too
|
|
+1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+104b: 00 00 *
|
|
+104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x24
|
|
+1054: 90[ ]+nop *
|
|
+1055: 90[ ]+nop *
|
|
+1056: 90[ ]+nop *
|
|
+1057: 90[ ]+nop *
|
|
# GD against hidden and local variable
|
|
+1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
+105f: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
|
|
+1060: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+1067: [0-9a-f ]+
|
|
+1068: 90[ ]+nop *
|
|
+1069: 90[ ]+nop *
|
|
+106a: 90[ ]+nop *
|
|
+106b: 90[ ]+nop *
|
|
# GD -> IE against hidden and local variable referenced through IE too
|
|
+106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+1073: 00 00 *
|
|
+1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x44
|
|
+107c: 90[ ]+nop *
|
|
+107d: 90[ ]+nop *
|
|
+107e: 90[ ]+nop *
|
|
+107f: 90[ ]+nop *
|
|
# GD against hidden but not local variable
|
|
+1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
+1087: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
|
|
+1088: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+108f: [0-9a-f ]+
|
|
+1090: 90[ ]+nop *
|
|
+1091: 90[ ]+nop *
|
|
+1092: 90[ ]+nop *
|
|
+1093: 90[ ]+nop *
|
|
# GD -> IE against hidden but not local variable referenced through IE too
|
|
+1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+109b: 00 00 *
|
|
+109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x64
|
|
+10a4: 90[ ]+nop *
|
|
+10a5: 90[ ]+nop *
|
|
+10a6: 90[ ]+nop *
|
|
+10a7: 90[ ]+nop *
|
|
# LD
|
|
+10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+10af: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+10b5: 90[ ]+nop *
|
|
+10b6: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx
|
|
+10bd: 90[ ]+nop *
|
|
+10be: 90[ ]+nop *
|
|
+10bf: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9
|
|
+10c6: 90[ ]+nop *
|
|
+10c7: 90[ ]+nop *
|
|
+10c8: 90[ ]+nop *
|
|
+10c9: 90[ ]+nop *
|
|
# LD against hidden and local variables
|
|
+10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+10d1: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+10d7: 90[ ]+nop *
|
|
+10d8: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx
|
|
+10df: 90[ ]+nop *
|
|
+10e0: 90[ ]+nop *
|
|
+10e1: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx
|
|
+10e8: 90[ ]+nop *
|
|
+10e9: 90[ ]+nop *
|
|
+10ea: 90[ ]+nop *
|
|
+10eb: 90[ ]+nop *
|
|
# LD against hidden but not local variables
|
|
+10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+10f3: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+10f9: 90[ ]+nop *
|
|
+10fa: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12
|
|
+1101: 90[ ]+nop *
|
|
+1102: 90[ ]+nop *
|
|
+1103: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx
|
|
+110a: 90[ ]+nop *
|
|
+110b: 90[ ]+nop *
|
|
# IE against global var
|
|
+110c: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
|
|
+1113: 00 00 *
|
|
+1115: 90[ ]+nop *
|
|
+1116: 90[ ]+nop *
|
|
+1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+111e: 90[ ]+nop *
|
|
+111f: 90[ ]+nop *
|
|
+1120: 90[ ]+nop *
|
|
+1121: 90[ ]+nop *
|
|
# IE against local var
|
|
+1122: 64 4c 8b 34 25 00 00[ ]+mov %fs:0x0,%r14
|
|
+1129: 00 00 *
|
|
+112b: 90[ ]+nop *
|
|
+112c: 90[ ]+nop *
|
|
+112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x24
|
|
+1134: 90[ ]+nop *
|
|
+1135: 90[ ]+nop *
|
|
+1136: 90[ ]+nop *
|
|
+1137: 90[ ]+nop *
|
|
# IE against hidden and local var
|
|
+1138: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
|
|
+113f: 00 00 *
|
|
+1141: 90[ ]+nop *
|
|
+1142: 90[ ]+nop *
|
|
+1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x44
|
|
+114a: 90[ ]+nop *
|
|
+114b: 90[ ]+nop *
|
|
+114c: 90[ ]+nop *
|
|
+114d: 90[ ]+nop *
|
|
# IE against hidden but not local var
|
|
+114e: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
|
|
+1155: 00 00 *
|
|
+1157: 90[ ]+nop *
|
|
+1158: 90[ ]+nop *
|
|
+1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x64
|
|
+1160: 90[ ]+nop *
|
|
+1161: 90[ ]+nop *
|
|
+1162: 90[ ]+nop *
|
|
+1163: 90[ ]+nop *
|
|
# Direct access through %fs
|
|
# IE against global var
|
|
+1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 sg5
|
|
+116b: 90[ ]+nop *
|
|
+116c: 90[ ]+nop *
|
|
+116d: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx
|
|
+1171: 90[ ]+nop *
|
|
+1172: 90[ ]+nop *
|
|
+1173: 90[ ]+nop *
|
|
+1174: 90[ ]+nop *
|
|
# IE against local var
|
|
+1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x30
|
|
+117c: 90[ ]+nop *
|
|
+117d: 90[ ]+nop *
|
|
+117e: 64 4d 8b 22[ ]+mov %fs:\(%r10\),%r12
|
|
+1182: 90[ ]+nop *
|
|
+1183: 90[ ]+nop *
|
|
+1184: 90[ ]+nop *
|
|
+1185: 90[ ]+nop *
|
|
# IE against hidden and local var
|
|
+1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x50
|
|
+118d: 90[ ]+nop *
|
|
+118e: 90[ ]+nop *
|
|
+118f: 64 48 8b 12[ ]+mov %fs:\(%rdx\),%rdx
|
|
+1193: 90[ ]+nop *
|
|
+1194: 90[ ]+nop *
|
|
+1195: 90[ ]+nop *
|
|
+1196: 90[ ]+nop *
|
|
# IE against hidden but not local var
|
|
+1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x70
|
|
+119e: 90[ ]+nop *
|
|
+119f: 90[ ]+nop *
|
|
+11a0: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx
|
|
+11a4: 90[ ]+nop *
|
|
+11a5: 90[ ]+nop *
|
|
+11a6: 90[ ]+nop *
|
|
+11a7: 90[ ]+nop *
|
|
+11a8: 49 bb ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%r11
|
|
+11af: ([0-9a-f]{2} ){3}
|
|
+11b2: 41 57[ ]+push %r15
|
|
+11b4: 41 57[ ]+push %r15
|
|
+11b6: 4c 8d 3d eb ff ff ff[ ]+lea -0x15\(%rip\),%r15 +# [0-9a-f]+ <fn1\+0x[0-9a-f]+>
|
|
+11bd: 4d 01 df[ ]+add %r11,%r15
|
|
+11c0: 90[ ]+nop *
|
|
+11c1: 90[ ]+nop *
|
|
# -mcmodel=large sequences
|
|
#
|
|
# -mcmodel=large GD
|
|
+11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 sg1
|
|
+11c9: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+11d0: ([0-9a-f]{2} ){3}
|
|
+11d3: 4c 01 f8[ ]+add %r15,%rax
|
|
+11d6: ff d0[ ]+callq \*%rax
|
|
+11d8: 90[ ]+nop *
|
|
+11d9: 90[ ]+nop *
|
|
+11da: 90[ ]+nop *
|
|
+11db: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE because variable is referenced through IE too
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+11dc: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+11e3: 00 00
|
|
+11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+11ec: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+11f2: 90[ ]+nop *
|
|
+11f3: 90[ ]+nop *
|
|
+11f4: 90[ ]+nop *
|
|
+11f5: 90[ ]+nop *
|
|
# -mcmodel=large GD against local variable
|
|
+11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
|
|
+11fd: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+1204: ([0-9a-f]{2} ){3}
|
|
+1207: 4c 01 f8[ ]+add %r15,%rax
|
|
+120a: ff d0[ ]+callq \*%rax
|
|
+120c: 90[ ]+nop *
|
|
+120d: 90[ ]+nop *
|
|
+120e: 90[ ]+nop *
|
|
+120f: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE against local variable referenced through IE too
|
|
+1210: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+1217: 00 00
|
|
+1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x24
|
|
+1220: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+1226: 90[ ]+nop *
|
|
+1227: 90[ ]+nop *
|
|
+1228: 90[ ]+nop *
|
|
+1229: 90[ ]+nop *
|
|
# -mcmodel=large GD against hidden and local variable
|
|
+122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
|
|
+1231: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+1238: ([0-9a-f]{2} ){3}
|
|
+123b: 4c 01 f8[ ]+add %r15,%rax
|
|
+123e: ff d0[ ]+callq \*%rax
|
|
+1240: 90[ ]+nop *
|
|
+1241: 90[ ]+nop *
|
|
+1242: 90[ ]+nop *
|
|
+1243: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE against hidden and local variable referenced through IE too
|
|
+1244: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+124b: 00 00
|
|
+124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x44
|
|
+1254: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+125a: 90[ ]+nop *
|
|
+125b: 90[ ]+nop *
|
|
+125c: 90[ ]+nop *
|
|
+125d: 90[ ]+nop *
|
|
# -mcmodel=large GD against hidden but not local variable
|
|
+125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
|
|
+1265: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+126c: ([0-9a-f]{2} ){3}
|
|
+126f: 4c 01 f8[ ]+add %r15,%rax
|
|
+1272: ff d0[ ]+callq \*%rax
|
|
+1274: 90[ ]+nop *
|
|
+1275: 90[ ]+nop *
|
|
+1276: 90[ ]+nop *
|
|
+1277: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE against hidden but not local variable referenced through IE too
|
|
+1278: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+127f: 00 00
|
|
+1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x64
|
|
+1288: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+128e: 90[ ]+nop *
|
|
+128f: 90[ ]+nop *
|
|
+1290: 90[ ]+nop *
|
|
+1291: 90[ ]+nop *
|
|
# -mcmodel=large LD
|
|
+1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+1299: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+12a0: ([0-9a-f]{2} ){3}
|
|
+12a3: 4c 01 f8[ ]+add %r15,%rax
|
|
+12a6: ff d0[ ]+callq \*%rax
|
|
+12a8: 90[ ]+nop *
|
|
+12a9: 90[ ]+nop *
|
|
+12aa: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx
|
|
+12b1: 90[ ]+nop *
|
|
+12b2: 90[ ]+nop *
|
|
+12b3: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9
|
|
+12ba: 90[ ]+nop *
|
|
+12bb: 90[ ]+nop *
|
|
+12bc: 90[ ]+nop *
|
|
+12bd: 90[ ]+nop *
|
|
# -mcmodel=large LD against hidden and local variables
|
|
+12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+12c5: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+12cc: ([0-9a-f]{2} ){3}
|
|
+12cf: 4c 01 f8[ ]+add %r15,%rax
|
|
+12d2: ff d0[ ]+callq \*%rax
|
|
+12d4: 90[ ]+nop *
|
|
+12d5: 90[ ]+nop *
|
|
+12d6: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx
|
|
+12dd: 90[ ]+nop *
|
|
+12de: 90[ ]+nop *
|
|
+12df: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx
|
|
+12e6: 90[ ]+nop *
|
|
+12e7: 90[ ]+nop *
|
|
+12e8: 90[ ]+nop *
|
|
+12e9: 90[ ]+nop *
|
|
# -mcmodel=large LD against hidden but not local variables
|
|
+12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+12f1: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_GLOB_DAT __tls_get_addr
|
|
+12f8: ([0-9a-f]{2} ){3}
|
|
+12fb: 4c 01 f8[ ]+add %r15,%rax
|
|
+12fe: ff d0[ ]+callq \*%rax
|
|
+1300: 90[ ]+nop *
|
|
+1301: 90[ ]+nop *
|
|
+1302: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12
|
|
+1309: 90[ ]+nop *
|
|
+130a: 90[ ]+nop *
|
|
+130b: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx
|
|
+1312: 90[ ]+nop *
|
|
+1313: 90[ ]+nop *
|
|
+1314: 41 5f[ ]+pop %r15
|
|
+1316: 41 5f[ ]+pop %r15
|
|
+1318: c9[ ]+leaveq
|
|
+1319: c3[ ]+retq
|