Add ability to produce crash dumps on Windows
[ghc.git] / rts / package.conf.in
index 1301302..4eb75fc 100644 (file)
 
 #include "ghcconfig.h"
 #include "rts/Config.h"
+#include "MachDeps.h"
 
-name:          rts
-version:       1.0
-id:             builtin_rts
-license:       BSD3
-maintainer:    glasgow-haskell-users@haskell.org
-exposed:       True
+name:           rts
+version:        1.0
+id:             rts
+key:            rts
+license:        BSD3
+maintainer:     glasgow-haskell-users@haskell.org
+exposed:        True
 
 exposed-modules:
 hidden-modules:
 
 import-dirs:
 
-#ifdef INSTALLING
-library-dirs:          LIB_DIR PAPI_LIB_DIR
+#if defined(INSTALLING)
+library-dirs:           LIB_DIR"/rts" FFI_LIB_DIR
 #else /* !INSTALLING */
-library-dirs:          TOP"/rts/dist/build" PAPI_LIB_DIR
+library-dirs:           TOP"/rts/dist/build" FFI_LIB_DIR
 #endif
 
-hs-libraries:   "HSrts"
+hs-libraries:   "HSrts" FFI_LIB
 
 extra-libraries:
-#ifdef HAVE_LIBM
-                               "m"             /* for ldexp() */
+#if defined(HAVE_LIBM)
+                                "m"             /* for ldexp() */
 #endif
-#ifdef HAVE_LIBRT
-                             , "rt"
+#if defined(HAVE_LIBRT)
+                              , "rt"
 #endif
-#ifdef HAVE_LIBDL
-                             , "dl"
+#if defined(HAVE_LIBDL)
+                              , "dl"
 #endif
-#ifdef mingw32_HOST_OS
-                             ,"wsock32"        /* for the linker */
+#if defined(HAVE_LIBFFI)
+                              , "ffi"
+#endif
+#if HAVE_LIBNUMA
+                              , "numa"
+#endif
+#if defined(mingw32_HOST_OS)
+                              ,"wsock32"    /* for the linker */
+                              ,"gdi32"      /* for the linker */
+                              ,"winmm"      /* for the linker */
+                              ,"Dbghelp"    /* for crash dump */
+#endif
+#if NEED_PTHREAD_LIB
+                              , "pthread"   /* for pthread_getthreadid_np, pthread_create, etc. */
 #endif
 #if defined(DEBUG) && defined(HAVE_LIBBFD)
-                             ,"bfd", "iberty"  /* for debugging */
+                              ,"bfd", "iberty"  /* for debugging */
 #endif
-#ifdef HAVE_LIBMINGWEX
+#if defined(HAVE_LIBMINGWEX)
 # ifndef INSTALLING                             /* Bundled Mingw is behind */
                               ,"mingwex"
 # endif
 #endif
-#if USE_PAPI
-                            , "papi"
+#if USE_LIBDW
+                             , "elf"
+                             , "dw"             /* for backtraces */
 #endif
 
-#ifdef INSTALLING
-include-dirs:          INCLUDE_DIR PAPI_INCLUDE_DIR
+#if defined(INSTALLING)
+include-dirs:           INCLUDE_DIR FFI_INCLUDE_DIR
 #else /* !INSTALLING */
-include-dirs:           TOP"/rts/dist/build" TOP"/includes" TOP"/includes/dist-ghcconstants/header" TOP"/includes/dist-derivedconstants/header"
+include-dirs:           TOP"/rts/dist/build" TOP"/includes" TOP"/includes/dist-derivedconstants/header" FFI_INCLUDE_DIR
 #endif
 
-includes:              Stg.h
+includes:               Stg.h
 hugs-options:
 cc-options:
 
 ld-options:
-#ifdef LEADING_UNDERSCORE
-           "-u", "_ghczmprim_GHCziTypes_Izh_static_info"
-         , "-u", "_ghczmprim_GHCziTypes_Czh_static_info"
-         , "-u", "_ghczmprim_GHCziTypes_Fzh_static_info"
-         , "-u", "_ghczmprim_GHCziTypes_Dzh_static_info"
-         , "-u", "_base_GHCziPtr_Ptr_static_info"
-         , "-u", "_base_GHCziWord_Wzh_static_info"
-         , "-u", "_base_GHCziInt_I8zh_static_info"
-         , "-u", "_base_GHCziInt_I16zh_static_info"
-         , "-u", "_base_GHCziInt_I32zh_static_info"
-         , "-u", "_base_GHCziInt_I64zh_static_info"
-         , "-u", "_base_GHCziWord_W8zh_static_info"
-         , "-u", "_base_GHCziWord_W16zh_static_info"
-         , "-u", "_base_GHCziWord_W32zh_static_info"
-         , "-u", "_base_GHCziWord_W64zh_static_info"
-         , "-u", "_base_GHCziStable_StablePtr_static_info"
-         , "-u", "_ghczmprim_GHCziTypes_Izh_con_info"
-         , "-u", "_ghczmprim_GHCziTypes_Czh_con_info"
-         , "-u", "_ghczmprim_GHCziTypes_Fzh_con_info"
-         , "-u", "_ghczmprim_GHCziTypes_Dzh_con_info"
-         , "-u", "_base_GHCziPtr_Ptr_con_info"
-         , "-u", "_base_GHCziPtr_FunPtr_con_info"
-         , "-u", "_base_GHCziStable_StablePtr_con_info"
-         , "-u", "_ghczmprim_GHCziTypes_False_closure"
-         , "-u", "_ghczmprim_GHCziTypes_True_closure"
-         , "-u", "_base_GHCziPack_unpackCString_closure"
-         , "-u", "_base_GHCziIOziException_stackOverflow_closure"
-         , "-u", "_base_GHCziIOziException_heapOverflow_closure"
-         , "-u", "_base_ControlziExceptionziBase_nonTermination_closure"
-         , "-u", "_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
-         , "-u", "_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
-         , "-u", "_base_ControlziExceptionziBase_nestedAtomically_closure"
-         , "-u", "_base_GHCziWeak_runFinalizzerBatch_closure"
-         , "-u", "_base_GHCziTopHandler_flushStdHandles_closure"
-         , "-u", "_base_GHCziTopHandler_runIO_closure"
-         , "-u", "_base_GHCziTopHandler_runNonIO_closure"
-        , "-u", "_base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
-        , "-u", "_base_GHCziConcziSync_runSparks_closure"
-        , "-u", "_base_GHCziConcziSignal_runHandlers_closure"
+#if defined(LEADING_UNDERSCORE)
+
+           "-Wl,-u,_base_GHCziTopHandler_runIO_closure"
+         , "-Wl,-u,_base_GHCziTopHandler_runNonIO_closure"
+
+         , "-Wl,-u,_ghczmprim_GHCziTuple_Z0T_closure"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_True_closure"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_False_closure"
+         , "-Wl,-u,_base_GHCziPack_unpackCString_closure"
+         , "-Wl,-u,_base_GHCziWeak_runFinalizzerBatch_closure"
+         , "-Wl,-u,_base_GHCziIOziException_stackOverflow_closure"
+         , "-Wl,-u,_base_GHCziIOziException_heapOverflow_closure"
+         , "-Wl,-u,_base_GHCziIOziException_allocationLimitExceeded_closure"
+         , "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
+         , "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
+         , "-Wl,-u,_base_GHCziIOziException_cannotCompactFunction_closure"
+         , "-Wl,-u,_base_GHCziIOziException_cannotCompactPinned_closure"
+         , "-Wl,-u,_base_GHCziIOziException_cannotCompactMutable_closure"
+         , "-Wl,-u,_base_ControlziExceptionziBase_nonTermination_closure"
+         , "-Wl,-u,_base_ControlziExceptionziBase_nestedAtomically_closure"
+         , "-Wl,-u,_base_GHCziEventziThread_blockedOnBadFD_closure"
+         , "-Wl,-u,_base_GHCziConcziSync_runSparks_closure"
+         , "-Wl,-u,_base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
+         , "-Wl,-u,_base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
+         , "-Wl,-u,_base_GHCziConcziSignal_runHandlersPtr_closure"
+         , "-Wl,-u,_base_GHCziTopHandler_flushStdHandles_closure"
+         , "-Wl,-u,_base_GHCziTopHandler_runMainIO_closure"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_Czh_con_info"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_Izh_con_info"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_Fzh_con_info"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_Dzh_con_info"
+         , "-Wl,-u,_ghczmprim_GHCziTypes_Wzh_con_info"
+         , "-Wl,-u,_base_GHCziPtr_Ptr_con_info"
+         , "-Wl,-u,_base_GHCziPtr_FunPtr_con_info"
+         , "-Wl,-u,_base_GHCziInt_I8zh_con_info"
+         , "-Wl,-u,_base_GHCziInt_I16zh_con_info"
+         , "-Wl,-u,_base_GHCziInt_I32zh_con_info"
+         , "-Wl,-u,_base_GHCziInt_I64zh_con_info"
+         , "-Wl,-u,_base_GHCziWord_W8zh_con_info"
+         , "-Wl,-u,_base_GHCziWord_W16zh_con_info"
+         , "-Wl,-u,_base_GHCziWord_W32zh_con_info"
+         , "-Wl,-u,_base_GHCziWord_W64zh_con_info"
+         , "-Wl,-u,_base_GHCziStable_StablePtr_con_info"
+
+         , "-Wl,-u,_hs_atomic_add8"
+         , "-Wl,-u,_hs_atomic_add16"
+         , "-Wl,-u,_hs_atomic_add32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomic_add64"
+#endif
+         , "-Wl,-u,_hs_atomic_sub8"
+         , "-Wl,-u,_hs_atomic_sub16"
+         , "-Wl,-u,_hs_atomic_sub32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomic_sub64"
+#endif
+         , "-Wl,-u,_hs_atomic_and8"
+         , "-Wl,-u,_hs_atomic_and16"
+         , "-Wl,-u,_hs_atomic_and32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomic_and64"
+#endif
+         , "-Wl,-u,_hs_atomic_nand8"
+         , "-Wl,-u,_hs_atomic_nand16"
+         , "-Wl,-u,_hs_atomic_nand32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomic_nand64"
+#endif
+         , "-Wl,-u,_hs_atomic_or8"
+         , "-Wl,-u,_hs_atomic_or16"
+         , "-Wl,-u,_hs_atomic_or32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomic_or64"
+#endif
+         , "-Wl,-u,_hs_atomic_xor8"
+         , "-Wl,-u,_hs_atomic_xor16"
+         , "-Wl,-u,_hs_atomic_xor32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomic_xor64"
+#endif
+         , "-Wl,-u,_hs_cmpxchg8"
+         , "-Wl,-u,_hs_cmpxchg16"
+         , "-Wl,-u,_hs_cmpxchg32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_cmpxchg64"
+#endif
+         , "-Wl,-u,_hs_atomicread8"
+         , "-Wl,-u,_hs_atomicread16"
+         , "-Wl,-u,_hs_atomicread32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomicread64"
+#endif
+         , "-Wl,-u,_hs_atomicwrite8"
+         , "-Wl,-u,_hs_atomicwrite16"
+         , "-Wl,-u,_hs_atomicwrite32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,_hs_atomicwrite64"
+#endif
 #else
-           "-u", "ghczmprim_GHCziTypes_Izh_static_info"
-         , "-u", "ghczmprim_GHCziTypes_Czh_static_info"
-         , "-u", "ghczmprim_GHCziTypes_Fzh_static_info"
-         , "-u", "ghczmprim_GHCziTypes_Dzh_static_info"
-         , "-u", "base_GHCziPtr_Ptr_static_info"
-         , "-u", "base_GHCziWord_Wzh_static_info"
-         , "-u", "base_GHCziInt_I8zh_static_info"
-         , "-u", "base_GHCziInt_I16zh_static_info"
-         , "-u", "base_GHCziInt_I32zh_static_info"
-         , "-u", "base_GHCziInt_I64zh_static_info"
-         , "-u", "base_GHCziWord_W8zh_static_info"
-         , "-u", "base_GHCziWord_W16zh_static_info"
-         , "-u", "base_GHCziWord_W32zh_static_info"
-         , "-u", "base_GHCziWord_W64zh_static_info"
-         , "-u", "base_GHCziStable_StablePtr_static_info"
-         , "-u", "ghczmprim_GHCziTypes_Izh_con_info"
-         , "-u", "ghczmprim_GHCziTypes_Czh_con_info"
-         , "-u", "ghczmprim_GHCziTypes_Fzh_con_info"
-         , "-u", "ghczmprim_GHCziTypes_Dzh_con_info"
-         , "-u", "base_GHCziPtr_Ptr_con_info"
-         , "-u", "base_GHCziPtr_FunPtr_con_info"
-         , "-u", "base_GHCziStable_StablePtr_con_info"
-         , "-u", "ghczmprim_GHCziTypes_False_closure"
-         , "-u", "ghczmprim_GHCziTypes_True_closure"
-         , "-u", "base_GHCziPack_unpackCString_closure"
-         , "-u", "base_GHCziIOziException_stackOverflow_closure"
-         , "-u", "base_GHCziIOziException_heapOverflow_closure"
-         , "-u", "base_ControlziExceptionziBase_nonTermination_closure"
-         , "-u", "base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
-         , "-u", "base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
-         , "-u", "base_ControlziExceptionziBase_nestedAtomically_closure"
-         , "-u", "base_GHCziWeak_runFinalizzerBatch_closure"
-         , "-u", "base_GHCziTopHandler_flushStdHandles_closure"
-         , "-u", "base_GHCziTopHandler_runIO_closure"
-         , "-u", "base_GHCziTopHandler_runNonIO_closure"
-        , "-u", "base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
-        , "-u", "base_GHCziConcziSync_runSparks_closure"
-        , "-u", "base_GHCziConcziSignal_runHandlers_closure"
+           "-Wl,-u,base_GHCziTopHandler_runIO_closure"
+         , "-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
+
+         , "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
+         , "-Wl,-u,ghczmprim_GHCziTypes_True_closure"
+         , "-Wl,-u,ghczmprim_GHCziTypes_False_closure"
+         , "-Wl,-u,base_GHCziPack_unpackCString_closure"
+         , "-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
+         , "-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
+         , "-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
+         , "-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
+         , "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
+         , "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
+         , "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
+         , "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
+         , "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
+         , "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
+         , "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
+         , "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
+         , "-Wl,-u,base_GHCziConcziSync_runSparks_closure"
+         , "-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
+         , "-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
+         , "-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
+         , "-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
+         , "-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
+         , "-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
+         , "-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
+         , "-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
+         , "-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
+         , "-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
+         , "-Wl,-u,base_GHCziPtr_Ptr_con_info"
+         , "-Wl,-u,base_GHCziPtr_FunPtr_con_info"
+         , "-Wl,-u,base_GHCziInt_I8zh_con_info"
+         , "-Wl,-u,base_GHCziInt_I16zh_con_info"
+         , "-Wl,-u,base_GHCziInt_I32zh_con_info"
+         , "-Wl,-u,base_GHCziInt_I64zh_con_info"
+         , "-Wl,-u,base_GHCziWord_W8zh_con_info"
+         , "-Wl,-u,base_GHCziWord_W16zh_con_info"
+         , "-Wl,-u,base_GHCziWord_W32zh_con_info"
+         , "-Wl,-u,base_GHCziWord_W64zh_con_info"
+         , "-Wl,-u,base_GHCziStable_StablePtr_con_info"
+
+         , "-Wl,-u,hs_atomic_add8"
+         , "-Wl,-u,hs_atomic_add16"
+         , "-Wl,-u,hs_atomic_add32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomic_add64"
+#endif
+         , "-Wl,-u,hs_atomic_sub8"
+         , "-Wl,-u,hs_atomic_sub16"
+         , "-Wl,-u,hs_atomic_sub32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomic_sub64"
+#endif
+         , "-Wl,-u,hs_atomic_and8"
+         , "-Wl,-u,hs_atomic_and16"
+         , "-Wl,-u,hs_atomic_and32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomic_and64"
+#endif
+         , "-Wl,-u,hs_atomic_nand8"
+         , "-Wl,-u,hs_atomic_nand16"
+         , "-Wl,-u,hs_atomic_nand32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomic_nand64"
+#endif
+         , "-Wl,-u,hs_atomic_or8"
+         , "-Wl,-u,hs_atomic_or16"
+         , "-Wl,-u,hs_atomic_or32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomic_or64"
+#endif
+         , "-Wl,-u,hs_atomic_xor8"
+         , "-Wl,-u,hs_atomic_xor16"
+         , "-Wl,-u,hs_atomic_xor32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomic_xor64"
+#endif
+         , "-Wl,-u,hs_cmpxchg8"
+         , "-Wl,-u,hs_cmpxchg16"
+         , "-Wl,-u,hs_cmpxchg32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_cmpxchg64"
+#endif
+         , "-Wl,-u,hs_atomicread8"
+         , "-Wl,-u,hs_atomicread16"
+         , "-Wl,-u,hs_atomicread32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomicread64"
+#endif
+         , "-Wl,-u,hs_atomicwrite8"
+         , "-Wl,-u,hs_atomicwrite16"
+         , "-Wl,-u,hs_atomicwrite32"
+#if WORD_SIZE_IN_BITS == 64
+         , "-Wl,-u,hs_atomicwrite64"
+#endif
 #endif
 
 /*  Pick up static libraries in preference over dynamic if in earlier search
  *  path.  This is important to use the static gmp in preference on Mac OS.
  *  The used option is specific to the Darwin linker.
  */
-#ifdef darwin_HOST_OS
-        , "-Wl,-search_paths_first"
+#if defined(darwin_HOST_OS)
+         , "-Wl,-search_paths_first"
 #endif
 
 #if defined(darwin_HOST_OS) && !defined(x86_64_HOST_ARCH)
@@ -155,4 +287,3 @@ framework-dirs:
 
 haddock-interfaces:
 haddock-html:
-