|
[GHC] #732: Error in shutdownHaskell() in Win32 DLL: msg#00121lang.haskell.glasgow.bugs
#732: Error in shutdownHaskell() in Win32 DLL ---------------------------------+------------------------------------------ Reporter: cschmidt@xxxxxxx | Owner: Type: bug | Status: new Priority: normal | Milestone: 6.4.2 Component: Runtime System | Version: 6.4.1 Severity: normal | Keywords: Os: Windows | Difficulty: Easy (1 hr) Architecture: Unknown | ---------------------------------+------------------------------------------ If an exception occurs in a Windows DLL produced by GHC, the following error message appears: {{{ ghcDll: internal error: too many hs_exit()s Please report this as a bug to glasgow-haskell-bugs@xxxxxxxxxxx, or http://www.sourceforge.net/projects/ghc/ }}} == How to reproduce == 1. Make a Haskell DLL using the enclosed Dll.hs and dllMain.c, e.g. {{{ ghc -c Dll.hs -fglasgow-exts ghc -c dllMain.c ghc --mk-dll -o test.dll Dll.o Dll_stub.o dllMain.o }}} 2. Generate an export library for the DLL, e.g. {{{ lib /DEF:test.def /MACHINE:x86 /OUT:test.lib }}} 3. Compile the executable with Visual C++ and run it. {{{ cl -c testdll.cpp link testdll.obj test.lib /OUT:testdll.exe testdll.exe }}} Note: if I comment out the shutdownHaskell() call from dllMain.c (the line marked with /***/), it works fine. Kind regards, Cyril --- Dll.hs --- {{{ module Dll (test) where foreign export ccall test :: IO () test = error "Exception occurred" }}} --- dllMain.c --- {{{ #include <windows.h> #include <Rts.h> extern void __stginit_Dll(void); static char* args[] = { "ghcDll", NULL }; BOOL STDCALL DllMain ( HANDLE hModule , DWORD reason , void* reserved ) { if (reason == DLL_PROCESS_ATTACH) { startupHaskell(1, args, __stginit_Dll); return TRUE; } else if (reason == DLL_PROCESS_DETACH) { /***/ shutdownHaskell(); } return TRUE; } }}} --- test.def --- {{{ EXPORTS test }}} --- testdll.cpp --- {{{ extern "C" void test(); int main() { test(); return 0; } }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/732> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler_______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@xxxxxxxxxxx http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [GHC] #731: GHCi doesn't work on powerpc64, GHC |
|---|---|
| Next by Date: | Threaded runtime error, Volker Stolz |
| Previous by Thread: | [GHC] #731: GHCi doesn't work on powerpc64, GHC |
| Next by Thread: | Threaded runtime error, Volker Stolz |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |