diff options
Diffstat (limited to 'dev-lang/ghc/files/ghc-5.04.3-r1.patch')
-rw-r--r-- | dev-lang/ghc/files/ghc-5.04.3-r1.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/dev-lang/ghc/files/ghc-5.04.3-r1.patch b/dev-lang/ghc/files/ghc-5.04.3-r1.patch new file mode 100644 index 000000000000..c0f47a255ae0 --- /dev/null +++ b/dev-lang/ghc/files/ghc-5.04.3-r1.patch @@ -0,0 +1,85 @@ +diff -Naur ghc-5.04.3.old/ghc/rts/Linker.c ghc-5.04.3/ghc/rts/Linker.c +--- ghc-5.04.3.old/ghc/rts/Linker.c 2003-05-06 02:01:16.000000000 +0200 ++++ ghc-5.04.3/ghc/rts/Linker.c 2003-05-06 02:19:52.000000000 +0200 +@@ -196,11 +196,7 @@ + SymX(uname) \ + SymX(unlink) \ + SymX(utime) \ +- SymX(waitpid) \ +- Sym(__divdi3) \ +- Sym(__udivdi3) \ +- Sym(__moddi3) \ +- Sym(__umoddi3) ++ SymX(waitpid) + + #elif !defined(mingw32_TARGET_OS) + #define RTS_MINGW_ONLY_SYMBOLS /**/ +@@ -271,11 +267,7 @@ + Sym(opendir) \ + Sym(readdir) \ + Sym(rewinddir) \ +- Sym(closedir) \ +- Sym(__divdi3) \ +- Sym(__udivdi3) \ +- Sym(__moddi3) \ +- Sym(__umoddi3) ++ Sym(closedir) + #endif + + #ifndef SMP +@@ -498,12 +490,9 @@ + #define RTS_LONG_LONG_SYMS /* nothing */ + #endif + +-#ifdef ia64_TARGET_ARCH +-/* force these symbols to be present */ +-#define RTS_EXTRA_SYMBOLS \ +- Sym(__divsf3) +-#elif defined(powerpc_TARGET_ARCH) +-#define RTS_EXTRA_SYMBOLS \ ++// 64-bit support functions in libgcc.a ++#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 ++#define RTS_LIBGCC_SYMBOLS \ + Sym(__divdi3) \ + Sym(__udivdi3) \ + Sym(__moddi3) \ +@@ -511,7 +500,22 @@ + Sym(__ashldi3) \ + Sym(__ashrdi3) \ + Sym(__lshrdi3) \ +- SymX(__eprintf) ++ Sym(__eprintf) ++#else ++#define RTS_LIBGCC_SYMBOLS ++#endif ++ ++#ifdef ia64_TARGET_ARCH ++/* force these symbols to be present */ ++#define RTS_EXTRA_SYMBOLS \ ++ Sym(__divsf3) ++#elif defined(powerpc_TARGET_ARCH) ++ // Symbols that don't have a leading underscore ++ // on Mac OS X. They have to receive special treatment, ++ // see machoInitSymbolsWithoutUnderscore() ++#define RTS_MACHO_NOUNDERLINE_SYMBOLS \ ++ Sym(saveFP) \ ++ Sym(restFP) + #else + #define RTS_EXTRA_SYMBOLS /* nothing */ + #endif +@@ -525,6 +529,7 @@ + RTS_POSIX_ONLY_SYMBOLS + RTS_MINGW_ONLY_SYMBOLS + RTS_CYGWIN_ONLY_SYMBOLS ++RTS_LIBGCC_SYMBOLS + #undef Sym + #undef SymX + +@@ -545,6 +550,7 @@ + RTS_POSIX_ONLY_SYMBOLS + RTS_MINGW_ONLY_SYMBOLS + RTS_CYGWIN_ONLY_SYMBOLS ++ RTS_LIBGCC_SYMBOLS + { 0, 0 } /* sentinel */ + }; + |