This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: Builtins-vs-libcalls-vs-optimised-away-vs-still-emitting-an-undefined-symbol-reference
On 24 April 2007 15:52, Paul Brook wrote:
>>> .file "<stdin>"
>>> foo .global _ffs
>>
>> Is this really a reference? It just looks like a declaration. A
>> typical ELF assembler will not generate an undefined symbol merely
>> because it sees a .global pseudo-op.
>
> I think gas 2.17 counts as a "typical ELF assembler". It does create
> undefined symbols in response to a .global pseudo-op.
I think that's what it's supposed to do - .global is for exporting a symbol
that you intend to define. In my case, the backend is misusing it where it
means .extern; this doesn't usually cause code breakage, because .global has
all the effects of .extern, but it also emits the symbol - whether or not the
symbol is later defined by a label in the assembler source.
> There was a patch to the c++ frontend recently to avoid a similar problem
> with EH personality routines.
Couldn't see what you're referring to in cp/ChangeLog straight away, have
you got a pointer/rough date/search term I can use?
cheers,
DaveK
--
Can't think of a witty .sigline today....