#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: BSD-3-Clause
+maintainer: glasgow-haskell-users@haskell.org
+exposed: True
exposed-modules:
hidden-modules:
import-dirs:
-#ifdef INSTALLING
-library-dirs: LIB_DIR"/rts-1.0" 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" 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 HAVE_LIBFFI
+#if defined(HAVE_LIBFFI)
, "ffi"
#endif
-#ifdef mingw32_HOST_OS
- ,"wsock32" /* for the linker */
- ,"gdi32" /* for the linker */
- ,"winmm" /* for the linker */
+#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 */
+ ,"psapi" /* for process information. */
+#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-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", "_ghczmprim_GHCziTypes_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_GHCziConcziIO_ioManagerCapabilitiesChanged_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", "ghczmprim_GHCziTypes_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_GHCziConcziIO_ioManagerCapabilitiesChanged_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)
haddock-interfaces:
haddock-html:
-