[Bug gcov-profile/59973] New: Creates a 32GB unused bss symbol with -fprofile-generate
mh+gcc at glandium dot org
gcc-bugzilla@gcc.gnu.org
Tue Jan 28 23:26:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59973
Bug ID: 59973
Summary: Creates a 32GB unused bss symbol with
-fprofile-generate
Product: gcc
Version: 4.7.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: gcov-profile
Assignee: unassigned at gcc dot gnu.org
Reporter: mh+gcc at glandium dot org
$ g++-4.7 -o - -S Value.ii -std=gnu++0x -O1 -fprofile-generate
(snip)
.quad .LPBX1
.local .LPBX1
.comm .LPBX1,34359738368,64
$ g++-4.7 -o Value.o -c Value.ii -std=gnu++0x -O1 -fprofile-generate
$ readelf -SW /tmp/Value.o | grep bss
[ 5] .bss NOBITS 0000000000000000 000100 800000000 00
WA 0 0 64
Note this doesn't happen with gcc 4.8. This happens with current 4.7.3 from
Debian (4.7.3-10 as of writing) and a locally built vanilla gcc 4.7.3.
Further down the road, this makes code fail to link because the linker can't do
R_X86_64_PC32 relocations across the 32GB gap (text relocations for acesses to
bss symbols that happen to be after that one).
More information about the Gcc-bugs
mailing list