This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB 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: [RFA] Sparc/Linux fixes part 1


>  From: Michael Snyder <msnyder@redhat.com>
> Date: Fri, 19 Apr 2002 18:25:32 -0700
> 
>    "David S. Miller" wrote:
>    > 32-bit Sparc under Linux does not have a 16-byte long double,
>    > this causes testsuite failures.  Fix this by providing a
>    > SPARC_TARGET_LONG_DOUBLE_BYTES the OS specific target headers
>    > can override.
>    
>    The idea is sound, but the implementation is not very 
>    multi-arch-ish.  Is there a runtime way to do this, 
>    rather than by using a macro?  The whole purpose of
>    multi-arch is that these decisions get made at runtime.
> 
> Some more commentary, just to be absolutely clear...
> 
> Note that this is an OS-specific setting, and the current
> multi-arch code does not lend itself to anything other
> than cpu target gdbarch inits.

sizeof(long double) is a property of the ABI not the OS.

> If GDB provided a framework whereby I could install an os-specific
> gdbarch_init, I'd be more than happy to implement this in the
> holy-grail-multi-arch way you want me to.
> 
> Look, I'll stick around long after this change is installed so
> when the facility is there, I will convert this long double
> stuff to use it and the macros will basically disappear from the
> sparc headers. :-)

The value of long double can be set at run time by examining information 
provided by the BFD.  ARM does this for the ABI, MIPS this for almost 
everything.

enjoy,
Andrew






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