https://sourceware.org/bugzilla/show_bug.cgi?id=28494
Bug ID: 28494 Summary: gold combines different aligned/padded SHT_NOTE sections in the same PT_NOTE segment Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: gold Assignee: ccoutant at gmail dot com Reporter: mark at klomp dot org CC: ian at airs dot com, mliska at suse dot cz Target Milestone: --- Minimal reproducer: $ echo 'main() { return 0; }' | gcc -x c - -fuse-ld=gold && ./elflint --gnu-ld a.out <stdin>:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int] phdr[6]: unknown object file note type 32 with owner name '' at offset 48 phdr[6]: extra 72 bytes after last note $ ld.gold --version GNU gold (GNU Binutils; openSUSE Tumbleweed 2.37.20210803-1) 1.16 $ eu-readelf -l a.out Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align PHDR 0x000040 0x0000000000400040 0x0000000000400040 0x000230 0x000230 R 0x8 INTERP 0x000270 0x0000000000400270 0x0000000000400270 0x00001c 0x00001c R 0x1 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] LOAD 0x000000 0x0000000000400000 0x0000000000400000 0x000688 0x000688 R E 0x1000 LOAD 0x000e08 0x0000000000401e08 0x0000000000401e08 0x000208 0x000209 RW 0x1000 DYNAMIC 0x000e18 0x0000000000401e18 0x0000000000401e18 0x0001b0 0x0001b0 RW 0x8 NOTE 0x0002b0 0x00000000004002b0 0x00000000004002b0 0x000030 0x000030 R 0x8 NOTE 0x00028c 0x000000000040028c 0x000000000040028c 0x000078 0x000078 R 0x4 GNU_EH_FRAME 0x000664 0x0000000000400664 0x0000000000400664 0x000024 0x000024 R 0x4 GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x10 GNU_RELRO 0x000e08 0x0000000000401e08 0x0000000000401e08 0x0001f8 0x0001f8 RW 0x8 Section to Segment mapping: Segment Sections... 00 01 [RO: .interp] 02 [RO: .interp .note.ABI-tag .note.gnu.property .note.gnu.build-id .dynsym .dynstr .gnu.hash .hash .gnu.version .gnu.version_r .rela.dyn .init .text .fini .rodata .eh_frame .eh_frame_hdr] 03 [RELRO: .fini_array .init_array .dynamic .got .got.plt] .data .bss 04 [RELRO: .dynamic] 05 [RO: .note.gnu.property] 06 [RO: .note.ABI-tag .note.gnu.property .note.gnu.build-id] 07 [RO: .eh_frame_hdr] 08 09 [RELRO: .fini_array .init_array .dynamic .got .got.plt] Note: 05 [RO: .note.gnu.property] 06 [RO: .note.ABI-tag .note.gnu.property .note.gnu.build-id] Both segment 05 and segment 06 cover .note.gnu.property, and segment 06 mixes notes using alignment 8 (causing different padding) and alignment 4 (.note.gnu.property is sandwiched between .note.ABI-tag and .note.gnu.build-id). This makes it impossible to properly parse the second PT_NOTE segment. -- You are receiving this mail because: You are on the CC list for the bug.