------- 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