Optionally use libffi to implement 'foreign import "wrapper"' (#793)
[ghc-hetmet.git] / rts / package.conf.in
index 935b71d..187ae40 100644 (file)
@@ -15,15 +15,15 @@ hidden-modules:
 import-dirs:
 
 #ifdef INSTALLING
-library-dirs:          LIB_DIR
+library-dirs:          LIB_DIR GMP_LIB_DIRS
 # ifdef mingw32_HOST_OS
                        , LIB_DIR"/gcc-lib"
                        /* force the dist-provided gcc-lib/ into scope. */
 # endif
 #else /* !INSTALLING */
-library-dirs:          FPTOOLS_TOP_ABS"/rts"
+library-dirs:          FPTOOLS_TOP_ABS"/rts" GMP_LIB_DIRS
 # if !defined(HAVE_LIBGMP) && !defined(HAVE_FRAMEWORK_GMP)
-                       , FPTOOLS_TOP_ABS"/rts/gmp"
+                       , FPTOOLS_TOP_ABS"/gmp"
 # endif
 #endif
 
@@ -53,14 +53,22 @@ extra-libraries:            "m"             /* for ldexp() */
                               ,"mingwex"
 # endif
 #endif
+#if USE_PAPI
+                            , "papi"
+#endif
+#ifdef USE_LIBFFI
+                             , "ffi"
+#endif
 
 #ifdef INSTALLING
-include-dirs:          INCLUDE_DIR
+include-dirs:          INCLUDE_DIR GMP_INCLUDE_DIRS
 # ifdef mingw32_HOST_OS
                        , INCLUDE_DIR"/mingw"
 # endif
 #else /* !INSTALLING */
 include-dirs:          FPTOOLS_TOP_ABS"/includes"
+                       FPTOOLS_TOP_ABS"/rts"
+                       FPTOOLS_TOP_ABS"/gmp/gmpbuild"
 #endif
 
 includes:              Stg.h
@@ -70,73 +78,87 @@ cc-options:
 
 ld-options:
 #ifdef LEADING_UNDERSCORE
-           "-u", "_GHCziBase_Izh_static_info"
-         , "-u", "_GHCziBase_Czh_static_info"
-         , "-u", "_GHCziFloat_Fzh_static_info"
-         , "-u", "_GHCziFloat_Dzh_static_info"
-         , "-u", "_GHCziPtr_Ptr_static_info"
-         , "-u", "_GHCziWord_Wzh_static_info"
-         , "-u", "_GHCziInt_I8zh_static_info"
-         , "-u", "_GHCziInt_I16zh_static_info"
-         , "-u", "_GHCziInt_I32zh_static_info"
-         , "-u", "_GHCziInt_I64zh_static_info"
-         , "-u", "_GHCziWord_W8zh_static_info"
-         , "-u", "_GHCziWord_W16zh_static_info"
-         , "-u", "_GHCziWord_W32zh_static_info"
-         , "-u", "_GHCziWord_W64zh_static_info"
-         , "-u", "_GHCziStable_StablePtr_static_info"
-         , "-u", "_GHCziBase_Izh_con_info"
-         , "-u", "_GHCziBase_Czh_con_info"
-         , "-u", "_GHCziFloat_Fzh_con_info"
-         , "-u", "_GHCziFloat_Dzh_con_info"
-         , "-u", "_GHCziPtr_Ptr_con_info"
-         , "-u", "_GHCziPtr_FunPtr_con_info"
-         , "-u", "_GHCziStable_StablePtr_con_info"
-         , "-u", "_GHCziBase_False_closure"
-         , "-u", "_GHCziBase_True_closure"
-         , "-u", "_GHCziPack_unpackCString_closure"
-         , "-u", "_GHCziIOBase_stackOverflow_closure"
-         , "-u", "_GHCziIOBase_heapOverflow_closure"
-         , "-u", "_GHCziIOBase_NonTermination_closure"
-         , "-u", "_GHCziIOBase_BlockedOnDeadMVar_closure"
-         , "-u", "_GHCziIOBase_BlockedIndefinitely_closure"
-         , "-u", "_GHCziIOBase_Deadlock_closure"
-         , "-u", "_GHCziIOBase_NestedAtomically_closure"
-         , "-u", "_GHCziWeak_runFinalizzerBatch_closure"
+           "-u", "_base_GHCziBase_Izh_static_info"
+         , "-u", "_base_GHCziBase_Czh_static_info"
+         , "-u", "_base_GHCziFloat_Fzh_static_info"
+         , "-u", "_base_GHCziFloat_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", "_base_GHCziBase_Izh_con_info"
+         , "-u", "_base_GHCziBase_Czh_con_info"
+         , "-u", "_base_GHCziFloat_Fzh_con_info"
+         , "-u", "_base_GHCziFloat_Dzh_con_info"
+         , "-u", "_base_GHCziPtr_Ptr_con_info"
+         , "-u", "_base_GHCziPtr_FunPtr_con_info"
+         , "-u", "_base_GHCziStable_StablePtr_con_info"
+         , "-u", "_base_GHCziBase_False_closure"
+         , "-u", "_base_GHCziBase_True_closure"
+         , "-u", "_base_GHCziPack_unpackCString_closure"
+         , "-u", "_base_GHCziIOBase_stackOverflow_closure"
+         , "-u", "_base_GHCziIOBase_heapOverflow_closure"
+         , "-u", "_base_GHCziIOBase_NonTermination_closure"
+         , "-u", "_base_GHCziIOBase_BlockedOnDeadMVar_closure"
+         , "-u", "_base_GHCziIOBase_BlockedIndefinitely_closure"
+         , "-u", "_base_GHCziIOBase_Deadlock_closure"
+         , "-u", "_base_GHCziIOBase_NestedAtomically_closure"
+         , "-u", "_base_GHCziWeak_runFinalizzerBatch_closure"
+#else
+           "-u", "base_GHCziBase_Izh_static_info"
+         , "-u", "base_GHCziBase_Czh_static_info"
+         , "-u", "base_GHCziFloat_Fzh_static_info"
+         , "-u", "base_GHCziFloat_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", "base_GHCziBase_Izh_con_info"
+         , "-u", "base_GHCziBase_Czh_con_info"
+         , "-u", "base_GHCziFloat_Fzh_con_info"
+         , "-u", "base_GHCziFloat_Dzh_con_info"
+         , "-u", "base_GHCziPtr_Ptr_con_info"
+         , "-u", "base_GHCziPtr_FunPtr_con_info"
+         , "-u", "base_GHCziStable_StablePtr_con_info"
+         , "-u", "base_GHCziBase_False_closure"
+         , "-u", "base_GHCziBase_True_closure"
+         , "-u", "base_GHCziPack_unpackCString_closure"
+         , "-u", "base_GHCziIOBase_stackOverflow_closure"
+         , "-u", "base_GHCziIOBase_heapOverflow_closure"
+         , "-u", "base_GHCziIOBase_NonTermination_closure"
+         , "-u", "base_GHCziIOBase_BlockedOnDeadMVar_closure"
+         , "-u", "base_GHCziIOBase_BlockedIndefinitely_closure"
+         , "-u", "base_GHCziIOBase_Deadlock_closure"
+         , "-u", "base_GHCziIOBase_NestedAtomically_closure"
+         , "-u", "base_GHCziWeak_runFinalizzerBatch_closure"
+#endif
+
+#ifdef LEADING_UNDERSCORE
+        , "-u", "_base_GHCziConc_ensureIOManagerIsRunning_closure"
 #else
-           "-u", "GHCziBase_Izh_static_info"
-         , "-u", "GHCziBase_Czh_static_info"
-         , "-u", "GHCziFloat_Fzh_static_info"
-         , "-u", "GHCziFloat_Dzh_static_info"
-         , "-u", "GHCziPtr_Ptr_static_info"
-         , "-u", "GHCziWord_Wzh_static_info"
-         , "-u", "GHCziInt_I8zh_static_info"
-         , "-u", "GHCziInt_I16zh_static_info"
-         , "-u", "GHCziInt_I32zh_static_info"
-         , "-u", "GHCziInt_I64zh_static_info"
-         , "-u", "GHCziWord_W8zh_static_info"
-         , "-u", "GHCziWord_W16zh_static_info"
-         , "-u", "GHCziWord_W32zh_static_info"
-         , "-u", "GHCziWord_W64zh_static_info"
-         , "-u", "GHCziStable_StablePtr_static_info"
-         , "-u", "GHCziBase_Izh_con_info"
-         , "-u", "GHCziBase_Czh_con_info"
-         , "-u", "GHCziFloat_Fzh_con_info"
-         , "-u", "GHCziFloat_Dzh_con_info"
-         , "-u", "GHCziPtr_Ptr_con_info"
-         , "-u", "GHCziPtr_FunPtr_con_info"
-         , "-u", "GHCziStable_StablePtr_con_info"
-         , "-u", "GHCziBase_False_closure"
-         , "-u", "GHCziBase_True_closure"
-         , "-u", "GHCziPack_unpackCString_closure"
-         , "-u", "GHCziIOBase_stackOverflow_closure"
-         , "-u", "GHCziIOBase_heapOverflow_closure"
-         , "-u", "GHCziIOBase_NonTermination_closure"
-         , "-u", "GHCziIOBase_BlockedOnDeadMVar_closure"
-         , "-u", "GHCziIOBase_BlockedIndefinitely_closure"
-         , "-u", "GHCziIOBase_Deadlock_closure"
-         , "-u", "GHCziIOBase_NestedAtomically_closure"
-         , "-u", "GHCziWeak_runFinalizzerBatch_closure"
+        , "-u", "base_GHCziConc_ensureIOManagerIsRunning_closure"
+#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_BUILD_OS
+        , "-Wl,-search_paths_first"
 #endif
 
 framework-dirs: