[llvm-dev] Extending llvm-objcopy to support Mach-O

Alexander Shaposhnikov via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 2 14:16:10 PDT 2018


Hey, many thanks for the replies,
yeah, in general I agree with what have been said, making a library makes
sense to me, though right now it seems to be non-trivial (to come up with a
good library interface + code reorg) (+ it's not completely but kind of
orthogonal to the proposed Mach-O effort). Probably, as for now I would
prefer to move here step by step with some incremental changes, I'm
planning to start sending patches in this direction soon (within the next
~1-2 weeks) .

On Tue, Oct 2, 2018 at 11:59 AM Eric Christopher <echristo at gmail.com> wrote:

> It both is and isn't. Looking at expanding and reorganizing the tool is a
> good time to move things out to make the overall effort smaller in the
> future.
>
> On Tue, Oct 2, 2018, 10:24 AM Jake Ehrlich <jakehehrlich at google.com>
> wrote:
>
>> That's something I want to do as well for several reasons. That's an
>> orthogonal issue however.
>>
>> On Tue, Oct 2, 2018, 10:21 AM Eric Christopher <echristo at gmail.com>
>> wrote:
>>
>>> I'd give some consideration to moving the objcopy support itself into a
>>> library inside llvm (possibly lib/Object as that makes the most sense) and
>>> then the tool is just a thin wrapper on top of it.
>>>
>>> -eric
>>>
>>> On Mon, Oct 1, 2018 at 4:12 PM Alexander Shaposhnikov via llvm-dev <
>>> llvm-dev at lists.llvm.org> wrote:
>>>
>>>> Hey everyone! Objcopy is a powerful tool that allows one to modify
>>>> object files in various manners, for example, modify symbols / symbol
>>>> tables or copy / remove particular parts of a binary. It also serves as a
>>>> basis for the strip tool.
>>>> Currently, llvm-objcopy only supports ELF files while binutils' objcopy
>>>> can handle Mach-O files as well. Besides extending the existing tool to
>>>> support Mach-O binaries this would enable us to build LLVM-based
>>>> replacements for cctools' install_name_tool (for changing rpath(s),
>>>> identification name etc) and lipo / libtool (for manipulating "fat"
>>>> binaries) similarly to how llvm-strip was implemented on top of
>>>> llvm-objcopy. Regarding the code organization, probably, in this case we
>>>> will have separate folders: ELF, MachO and maybe a few top-level files
>>>> (ObjcopyOpts.td, StripOpts.td). Any thoughts, concerns, or strong
>>>> preferences ? Kind regards, Alex
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> llvm-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181002/e1db1217/attachment-0001.html>


More information about the llvm-dev mailing list