[PATCH 2/2] MIPS16: MIPS16 support proper

Richard Henderson rth@twiddle.net
Mon Jan 28 18:58:00 GMT 2013


On 01/28/2013 09:35 AM, Steve Ellcey wrote:
> OK, I see where this is happening now.  crti (from glibc) is mips16 and
> crtbegin (from gcc) is mips32.  crtbegin is mips32 because it uses
> CRT_CALL_STATIC_FUNCTION and that has '.nomips16' in it.  I am not sure
> how to rewrite CRT_CALL_STATIC_FUNCTION in mips16 to avoid this and it
> looks like the codesourcery version of GCC is handling this by making
> all .init/.fini code mips32 instead of mips16.  So, should I try to make
> crti use a mips32 .init or make crtbegin use a mips16 .init?  I am not
> sure which is better.

FWIW, I think you're better off considering the .init section to be
mips32 code always, as a part of the ABI.  That way stuff that worked
before continues to work, and no one has to worry about how the
installed toolchain itself is configured.

And of course as you note elsewhere, this is an excellent time to
have new toolchains stop using .init, as DT_INIT_ARRAY has none of
these problems.


r~



More information about the Libc-alpha mailing list