[Development] Disabling exception support in QtCore?

Thiago Macieira thiago.macieira at intel.com
Wed Oct 2 00:30:15 CEST 2013


On terça-feira, 1 de outubro de 2013 22:28:53, André Pönitz wrote:
> Perhaps... do we have numbers how much the gain would actually be, say,
> for code size?

All numbers are based on my own QtCore tree, which contains a lot of patches 
on top of current stable, including protected visibility. I will not test the 
pristine tree.

All builds are in release mode and the libraries have been stripped of 
debugging symbols (strip --strip-debug --strip-unneeded). The non-standard 
flags used were:

GCC 4.7.2: -march=corei7-avx -std=c++0x -O3 -maccumulate-outgoing-args -flto
GCC 4.8:.2 (same)
ICC 14.0: -march=corei7-avx -O3 -std=c++0x
Clang 3.3: -march=corei7-avx -O3 -std=c++11
Linker flags (all compilers): -Wl,-O1 -Wl,-z,relro -Wl,--as-needed

The -O3 flag is enables optimisations that increase code size, which means this 
is probably skewed. It's highly unlikely that the exceptional codepath 
increases in size as much as the regular code path, though.

Findings:

- the .gcc_except_table section disappears
- the .eh_frame and .eh_frame_hdr sections remain present, with negligible 
  shrinkage for .eh_frame_hdr (except for ICC)
- the size of the .text section shrinks by 5.7%
- the size of the read-execute ELF segment reduces by 6.5% (same as reported 
  by the /usr/bin/size tool)
- the overall file size also reduces by 6.5%, which is expected since the read-
  only portion of QtCore is roughly 99% of the file size. (interestingly, the 
  actual .text segment is only 57%)

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------

except-clang:

There are 33 section headers, starting at offset 0x4cc1e0:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .dynsym              DYNSYM       0000000000000238 00000238 000210a8 24 A      2   2  8
[ 2] .dynstr              STRTAB       00000000000212e0 000212e0 00032a79  0 A      0   0  1
[ 3] .hash                HASH         0000000000053d60 00053d60 00009830  4 A      1   0  8
[ 4] .gnu.version         GNU_versym   000000000005d590 0005d590 00002c0e  2 A      1   0  2
[ 5] .gnu.version_d       GNU_verdef   00000000000601a0 000601a0 0000001c  0 A      2   1  4
[ 6] .gnu.version_r       GNU_verneed  00000000000601bc 000601bc 00000160  0 A      2   7  4
[ 7] .rela.dyn            RELA         0000000000060320 00060320 00019470 24 A      1   0  8
[ 8] .rela.plt            RELA         0000000000079790 00079790 000019f8 24 A      1  10  8
[ 9] .init                PROGBITS     000000000007b188 0007b188 0000000e  0 AX     0   0  4
[10] .plt                 PROGBITS     000000000007b1a0 0007b1a0 00001160 16 AX     0   0 16
[11] .text                PROGBITS     000000000007c300 0007c300 002b1a30  0 AX     0   0 16
[12] .fini                PROGBITS     000000000032dd30 0032dd30 00000009  0 AX     0   0  4
[13] .gcc_except_table    PROGBITS     000000000032dd3c 0032dd3c 0003c454  0 A      0   0  4
[14] .rodata              PROGBITS     000000000036a1a0 0036a1a0 00103d63  0 A      0   0 32
[15] .interp              PROGBITS     000000000046df10 0046df10 0000001c  0 A      0   0 16
[16] .eh_frame            PROGBITS     000000000046df30 0046df30 00042dac  0 A      0   0  8
[17] .eh_frame_hdr        PROGBITS     00000000004b0cdc 004b0cdc 0000eb04  0 A      0   0  4
[18] .tbss                NOBITS       00000000004c17b0 004c07b0 00000008  0 WAT    0   0  8
[19] .data.rel.ro.local   PROGBITS     00000000004c17b0 004c07b0 000038f8  0 WA     0   0 16
[20] .jcr                 PROGBITS     00000000004c50a8 004c40a8 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     00000000004c50b0 004c40b0 00006ac8  0 WA     0   0 16
[22] .dynamic             DYNAMIC      00000000004cbb78 004cab78 000002b0 16 WA     2   0  8
[23] .got                 PROGBITS     00000000004cbe30 004cae30 000001b8  0 WA     0   0  8
[24] .got.plt             PROGBITS     00000000004cbfe8 004cafe8 000008c0  0 WA     0   0  8
[25] .data                PROGBITS     00000000004cc8b0 004cb8b0 00000770  0 WA     0   0 16
[26] .tm_clone_table      PROGBITS     00000000004cd020 004cc020 00000000  0 WA     0   0  8
[27] .fini_array          FINI_ARRAY   00000000004cd020 004cc020 00000010  0 WA     0   0  8
[28] .init_array          INIT_ARRAY   00000000004cd030 004cc030 00000020  0 WA     0   0  8
[29] .bss                 NOBITS       00000000004cd050 004cc050 000018a0  0 WA     0   0 16
[30] .comment             PROGBITS     0000000000000000 004cc050 0000002d  1 MS     0   0  1
[31] .note.gnu.gold-version NOTE         0000000000000000 004cc080 0000001c  0        0   0  4
[32] .shstrtab            STRTAB       0000000000000000 004cc09c 00000141  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 R   0x8
  INTERP         0x46df10 0x000000000046df10 0x000000000046df10 0x00001c 0x00001c R   0x10
	[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x4bf7e0 0x4bf7e0 R E 0x1000
  LOAD           0x4c07b0 0x00000000004c17b0 0x00000000004c17b0 0x00b8a0 0x00d140 RW  0x1000
  DYNAMIC        0x4cab78 0x00000000004cbb78 0x00000000004cbb78 0x0002b0 0x0002b0 RW  0x8
  GNU_EH_FRAME   0x4b0cdc 0x00000000004b0cdc 0x00000000004b0cdc 0x00eb04 0x00eb04 R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x4c07b0 0x00000000004c17b0 0x00000000004c17b0 0x000000 0x000008 R   0x8
  GNU_RELRO      0x4c07b0 0x00000000004c17b0 0x00000000004c17b0 0x00a850 0x00a850 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .interp]
   02      [RO: .dynsym .dynstr .hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .gcc_except_table .rodata .interp .eh_frame .eh_frame_hdr]
   03      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss
   04      [RELRO: .dynamic]
   05      [RO: .eh_frame_hdr]
   06     
   07      [RELRO: .tbss]
   08      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

except-gcc47:

There are 33 section headers, starting at offset 0x4e5130:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .note.gnu.build-id   NOTE         0000000000000238 00000238 00000024  0 A      0   0  4
[ 2] .dynsym              DYNSYM       0000000000000260 00000260 000211c8 24 A      3   1  8
[ 3] .dynstr              STRTAB       0000000000021428 00021428 00032b0b  0 A      0   0  1
[ 4] .gnu.hash            GNU_HASH     0000000000053f38 00053f38 0000a3c4  0 A      2   0  8
[ 5] .gnu.version         GNU_versym   000000000005e2fc 0005e2fc 00002c26  2 A      2   0  2
[ 6] .gnu.version_d       GNU_verdef   0000000000060f24 00060f24 0000001c  0 A      3   1  4
[ 7] .gnu.version_r       GNU_verneed  0000000000060f40 00060f40 00000170  0 A      3   7  4
[ 8] .rela.dyn            RELA         00000000000610b0 000610b0 00014f70 24 A      2   0  8
[ 9] .rela.plt            RELA         0000000000076020 00076020 00001980 24 A      2  11  8
[10] .init                PROGBITS     00000000000779a0 000779a0 0000000e  0 AX     0   0  4
[11] .plt                 PROGBITS     00000000000779b0 000779b0 00001110 16 AX     0   0 16
[12] .text                PROGBITS     0000000000078ac0 00078ac0 002ca258  0 AX     0   0 16
[13] .fini                PROGBITS     0000000000342d18 00342d18 00000009  0 AX     0   0  4
[14] .gcc_except_table    PROGBITS     0000000000342d24 00342d24 00012be5  0 A      0   0  4
[15] .rodata              PROGBITS     0000000000355920 00355920 0011099b  0 A      0   0 32
[16] .eh_frame            PROGBITS     00000000004662c0 004662c0 0005ffb8  0 A      0   0  8
[17] .eh_frame_hdr        PROGBITS     00000000004c6278 004c6278 000143f4  0 A      0   0  4
[18] .tbss                NOBITS       00000000004dbce0 004dace0 00000008  0 WAT    0   0  8
[19] .data.rel.ro.local   PROGBITS     00000000004dbce0 004dace0 00000bd0  0 WA     0   0 32
[20] .jcr                 PROGBITS     00000000004dc8b0 004db8b0 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     00000000004dc8c0 004db8c0 000083e8  0 WA     0   0 32
[22] .dynamic             DYNAMIC      00000000004e4ca8 004e3ca8 000002b0 16 WA     3   0  8
[23] .got                 PROGBITS     00000000004e4f58 004e3f58 00000090  0 WA     0   0  8
[24] .got.plt             PROGBITS     00000000004e4fe8 004e3fe8 00000898  0 WA     0   0  8
[25] .data                PROGBITS     00000000004e5880 004e4880 000006f0  0 WA     0   0 32
[26] .tm_clone_table      PROGBITS     00000000004e5f70 004e4f70 00000000  0 WA     0   0  8
[27] .fini_array          FINI_ARRAY   00000000004e5f70 004e4f70 00000010  0 WA     0   0  8
[28] .init_array          INIT_ARRAY   00000000004e5f80 004e4f80 00000010  0 WA     0   0  8
[29] .bss                 NOBITS       00000000004e5fa0 004e4f90 00002788  0 WA     0   0 32
[30] .comment             PROGBITS     0000000000000000 004e4f90 0000002d  1 MS     0   0  1
[31] .note.gnu.gold-version NOTE         0000000000000000 004e4fc0 0000001c  0        0   0  4
[32] .shstrtab            STRTAB       0000000000000000 004e4fdc 00000150  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 R   0x8
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x4da66c 0x4da66c R E 0x1000
  LOAD           0x4dace0 0x00000000004dbce0 0x00000000004dbce0 0x00a2b0 0x00ca48 RW  0x1000
  DYNAMIC        0x4e3ca8 0x00000000004e4ca8 0x00000000004e4ca8 0x0002b0 0x0002b0 RW  0x8
  NOTE           0x000238 0x0000000000000238 0x0000000000000238 0x000024 0x000024 R   0x4
  GNU_EH_FRAME   0x4c6278 0x00000000004c6278 0x00000000004c6278 0x0143f4 0x0143f4 R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x4dace0 0x00000000004dbce0 0x00000000004dbce0 0x000000 0x000008 R   0x8
  GNU_RELRO      0x4dace0 0x00000000004dbce0 0x00000000004dbce0 0x009320 0x009320 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .note.gnu.build-id .dynsym .dynstr .gnu.hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .gcc_except_table .rodata .eh_frame .eh_frame_hdr]
   02      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss
   03      [RELRO: .dynamic]
   04      [RO: .note.gnu.build-id]
   05      [RO: .eh_frame_hdr]
   06     
   07      [RELRO: .tbss]
   08      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

except-gcc48:

There are 33 section headers, starting at offset 0x4aa1e0:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .note.gnu.build-id   NOTE         0000000000000238 00000238 00000024  0 A      0   0  4
[ 2] .dynsym              DYNSYM       0000000000000260 00000260 000211c8 24 A      3   1  8
[ 3] .dynstr              STRTAB       0000000000021428 00021428 00032b0b  0 A      0   0  1
[ 4] .gnu.hash            GNU_HASH     0000000000053f38 00053f38 0000a3c4  0 A      2   0  8
[ 5] .gnu.version         GNU_versym   000000000005e2fc 0005e2fc 00002c26  2 A      2   0  2
[ 6] .gnu.version_d       GNU_verdef   0000000000060f24 00060f24 0000001c  0 A      3   1  4
[ 7] .gnu.version_r       GNU_verneed  0000000000060f40 00060f40 00000170  0 A      3   7  4
[ 8] .rela.dyn            RELA         00000000000610b0 000610b0 00014f70 24 A      2   0  8
[ 9] .rela.plt            RELA         0000000000076020 00076020 00001980 24 A      2  11  8
[10] .init                PROGBITS     00000000000779a0 000779a0 0000000e  0 AX     0   0  4
[11] .plt                 PROGBITS     00000000000779b0 000779b0 00001110 16 AX     0   0 16
[12] .text                PROGBITS     0000000000078ac0 00078ac0 002a9de8  0 AX     0   0 16
[13] .fini                PROGBITS     00000000003228a8 003228a8 00000009  0 AX     0   0  4
[14] .rodata              PROGBITS     00000000003228c0 003228c0 00110658  0 A      0   0 32
[15] .gcc_except_table    PROGBITS     0000000000432f18 00432f18 00010427  0 A      0   0  4
[16] .eh_frame            PROGBITS     0000000000443340 00443340 0004e540  0 A      0   0  8
[17] .eh_frame_hdr        PROGBITS     0000000000491880 00491880 0000dd34  0 A      0   0  4
[18] .tbss                NOBITS       00000000004a0d20 0049fd20 00000008  0 WAT    0   0 32
[19] .data.rel.ro.local   PROGBITS     00000000004a0d20 0049fd20 00000ba8  0 WA     0   0 32
[20] .jcr                 PROGBITS     00000000004a18c8 004a08c8 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     00000000004a18e0 004a08e0 000083c8  0 WA     0   0 32
[22] .dynamic             DYNAMIC      00000000004a9ca8 004a8ca8 000002b0 16 WA     3   0  8
[23] .got                 PROGBITS     00000000004a9f58 004a8f58 00000090  0 WA     0   0  8
[24] .got.plt             PROGBITS     00000000004a9fe8 004a8fe8 00000898  0 WA     0   0  8
[25] .data                PROGBITS     00000000004aa880 004a9880 00000780  0 WA     0   0 32
[26] .tm_clone_table      PROGBITS     00000000004ab000 004aa000 00000000  0 WA     0   0  8
[27] .fini_array          FINI_ARRAY   00000000004ab000 004aa000 00000010  0 WA     0   0  8
[28] .init_array          INIT_ARRAY   00000000004ab010 004aa010 00000010  0 WA     0   0  8
[29] .bss                 NOBITS       00000000004ab020 004aa020 00002bc8  0 WA     0   0 32
[30] .comment             PROGBITS     0000000000000000 004aa020 00000054  1 MS     0   0  1
[31] .note.gnu.gold-version NOTE         0000000000000000 004aa074 0000001c  0        0   0  4
[32] .shstrtab            STRTAB       0000000000000000 004aa090 00000150  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 R   0x8
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x49f5b4 0x49f5b4 R E 0x1000
  LOAD           0x49fd20 0x00000000004a0d20 0x00000000004a0d20 0x00a300 0x00cec8 RW  0x1000
  DYNAMIC        0x4a8ca8 0x00000000004a9ca8 0x00000000004a9ca8 0x0002b0 0x0002b0 RW  0x8
  NOTE           0x000238 0x0000000000000238 0x0000000000000238 0x000024 0x000024 R   0x4
  GNU_EH_FRAME   0x491880 0x0000000000491880 0x0000000000491880 0x00dd34 0x00dd34 R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x49fd20 0x00000000004a0d20 0x00000000004a0d20 0x000000 0x000008 R   0x20
  GNU_RELRO      0x49fd20 0x00000000004a0d20 0x00000000004a0d20 0x0092e0 0x0092e0 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .note.gnu.build-id .dynsym .dynstr .gnu.hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .gcc_except_table .eh_frame .eh_frame_hdr]
   02      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss
   03      [RELRO: .dynamic]
   04      [RO: .note.gnu.build-id]
   05      [RO: .eh_frame_hdr]
   06     
   07      [RELRO: .tbss]
   08      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

except-icc:

There are 35 section headers, starting at offset 0x7ce1b8:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .note.gnu.build-id   NOTE         0000000000000270 00000270 00000024  0 A      0   0  4
[ 2] .dynsym              DYNSYM       0000000000000298 00000298 00024b70 24 A      3   2  8
[ 3] .dynstr              STRTAB       0000000000024e08 00024e08 000396f9  0 A      0   0  1
[ 4] .hash                HASH         000000000005e508 0005e508 0000a1fc  4 A      2   0  8
[ 5] .gnu.version         GNU_versym   0000000000068704 00068704 000030f4  2 A      2   0  2
[ 6] .gnu.version_d       GNU_verdef   000000000006b7f8 0006b7f8 0000001c  0 A      3   1  4
[ 7] .gnu.version_r       GNU_verneed  000000000006b814 0006b814 00000150  0 A      3   7  4
[ 8] .rela.dyn            RELA         000000000006b968 0006b968 000265e0 24 A      2   0  8
[ 9] .rela.plt            RELA         0000000000091f48 00091f48 00001980 24 A      2  11  8
[10] .init                PROGBITS     00000000000938c8 000938c8 0000000e  0 AX     0   0  4
[11] .plt                 PROGBITS     00000000000938e0 000938e0 00001110 16 AX     0   0 16
[12] .text                PROGBITS     00000000000949f0 000949f0 004cf860  0 AX     0   0 16
[13] .fini                PROGBITS     0000000000564250 00564250 00000009  0 AX     0   0  4
[14] .gcc_except_table    PROGBITS     000000000056425c 0056425c 0003b690  0 A      0   0  4
[15] .rodata              PROGBITS     000000000059f900 0059f900 001093c0  0 A      0   0 32
[16] .interp              PROGBITS     00000000006a8cc0 006a8cc0 0000001c  0 A      0   0  4
[17] .eh_frame            PROGBITS     00000000006a8ce0 006a8ce0 000fd93c  0 A      0   0  8
[18] .eh_frame_hdr        PROGBITS     00000000007a661c 007a661c 00010c4c  0 A      0   0  4
[19] .tbss                NOBITS       00000000007b8ee0 007b7ee0 00000008  0 WAT    0   0  8
[20] .data.rel.ro.local   PROGBITS     00000000007b8ee0 007b7ee0 00008b00  0 WA     0   0 32
[21] .jcr                 PROGBITS     00000000007c19e0 007c09e0 00000008  0 WA     0   0  8
[22] .data.rel.ro         PROGBITS     00000000007c1a00 007c0a00 00001c60  0 WA     0   0 32
[23] .dynamic             DYNAMIC      00000000007c3660 007c2660 000002d0 16 WA     3   0  8
[24] .got                 PROGBITS     00000000007c3940 007c2940 000006a8  0 WA     0   0  8
[25] .got.plt             PROGBITS     00000000007c3fe8 007c2fe8 00000898  0 WA     0   0  8
[26] .data                PROGBITS     00000000007c4880 007c3880 00008ecc  0 WA     0   0 32
[27] .tm_clone_table      PROGBITS     00000000007cd750 007cc750 00000000  0 WA     0   0  8
[28] .fini_array          FINI_ARRAY   00000000007cd750 007cc750 00000010  0 WA     0   0  8
[29] .init_array          INIT_ARRAY   00000000007cd760 007cc760 00000048  0 WA     0   0  8
[30] .bss                 NOBITS       00000000007cd7c0 007cc7a8 00000ff0  0 WA     0   0 32
[31] .data                NOBITS       00000000007ce7c0 007cc7a8 00000ba8  0 WA     0   0 32
[32] .comment             PROGBITS     0000000000000000 007cc7a8 0000189d  0        0   0  1
[33] .note.gnu.gold-version NOTE         0000000000000000 007ce048 0000001c  0        0   0  4
[34] .shstrtab            STRTAB       0000000000000000 007ce064 00000154  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x000230 0x000230 R   0x8
  INTERP         0x6a8cc0 0x00000000006a8cc0 0x00000000006a8cc0 0x00001c 0x00001c R   0x4
	[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x7b7268 0x7b7268 R E 0x1000
  LOAD           0x7b7ee0 0x00000000007b8ee0 0x00000000007b8ee0 0x0148c8 0x016488 RW  0x1000
  DYNAMIC        0x7c2660 0x00000000007c3660 0x00000000007c3660 0x0002d0 0x0002d0 RW  0x8
  NOTE           0x000270 0x0000000000000270 0x0000000000000270 0x000024 0x000024 R   0x4
  GNU_EH_FRAME   0x7a661c 0x00000000007a661c 0x00000000007a661c 0x010c4c 0x010c4c R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x7b7ee0 0x00000000007b8ee0 0x00000000007b8ee0 0x000000 0x000008 R   0x8
  GNU_RELRO      0x7b7ee0 0x00000000007b8ee0 0x00000000007b8ee0 0x00b120 0x00b120 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .interp]
   02      [RO: .note.gnu.build-id .dynsym .dynstr .hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .gcc_except_table .rodata .interp .eh_frame .eh_frame_hdr]
   03      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss .data
   04      [RELRO: .dynamic]
   05      [RO: .note.gnu.build-id]
   06      [RO: .eh_frame_hdr]
   07     
   08      [RELRO: .tbss]
   09      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

noexcept-clang:

There are 32 section headers, starting at offset 0x45d090:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .dynsym              DYNSYM       0000000000000238 00000238 00020d30 24 A      2   2  8
[ 2] .dynstr              STRTAB       0000000000020f68 00020f68 00032616  0 A      0   0  1
[ 3] .hash                HASH         0000000000053580 00053580 0000979c  4 A      1   0  8
[ 4] .gnu.version         GNU_versym   000000000005cd1c 0005cd1c 00002bc4  2 A      1   0  2
[ 5] .gnu.version_d       GNU_verdef   000000000005f8e0 0005f8e0 0000001c  0 A      2   1  4
[ 6] .gnu.version_r       GNU_verneed  000000000005f8fc 0005f8fc 00000140  0 A      2   6  4
[ 7] .rela.dyn            RELA         000000000005fa40 0005fa40 00018f60 24 A      1   0  8
[ 8] .rela.plt            RELA         00000000000789a0 000789a0 00001938 24 A      1  10  8
[ 9] .init                PROGBITS     000000000007a2d8 0007a2d8 0000000e  0 AX     0   0  4
[10] .plt                 PROGBITS     000000000007a2f0 0007a2f0 000010e0 16 AX     0   0 16
[11] .text                PROGBITS     000000000007b3d0 0007b3d0 002837c0  0 AX     0   0 16
[12] .fini                PROGBITS     00000000002feb90 002feb90 00000009  0 AX     0   0  4
[13] .rodata              PROGBITS     00000000002feba0 002feba0 00103ac3  0 A      0   0 32
[14] .interp              PROGBITS     0000000000402670 00402670 0000001c  0 A      0   0 16
[15] .eh_frame            PROGBITS     0000000000402690 00402690 000401b4  0 A      0   0  8
[16] .eh_frame_hdr        PROGBITS     0000000000442844 00442844 0000e79c  0 A      0   0  4
[17] .tbss                NOBITS       00000000004528a0 004518a0 00000008  0 WAT    0   0  8
[18] .data.rel.ro.local   PROGBITS     00000000004528a0 004518a0 000038f8  0 WA     0   0 16
[19] .jcr                 PROGBITS     0000000000456198 00455198 00000008  0 WA     0   0  8
[20] .data.rel.ro         PROGBITS     00000000004561a0 004551a0 00006a08  0 WA     0   0 16
[21] .dynamic             DYNAMIC      000000000045cba8 0045bba8 000002a0 16 WA     2   0  8
[22] .got                 PROGBITS     000000000045ce48 0045be48 000001a0  0 WA     0   0  8
[23] .got.plt             PROGBITS     000000000045cfe8 0045bfe8 00000880  0 WA     0   0  8
[24] .data                PROGBITS     000000000045d870 0045c870 00000670  0 WA     0   0 16
[25] .tm_clone_table      PROGBITS     000000000045dee0 0045cee0 00000000  0 WA     0   0  8
[26] .fini_array          FINI_ARRAY   000000000045dee0 0045cee0 00000010  0 WA     0   0  8
[27] .init_array          INIT_ARRAY   000000000045def0 0045cef0 00000020  0 WA     0   0  8
[28] .bss                 NOBITS       000000000045df10 0045cf10 000018a0  0 WA     0   0 16
[29] .comment             PROGBITS     0000000000000000 0045cf10 0000002d  1 MS     0   0  1
[30] .note.gnu.gold-version NOTE         0000000000000000 0045cf40 0000001c  0        0   0  4
[31] .shstrtab            STRTAB       0000000000000000 0045cf5c 0000012f  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 R   0x8
  INTERP         0x402670 0x0000000000402670 0x0000000000402670 0x00001c 0x00001c R   0x10
	[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x450fe0 0x450fe0 R E 0x1000
  LOAD           0x4518a0 0x00000000004528a0 0x00000000004528a0 0x00b670 0x00cf10 RW  0x1000
  DYNAMIC        0x45bba8 0x000000000045cba8 0x000000000045cba8 0x0002a0 0x0002a0 RW  0x8
  GNU_EH_FRAME   0x442844 0x0000000000442844 0x0000000000442844 0x00e79c 0x00e79c R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x4518a0 0x00000000004528a0 0x00000000004528a0 0x000000 0x000008 R   0x8
  GNU_RELRO      0x4518a0 0x00000000004528a0 0x00000000004528a0 0x00a760 0x00a760 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .interp]
   02      [RO: .dynsym .dynstr .hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .interp .eh_frame .eh_frame_hdr]
   03      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss
   04      [RELRO: .dynamic]
   05      [RO: .eh_frame_hdr]
   06     
   07      [RELRO: .tbss]
   08      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

noexcept-gcc47:

There are 32 section headers, starting at offset 0x4a00c0:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .note.gnu.build-id   NOTE         0000000000000238 00000238 00000024  0 A      0   0  4
[ 2] .dynsym              DYNSYM       0000000000000260 00000260 00020da8 24 A      3   1  8
[ 3] .dynstr              STRTAB       0000000000021008 00021008 000325f6  0 A      0   0  1
[ 4] .gnu.hash            GNU_HASH     0000000000053600 00053600 0000a348  0 A      2   0  8
[ 5] .gnu.version         GNU_versym   000000000005d948 0005d948 00002bce  2 A      2   0  2
[ 6] .gnu.version_d       GNU_verdef   0000000000060518 00060518 0000001c  0 A      3   1  4
[ 7] .gnu.version_r       GNU_verneed  0000000000060534 00060534 00000140  0 A      3   6  4
[ 8] .rela.dyn            RELA         0000000000060678 00060678 00014d30 24 A      2   0  8
[ 9] .rela.plt            RELA         00000000000753a8 000753a8 000018a8 24 A      2  11  8
[10] .init                PROGBITS     0000000000076c50 00076c50 0000000e  0 AX     0   0  4
[11] .plt                 PROGBITS     0000000000076c60 00076c60 00001080 16 AX     0   0 16
[12] .text                PROGBITS     0000000000077ce0 00077ce0 0029c1a8  0 AX     0   0 16
[13] .fini                PROGBITS     0000000000313e88 00313e88 00000009  0 AX     0   0  4
[14] .rodata              PROGBITS     0000000000313ea0 00313ea0 00110843  0 A      0   0 32
[15] .eh_frame            PROGBITS     00000000004246e8 004246e8 0005c7b8  0 A      0   0  8
[16] .eh_frame_hdr        PROGBITS     0000000000480ea0 00480ea0 000141f4  0 A      0   0  4
[17] .tbss                NOBITS       0000000000496e20 00495e20 00000008  0 WAT    0   0  8
[18] .data.rel.ro.local   PROGBITS     0000000000496e20 00495e20 00000bb0  0 WA     0   0 32
[19] .jcr                 PROGBITS     00000000004979d0 004969d0 00000008  0 WA     0   0  8
[20] .data.rel.ro         PROGBITS     00000000004979e0 004969e0 000082e8  0 WA     0   0 32
[21] .dynamic             DYNAMIC      000000000049fcc8 0049ecc8 000002a0 16 WA     3   0  8
[22] .got                 PROGBITS     000000000049ff70 0049ef70 00000078  0 WA     0   0  8
[23] .got.plt             PROGBITS     000000000049ffe8 0049efe8 00000850  0 WA     0   0  8
[24] .data                PROGBITS     00000000004a0840 0049f840 000006d0  0 WA     0   0 32
[25] .tm_clone_table      PROGBITS     00000000004a0f10 0049ff10 00000000  0 WA     0   0  8
[26] .fini_array          FINI_ARRAY   00000000004a0f10 0049ff10 00000010  0 WA     0   0  8
[27] .init_array          INIT_ARRAY   00000000004a0f20 0049ff20 00000010  0 WA     0   0  8
[28] .bss                 NOBITS       00000000004a0f40 0049ff30 00002788  0 WA     0   0 32
[29] .comment             PROGBITS     0000000000000000 0049ff30 0000002d  1 MS     0   0  1
[30] .note.gnu.gold-version NOTE         0000000000000000 0049ff60 0000001c  0        0   0  4
[31] .shstrtab            STRTAB       0000000000000000 0049ff7c 0000013e  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 R   0x8
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x495094 0x495094 R E 0x1000
  LOAD           0x495e20 0x0000000000496e20 0x0000000000496e20 0x00a110 0x00c8a8 RW  0x1000
  DYNAMIC        0x49ecc8 0x000000000049fcc8 0x000000000049fcc8 0x0002a0 0x0002a0 RW  0x8
  NOTE           0x000238 0x0000000000000238 0x0000000000000238 0x000024 0x000024 R   0x4
  GNU_EH_FRAME   0x480ea0 0x0000000000480ea0 0x0000000000480ea0 0x0141f4 0x0141f4 R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x495e20 0x0000000000496e20 0x0000000000496e20 0x000000 0x000008 R   0x8
  GNU_RELRO      0x495e20 0x0000000000496e20 0x0000000000496e20 0x0091e0 0x0091e0 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .note.gnu.build-id .dynsym .dynstr .gnu.hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame .eh_frame_hdr]
   02      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss
   03      [RELRO: .dynamic]
   04      [RO: .note.gnu.build-id]
   05      [RO: .eh_frame_hdr]
   06     
   07      [RELRO: .tbss]
   08      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

noexcept-gcc48:

There are 32 section headers, starting at offset 0x46d138:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .note.gnu.build-id   NOTE         0000000000000238 00000238 00000024  0 A      0   0  4
[ 2] .dynsym              DYNSYM       0000000000000260 00000260 00020da8 24 A      3   1  8
[ 3] .dynstr              STRTAB       0000000000021008 00021008 000325f6  0 A      0   0  1
[ 4] .gnu.hash            GNU_HASH     0000000000053600 00053600 0000a348  0 A      2   0  8
[ 5] .gnu.version         GNU_versym   000000000005d948 0005d948 00002bce  2 A      2   0  2
[ 6] .gnu.version_d       GNU_verdef   0000000000060518 00060518 0000001c  0 A      3   1  4
[ 7] .gnu.version_r       GNU_verneed  0000000000060534 00060534 00000140  0 A      3   6  4
[ 8] .rela.dyn            RELA         0000000000060678 00060678 00014d30 24 A      2   0  8
[ 9] .rela.plt            RELA         00000000000753a8 000753a8 000018a8 24 A      2  11  8
[10] .init                PROGBITS     0000000000076c50 00076c50 0000000e  0 AX     0   0  4
[11] .plt                 PROGBITS     0000000000076c60 00076c60 00001080 16 AX     0   0 16
[12] .text                PROGBITS     0000000000077ce0 00077ce0 00283468  0 AX     0   0 16
[13] .fini                PROGBITS     00000000002fb148 002fb148 00000009  0 AX     0   0  4
[14] .rodata              PROGBITS     00000000002fb160 002fb160 001104b1  0 A      0   0 32
[15] .eh_frame            PROGBITS     000000000040b618 0040b618 00049fa8  0 A      0   0  8
[16] .eh_frame_hdr        PROGBITS     00000000004555c0 004555c0 0000d7cc  0 A      0   0  4
[17] .tbss                NOBITS       0000000000463dc0 00462dc0 00000008  0 WAT    0   0 32
[18] .data.rel.ro.local   PROGBITS     0000000000463dc0 00462dc0 00000bc8  0 WA     0   0 32
[19] .jcr                 PROGBITS     0000000000464988 00463988 00000008  0 WA     0   0  8
[20] .data.rel.ro         PROGBITS     00000000004649a0 004639a0 00008330  0 WA     0   0 32
[21] .dynamic             DYNAMIC      000000000046ccd0 0046bcd0 000002a0 16 WA     3   0  8
[22] .got                 PROGBITS     000000000046cf70 0046bf70 00000078  0 WA     0   0  8
[23] .got.plt             PROGBITS     000000000046cfe8 0046bfe8 00000850  0 WA     0   0  8
[24] .data                PROGBITS     000000000046d840 0046c840 00000724  0 WA     0   0 32
[25] .tm_clone_table      PROGBITS     000000000046df68 0046cf68 00000000  0 WA     0   0  8
[26] .fini_array          FINI_ARRAY   000000000046df68 0046cf68 00000010  0 WA     0   0  8
[27] .init_array          INIT_ARRAY   000000000046df78 0046cf78 00000010  0 WA     0   0  8
[28] .bss                 NOBITS       000000000046dfa0 0046cf88 00002a74  0 WA     0   0 32
[29] .comment             PROGBITS     0000000000000000 0046cf88 00000054  1 MS     0   0  1
[30] .note.gnu.gold-version NOTE         0000000000000000 0046cfdc 0000001c  0        0   0  4
[31] .shstrtab            STRTAB       0000000000000000 0046cff8 0000013e  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 R   0x8
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x462d8c 0x462d8c R E 0x1000
  LOAD           0x462dc0 0x0000000000463dc0 0x0000000000463dc0 0x00a1c8 0x00cc54 RW  0x1000
  DYNAMIC        0x46bcd0 0x000000000046ccd0 0x000000000046ccd0 0x0002a0 0x0002a0 RW  0x8
  NOTE           0x000238 0x0000000000000238 0x0000000000000238 0x000024 0x000024 R   0x4
  GNU_EH_FRAME   0x4555c0 0x00000000004555c0 0x00000000004555c0 0x00d7cc 0x00d7cc R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x462dc0 0x0000000000463dc0 0x0000000000463dc0 0x000000 0x000008 R   0x20
  GNU_RELRO      0x462dc0 0x0000000000463dc0 0x0000000000463dc0 0x009240 0x009240 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .note.gnu.build-id .dynsym .dynstr .gnu.hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame .eh_frame_hdr]
   02      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss
   03      [RELRO: .dynamic]
   04      [RO: .note.gnu.build-id]
   05      [RO: .eh_frame_hdr]
   06     
   07      [RELRO: .tbss]
   08      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]

noexcept-icc:

There are 34 section headers, starting at offset 0x752128:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .note.gnu.build-id   NOTE         0000000000000270 00000270 00000024  0 A      0   0  4
[ 2] .dynsym              DYNSYM       0000000000000298 00000298 000246d8 24 A      3   2  8
[ 3] .dynstr              STRTAB       0000000000024970 00024970 0003942a  0 A      0   0  1
[ 4] .hash                HASH         000000000005dda0 0005dda0 0000a138  4 A      2   0  8
[ 5] .gnu.version         GNU_versym   0000000000067ed8 00067ed8 00003092  2 A      2   0  2
[ 6] .gnu.version_d       GNU_verdef   000000000006af6c 0006af6c 0000001c  0 A      3   1  4
[ 7] .gnu.version_r       GNU_verneed  000000000006af88 0006af88 00000130  0 A      3   6  4
[ 8] .rela.dyn            RELA         000000000006b0b8 0006b0b8 000262f8 24 A      2   0  8
[ 9] .rela.plt            RELA         00000000000913b0 000913b0 00001890 24 A      2  11  8
[10] .init                PROGBITS     0000000000092c40 00092c40 0000000e  0 AX     0   0  4
[11] .plt                 PROGBITS     0000000000092c50 00092c50 00001070 16 AX     0   0 16
[12] .text                PROGBITS     0000000000093cc0 00093cc0 0049fb80  0 AX     0   0 16
[13] .fini                PROGBITS     0000000000533840 00533840 00000009  0 AX     0   0  4
[14] .rodata              PROGBITS     0000000000533860 00533860 00109200  0 A      0   0 32
[15] .interp              PROGBITS     000000000063ca60 0063ca60 0000001c  0 A      0   0  4
[16] .eh_frame            PROGBITS     000000000063ca80 0063ca80 000efb9c  0 A      0   0  8
[17] .eh_frame_hdr        PROGBITS     000000000072c61c 0072c61c 0000f6b4  0 A      0   0  4
[18] .tbss                NOBITS       000000000073ce80 0073be80 00000008  0 WAT    0   0  8
[19] .data.rel.ro.local   PROGBITS     000000000073ce80 0073be80 00008b80  0 WA     0   0 32
[20] .jcr                 PROGBITS     0000000000745a00 00744a00 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     0000000000745a20 00744a20 00001c60  0 WA     0   0 32
[22] .dynamic             DYNAMIC      0000000000747680 00746680 000002d0 16 WA     3   0  8
[23] .got                 PROGBITS     0000000000747968 00746968 00000680  0 WA     0   0  8
[24] .got.plt             PROGBITS     0000000000747fe8 00746fe8 00000848  0 WA     0   0  8
[25] .data                PROGBITS     0000000000748840 00747840 00008e8c  0 WA     0   0 32
[26] .tm_clone_table      PROGBITS     00000000007516d0 007506d0 00000000  0 WA     0   0  8
[27] .fini_array          FINI_ARRAY   00000000007516d0 007506d0 00000010  0 WA     0   0  8
[28] .init_array          INIT_ARRAY   00000000007516e0 007506e0 00000048  0 WA     0   0  8
[29] .bss                 NOBITS       0000000000751740 00750728 00001070  0 WA     0   0 32
[30] .data                NOBITS       00000000007527c0 00750728 00000ba8  0 WA     0   0 32
[31] .comment             PROGBITS     0000000000000000 00750728 0000189d  0        0   0  1
[32] .note.gnu.gold-version NOTE         0000000000000000 00751fc8 0000001c  0        0   0  4
[33] .shstrtab            STRTAB       0000000000000000 00751fe4 00000142  0        0   0  1

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x000230 0x000230 R   0x8
  INTERP         0x63ca60 0x000000000063ca60 0x000000000063ca60 0x00001c 0x00001c R   0x4
	[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x73bcd0 0x73bcd0 R E 0x1000
  LOAD           0x73be80 0x000000000073ce80 0x000000000073ce80 0x0148a8 0x0164e8 RW  0x1000
  DYNAMIC        0x746680 0x0000000000747680 0x0000000000747680 0x0002d0 0x0002d0 RW  0x8
  NOTE           0x000270 0x0000000000000270 0x0000000000000270 0x000024 0x000024 R   0x4
  GNU_EH_FRAME   0x72c61c 0x000000000072c61c 0x000000000072c61c 0x00f6b4 0x00f6b4 R   0x4
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0
  TLS            0x73be80 0x000000000073ce80 0x000000000073ce80 0x000000 0x000008 R   0x8
  GNU_RELRO      0x73be80 0x000000000073ce80 0x000000000073ce80 0x00b180 0x00b180 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01      [RO: .interp]
   02      [RO: .note.gnu.build-id .dynsym .dynstr .hash .gnu.version .gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .interp .eh_frame .eh_frame_hdr]
   03      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got] <RELRO: .got.plt> .data .fini_array .init_array .bss .data
   04      [RELRO: .dynamic]
   05      [RO: .note.gnu.build-id]
   06      [RO: .eh_frame_hdr]
   07     
   08      [RELRO: .tbss]
   09      [RELRO: .tbss .data.rel.ro.local .jcr .data.rel.ro .dynamic .got]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: calc.csv
Type: text/csv
Size: 1859 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20131001/02a8e202/attachment.csv>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20131001/02a8e202/attachment.sig>


More information about the Development mailing list