On 17/12/2005, at 10:08 AM, Jakub Jelinek wrote:
But there are dozens of other uses of TREE_PUBLIC in the backends, so
it wouldn't surprise me if something similar is not present on
other arches.
Normal aliases are usually declared through
extern __typeof (foo) bar __attribute__((alias ("fo
On Sat, Dec 17, 2005 at 10:56:51AM -0200, Alexandre Oliva wrote:
> > I thus propose your change to be reverted, and request you to explain
> > what you were trying to fix with this patch so that I can try to do
> > something about it.
>
> Nevermind this bit :-)
>
>
> Jakub, do you have any furth
On Dec 17, 2005, Alexandre Oliva <[EMAIL PROTECTED]> wrote:
> On Dec 11, 2005, Alexandre Oliva <[EMAIL PROTECTED]> wrote:
>> On Dec 1, 2005, [EMAIL PROTECTED] (Geoffrey Keating) wrote:
>>> The easiest solution to this is to require that weakrefs must be
>>> 'static', because the name that they d
On Dec 11, 2005, Alexandre Oliva <[EMAIL PROTECTED]> wrote:
> On Dec 1, 2005, [EMAIL PROTECTED] (Geoffrey Keating) wrote:
>> The easiest solution to this is to require that weakrefs must be
>> 'static', because the name that they define is not visible outside
>> this translation unit.
> While t
On Sun, Dec 11, 2005 at 06:46:39PM -0200, Alexandre Oliva wrote:
> Err... The above is a bit misleading, in that it at first appeared to
> be referring to the target of the weakref, not to the weakref itself.
> The weakref may alias to something that is static or not (the whole
> point is being ab
On Dec 1, 2005, [EMAIL PROTECTED] (Geoffrey Keating) wrote:
> The 'weakref' attribute is defined in terms of aliases. Now,
> if the user writes
> void foo(void) { }
> void bar(void) __attribute__((alias ("foo")));
> then that causes 'bar' to be defined. Other translation units can use
> 'bar'
> Unfortunately, it can't do that; Mach-O (on Darwin) doesn't support
> aliases in the object file at all, and even ELF doesn't support
> aliases to symbols outside the current .o. The easiest solution to
> this is to require that weakrefs must be 'static', because the name
> that they define is n
The 'weakref' attribute is defined in terms of aliases. Now,
if the user writes
void foo(void) { }
void bar(void) __attribute__((alias ("foo")));
then that causes 'bar' to be defined. Other translation units can use
'bar'. If 'weakref' is to define an alias, it should behave the same
way.
Un