[PATCH] Support native mach-o names in MachOFormat.h

Eric Christopher echristo at gmail.com
Mon Aug 19 15:17:56 PDT 2013


On Mon, Aug 19, 2013 at 3:16 PM, Nick Kledzik <kledzik at apple.com> wrote:
> On Aug 19, 2013, at 3:02 PM, Eric Christopher <echristo at gmail.com> wrote:
>> Probably wouldn't take much to fix up all the name uses and leave out
>> the conditional?
> Fixing up the base LLVM tree is not hard.  What I don’t know is if there are other projects layered on top of LLVM that removing the “old" names would break.   I also don’t know if there a clients of the “old” names that are fond of them and we prefer to keep using them :-)
>

Nah, out of tree can be fixed by the people maintaining it externally. :)

-eric

> -Nick
>
>> On Mon, Aug 19, 2013 at 2:57 PM, Nick Kledzik <kledzik at apple.com> wrote:
>>> [+patch]
>>>
>>> include/llvm/Object/MachOFormat.h is odd in that it makes up new names for the public mach-o format structs and constants (e.g. it defines LCT_Segment instead of LC_SEGMENT).    LLVM does not handle ELF this way.  LLVM defines SHT_PROGBITS just like the standard ELF header (although llvm puts them into a namespace).  This current set up makes it hard to reconcile the public mach-o documentation with llvm source code.
>>>
>>> This patch adds all the standard mach-o names for structs and constants in the llvm::object::mach_o namespace.  All the existing names remain, but I put them inside #ifndef LLVM_NO_OLD_MACH_O_NAMES, so that if someone wanted to switch to the standard names they could define LLVM_NO_OLD_MACH_O_NAMES, do a full build, and update whatever failures are seen.
>>>
>>> This issue came up during a code review of lld, as to why lld was defining it own mach-o constants instead of using the ones in llvm.
>>>
>>> -Nick
>>>
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list