[lld] r219268 - [mach-o] Support fat archives
    Nick Kledzik 
    kledzik at apple.com
       
    Thu Oct  9 15:02:25 PDT 2014
    
    
  
On Oct 9, 2014, at 2:57 PM, Rafael EspĂndola <rafael.espindola at gmail.com> wrote:
> On 7 October 2014 21:48, Nick Kledzik <kledzik at apple.com> wrote:
>> Author: kledzik
>> Date: Tue Oct  7 20:48:10 2014
>> New Revision: 219268
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=219268&view=rev
>> Log:
>> [mach-o] Support fat archives
>> 
>> mach-o supports "fat" files which are a header/table-of-contents followed by a
>> concatenation of mach-o files (or archives of mach-o files) built for
>> different architectures.  Previously, the support for fat files was in the
>> MachOReader, but that only supported fat .o files and dylibs (not archives).
>> 
>> The fix is to put the fat handing into MachOFileNode.  That way any input file
>> kind (including archives) can be fat.  MachOFileNode selects the sub-range
>> of the fat file that matches the arch being linked and creates a MemoryBuffer
>> for just that subrange.
> 
> Interesting. I wonder if a similar change should be done to
> Object/MachOUniversal.cpp. Do tools like nm support fat archives?
Yes, nm supports fat files.  It takes an option -arch option which specifies which slice to use.  If -arch is not specified and the file is fat, then I think the rule is that if one of the arches matches the running arch (e.g. x86_64 on a Mac), then that slice is shown, otherwise all slices are displayed.
I have noticed that llvm-objdump does not work with fat files.
-Nick
    
    
More information about the llvm-commits
mailing list