/* -----------------------------------------------------------------------------
- * $Id: Linker.c,v 1.138 2003/10/29 16:12:00 wolfgang Exp $
*
* (c) The GHC Team, 2000-2003
*
#define RTS_MINGW_ONLY_SYMBOLS \
SymX(asyncReadzh_fast) \
SymX(asyncWritezh_fast) \
+ SymX(asyncDoProczh_fast) \
SymX(memset) \
SymX(inet_ntoa) \
SymX(inet_addr) \
#define RTS_LONG_LONG_SYMS /* nothing */
#endif
+#ifdef HAVE_TERMIOS_H
+#define RTS_TERMIOS_SYMS \
+ Sym(saved_termios)
+#else
+#define RTS_TERMIOS_SYMS /* nothing */
+#endif
+
// 64-bit support functions in libgcc.a
#if defined(__GNUC__) && SIZEOF_VOID_P <= 4
#define RTS_LIBGCC_SYMBOLS \
RTS_POSIX_ONLY_SYMBOLS
RTS_MINGW_ONLY_SYMBOLS
RTS_CYGWIN_ONLY_SYMBOLS
+RTS_TERMIOS_SYMS
RTS_LIBGCC_SYMBOLS
#undef Sym
#undef SymX
initLinker();
-#if !defined(openbsd_TARGET_OS)
hdl= dlopen(dll_name, RTLD_NOW | RTLD_GLOBAL);
-#else
- hdl= dlopen(dll_name, RTLD_LAZY);
-#endif
+
if (hdl == NULL) {
/* dlopen failed; return a ptr to the error msg. */
errmsg = dlerror();
* real count can be found in the first reloc entry.
*
* See Section 4.1 (last para) of the PE spec (rev6.0).
+ *
+ * Nov2003 update: the GNU linker still doesn't correctly
+ * handle the generation of relocatable object files with
+ * overflown relocations. Hence the output to warn of potential
+ * troubles.
*/
COFF_reloc* rel = (COFF_reloc*)
myindex ( sizeof_COFF_reloc, reltab, 0 );
noRelocs = rel->VirtualAddress;
- fprintf(stderr, "Overflown relocs: %u\n", noRelocs);
+ fprintf(stderr, "WARNING: Overflown relocation field (# relocs found: %u)\n", noRelocs); fflush(stderr);
j = 1;
} else {
noRelocs = sectab_i->NumberOfRelocations;