[PATCH] D63280: [llvm-objdump] Use <first-symbol>-<offset> as the section start symbol
Yuanfang Chen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 21 16:01:31 PDT 2019
ychen added a comment.
To help writing up the discussion thread, I'm trying to gather some data on how each target handle the case with GNU objdump. Weird that I could not reproduce the results @MaskRay @peter.smith was able to obtain. This is not to show favor for either choice but to understand the current situation on GNU side so we make a sensible decision.
➜ Bld lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
risc-v
➜ Bld /usr/riscv64-linux-gnu/bin/objdump --version
GNU objdump (GNU Binutils for Ubuntu) 2.30
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
➜ Bld file /usr/riscv64-linux-gnu/lib/libgomp.so.1.0.0
/usr/riscv64-linux-gnu/lib/libgomp.so.1.0.0: ELF 64-bit LSB shared object, UCB RISC-V, version 1 (SYSV), dynamically linked, BuildID[sha1]=5af4a2eff63e94f36b40ad145b1c281908cfe8f9, stripped
➜ Bld /usr/riscv64-linux-gnu/bin/objdump -d /usr/riscv64-linux-gnu/lib/libgomp.so.1.0.0 | head -n 20
/usr/riscv64-linux-gnu/lib/libgomp.so.1.0.0: file format elf64-littleriscv
Disassembly of section .plt:
0000000000006dc0 <pthread_attr_setdetachstate at plt-0x20>:
6dc0: 00016397 auipc t2,0x16
6dc4: 41c30333 sub t1,t1,t3
6dc8: 4203be03 ld t3,1056(t2) # 1d1e0 <acc_is_present_array_h_@@OACC_2.0+0x3046>
6dcc: fd430313 addi t1,t1,-44
6dd0: 42038293 addi t0,t2,1056
6dd4: 00135313 srli t1,t1,0x1
6dd8: 0082b283 ld t0,8(t0)
6ddc: 000e0067 jr t3
0000000000006de0 <pthread_attr_setdetachstate at plt>:
6de0: 00016e17 auipc t3,0x16
6de4: 410e3e03 ld t3,1040(t3) # 1d1f0 <pthread_attr_setdetachstate at GLIBC_2.27>
6de8: 000e0367 jalr t1,t3
aarch64
➜ Bld /usr/aarch64-linux-gnu/bin/objdump --version
GNU objdump (GNU Binutils for Ubuntu) 2.30
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
➜ Bld file /usr/aarch64-linux-gnu/lib/libgomp.so.1.0.0
/usr/aarch64-linux-gnu/lib/libgomp.so.1.0.0: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=1106de22dfcbfbef7445bbcbe38479bcec8b8780, stripped
➜ Bld /usr/aarch64-linux-gnu/bin/objdump -d /usr/aarch64-linux-gnu/lib/libgomp.so.1.0.0 | head -n 30
/usr/aarch64-linux-gnu/lib/libgomp.so.1.0.0: file format elf64-littleaarch64
Disassembly of section .init:
0000000000006db8 <.init>:
6db8: a9bf7bfd stp x29, x30, [sp, #-16]!
6dbc: 910003fd mov x29, sp
6dc0: 94000a77 bl 979c <acc_async_test_all at plt+0x246c>
6dc4: a8c17bfd ldp x29, x30, [sp], #16
6dc8: d65f03c0 ret
Disassembly of section .plt:
0000000000006dd0 <memcpy at plt-0x20>:
6dd0: a9bf7bf0 stp x16, x30, [sp, #-16]!
6dd4: b00001b0 adrp x16, 3b000 <acc_is_present_array_h_@@OACC_2.0+0x17a3c>
6dd8: f947fe11 ldr x17, [x16, #4088]
6ddc: 913fe210 add x16, x16, #0xff8
6de0: d61f0220 br x17
6de4: d503201f nop
6de8: d503201f nop
6dec: d503201f nop
0000000000006df0 <memcpy at plt>:
6df0: d00001b0 adrp x16, 3c000 <memcpy at GLIBC_2.17>
6df4: f9400211 ldr x17, [x16]
6df8: 91000210 add x16, x16, #0x0
6dfc: d61f0220 br x17
Test with GNU bintutils master branch just in case:
➜ Bld ~/Src/binutils-bld/binutils/objdump -d /usr/riscv64-linux-gnu/lib/libgomp.so.1.0.0 | head -n 20
/usr/riscv64-linux-gnu/lib/libgomp.so.1.0.0: file format elf64-littleriscv
Disassembly of section .plt:
0000000000006dc0 <pthread_attr_setdetachstate at plt-0x20>:
6dc0: 00016397 auipc t2,0x16
6dc4: 41c30333 sub t1,t1,t3
6dc8: 4203be03 ld t3,1056(t2) # 1d1e0 <acc_is_present_array_h_@@OACC_2.0+0x3046>
6dcc: fd430313 addi t1,t1,-44
6dd0: 42038293 addi t0,t2,1056
6dd4: 00135313 srli t1,t1,0x1
6dd8: 0082b283 ld t0,8(t0)
6ddc: 000e0067 jr t3
0000000000006de0 <pthread_attr_setdetachstate at plt>:
6de0: 00016e17 auipc t3,0x16
6de4: 410e3e03 ld t3,1040(t3) # 1d1f0 <pthread_attr_setdetachstate at GLIBC_2.27>
6de8: 000e0367 jalr t1,t3
➜ Bld ~/Src/binutils-bld/binutils/objdump -d /usr/aarch64-linux-gnu/lib/libgomp.so.1.0.0 | head -n 30
/usr/aarch64-linux-gnu/lib/libgomp.so.1.0.0: file format elf64-littleaarch64
Disassembly of section .init:
0000000000006db8 <.init>:
6db8: a9bf7bfd stp x29, x30, [sp, #-16]!
6dbc: 910003fd mov x29, sp
6dc0: 94000a77 bl 979c <acc_async_test_all at plt+0x246c>
6dc4: a8c17bfd ldp x29, x30, [sp], #16
6dc8: d65f03c0 ret
Disassembly of section .plt:
0000000000006dd0 <memcpy at plt-0x20>:
6dd0: a9bf7bf0 stp x16, x30, [sp, #-16]!
6dd4: b00001b0 adrp x16, 3b000 <acc_is_present_array_h_@@OACC_2.0+0x17a3c>
6dd8: f947fe11 ldr x17, [x16, #4088]
6ddc: 913fe210 add x16, x16, #0xff8
6de0: d61f0220 br x17
6de4: d503201f nop
6de8: d503201f nop
6dec: d503201f nop
0000000000006df0 <memcpy at plt>:
6df0: d00001b0 adrp x16, 3c000 <memcpy at GLIBC_2.17>
6df4: f9400211 ldr x17, [x16]
6df8: 91000210 add x16, x16, #0x0
6dfc: d61f0220 br x17
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63280/new/
https://reviews.llvm.org/D63280
More information about the llvm-commits
mailing list