
#10779: .so files in 64-bit Debian builds are 4% larger than they have to be -------------------------------------+------------------------------------- Reporter: thomie | Owner: Type: bug | Status: new Priority: low | Milestone: Component: Build System | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by thomie): Note the following differences below (I don't know what any of this means): * filepath-debian.so contains the program header `GNU_EH_FRAME` instead of `GNU_RELRO`. * filepath-debian.so is missing the section to segment mapping for segment 05 (.init_array .fini_array .jcr .dynamic .got). {{{ $ readelf --program-headers filepath-ubuntu.so Elf file type is DYN (Shared object file) Entry point 0xcac0 There are 6 program headers, starting at offset 64 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x000000000001b884 0x000000000001b884 R E 200000 LOAD 0x000000000001bbe8 0x000000000021bbe8 0x000000000021bbe8 0x0000000000001e30 0x0000000000001e38 RW 200000 DYNAMIC 0x000000000001bc00 0x000000000021bc00 0x000000000021bc00 0x0000000000000270 0x0000000000000270 RW 8 NOTE 0x0000000000000190 0x0000000000000190 0x0000000000000190 0x0000000000000024 0x0000000000000024 R 4 GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 RW 10 GNU_RELRO 0x000000000001bbe8 0x000000000021bbe8 0x000000000021bbe8 0x0000000000000418 0x0000000000000418 R 1 Section to Segment mapping: Segment Sections... 00 .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame 01 .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss 02 .dynamic 03 .note.gnu.build-id 04 05 .init_array .fini_array .jcr .dynamic .got }}} {{{ $ readelf --program-headers filepath-debian.so Elf file type is DYN (Shared object file) Entry point 0xd480 There are 6 program headers, starting at offset 64 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x000000000001c2b4 0x000000000001c2b4 R E 200000 LOAD 0x000000000001d000 0x000000000021d000 0x000000000021d000 0x0000000000001e38 0x0000000000001e40 RW 200000 DYNAMIC 0x000000000001d018 0x000000000021d018 0x000000000021d018 0x0000000000000280 0x0000000000000280 RW 8 NOTE 0x0000000000000190 0x0000000000000190 0x0000000000000190 0x0000000000000024 0x0000000000000024 R 4 GNU_EH_FRAME 0x000000000001c258 0x000000000001c258 0x000000000001c258 0x0000000000000014 0x0000000000000014 R 4 GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 RW 8 Section to Segment mapping: Segment Sections... 00 .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame 01 .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss 02 .dynamic 03 .note.gnu.build-id 04 .eh_frame_hdr 05 }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10779#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler