Richard Sandiford wrote:
> DJ Delorie <[EMAIL PROTECTED]> writes:
>> How about this?  Tested under mipsisa64-elf with no regressions.  The
>> other two I found by inspection; they're the only other two that have
>> .sdata and use -G 0.
> 
> Looks good to me FWIW, although I can't approve it.  I wonder if...
> 
>> +#if defined(__mips__) || defined(__iq2000__) || defined(__m32r__)
>> +extern void *__dso_handle __attribute__ ((__section__ (".sdata")));
>> +#endif
> 
> ...this should be handled by some tm.h macro though, like the other
> conditional stuff in crtstuff.c.  I'm not sure there's any precedent
> for hard-coding the architectures in crtstuff.c itself.  (Not insisting,
> just raising the question.)

Yes, I think we should have a target macro (a) to document what's going
on here, and (b) because this is a property of the ABI, not the machine
architecture.  Perhaps TARGET_LIBGCC_SDATA_SECTION, which if defined,
would be the name of the appropriate small-data section, and then:

  #ifdef TARGET_LIBGCC_SDATA_SECTION
  #define SDATA_ATTR __attribute__ ((__section
((TARGET_LIBGCC_SDATA_SECTION))
  #else
  #define SDATA_ATTR /* empty */
  #endif

  extern void *__dso_handle SDATA_ATTR;

with appropriate documentation in docs/tm.texi, of course.

I'll pre-approve that change, but I'll also defer to any other
maintainer who has a solution they prefer.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713

Reply via email to