projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2004-08-31 19:06:29 by sof]
[ghc-hetmet.git]
/
ghc
/
rts
/
Linker.c
diff --git
a/ghc/rts/Linker.c
b/ghc/rts/Linker.c
index
e6e82aa
..
24f5d09
100644
(file)
--- a/
ghc/rts/Linker.c
+++ b/
ghc/rts/Linker.c
@@
-388,10
+388,11
@@
typedef struct _RtsSymbolVal {
SymX(barf) \
SymX(blockAsyncExceptionszh_fast) \
SymX(catchzh_fast) \
SymX(barf) \
SymX(blockAsyncExceptionszh_fast) \
SymX(catchzh_fast) \
+ SymX(closure_flags) \
SymX(cmp_thread) \
SymX(cmp_thread) \
- SymX(complementIntegerzh_fast) \
SymX(cmpIntegerzh_fast) \
SymX(cmpIntegerIntzh_fast) \
SymX(cmpIntegerzh_fast) \
SymX(cmpIntegerIntzh_fast) \
+ SymX(complementIntegerzh_fast) \
SymX(createAdjustor) \
SymX(decodeDoublezh_fast) \
SymX(decodeFloatzh_fast) \
SymX(createAdjustor) \
SymX(decodeDoublezh_fast) \
SymX(decodeFloatzh_fast) \
@@
-515,6
+516,7
@@
typedef struct _RtsSymbolVal {
SymX(stg_INTLIKE_closure) \
SymX(stg_MUT_ARR_PTRS_FROZEN_info) \
SymX(stg_WEAK_info) \
SymX(stg_INTLIKE_closure) \
SymX(stg_MUT_ARR_PTRS_FROZEN_info) \
SymX(stg_WEAK_info) \
+ SymX(stg_ap_0_info) \
SymX(stg_ap_v_info) \
SymX(stg_ap_f_info) \
SymX(stg_ap_d_info) \
SymX(stg_ap_v_info) \
SymX(stg_ap_f_info) \
SymX(stg_ap_d_info) \
@@
-641,6
+643,7
@@
RTS_LIBGCC_SYMBOLS
static RtsSymbolVal rtsSyms[] = {
RTS_SYMBOLS
static RtsSymbolVal rtsSyms[] = {
RTS_SYMBOLS
+ RTS_RET_SYMBOLS
RTS_LONG_LONG_SYMS
RTS_POSIX_ONLY_SYMBOLS
RTS_MINGW_ONLY_SYMBOLS
RTS_LONG_LONG_SYMS
RTS_POSIX_ONLY_SYMBOLS
RTS_MINGW_ONLY_SYMBOLS
@@
-2680,6
+2683,7
@@
do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC,
Elf_Word* pP = (Elf_Word*)P;
Elf_Addr A = *pP;
Elf_Addr S;
Elf_Word* pP = (Elf_Word*)P;
Elf_Addr A = *pP;
Elf_Addr S;
+ void* S_tmp;
Elf_Addr value;
IF_DEBUG(linker,belch( "Rel entry %3d is raw(%6p %6p)",
Elf_Addr value;
IF_DEBUG(linker,belch( "Rel entry %3d is raw(%6p %6p)",
@@
-2701,7
+2705,8
@@
do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC,
} else {
/* No, so look up the name in our global table. */
symbol = strtab + sym.st_name;
} else {
/* No, so look up the name in our global table. */
symbol = strtab + sym.st_name;
- (void*)S = lookupSymbol( symbol );
+ S_tmp = lookupSymbol( symbol );
+ S = (Elf_Addr)S_tmp;
}
if (!S) {
belch("%s: unknown symbol `%s'", oc->fileName, symbol);
}
if (!S) {
belch("%s: unknown symbol `%s'", oc->fileName, symbol);
@@
-2760,6
+2765,7
@@
do_Elf_Rela_relocations ( ObjectCode* oc, char* ehdrC,
Elf_Addr info = rtab[j].r_info;
Elf_Addr A = rtab[j].r_addend;
Elf_Addr S;
Elf_Addr info = rtab[j].r_info;
Elf_Addr A = rtab[j].r_addend;
Elf_Addr S;
+ void* S_tmp;
Elf_Addr value;
# if defined(sparc_TARGET_ARCH)
Elf_Word* pP = (Elf_Word*)P;
Elf_Addr value;
# if defined(sparc_TARGET_ARCH)
Elf_Word* pP = (Elf_Word*)P;
@@
-2795,7
+2801,8
@@
do_Elf_Rela_relocations ( ObjectCode* oc, char* ehdrC,
} else {
/* No, so look up the name in our global table. */
symbol = strtab + sym.st_name;
} else {
/* No, so look up the name in our global table. */
symbol = strtab + sym.st_name;
- (void*)S = lookupSymbol( symbol );
+ S_tmp = lookupSymbol( symbol );
+ S = (Elf_Addr)S_tmp;
#ifdef ELF_FUNCTION_DESC
/* If a function, already a function descriptor - we would
#ifdef ELF_FUNCTION_DESC
/* If a function, already a function descriptor - we would