public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/56287] New: __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none
@ 2013-02-11 14:59 honyakeprt at centrum dot cz
2013-02-11 15:20 ` [Bug c++/56287] " rguenth at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: honyakeprt at centrum dot cz @ 2013-02-11 14:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56287
Bug #: 56287
Summary: __do_global_ctors_aux() crashing when LTO enabled with
flto-partition=none
Classification: Unclassified
Product: gcc
Version: 4.7.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: honyakeprt@centrum.cz
Hi,
I am using gcc 4.7.2 under cygwin
Using built-in specs.
COLLECT_GCC=./powerpc-unknown-eabi-gcc-4.7.2
COLLECT_LTO_WRAPPER=/home/JKe/cross/libexec/gcc/powerpc-unknown-eabi/4.7.2/lto-w
rapper.exe
Target: powerpc-unknown-eabi
Configured with: .......
Tmp/cross-toolchain-mpc8xx-eabi-tmp/gcc-4.7.2/configure
--enable-languages=c,c++ --config-cache --prefix=/h
ome/JKe/cross --target=powerpc-unknown-eabi --with-cpu=860 --without-fp
--with-f
loat=soft --disable-nls --disable-shared --disable-libssp --disable-libgomp
--di
sable-libmudflap --disable-libquadmath --disable-multilib
--disable-decimal-floa
t --disable-fixed-point --enable-threads=posix --with-newlib --with-gnu-ld
--wit
h-gnu-as --enable-lto
Thread model: posix
gcc version 4.7.2 (GCC)
when I enable compilation/linking with LTO partitioning NONE, the .ctors
constructor table gets somehow damaged. The symbol __CTOR_END__ points before
the __CTOR_LIST__!!! Therefore the __do_global_ctors_aux() function is
crashing.
Here is an example:
Compiler flags : -O2 -flto -fdata-sections -ffunction-sections
-mno-strict-align -g3 -Wall -Wpointer-arith -Wwrite-strings -Wunused-parameter
-Wextra -DHAVE_SNPRINTF -Wformat -Wformat-security -fcheck-new
-Wnon-virtual-dtor -Wctor-dtor-privacy -mno-relocatable -mno-relocatable-lib
-mcpu=860 -meabi -msdata=sysv -fno-exceptions
A) Crashing configuration
Linker flags: -Wl,--gc-sections -Wl,-flto=jobserver -flto-partition=none -O2
-static
.ctor table from .map file
**************************
.ctors 0x00186950 0x14
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
.ctors 0x00186950 0x0
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/ecrti.o
0x00186950 __CTOR_LIST__
.ctors 0x00186950 0xc
/cygdrive/c/Users/JKe/AppData/Local/Temp/ccT7Msbu.lto.o
.ctors 0x0018695c 0x4
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/../../../../powerpc-unknown-eabi/lib/libstdc++.a(eh_alloc.o)
.ctors 0x00186960 0x4
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/../../../../powerpc-unknown-eabi/lib/libstdc++.a(eh_globals.o)
.ctors 0x00186964 0x0
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/ecrtn.o
0x00186964 __CTOR_END__
*(SORT(.ctors.*))
*(.ctors)
__CTOR Symbols using objdump tool (note that local are used in reality)
*********************************
00186958 l O .ctors 00000004 __CTOR_LIST__.1431
00186954 l O .ctors 00000004 __CTOR_END__.585871
00186950 g O .ctors 00000000 __CTOR_LIST__
00186964 g O .ctors 00000000 __CTOR_END__
B) Not crashing configuration (using default LTO partitioning)
Linker flags: -Wl,--gc-sections -Wl,-flto=jobserver -O2 -static
.ctor table from .map file
**************************
.ctors 0x00187a70 0x14
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
.ctors 0x00187a70 0x0
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/ecrti.o
0x00187a70 __CTOR_LIST__
.ctors 0x00187a70 0x4
/cygdrive/c/Users/JKe/AppData/Local/Temp/ccYYi7V7.ltrans24.ltrans.o
.ctors 0x00187a74 0x8
/cygdrive/c/Users/JKe/AppData/Local/Temp/ccYYi7V7.ltrans25.ltrans.o
.ctors 0x00187a7c 0x4
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/../../../../powerpc-unknown-eabi/lib/libstdc++.a(eh_alloc.o)
.ctors 0x00187a80 0x4
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/../../../../powerpc-unknown-eabi/lib/libstdc++.a(eh_globals.o)
.ctors 0x00187a84 0x0
/home/JKe/cross/lib/gcc/powerpc-unknown-eabi/4.7.2/ecrtn.o
0x00187a84 __CTOR_END__
*(SORT(.ctors.*))
*(.ctors)
__CTOR Symbols using objdump tool (note that local are used in reality)
*********************************
00187a70 l O .ctors 00000004 __CTOR_LIST__.1431.20271
00187a78 l O .ctors 00000004 __CTOR_END__.603481.26462
00187a70 g O .ctors 00000000 __CTOR_LIST__
00187a84 g O .ctors 00000000 __CTOR_END__
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/56287] __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none
2013-02-11 14:59 [Bug c++/56287] New: __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none honyakeprt at centrum dot cz
@ 2013-02-11 15:20 ` rguenth at gcc dot gnu.org
2013-02-11 15:48 ` honyakeprt at centrum dot cz
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-02-11 15:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56287
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |powerpc-unknown-eabi
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2013-02-11
Host| |cygwin
Ever Confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-11 15:19:52 UTC ---
Did the crt files somehow get LTO bytecode? That shouldn't happen. Please
show objdump -h of the used crtbegin.o/crtend.o files.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/56287] __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none
2013-02-11 14:59 [Bug c++/56287] New: __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none honyakeprt at centrum dot cz
2013-02-11 15:20 ` [Bug c++/56287] " rguenth at gcc dot gnu.org
@ 2013-02-11 15:48 ` honyakeprt at centrum dot cz
2013-02-11 16:11 ` rguenth at gcc dot gnu.org
2015-03-31 10:44 ` paolo.carlini at oracle dot com
3 siblings, 0 replies; 5+ messages in thread
From: honyakeprt at centrum dot cz @ 2013-02-11 15:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56287
--- Comment #2 from Jan Keprt <honyakeprt at centrum dot cz> 2013-02-11 15:48:01 UTC ---
(In reply to comment #1)
> Did the crt files somehow get LTO bytecode? That shouldn't happen. Please
> show objdump -h of the used crtbegin.o/crtend.o files.
Here it is:
$ ~/cross/bin/powerpc-unknown-eabi-objdump.exe -h crtbegin.o
crtbegin.o: file format elf32-powerpc
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000020 00000000 00000000 00000034 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00000000 00000000 00000054 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00000000 00000000 00000054 2**0
ALLOC
3 .gnu.lto_.jmpfuncs.60ec31b70d4f2ad9 00000110 00000000 00000000 00000054
2**0
CONTENTS, READONLY, EXCLUDE
4 .gnu.lto_.inline.60ec31b70d4f2ad9 0000006f 00000000 00000000 00000164
2*
*0
CONTENTS, READONLY, EXCLUDE
5 .gnu.lto_.pureconst.60ec31b70d4f2ad9 00000020 00000000 00000000 000001d3
2**0
CONTENTS, READONLY, EXCLUDE
6 .gnu.lto_deregister_tm_clones.60ec31b70d4f2ad9 00000260 00000000 00000000
000001f3 2**0
CONTENTS, READONLY, EXCLUDE
7 .gnu.lto_register_tm_clones.60ec31b70d4f2ad9 00000293 00000000 00000000
0
0000453 2**0
CONTENTS, READONLY, EXCLUDE
8 .gnu.lto___do_global_dtors_aux.60ec31b70d4f2ad9 000003c3 00000000
00000000
000006e6 2**0
CONTENTS, READONLY, EXCLUDE
9 .gnu.lto_call___do_global_dtors_aux.60ec31b70d4f2ad9 0000013c 00000000
000
00000 00000aa9 2**0
CONTENTS, READONLY, EXCLUDE
10 .gnu.lto_frame_dummy.60ec31b70d4f2ad9 00000285 00000000 00000000
00000be5
2**0
CONTENTS, READONLY, EXCLUDE
11 .gnu.lto_call_frame_dummy.60ec31b70d4f2ad9 0000013b 00000000 00000000
000
00e6a 2**0
CONTENTS, READONLY, EXCLUDE
12 .gnu.lto_.cgraph.60ec31b70d4f2ad9 000000a4 00000000 00000000 00000fa5
2*
*0
CONTENTS, READONLY, EXCLUDE
13 .gnu.lto_.vars.60ec31b70d4f2ad9 0000003f 00000000 00000000 00001049
2**0
CONTENTS, READONLY, EXCLUDE
14 .gnu.lto_.refs.60ec31b70d4f2ad9 00000037 00000000 00000000 00001088
2**0
CONTENTS, READONLY, EXCLUDE
15 .gnu.lto_.statics.60ec31b70d4f2ad9 00000014 00000000 00000000 000010bf
2
**0
CONTENTS, READONLY, EXCLUDE
16 .gnu.lto_.decls.60ec31b70d4f2ad9 00000bb0 00000000 00000000 000010d3
2**
0
CONTENTS, READONLY, EXCLUDE
17 .gnu.lto_.symtab.60ec31b70d4f2ad9 00000116 00000000 00000000 00001c83
2*
*0
CONTENTS, READONLY, EXCLUDE
18 .gnu.lto_.opts 0000018a 00000000 00000000 00001d99 2**0
CONTENTS, READONLY, EXCLUDE
19 .ctors 00000004 00000000 00000000 00001f24 2**2
CONTENTS, ALLOC, LOAD, DATA
20 .dtors 00000004 00000000 00000000 00001f28 2**2
CONTENTS, ALLOC, LOAD, DATA
21 .eh_frame 00000000 00000000 00000000 00001f2c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
22 .jcr 00000000 00000000 00000000 00001f2c 2**2
CONTENTS, ALLOC, LOAD, DATA
23 .tm_clone_table 00000000 00000000 00000000 00001f2c 2**2
CONTENTS, ALLOC, LOAD, DATA
24 .text.deregister_tm_clones 00000038 00000000 00000000 00001f2c 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
25 .text.register_tm_clones 0000003c 00000000 00000000 00001f64 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
26 .data.__dso_handle 00000004 00000000 00000000 00001fa0 2**2
CONTENTS, ALLOC, LOAD, DATA
27 .text.__do_global_dtors_aux 000000c8 00000000 00000000 00001fa4 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
28 .text.call___do_global_dtors_aux 0000000c 00000000 00000000 0000206c
2**
2
CONTENTS, ALLOC, LOAD, READONLY, CODE
29 .fini 00000004 00000000 00000000 00002078 2**0
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
30 .text.frame_dummy 0000006c 00000000 00000000 0000207c 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
31 .text.call_frame_dummy 0000000c 00000000 00000000 000020e8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
32 .init 00000004 00000000 00000000 000020f4 2**0
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
33 .bss.completed.3973 00000001 00000000 00000000 000020f8 2**0
ALLOC
34 .bss.dtor_idx.3975 00000004 00000000 00000000 000020f8 2**2
ALLOC
35 .bss.object.3988 00000018 00000000 00000000 000020f8 2**2
ALLOC
36 .comment 00000012 00000000 00000000 000020f8 2**0
CONTENTS, READONLY
$ ~/cross/bin/powerpc-unknown-eabi-objdump.exe -h crtend.o
crtend.o: file format elf32-powerpc
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000010 00000000 00000000 00000034 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00000000 00000000 00000044 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00000000 00000000 00000044 2**0
ALLOC
3 .gnu.lto_.jmpfuncs.f5543a1e693b4bff 0000001b 00000000 00000000 00000044
2**0
CONTENTS, READONLY, EXCLUDE
4 .gnu.lto_.inline.f5543a1e693b4bff 00000037 00000000 00000000 0000005f
2*
*0
CONTENTS, READONLY, EXCLUDE
5 .gnu.lto_.pureconst.f5543a1e693b4bff 00000018 00000000 00000000 00000096
2**0
CONTENTS, READONLY, EXCLUDE
6 .gnu.lto___do_global_ctors_aux.f5543a1e693b4bff 000001f9 00000000
00000000
000000ae 2**0
CONTENTS, READONLY, EXCLUDE
7 .gnu.lto_call___do_global_ctors_aux.f5543a1e693b4bff 0000013f 00000000
000
00000 000002a7 2**0
CONTENTS, READONLY, EXCLUDE
8 .gnu.lto_.cgraph.f5543a1e693b4bff 00000037 00000000 00000000 000003e6
2*
*0
CONTENTS, READONLY, EXCLUDE
9 .gnu.lto_.vars.f5543a1e693b4bff 0000002a 00000000 00000000 0000041d
2**0
CONTENTS, READONLY, EXCLUDE
10 .gnu.lto_.refs.f5543a1e693b4bff 00000018 00000000 00000000 00000447
2**0
CONTENTS, READONLY, EXCLUDE
11 .gnu.lto_.statics.f5543a1e693b4bff 00000014 00000000 00000000 0000045f
2
**0
CONTENTS, READONLY, EXCLUDE
12 .gnu.lto_.decls.f5543a1e693b4bff 000004ec 00000000 00000000 00000473
2**
0
CONTENTS, READONLY, EXCLUDE
13 .gnu.lto_.symtab.f5543a1e693b4bff 00000037 00000000 00000000 0000095f
2*
*0
CONTENTS, READONLY, EXCLUDE
14 .gnu.lto_.opts 0000018a 00000000 00000000 00000996 2**0
CONTENTS, READONLY, EXCLUDE
15 .ctors 00000004 00000000 00000000 00000b20 2**2
CONTENTS, ALLOC, LOAD, DATA
16 .dtors 00000004 00000000 00000000 00000b24 2**2
CONTENTS, ALLOC, LOAD, DATA
17 .eh_frame 00000004 00000000 00000000 00000b28 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
18 .jcr 00000004 00000000 00000000 00000b2c 2**2
CONTENTS, ALLOC, LOAD, DATA
19 .tm_clone_table 00000000 00000000 00000000 00000b30 2**2
CONTENTS, ALLOC, LOAD, DATA
20 .text.__do_global_ctors_aux 0000004c 00000000 00000000 00000b30 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
21 .text.call___do_global_ctors_aux 0000000c 00000000 00000000 00000b7c
2**
2
CONTENTS, ALLOC, LOAD, READONLY, CODE
22 .init 00000004 00000000 00000000 00000b88 2**0
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
23 .comment 00000012 00000000 00000000 00000b8c 2**0
CONTENTS, READONLY
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/56287] __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none
2013-02-11 14:59 [Bug c++/56287] New: __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none honyakeprt at centrum dot cz
2013-02-11 15:20 ` [Bug c++/56287] " rguenth at gcc dot gnu.org
2013-02-11 15:48 ` honyakeprt at centrum dot cz
@ 2013-02-11 16:11 ` rguenth at gcc dot gnu.org
2015-03-31 10:44 ` paolo.carlini at oracle dot com
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-02-11 16:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56287
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-11 16:10:40 UTC ---
Yeah, they shouldn't have any .gnu.lto_* sections because we don't handle
constraints on .ctors/.dtors sections properly.
Which means you somehow ended up compiling them with -flto - don't.
Honza, I suppose there is no good way to ensure linker-command-line ordering
of decls with used attribute? (__CTOR_END__ also seems to lack that attribute)
Supposedly CRTSTUFF_T_CFLAGS unconditionally should get -fno-lto (not sure
if anybody builds with CFLAGS_FOR_TARGET=-flto or CFLAGS=-flto).
I believe the fact that it works without -flto-partition=none is by luck
and not by design.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/56287] __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none
2013-02-11 14:59 [Bug c++/56287] New: __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none honyakeprt at centrum dot cz
` (2 preceding siblings ...)
2013-02-11 16:11 ` rguenth at gcc dot gnu.org
@ 2015-03-31 10:44 ` paolo.carlini at oracle dot com
3 siblings, 0 replies; 5+ messages in thread
From: paolo.carlini at oracle dot com @ 2015-03-31 10:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56287
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-03-31 9:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-11 14:59 [Bug c++/56287] New: __do_global_ctors_aux() crashing when LTO enabled with flto-partition=none honyakeprt at centrum dot cz
2013-02-11 15:20 ` [Bug c++/56287] " rguenth at gcc dot gnu.org
2013-02-11 15:48 ` honyakeprt at centrum dot cz
2013-02-11 16:11 ` rguenth at gcc dot gnu.org
2015-03-31 10:44 ` paolo.carlini at oracle dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).