Re: weakref and static

2005-12-17 Thread Geoffrey Keating
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

Re: weakref and static

2005-12-17 Thread Jakub Jelinek
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

Re: weakref and static

2005-12-17 Thread Alexandre Oliva
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

Re: weakref and static

2005-12-17 Thread Alexandre Oliva
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

Re: weakref and static

2005-12-11 Thread Jakub Jelinek
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

Re: weakref and static

2005-12-11 Thread Alexandre Oliva
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'

Re: weakref and static

2005-12-02 Thread John David Anglin
> 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

weakref and static

2005-12-01 Thread Geoffrey Keating
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