gas on Mac OS X
Martin Schaffner
schaffner@gmx.li
Wed Apr 21 17:10:00 GMT 2004
On 21.04.2004, at 17:28, Ian Lance Taylor wrote:
> Martin Schaffner <schaffner@gmx.li> writes:
>
> Thanks for working on this. I wish we could call the files macho
> instead of mach-o, but I guess that has a pronunciation problem.
>
>> * Indirect symbols. Mach-O supports so called "indirect symbols",
>> which are something different than the indirect symbols of ELF. Is
>> there a terminology to distinguish these two concepts? Maybe in gcc?
>> We could call the ones in Mach-o "mach-o-indirect symbols"...
>> Anyway, to support these there has to be an interface between bfd and
>> gas. This design has to be carefully thought out. Maybe someone can
>> help me.
>
> Could you describe what Mach-O indirect symbols are?
Please read section "Indirect Addressing" of
http://developer.apple.com/documentation/DeveloperTools/Conceptual/
MachORuntime/2rt_powerpc_abi/chapter_9_section_6.html
Myself, I have some problems understanding them. From the Apple doc I
understand that it makes the last part of
http://membres.lycos.fr/schaffner/prog/binutils/
indirect_symbols.tar.bz2 possible. But this also works on GNU/Linux...
I uploaded cctools to my homepage:
http://membres.lycos.fr/schaffner/prog/binutils/cctools-495.tar.bz2
> Note that as far as I know ELF does not have indirect symbols. BFD
> supports indirect symbols because they are a GNU extension to the
> a.out object file format, essentially another of way of solving the
> problem which ELF weak defined symbols solve. The ELF backend linker
> then uses BFD indirect symbols as part of the implementation of ELF
> versioned symbols.
>
>> * Weak references. These too are not the same thing as ELF's weak
>> symbols.
>
> Are they the same as ELF weak undefined symbols, though?
I don't know ELF weak undefined symbols.
Mach-O weak references tell the dynamic linker: Link this symbol if you
find it, otherwise set it to null and continue. The program must then
check if the symbol is null before using it. This feature is useful for
selectively implementing features that may be available on some
systems, but not on others.
Martin
More information about the Binutils
mailing list