New issue
Advanced search Search tips

Issue 688443 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2017
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

arm64 native library has potentially unnecessary section: gcc_except_table

Project Member Reported by agrieve@chromium.org, Feb 3 2017

Issue description

eh_frame and eh_frame_hdr are required for unwinding, but afaict, gcc_except_table is needed only to support C++ exceptions...

Eric - can you attach the readelf outputs?
 
ChromePublic arm:
There are 28 section headers, starting at offset 0x290c71c:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .interp           PROGBITS        00237154 000154 000013 00   A  0   0  1
  [ 2] .note.gnu.build-id NOTE            00237168 000168 000024 00   A  0   0  4
  [ 3] .dynsym           DYNSYM          0023718c 00018c 008400 10   A  4   1  4
  [ 4] .dynstr           STRTAB          0023f58c 00858c 01c040 00   A  0   0  1
  [ 5] .hash             HASH            0025b5cc 0245cc 00411c 04   A  3   0  4
  [ 6] .gnu.version      VERSYM          0025f6e8 0286e8 001080 02   A  3   0  2
  [ 7] .gnu.version_d    VERDEF          00260768 029768 00001c 00   A  4   1  4
  [ 8] .gnu.version_r    VERNEED         00260784 029784 000060 00   A  4   3  4
  [ 9] .rel.dyn          LOOS+1          002607e4 0297e4 051a40 01   A  3   0  4
  [10] .rel.plt          REL             002b2224 07b224 000b18 08  AI  3  11  4
  [11] .plt              PROGBITS        002b2d3c 07bd3c 0010b8 00  AX  0   0  4
  [12] .text             PROGBITS        002b3e00 07ce00 2125f18 00  AX  0   0 64
  [13] .rodata           PROGBITS        023d9e00 21a2e00 57c29e 00   A  0   0 256
  [14] .ARM.exidx        ARM_EXIDX       029560a0 271f0a0 0012b8 08  AL 12   0  4
  [15] .ARM.extab        PROGBITS        02957358 2720358 003614 00   A  0   0  4
  [16] .data.rel.ro.local PROGBITS        0295bd00 2723d00 0b5488 00  WA  0   0  8
  [17] .data.rel.ro      PROGBITS        02a11190 27d9190 10ab90 00  WA  0   0 16
  [18] .init_array       INIT_ARRAY      02b1bd20 28e3d20 00011c 00  WA  0   0  4
  [19] .fini_array       FINI_ARRAY      02b1be3c 28e3e3c 000008 00  WA  0   0  4
  [20] .dynamic          DYNAMIC         02b1be44 28e3e44 000130 08  WA  4   0  4
  [21] .got              PROGBITS        02b1bf80 28e3f80 00b080 00  WA  0   0  4
  [22] .data             PROGBITS        02b27000 28ef000 01d53c 00  WA  0   0 32
  [23] .bss              NOBITS          02b44540 290c53c 178868 00  WA  0   0 32
  [24] .comment          PROGBITS        00000000 290c53c 000065 01  MS  0   0  1
  [25] .note.gnu.gold-version NOTE            00000000 290c5a4 00001c 00      0   0  4
  [26] .ARM.attributes   ARM_ATTRIBUTES  00000000 290c5c0 00003c 00      0   0  1
  [27] .shstrtab         STRTAB          00000000 290c5fc 00011e 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)



ChromePublic arm64:
There are 24 section headers, starting at offset 0x40a0c28:

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .note.gnu.build-id NOTE            00000000006681c8 0001c8 000024 00   A  0   0  4
  [ 2] .hash             HASH            00000000006681f0 0001f0 003154 04   A  3   0  8
  [ 3] .dynsym           DYNSYM          000000000066b348 003348 00c960 18   A  4   3  8
  [ 4] .dynstr           STRTAB          0000000000677ca8 00fca8 01ca3f 00   A  0   0  1
  [ 5] .gnu.version      VERSYM          00000000006946e8 02c6e8 0010c8 02   A  3   0  2
  [ 6] .gnu.version_r    VERNEED         00000000006957b0 02d7b0 000060 00   A  4   3  8
  [ 7] .rela.dyn         LOOS+2          0000000000695810 02d810 12e068 01   A  3   0  8
  [ 8] .rela.plt         RELA            00000000007c3878 15b878 0026b8 18  AI  3   9  8
  [ 9] .plt              PROGBITS        00000000007c5f30 15df30 0019f0 10  AX  0   0 16
  [10] .text             PROGBITS        00000000007c7940 15f940 35f7960 00  AX  0   0 64
  [11] .rodata           PROGBITS        0000000003dbf300 3757300 5a4f50 00   A  0   0 256
  [12] .eh_frame_hdr     PROGBITS        0000000004364250 3cfc250 00187c 00   A  0   0  4
  [13] .eh_frame         PROGBITS        0000000004365ad0 3cfdad0 006db0 00   A  0   0  8
  [14] .gcc_except_table PROGBITS        000000000436c880 3d04880 008a74 00   A  0   0  4
  [15] .init_array       INIT_ARRAY      0000000004386070 3d0e070 000230 00  WA  0   0  8
  [16] .fini_array       FINI_ARRAY      00000000043862a0 3d0e2a0 000010 00  WA  0   0  8
  [17] .data.rel.ro      PROGBITS        00000000043862b0 3d0e2b0 352758 00  WA  0   0 16
  [18] .dynamic          DYNAMIC         00000000046d8a08 4060a08 000230 10  WA  4   0  8
  [19] .got              PROGBITS        00000000046d8c38 4060c38 0163c0 08  WA  0   0  8
  [20] .data             PROGBITS        00000000046ef000 4077000 029ae0 00  WA  0   0 32
  [21] .bss              NOBITS          0000000004718ae0 40a0ae0 167400 00  WA  0   0 32
  [22] .comment          PROGBITS        0000000000000000 40a0ae0 000064 01  MS  0   0  1
  [23] .shstrtab         STRTAB          0000000000000000 40a0b44 0000e3 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)
Status: WontFix (was: Available)
arm32: .ARM.extab+.ARM.exidx = 18kb
arm64: .gcc_except_table+eh_frame* = 69kb

Looks like the mystery here is just that perf bots don't (yet) build without unwind info: bug 593106

Sign in to add a comment