X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FLinkerInternals.h;h=07d6334c7f4fab7d3299c6548cf9824c1f1a28ea;hb=4417e97d436e2796bed886cb1a830acb88d3da28;hp=2ce7fbc7b145b447f18209358a76158b65f661a8;hpb=c9aeb3c625b2a472270762d4c5896614cf886d53;p=ghc-hetmet.git diff --git a/ghc/rts/LinkerInternals.h b/ghc/rts/LinkerInternals.h index 2ce7fbc..07d6334 100644 --- a/ghc/rts/LinkerInternals.h +++ b/ghc/rts/LinkerInternals.h @@ -6,6 +6,9 @@ * * ---------------------------------------------------------------------------*/ +#ifndef LINKERINTERNALS_H +#define LINKERINTERNALS_H + typedef enum { OBJECT_LOADED, OBJECT_RESOLVED } OStatus; /* Indication of section kinds for loaded objects. Needed by @@ -39,7 +42,7 @@ typedef /* 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; @@ -65,7 +68,13 @@ typedef struct _ObjectCode { 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. */ @@ -82,13 +91,13 @@ typedef struct _ObjectCode { 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; @@ -97,3 +106,5 @@ typedef struct _ObjectCode { } ObjectCode; extern ObjectCode *objects; + +#endif /* LINKERINTERNALS_H */