Skip to content
  • Moritz Angermann's avatar
    Refactor MachO.c · f1ce2766
    Moritz Angermann authored and Ben Gamari's avatar Ben Gamari committed
    - Rename existing structs with typedefs from MachOTypes.
    - Update the following functions to make use of the
      extended ObjectCode structure:
      - ocAllocateSymbolExtras_MachO
      - resolveImports
      - ocGetNames_MachO
      - ocResolve_MachO
      - ocRunInit_MachO
    - repalce int with size_t for fread
    - Add aarch64 to the 64bit magic header check.
    
    Depends on D3239, D3251
    
    This is just one of the pieces for the rts linker
    support for ios (aarch64-macho)
    
    ---
    
    The following diagram and legend tries to explain the dependencies a
    bit:
    ```
      .- D3240
      v
    D3255 <- This <- D3251 <- D3239
      ^
      '- D3238
    ```
    
    - In D3238 we started allowing preloading object code with mmap
      in iOS, where we can't have r+w+x.
    - In D3239 we introduced a richer extension of the object code
      data type to make working with mach-o files easier.
    - In D3240 we set the stage to allow loading archives (.a) on iOS
    - In D3251 we added init and deinit functions to populate and
      depopulate the enriched object code data structure for mach-o
      files.
    - In D3252 we refactored most of the MachO.c file to use the
      new types and data structure.
    - in D3255 we finally introduce the aarch64-mach-o linker.
    
    Reviewers: austin, rwbarton, erikd, simonmar, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D3252
    f1ce2766