Symver attribute

Jan Hubicka hubicka@ucw.cz
Mon Dec 2 13:37:00 GMT 2019


> On Mon, Dec 02, 2019 at 01:53:09PM +0100, Jan Hubicka wrote:
> > > > It would be great to convert libstdc++ to the new infrastructure so it
> > > > becomes LTO safe and gives some real world testing to this
> > > > infrastructure.  I tried that but found it is bit non-trivial since
> > > > currently way we need to attach the attribute to definition itself,
> > > > while current .symver output is done in separate C++ files.
> 
> What is the reason for this limitation?  I think that is pretty severe.
> Wouldn't it be enough to accept symver attribute on any declaration, but at
> the end verify that declarations that have that attribute have the
> definition in the current TU?
> 
> I mean, it is fairly common to:
> void foo ()
> {
>    ...
> }
> 
> asm (".symver ...");
> where the foo definition comes from one source and symver from another one,
> which includes the first source.
> 
> So, the corresponding new rewrite for that might be:
> void foo ()
> {
>   ...
> }
> 
> extern __typeof (foo) foo __attribute__((symver ("bar@@BAZ")));

Aha, this works :)  I basically meant that I need the declaration which
I found somewhat nontrivial to dig out of the libstdc++ headers.  I did
not think of typeof. I suppose I can add this as an example to the
dcumentation (as an example convertion .symver assembly into attribute).

Honza
> 
> 	Jakub
> 



More information about the Gcc-patches mailing list