Re: [rfa] Add SYMBOL_SET_LINKAGE_NAME

Paul N. Hilfinger
2004-02-18T08:12:17Z

> From: David Carlton <carlton@kealia.com>
> On Tue, 17 Feb 2004 16:49:04 -0800, Paul Hilfinger <hilfingr@EECS.Berkeley.EDU> said:
>
> Can you clarify this? Because:
>
> > I don't see why "linkage names don't make much sense" anyway: the name
> > of a (C/C++) type is, indeed, what the linker sees.
>
> I don't see this as being true for C/C++. The linker sees the names
> of functions and variables, but it doesn't see the names of types.
> There aren't any minimal symbols associated to types. There are
> minimal symbols associated to methods of classes, static variables of
> classes, and other stuff (virtual function tables, at least), but no
> minimal symbols associated to the the types themselves.
>
> I can see how you could take the name of a type and mangle it, and I
> can imagine that doing so might be useful for Ada (and perhaps even
> for C++?), given the picture that you've been painting. But I
> wouldn't call that a linkage name, because there's nothing in the
> object file which has that name.
>
> So is the picture different for Ada, or have I not been being clear
> with the distinction of linkage name vs. mangled name? (Or am I
> missing something even in the C/C++ case, for that matter?)

I admit that I have never been clear on the precise limits of
"linkage name". The linker DOES see these things (else how do they
find their way into the executable file?) although it's true that it does
not "link" them as it does for regular symbols.

After watching you struggle manfully through a number of terminology changes,
I was a little reluctant to suggest the introduction of still another concept,
so I stuck with "linkage name". The point is that WHATEVER you call Ada's
mangled type names, they are NOT what is written in the source code
(so can't be "natural names") and they ARE the raw names extracted from the
executable's debugging information. Hmm; they also happen to be what
I proposed calling "search names"---i.e., the names used internally to search
by. We could use the opportunity to introduce search names and make this
"SET_SEARCH_NAME". Just a thought.

Paul Hilfinger