[GHC] #10779: .so files in 64-bit Debian builds are 4% larger than they have to be
GHC
ghc-devs at haskell.org
Wed Aug 19 15:09:39 UTC 2015
#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
More information about the ghc-tickets
mailing list