X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FLinker.c;h=162ada872c58c29e589b937c677f698a632694e7;hb=e50c1ea395c49b1480332f0ec08ffc20e72b6e80;hp=17c5c3bc186f596ef0a853d06517374fa3f256d9;hpb=96fff1ba94bd3a21da3fa797816bd6e82e4148ba;p=ghc-hetmet.git diff --git a/rts/Linker.c b/rts/Linker.c index 17c5c3b..162ada8 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -343,6 +343,12 @@ typedef struct _RtsSymbolVal { #define RTS_MINGW_GETTIMEOFDAY_SYM /**/ #endif +#if HAVE___MINGW_VFPRINTF +#define RTS___MINGW_VFPRINTF_SYM SymI_HasProto(__mingw_vfprintf) +#else +#define RTS___MINGW_VFPRINTF_SYM /**/ +#endif + /* These are statically linked from the mingw libraries into the ghc executable, so we have to employ this hack. */ #define RTS_MINGW_ONLY_SYMBOLS \ @@ -381,6 +387,8 @@ typedef struct _RtsSymbolVal { SymI_NeedsProto(iscntrl) \ SymI_NeedsProto(isalpha) \ SymI_NeedsProto(isalnum) \ + SymI_NeedsProto(isascii) \ + RTS___MINGW_VFPRINTF_SYM \ SymI_HasProto(strcmp) \ SymI_HasProto(memmove) \ SymI_HasProto(realloc) \ @@ -537,23 +545,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(stg_ap_pppppp_ret) #endif -/* On Windows, we link libgmp.a statically into libHSrts.dll */ -#ifdef mingw32_HOST_OS -#define GMP_SYMS \ - SymI_HasProto(__gmpz_cmp) \ - SymI_HasProto(__gmpz_cmp_si) \ - SymI_HasProto(__gmpz_cmp_ui) \ - SymI_HasProto(__gmpz_get_si) \ - SymI_HasProto(__gmpz_get_ui) -#else -#define GMP_SYMS \ - SymE_HasProto(__gmpz_cmp) \ - SymE_HasProto(__gmpz_cmp_si) \ - SymE_HasProto(__gmpz_cmp_ui) \ - SymE_HasProto(__gmpz_get_si) \ - SymE_HasProto(__gmpz_get_ui) -#endif - #define RTS_SYMBOLS \ Maybe_Stable_Names \ SymI_HasProto(StgReturn) \ @@ -591,13 +582,11 @@ typedef struct _RtsSymbolVal { SymI_HasProto(OutOfHeapHook) \ SymI_HasProto(StackOverflowHook) \ SymI_HasProto(addDLL) \ - GMP_SYMS \ SymI_HasProto(__int_encodeDouble) \ SymI_HasProto(__word_encodeDouble) \ SymI_HasProto(__2Int_encodeDouble) \ SymI_HasProto(__int_encodeFloat) \ SymI_HasProto(__word_encodeFloat) \ - SymI_HasProto(andIntegerzh_fast) \ SymI_HasProto(atomicallyzh_fast) \ SymI_HasProto(barf) \ SymI_HasProto(debugBelch) \ @@ -611,11 +600,7 @@ typedef struct _RtsSymbolVal { SymI_HasProto(checkzh_fast) \ SymI_HasProto(closure_flags) \ SymI_HasProto(cmp_thread) \ - SymI_HasProto(cmpIntegerzh_fast) \ - SymI_HasProto(cmpIntegerIntzh_fast) \ - SymI_HasProto(complementIntegerzh_fast) \ SymI_HasProto(createAdjustor) \ - SymI_HasProto(decodeDoublezh_fast) \ SymI_HasProto(decodeDoublezu2Intzh_fast) \ SymI_HasProto(decodeFloatzuIntzh_fast) \ SymI_HasProto(defaultsHook) \ @@ -623,8 +608,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(deRefWeakzh_fast) \ SymI_HasProto(deRefStablePtrzh_fast) \ SymI_HasProto(dirty_MUT_VAR) \ - SymI_HasProto(divExactIntegerzh_fast) \ - SymI_HasProto(divModIntegerzh_fast) \ SymI_HasProto(forkzh_fast) \ SymI_HasProto(forkOnzh_fast) \ SymI_HasProto(forkProcess) \ @@ -633,9 +616,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(freeStablePtr) \ SymI_HasProto(getOrSetTypeableStore) \ SymI_HasProto(getOrSetSignalHandlerStore) \ - SymI_HasProto(gcdIntegerzh_fast) \ - SymI_HasProto(gcdIntegerIntzh_fast) \ - SymI_HasProto(gcdIntzh_fast) \ SymI_HasProto(genSymZh) \ SymI_HasProto(genericRaise) \ SymI_HasProto(getProgArgv) \ @@ -654,9 +634,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(unpackClosurezh_fast) \ SymI_HasProto(getApStackValzh_fast) \ SymI_HasProto(getSparkzh_fast) \ - SymI_HasProto(int2Integerzh_fast) \ - SymI_HasProto(integer2Intzh_fast) \ - SymI_HasProto(integer2Wordzh_fast) \ SymI_HasProto(isCurrentThreadBoundzh_fast) \ SymI_HasProto(isDoubleDenormalized) \ SymI_HasProto(isDoubleInfinite) \ @@ -673,7 +650,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(insertSymbol) \ SymI_HasProto(lookupSymbol) \ SymI_HasProto(makeStablePtrzh_fast) \ - SymI_HasProto(minusIntegerzh_fast) \ SymI_HasProto(mkApUpd0zh_fast) \ SymI_HasProto(myThreadIdzh_fast) \ SymI_HasProto(labelThreadzh_fast) \ @@ -689,20 +665,15 @@ typedef struct _RtsSymbolVal { SymI_HasProto(newPinnedByteArrayzh_fast) \ SymI_HasProto(newAlignedPinnedByteArrayzh_fast) \ SymI_HasProto(newSpark) \ - SymI_HasProto(orIntegerzh_fast) \ SymI_HasProto(performGC) \ SymI_HasProto(performMajorGC) \ - SymI_HasProto(plusIntegerzh_fast) \ SymI_HasProto(prog_argc) \ SymI_HasProto(prog_argv) \ SymI_HasProto(putMVarzh_fast) \ - SymI_HasProto(quotIntegerzh_fast) \ - SymI_HasProto(quotRemIntegerzh_fast) \ SymI_HasProto(raisezh_fast) \ SymI_HasProto(raiseIOzh_fast) \ SymI_HasProto(readTVarzh_fast) \ SymI_HasProto(readTVarIOzh_fast) \ - SymI_HasProto(remIntegerzh_fast) \ SymI_HasProto(resetNonBlockingFd) \ SymI_HasProto(resumeThread) \ SymI_HasProto(resolveObjs) \ @@ -833,7 +804,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(suspendThread) \ SymI_HasProto(takeMVarzh_fast) \ SymI_HasProto(threadStatuszh_fast) \ - SymI_HasProto(timesIntegerzh_fast) \ SymI_HasProto(tryPutMVarzh_fast) \ SymI_HasProto(tryTakeMVarzh_fast) \ SymI_HasProto(unblockAsyncExceptionszh_fast) \ @@ -841,9 +811,7 @@ typedef struct _RtsSymbolVal { SymI_HasProto(unsafeThawArrayzh_fast) \ SymI_HasProto(waitReadzh_fast) \ SymI_HasProto(waitWritezh_fast) \ - SymI_HasProto(word2Integerzh_fast) \ SymI_HasProto(writeTVarzh_fast) \ - SymI_HasProto(xorIntegerzh_fast) \ SymI_HasProto(yieldzh_fast) \ SymI_NeedsProto(stg_interp_constr_entry) \ SymI_HasProto(alloc_blocks) \ @@ -862,13 +830,6 @@ typedef struct _RtsSymbolVal { SymI_HasProto(traceCcszh_fast) \ RTS_USER_SIGNALS_SYMBOLS -#ifdef SUPPORT_LONG_LONGS -#define RTS_LONG_LONG_SYMS \ - SymI_HasProto(int64ToIntegerzh_fast) \ - SymI_HasProto(word64ToIntegerzh_fast) -#else -#define RTS_LONG_LONG_SYMS /* nothing */ -#endif // 64-bit support functions in libgcc.a #if defined(__GNUC__) && SIZEOF_VOID_P <= 4 @@ -916,7 +877,6 @@ typedef struct _RtsSymbolVal { #define SymI_HasProto_redirect(vvv,xxx) /**/ RTS_SYMBOLS RTS_RET_SYMBOLS -RTS_LONG_LONG_SYMS RTS_POSIX_ONLY_SYMBOLS RTS_MINGW_ONLY_SYMBOLS RTS_CYGWIN_ONLY_SYMBOLS @@ -952,7 +912,6 @@ RTS_LIBFFI_SYMBOLS static RtsSymbolVal rtsSyms[] = { RTS_SYMBOLS RTS_RET_SYMBOLS - RTS_LONG_LONG_SYMS RTS_POSIX_ONLY_SYMBOLS RTS_MINGW_ONLY_SYMBOLS RTS_CYGWIN_ONLY_SYMBOLS