Commit f1ce2766 authored by Moritz Angermann's avatar Moritz Angermann Committed by Ben Gamari
Browse files

Refactor MachO.c

- 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
parent 938392c8
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment