arm64 native library has potentially unnecessary section: gcc_except_table |
||
Issue descriptioneh_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?
,
Feb 3 2017
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)
,
Feb 6 2017
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 |
||
Comment 1 by agrieve@chromium.org
, Feb 3 2017