*
* ---------------------------------------------------------------------------*/
+#ifndef LINKERINTERNALS_H
+#define LINKERINTERNALS_H
+
typedef enum { OBJECT_LOADED, OBJECT_RESOLVED } OStatus;
/* Indication of section kinds for loaded objects. Needed by
/* Jump Islands are sniplets of machine code required for relative
* address relocations on the PowerPC.
*/
-#ifdef powerpc_TARGET_ARCH
+#ifdef powerpc_HOST_ARCH
typedef struct {
short lis_r12, hi_addr;
short ori_r12_r12, lo_addr;
int n_symbols;
/* ptr to malloc'd lump of memory holding the obj file */
- void* image;
+ char* image;
+
+#ifdef darwin_HOST_OS
+ /* record by how much image has been deliberately misaligned
+ after allocation, so that we can use realloc */
+ int misalignment;
+#endif
/* The section-kind entries for this object module. Linked
list. */
outside one of these is an error in the linker. */
ProddableBlock* proddables;
-#ifdef ia64_TARGET_ARCH
+#ifdef ia64_HOST_ARCH
/* Procedure Linkage Table for this object */
void *plt;
unsigned int pltIndex;
#endif
-#ifdef powerpc_TARGET_ARCH
+#ifdef powerpc_HOST_ARCH
ppcJumpIsland *jump_islands;
unsigned long island_start_symbol;
unsigned long n_islands;
} ObjectCode;
extern ObjectCode *objects;
+
+#endif /* LINKERINTERNALS_H */