http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48459

Anitha Boyapati <anitha.boyapati at atmel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |anitha.boyapati at atmel
                   |                            |dot com

--- Comment #3 from Anitha Boyapati <anitha.boyapati at atmel dot com> 
2011-06-09 14:01:22 UTC ---
(In reply to comment #1)
> Increased the importance from P3 to P3 because this makes avr-gcc+dwarf-2
> completely unusable. 
> 
> Configuring as --target=avr --with-dwarf2 fails to build cross compiler.

It fails with the message:

configure:3055: /home/anitha/comp/gcc-4.6.0/objdir/./gcc/xgcc
-B/home/anitha/comp/gcc-4.6.0/objdir/./gcc/ -B/home/anitha/install/avr/bin/
-B/home/anitha/install/avr/lib/ -isystem /home/anitha/install/avr/include
-isystem /home/anitha/install/avr/sys-include    -o conftest -O2 -g  
conftest.c  >&5
conftest.c:1:0: internal compiler error: in dwarf2out_frame_init, at
dwarf2out.c:4260


Further analysis shows that the changes introduced in revision 164701 (Found in
Tag: gcc_4_6_0_release) cause ICE.

http://gcc.gnu.org/viewcvs/tags/gcc_4_6_0_release/gcc/dwarf2out.c?r1=164670&r2=164701&diff_format=h

The macros DWARF2_UNWIND_INFO is undefined for AVR Target and hence the
initial_return_save() is neither defined nor called in 4.5.* versions. However
in 4.6.0 these macros are replaced with 'targetm' hooks, which return UI_DWARF2
and hence the function initial_return_save() gets called. Since
INCOMING_RETURN_ADDR_RTX is not defined, it results in ICE. (I have given the
preprocessed output from dwarf2out_frame_init() function).


- if (DWARF2_UNWIND_INFO || DWARF2_FRAME_INFO)
-         initial_return_save (INCOMING_RETURN_ADDR_RTX);

+ if (targetm.debug_unwind_info () == UI_DWARF2
+     || targetm.except_unwind_info (&global_options) == UI_DWARF2)
+    initial_return_save (((fancy_abort ("../../gcc/dwarf2out.c", 4260,
__FUNCTION__)), (rtx) 0));


Replacing DWARF2_UNWIND_INFO with targetm.debug_unwind_info() is either
incorrect or is incomplete for AVR Target. This remains to be analysed. 

This is a blocker for bug #17994

Reply via email to