With a source as simple as the following: -----8<-------- int foo(int a, int b) { return a + b; } -----8<--------
a .eh_frame section is created on x86-64 when using -fno-exceptions. The section is *not* created on x86. on x86-64: $ g++ -o test.o -c test.cpp -fno-exceptions $ objdump -h test.o test.o: file format elf64-x86-64 Sections: Idx Name Size VMA LMA File off Algn 0 .text 00000015 0000000000000000 0000000000000000 00000040 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000000 0000000000000000 0000000000000000 00000058 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 0000000000000000 0000000000000000 00000058 2**2 ALLOC 3 .comment 0000001d 0000000000000000 0000000000000000 00000058 2**0 CONTENTS, READONLY 4 .note.GNU-stack 00000000 0000000000000000 0000000000000000 00000075 2**0 CONTENTS, READONLY 5 .eh_frame 00000038 0000000000000000 0000000000000000 00000078 2**3 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA on x86: $ g++ -o test.o -c test.cpp -fno-exceptions $ objdump -h test.o test.o: file format elf32-i386 Sections: Idx Name Size VMA LMA File off Algn 0 .text 0000000e 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000000 00000000 00000000 00000044 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00000000 00000000 00000044 2**2 ALLOC 3 .comment 0000001d 00000000 00000000 00000044 2**0 CONTENTS, READONLY 4 .note.GNU-stack 00000000 00000000 00000000 00000061 2**0 CONTENTS, READONLY The section is created on x86 when not using -fno-exceptions, which is not a surprise. -- Summary: .eh_frame section created despite -fno-exceptions Product: gcc Version: 4.4.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mh+gcc at glandium dot org GCC build triplet: x86_64-linux-gnu GCC host triplet: x86_64-linux-gnu GCC target triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43232