[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