X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FLinker.c;h=789093d8503aed77e8bba3ec170047a2ea6e4cb8;hb=e576ba5d31fbae54c43e88316fb0dbdba9cbd4ff;hp=45f5ff678c2baaa3b772a16fc4e027d92731599d;hpb=ab5b8aa357c685a7c702262903bce04c66f79156;p=ghc-hetmet.git diff --git a/rts/Linker.c b/rts/Linker.c index 45f5ff6..789093d 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -95,7 +95,7 @@ static /*Str*/HashTable *symhash; /* Hash table mapping symbol names to StgStablePtr */ static /*Str*/HashTable *stablehash; -#if defined(GHCI) && defined(BREAKPOINT) +#if defined(DEBUGGER) /* Hash table mapping info table ptrs to DataCon names */ static HashTable *dchash; #endif @@ -817,6 +817,7 @@ static RtsSymbolVal rtsSyms[] = { /* ----------------------------------------------------------------------------- * Insert symbols into hash tables, checking for duplicates. */ +int isSuffixOf(char* x, char* suffix); static void ghciInsertStrHashTable ( char* obj_name, HashTable *table, @@ -827,7 +828,7 @@ static void ghciInsertStrHashTable ( char* obj_name, if (lookupHashTable(table, (StgWord)key) == NULL) { insertStrHashTable(table, (StgWord)key, data); -#if defined(GHCI) && defined(BREAKPOINT) +#if defined(DEBUGGER) // Insert the reverse pair in the datacon hash if it is a closure { if(isSuffixOf(key, "static_info") || isSuffixOf(key, "con_info")) { @@ -856,17 +857,6 @@ static void ghciInsertStrHashTable ( char* obj_name, ); exit(1); } - -#if defined(GHCI) && defined(BREAKPOINT) -static void ghciInsertDCTable ( char* obj_name, - StgWord key, - char* data - ) -{ - ghciInsertStrHashTable(obj_name, dchash, (char *)key, data); - -} -#endif /* ----------------------------------------------------------------------------- * initialize the object linker */ @@ -892,7 +882,7 @@ initLinker( void ) stablehash = allocStrHashTable(); symhash = allocStrHashTable(); -#if defined(GHCI) && defined(BREAKPOINT) +#if defined(DEBUGGER) dchash = allocHashTable(); #endif @@ -1113,7 +1103,7 @@ lookupSymbol( char *lbl ) } } -#if defined(GHCI) && defined(BREAKPOINT) +#if defined(DEBUGGER) char * lookupDataCon( StgWord addr ) { @@ -1334,6 +1324,7 @@ loadObj( char *path ) // that the actual sections end up aligned again. oc->misalignment = machoGetMisalignment(f); oc->image = stgMallocBytes(oc->fileSize + oc->misalignment, "loadObj(image)"); + oc->image += misalignment; # else oc->image = stgMallocBytes(oc->fileSize, "loadObj(image)"); # endif @@ -4407,7 +4398,6 @@ static int machoGetMisalignment( FILE * f ) #endif -#if defined(GHCI) && defined(BREAKPOINT) int isSuffixOf(char* x, char* suffix) { int suffix_len = strlen (suffix); int x_len = strlen (x); @@ -4422,4 +4412,3 @@ int isSuffixOf(char* x, char* suffix) { char* x_suffix = &x[strlen(x)-strlen(suffix)]; return strcmp(x_suffix, suffix) == 0; } -#endif