summaryrefslogtreecommitdiff
path: root/rts/linker/MachO.h
diff options
context:
space:
mode:
authorArtem Pyanykh <artempyanykh@gmail.com>2019-02-21 12:10:38 +0300
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-03-20 19:52:39 -0400
commit368187591a5454e47c4e08dae90d39d2af1fad40 (patch)
treece6b0c92dc5b0b9b493a33421bbe1f71ae915e6c /rts/linker/MachO.h
parent3394a7cd27cec64a577ee0a9df887a431ccb3696 (diff)
downloadhaskell-368187591a5454e47c4e08dae90d39d2af1fad40.tar.gz
Adjust section placement and relocation logic for Mach-O
1. Place each section on a separate page to ensure required alignment (wastes lots ot space, needs to be improved). 2. Unwire relocation logic from macho sections (the most fiddly part is adjusting internal relocations). Other todos: 0. Add a test for section alignment. 1. Investigate 32bit relocations! 2. Fix memory leak in ZEROPAGE section allocation. 3. Fix creating redundant jump islands for GOT. 4. Investigate more compact section placement.
Diffstat (limited to 'rts/linker/MachO.h')
-rw-r--r--rts/linker/MachO.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/rts/linker/MachO.h b/rts/linker/MachO.h
index 5e00e2a8d2..20cb2d061a 100644
--- a/rts/linker/MachO.h
+++ b/rts/linker/MachO.h
@@ -6,13 +6,14 @@
#include "MachOTypes.h"
-void ocInit_MachO ( ObjectCode* oc );
-void ocDeinit_MachO ( ObjectCode* oc );
-int ocVerifyImage_MachO ( ObjectCode* oc );
-int ocGetNames_MachO ( ObjectCode* oc );
-int ocResolve_MachO ( ObjectCode* oc );
-int ocRunInit_MachO ( ObjectCode* oc );
-int machoGetMisalignment( FILE * );
-int ocAllocateExtras_MachO ( ObjectCode* oc );
+void ocInit_MachO ( ObjectCode* oc );
+void ocDeinit_MachO ( ObjectCode* oc );
+int ocVerifyImage_MachO ( ObjectCode* oc );
+size_t ocGetRequiredSpace_MachO ( ObjectCode* oc);
+int ocGetNames_MachO ( ObjectCode* oc );
+int ocResolve_MachO ( ObjectCode* oc );
+int ocRunInit_MachO ( ObjectCode* oc );
+int machoGetMisalignment ( FILE * );
+int ocAllocateExtras_MachO ( ObjectCode* oc );
#include "EndPrivate.h"