This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Rework the handling of assembler sections


Hans-Peter Nilsson <hp@bitrange.com> writes:
> AARGH!  You broke cris-axis-linux-gnu!

Sorry ;(

> I guess it's because of the "const" declaration of
> __EH_FRAME_BEGIN__ in .eh_frame, which is rw on this target.
> Then again, that's just a wild guess.

Sounds plausible.  I think I have an idea what's wrong.  gcc only used
to create an internal representation of the .eh_frame section if either
(a) the user specified one using the attribute extension or if (b) gcc
needed to create an .eh_frame itself.  gcc now creates the internal
representation of .eh_frame for all compilations.  Code that met
(a) but not (b) would therefore avoid an error before the patch
but get one after it.

One way of making gcc backwards-compatible would be to only moan about
flag conflicts if the section has been used with the old flags (i.e. if
SECTION_DECLARED is set).  We can then make select_section record the
flags that are actually used at the same time as it sets SECTION_DECLARED.

That sounds like the right fix to me at the moment, so I'll try to
reproduce the failure and then test that.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]