[mips patch RFC] removal of gas embedded-pic support code

Richard Sandiford rsandifo@redhat.com
Wed May 5 20:12:00 GMT 2004


cgd@broadcom.com writes:
> At Wed, 05 May 2004 18:44:40 +0100, David Ung wrote:
>> woops.  your recent patch seem to have broke building of the compiler on
>> linux.  The problem occurs when building for libgcc/./_divdi3.o
>
> Hmm.  I built for mips64-linux (all three ABIs) and that didn't show
> up in my tests...  That's curious, I'll give it another go.  (I
> certainly could have goofed it up.)

Ugh.  linux.h has:

--------------------------------------------------------------------------
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)       		\
  (flag_pic								\
    ? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4\
                                           ^^^^^^^^^^^^^^
   : DW_EH_PE_absptr)
--------------------------------------------------------------------------

which is overridden in linux64.h by:

--------------------------------------------------------------------------
#undef ASM_PREFERRED_EH_DATA_FORMAT
#if 0  /* We can't use relative addressing modes on NEWABI :-(  */
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)       		\
   (flag_pic								\
    ? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_sdata4		\
    : DW_EH_PE_absptr)
#endif
--------------------------------------------------------------------------

So mips64-linux-gnu doesn't use the same EH representation for o32.

Richard



More information about the Binutils mailing list