diff --git a/includes/rts/Linker.h b/includes/rts/Linker.h index ecbefbbcbc084825d32ca08139f2dc5de5c7aea9..ea4daebc8a25da5f3d6716be716245210481638e 100644 --- a/includes/rts/Linker.h +++ b/includes/rts/Linker.h @@ -25,9 +25,6 @@ typedef char pathchar; /* initialize the object linker */ void initLinker( void ); -/* insert a stable symbol in the hash table */ -void insertStableSymbol(pathchar* obj_name, char* key, StgPtr data); - /* insert a symbol in the hash table */ void insertSymbol(pathchar* obj_name, char* key, void* data); diff --git a/rts/Linker.c b/rts/Linker.c index 116c924afcada3f797072ec11a0198e8a4cdc147..74cac115ee93456658ff2995f7a4913602e88973 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -27,7 +27,6 @@ #include "RtsUtils.h" #include "Trace.h" #include "StgPrimFloat.h" // for __int_encodeFloat etc. -#include "Stable.h" #include "Proftimer.h" #include "GetEnv.h" @@ -141,9 +140,6 @@ /* Hash table mapping symbol names to Symbol */ static /*Str*/HashTable *symhash; -/* Hash table mapping symbol names to StgStablePtr */ -static /*Str*/HashTable *stablehash; - /* List of currently loaded objects */ ObjectCode *objects = NULL; /* initially empty */ @@ -1139,7 +1135,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(stg_killThreadzh) \ SymI_HasProto(loadArchive) \ SymI_HasProto(loadObj) \ - SymI_HasProto(insertStableSymbol) \ SymI_HasProto(insertSymbol) \ SymI_HasProto(lookupSymbol) \ SymI_HasProto(stg_makeStablePtrzh) \ @@ -1540,7 +1535,6 @@ initLinker( void ) #if defined(THREADED_RTS) && (defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)) initMutex(&dl_mutex); #endif - stablehash = allocStrHashTable(); symhash = allocStrHashTable(); /* populate the symbol table with stuff from the RTS */ @@ -1868,17 +1862,6 @@ error: # endif } -/* ----------------------------------------------------------------------------- - * insert a stable symbol in the hash table - */ - -void -insertStableSymbol(pathchar* obj_name, char* key, StgPtr p) -{ - ghciInsertStrHashTable(obj_name, stablehash, key, getStablePtr(p)); -} - - /* ----------------------------------------------------------------------------- * insert a symbol in the hash table */ @@ -4974,8 +4957,6 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC, #ifdef i386_HOST_ARCH Elf_Addr value; #endif - StgStablePtr stablePtr; - StgPtr stableVal; #ifdef arm_HOST_ARCH int is_target_thm=0, T=0; #endif @@ -4998,16 +4979,8 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC, } else { symbol = strtab + sym.st_name; - stablePtr = (StgStablePtr)lookupHashTable(stablehash, (StgWord)symbol); - if (NULL == stablePtr) { - /* No, so look up the name in our global table. */ - S_tmp = lookupSymbol( symbol ); - S = (Elf_Addr)S_tmp; - } else { - stableVal = deRefStablePtr( stablePtr ); - S_tmp = stableVal; - S = (Elf_Addr)S_tmp; - } + S_tmp = lookupSymbol( symbol ); + S = (Elf_Addr)S_tmp; } if (!S) { errorBelch("%s: unknown symbol `%s'", oc->fileName, symbol);