Subject: Re: softfloat fixuns woes
To: Richard.Earnshaw@arm.com, Richard Earnshaw <rearnsha@arm.com>
From: Nick Hudson <nick@nthcliff.demon.co.uk>
List: tech-toolchain
Date: 11/10/2003 17:12:26
On Monday 10 November 2003 3:52 pm, Richard Earnshaw wrote:
> However, there are functions in libgcc (specifically those related to 
> exception handling) that are definitely NOT pure by this definition.  The 
> exception handling code, for example, has to maintain a list of all the 
> unwind areas in an application: this code must be registered with a single 
> libgcc function into a single list/table/whatever, which is then searched 
> when an exception is thrown.  If there are multiple definitions of these 
> functions, then they will not create a single list and hence exception 
> unwinding will be broken.
[...]

This is exactly the problem I fixed when I removed libgcc_pic from LIBGCC_SPEC 
to close PR 22673.

> Then functions should be allocated as follows:
> 
> pure standard functions should be built into libc{.so,.a,_p.a} etc.
> functions sharing static data should be in libgcc.so (this will probably 
> only be needed for c++).
> The rest should be .hidden and built into libgcc.a, which should be linked 
> into every application and every shared library (libgcc_pic.a).

Can't we extract these using (an updated) mknative?

Nick