X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FLinker.c;h=6d5a8cf021b5d1a5095341f170d278b6d40c95f6;hb=861cfcf09aba53e4bb20bfd1eaa23d7b5ba14e76;hp=672828c424c715a81c0edcb7a2652439a6054f15;hpb=90ef8ab26efb2fc4172944f1066f122d3a6e7c7d;p=ghc-hetmet.git diff --git a/rts/Linker.c b/rts/Linker.c index 672828c..6d5a8cf 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -766,7 +766,7 @@ typedef struct _RtsSymbolVal { /* entirely bogus claims about types of these symbols */ #define Sym(vvv) extern void vvv(void); -#ifdef ENABLE_WIN32_DLL_SUPPORT +#if defined(__PIC__) && defined(mingw32_TARGET_OS) #define SymExtern(vvv) extern void _imp__ ## vvv (void); #else #define SymExtern(vvv) SymX(vvv) @@ -795,12 +795,8 @@ RTS_LIBGCC_SYMBOLS #define Sym(vvv) { MAYBE_LEADING_UNDERSCORE_STR(#vvv), \ (void*)(&(vvv)) }, #define SymX(vvv) Sym(vvv) -#ifdef ENABLE_WIN32_DLL_SUPPORT #define SymExtern(vvv) { MAYBE_LEADING_UNDERSCORE_STR(#vvv), \ - (void*)(_imp__ ## vvv) }, -#else -#define SymExtern(vvv) Sym(vvv) -#endif + (void*)DLL_IMPORT_DATA_REF(vvv) }, // SymX_redirect allows us to redirect references to one symbol to // another symbol. See newCAF/newDynCAF for an example.