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-01-05 17:32:35 by simonmar]
[ghc-hetmet.git]
/
ghc
/
rts
/
Linker.c
diff --git
a/ghc/rts/Linker.c
b/ghc/rts/Linker.c
index
a32036b
..
c20d23b
100644
(file)
--- 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
*
*
* (c) The GHC Team, 2000-2003
*
@@
-10,6
+10,12
@@
#if 0
#include "PosixSource.h"
#endif
#if 0
#include "PosixSource.h"
#endif
+
+// Linux needs _GNU_SOURCE to get RTLD_DEFAULT from <dlfcn.h>.
+#ifdef __linux__
+#define _GNU_SOURCE
+#endif
+
#include "Rts.h"
#include "RtsFlags.h"
#include "HsFFI.h"
#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) \
#define RTS_MINGW_ONLY_SYMBOLS \
SymX(asyncReadzh_fast) \
SymX(asyncWritezh_fast) \
+ SymX(asyncDoProczh_fast) \
SymX(memset) \
SymX(inet_ntoa) \
SymX(inet_addr) \
SymX(memset) \
SymX(inet_ntoa) \
SymX(inet_addr) \
@@
-409,6
+416,7
@@
typedef struct _RtsSymbolVal {
SymX(newPinnedByteArrayzh_fast) \
SymX(orIntegerzh_fast) \
SymX(performGC) \
SymX(newPinnedByteArrayzh_fast) \
SymX(orIntegerzh_fast) \
SymX(performGC) \
+ SymX(performMajorGC) \
SymX(plusIntegerzh_fast) \
SymX(prog_argc) \
SymX(prog_argv) \
SymX(plusIntegerzh_fast) \
SymX(prog_argc) \
SymX(prog_argv) \
@@
-695,7
+703,11
@@
initLinker( void )
# endif
# if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
# 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);
dl_prog_handle = dlopen(NULL, RTLD_LAZY);
+# endif // RTLD_DEFAULT
# endif
}
# endif
}