This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch,AVR,committed] PR18145 addendum: Don't trigger __do_clear_bss for lto markers
- From: Georg-Johann Lay <avr at gjlay dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Denis Chertykov <chertykov at gmail dot com>
- Date: Wed, 22 Feb 2012 15:20:41 +0100
- Subject: [Patch,AVR,committed] PR18145 addendum: Don't trigger __do_clear_bss for lto markers
http://gcc.gnu.org/viewcvs?view=revision&revision=184481
Committed to make dragging in startup code more precise.
Objects named like __gnu_lto_slim are just markers for the LTO machinery; there
is no need to trigger startup code for them, see also
http://gcc.gnu.org/ml/gcc/2012-02/msg00391.html
Johann
PR target/18145
* config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
setting avr_need_clear_bss_p for __gnu_lto* symbols.
Index: config/avr/avr.c
===================================================================
--- config/avr/avr.c (revision 184475)
+++ config/avr/avr.c (working copy)
@@ -7245,7 +7245,11 @@ avr_asm_output_aligned_decl_common (FILE
unsigned HOST_WIDE_INT size,
unsigned int align, bool local_p)
{
- avr_need_clear_bss_p = true;
+ /* __gnu_lto_v1 etc. are just markers for the linker injected by toplev.c.
+ There is no need to trigger __do_clear_bss code for them. */
+
+ if (!STR_PREFIX_P (name, "__gnu_lto"))
+ avr_need_clear_bss_p = true;
if (local_p)
ASM_OUTPUT_ALIGNED_LOCAL (stream, name, size, align);