------- Comment #23 from nomura at netapp dot com  2006-02-17 23:58 -------
> Looks like in gcc-3.4.0, gcc/gcc/configure.ac picks up the wrong ld for me,
> which probably leads to the wrong value being set for 
> HAVE_LD_RO_RW_SECTION_MIXING.

This problem also occurs when cross compiling freebsd 5.3 for 64 bit
target on 32 bit freebsd host --
x86_64-unknown-freebsd5.3-gcc-3.4.2 running on 32-bit x86 freebsd 5.3,
compiling a file in freebsd 5.3's fork of gcc (usr/src/contrib/gcc/crtstuff.c).
The same cross compiler hosted on linux ia32 doesn't get the ICE.

Stepping through the ICE I see named_section_eh_frame_section() going
down the path which calls
   named_section_flags (EH_FRAME_SECTION_NAME, SECTION_WRITE);
because HAVE_LD_RO_RW_SECTION_MIXING was not #defined.
Per the earlier discussion, maybe if it had been #defined, 
the value of flags would get computed as 0.  

But flags is computed as a complex condition 
in the #ifdef HAVE_LD_RO_RW_SECTION_MIXING block.  
Does it necessarily match what default_section_type_flags
comes up with?


-- 

nomura at netapp dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nomura at netapp dot com


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

Reply via email to