r218141 - In the Itanium ABI, move stuff to the comdat of variables with static init.
Ulrich Weigand
Ulrich.Weigand at de.ibm.com
Mon Sep 29 06:45:04 PDT 2014
Rafael Espindola wrote:
+ // The ABI says: It is suggested that it be emitted in the same COMDAT
group
+ // as the associated data object
This (together with the other recent comdat patches) seems to trigger a bug
in binutils when building with -g.
The problem is that having multiple initializer functions in the same file
can lead to assembler along these line:
.file 1 "test.c"
.section .text.startup,"axG", at progbits,test,comdat
.loc 1 1
nop
.section .text.startup,"ax", at progbits
.loc 1 1
nop
This will cause multiple sections named ".text.startup" to exist in the
output object, one within the comdat group and one outside of it. This in
turn triggers a bug in dwarf2dbg.c in GAS, where it gets confused in
looking up the section name in a hash table and assumes there can only be
one section with the same name, resulting in an internal error.
This causes compile failures in the tramp3d-v4 and CoyoteBench/fftbench
test cases in test-suite when using -g to build the suite.
The bug is fixed in mainline GAS here:
https://sourceware.org/ml/binutils/2014-09/msg00211.html
but that hasn't made it into any release (or distro) yet.
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU/Linux compilers and toolchain
IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294
More information about the cfe-commits
mailing list