X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FLinker.c;h=c20d23bdd0b3710a2b1965da5dc3c1267d3b45bf;hb=9858bd46f74aaebbac42b234b43dee8e7cd77715;hp=a32036b504548c9e6abe90c17f1673b339398869;hpb=d70c2dae6c895548594917c80c118a2f7ad0e55a;p=ghc-hetmet.git diff --git a/ghc/rts/Linker.c b/ghc/rts/Linker.c index a32036b..c20d23b 100644 --- a/ghc/rts/Linker.c +++ b/ghc/rts/Linker.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Linker.c,v 1.140 2003/11/12 15:45:49 sof Exp $ + * $Id: Linker.c,v 1.144 2004/01/05 17:32:35 simonmar Exp $ * * (c) The GHC Team, 2000-2003 * @@ -10,6 +10,12 @@ #if 0 #include "PosixSource.h" #endif + +// Linux needs _GNU_SOURCE to get RTLD_DEFAULT from . +#ifdef __linux__ +#define _GNU_SOURCE +#endif + #include "Rts.h" #include "RtsFlags.h" #include "HsFFI.h" @@ -230,6 +236,7 @@ typedef struct _RtsSymbolVal { #define RTS_MINGW_ONLY_SYMBOLS \ SymX(asyncReadzh_fast) \ SymX(asyncWritezh_fast) \ + SymX(asyncDoProczh_fast) \ SymX(memset) \ SymX(inet_ntoa) \ SymX(inet_addr) \ @@ -409,6 +416,7 @@ typedef struct _RtsSymbolVal { SymX(newPinnedByteArrayzh_fast) \ SymX(orIntegerzh_fast) \ SymX(performGC) \ + SymX(performMajorGC) \ SymX(plusIntegerzh_fast) \ SymX(prog_argc) \ SymX(prog_argv) \ @@ -695,7 +703,11 @@ initLinker( void ) # endif # if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO) +# if defined(RTLD_DEFAULT) + dl_prog_handle = RTLD_DEFAULT; +# else dl_prog_handle = dlopen(NULL, RTLD_LAZY); +# endif // RTLD_DEFAULT # endif }