From 2f591deaf56c0361334c1fa1081d50bd9fb58883 Mon Sep 17 00:00:00 2001 From: Clemens Fruhwirth Date: Mon, 13 Oct 2008 20:16:08 +0000 Subject: [PATCH] Build fixes for DLLized rts --- rts/Makefile | 6 ++++-- rts/win32/ThrIOManager.c | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rts/Makefile b/rts/Makefile index f68e9a5..6646da2 100644 --- a/rts/Makefile +++ b/rts/Makefile @@ -94,7 +94,7 @@ EXCLUDED_SRCS += parallel/SysMan.c EXCLUDED_SRCS += dyn-wrapper.c -# compile generatic patchable dyn-wrapper +# compile generic patchable dyn-wrapper DYNWRAPPER_SRC = dyn-wrapper.c DYNWRAPPER_PROG = dyn-wrapper$(exeext) @@ -177,7 +177,7 @@ LIB_DEPS=buildbase BASE_DIST_LIB=$(TOP)/libraries/base/dist/build # The following must be a one liner otherwise its evaluation won't be delayed until base/rts packages are properly registered -LIB_LD_OPTS = -L$(shell $(GHC_PKG_INPLACE) field base library-dirs | sed -e 's/library-dirs: //') -l$(shell $(GHC_PKG_INPLACE) field base hs-libraries | sed -e 's/hs-libraries: //')-ghc$(ProjectVersion)$(soext) $(foreach lib,$(shell $(GHC_PKG_INPLACE) field rts extra-libraries | sed -e s/extra-libraries://),"-l$(lib)") $(foreach libdir,$(shell $(GHC_PKG_INPLACE) field rts library-dirs | sed -e s/library-dirs://),"-L$(libdir)") +LIB_LD_OPTS = $(foreach lib,$(shell $(GHC_PKG_INPLACE) field base hs-libraries | sed -e 's/hs-libraries: //'),"-l$(lib)-ghc$(ProjectVersion)$(soext)") $(foreach lib,$(shell $(GHC_PKG_INPLACE) field rts extra-libraries | sed -e s/extra-libraries://),"-l$(lib)") $(foreach libdir,$(shell $(GHC_PKG_INPLACE) field base library-dirs | sed -e 's/library-dirs: //' | sed -e s,\\\\,/,g) $(shell $(GHC_PKG_INPLACE) field rts library-dirs | sed -e s/library-dirs:// | sed -e s/\\\\/\\\\\\\\/g),"-L$(libdir)") endif endif @@ -459,6 +459,8 @@ ifeq "$(DYNAMIC_RTS) $(HOSTPLATFORM)" "YES i386-unknown-mingw32" # libHSrts.dll.a, the import library for dynamic linking required for # linking the dynamic version of base buildbase: $(LIBRARY).a + $(MAKE) way="" -C ../libraries/ make.library.ghc-prim + $(MAKE) way="" -C ../libraries/ make.library.integer-gmp $(MAKE) way="" -C ../libraries/ make.library.base endif diff --git a/rts/win32/ThrIOManager.c b/rts/win32/ThrIOManager.c index a74aac1..e2310ef 100644 --- a/rts/win32/ThrIOManager.c +++ b/rts/win32/ThrIOManager.c @@ -137,7 +137,11 @@ ioManagerStart (void) Capability *cap; if (io_manager_event == INVALID_HANDLE_VALUE) { cap = rts_lock(); +#if defined(mingw32_HOST_OS) && defined(__PIC__) + rts_evalIO(cap,_imp__base_GHCziConc_ensureIOManagerIsRunning_closure,NULL); +#else rts_evalIO(cap,&base_GHCziConc_ensureIOManagerIsRunning_closure,NULL); +#endif rts_unlock(cap); } } -- 1.7.10.4