summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac7
-rw-r--r--m4/fp_find_libdw.m431
-rw-r--r--m4/fp_find_libnuma.m431
-rw-r--r--rts/configure.ac9
-rw-r--r--rts/posix/OSMem.c4
5 files changed, 40 insertions, 42 deletions
diff --git a/configure.ac b/configure.ac
index be88deb270..4a39a9a314 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1124,7 +1124,14 @@ AC_SUBST([UseLibffiForAdjustors])
dnl ** Other RTS features
dnl --------------------------------------------------------------
FP_FIND_LIBDW
+AC_SUBST(UseLibdw)
+AC_SUBST(LibdwLibDir)
+AC_SUBST(LibdwIncludeDir)
+
FP_FIND_LIBNUMA
+AC_SUBST(UseLibNuma)
+AC_SUBST(LibNumaLibDir)
+AC_SUBST(LibNumaIncludeDir)
dnl ** Documentation
dnl --------------------------------------------------------------
diff --git a/m4/fp_find_libdw.m4 b/m4/fp_find_libdw.m4
index 29008408d7..fa5bf807cb 100644
--- a/m4/fp_find_libdw.m4
+++ b/m4/fp_find_libdw.m4
@@ -12,8 +12,6 @@ AC_DEFUN([FP_FIND_LIBDW],
LIBDW_LDFLAGS="-L$withval"
])
- AC_SUBST(LibdwLibDir)
-
AC_ARG_WITH([libdw-includes],
[AS_HELP_STRING([--with-libdw-includes=ARG],
[Find includes for libdw in ARG [default=system default]])
@@ -23,32 +21,29 @@ AC_DEFUN([FP_FIND_LIBDW],
LIBDW_CFLAGS="-I$withval"
])
- AC_SUBST(LibdwIncludeDir)
+ AC_ARG_ENABLE(dwarf-unwind,
+ [AS_HELP_STRING([--enable-dwarf-unwind],
+ [Enable DWARF unwinding support in the runtime system via elfutils' libdw [default=no]])],
+ [],
+ [enable_dwarf_unwind=no])
UseLibdw=NO
- USE_LIBDW=0
- AC_ARG_ENABLE(dwarf-unwind,
- [AS_HELP_STRING([--enable-dwarf-unwind],
- [Enable DWARF unwinding support in the runtime system via elfutils' libdw [default=no]])])
- if test "$enable_dwarf_unwind" = "yes" ; then
+ if test "$enable_dwarf_unwind" != "no" ; then
CFLAGS2="$CFLAGS"
CFLAGS="$LIBDW_CFLAGS $CFLAGS"
LDFLAGS2="$LDFLAGS"
LDFLAGS="$LIBDW_LDFLAGS $LDFLAGS"
- AC_CHECK_LIB(dw, dwfl_attach_state,
- [AC_CHECK_HEADERS([elfutils/libdw.h], [break], [])
- UseLibdw=YES],
- [AC_MSG_ERROR([Cannot find system libdw (required by --enable-dwarf-unwind)])])
+ AC_CHECK_HEADER([elfutils/libdwfl.h],
+ [AC_CHECK_LIB(dw, dwfl_attach_state,
+ [UseLibdw=YES])])
+
+ if test "x:$enable_dwarf_unwind:$UseLibdw" = "x:yes:NO" ; then
+ AC_MSG_ERROR([Cannot find system libdw (required by --enable-dwarf-unwind)])
+ fi
CFLAGS="$CFLAGS2"
LDFLAGS="$LDFLAGS2"
fi
-
- AC_SUBST(UseLibdw)
- if test $UseLibdw = "YES" ; then
- USE_LIBDW=1
- fi
- AC_DEFINE_UNQUOTED([USE_LIBDW], [$USE_LIBDW], [Set to 1 to use libdw])
])
diff --git a/m4/fp_find_libnuma.m4 b/m4/fp_find_libnuma.m4
index 4f55453f8e..1563ca4e89 100644
--- a/m4/fp_find_libnuma.m4
+++ b/m4/fp_find_libnuma.m4
@@ -11,8 +11,6 @@ AC_DEFUN([FP_FIND_LIBNUMA],
LIBNUMA_LDFLAGS="-L$withval"
])
- AC_SUBST(LibNumaLibDir)
-
AC_ARG_WITH([libnuma-includes],
[AS_HELP_STRING([--with-libnuma-includes=ARG],
[Find includes for libnuma in ARG [default=system default]])
@@ -22,14 +20,14 @@ AC_DEFUN([FP_FIND_LIBNUMA],
LIBNUMA_CFLAGS="-I$withval"
])
- AC_SUBST(LibNumaIncludeDir)
-
- HaveLibNuma=0
AC_ARG_ENABLE(numa,
- [AS_HELP_STRING([--enable-numa],
- [Enable NUMA memory policy and thread affinity support in the
- runtime system via numactl's libnuma [default=auto]])])
+ [AS_HELP_STRING([--enable-numa],
+ [Enable NUMA memory policy and thread affinity support in the
+ runtime system via numactl's libnuma [default=auto]])],
+ [],
+ [enable_numa=auto])
+ UseLibNuma=NO
if test "$enable_numa" != "no" ; then
CFLAGS2="$CFLAGS"
CFLAGS="$LIBNUMA_CFLAGS $CFLAGS"
@@ -38,23 +36,14 @@ AC_DEFUN([FP_FIND_LIBNUMA],
AC_CHECK_HEADERS([numa.h numaif.h])
- if test "$ac_cv_header_numa_h$ac_cv_header_numaif_h" = "yesyes" ; then
- AC_CHECK_LIB(numa, numa_available,HaveLibNuma=1)
+ if test "x:$ac_cv_header_numa_h:$ac_cv_header_numaif_h" = "x:yes:yes" ; then
+ AC_CHECK_LIB([numa], [numa_available], [UseLibNuma=YES])
fi
- if test "$enable_numa:$HaveLibNuma" = "yes:0" ; then
- AC_MSG_ERROR([Cannot find system libnuma (required by --enable-numa)])
+ if test "x:$enable_numa:$UseLibNuma" = "x:yes:NO" ; then
+ AC_MSG_ERROR([Cannot find system libnuma (required by --enable-numa)])
fi
CFLAGS="$CFLAGS2"
LDFLAGS="$LDFLAGS2"
fi
-
- AC_DEFINE_UNQUOTED([HAVE_LIBNUMA], [$HaveLibNuma], [Define to 1 if you have libnuma])
- if test $HaveLibNuma = "1" ; then
- AC_SUBST([UseLibNuma],[YES])
- AC_SUBST([CabalHaveLibNuma],[True])
- else
- AC_SUBST([UseLibNuma],[NO])
- AC_SUBST([CabalHaveLibNuma],[False])
- fi
])
diff --git a/rts/configure.ac b/rts/configure.ac
index 7c64d491e1..81c702d3c4 100644
--- a/rts/configure.ac
+++ b/rts/configure.ac
@@ -33,6 +33,15 @@ GHC_CONVERT_PLATFORM_PARTS([host], [Host])
FPTOOLS_SET_PLATFORM_VARS([host], [Host])
FPTOOLS_SET_HASKELL_PLATFORM_VARS([Host])
+dnl ** Other RTS features
+dnl --------------------------------------------------------------
+AC_DEFINE_UNQUOTED([USE_LIBDW], [$CABAL_FLAG_libdw], [Set to 1 to use libdw])
+
+AC_DEFINE_UNQUOTED([HAVE_LIBNUMA], [$CABAL_FLAG_libnuma], [Define to 1 if you have libnuma])
+
+dnl ** Write config files
+dnl --------------------------------------------------------------
+
AC_OUTPUT
dnl ######################################################################
diff --git a/rts/posix/OSMem.c b/rts/posix/OSMem.c
index e08dfca8b6..e266af8e7c 100644
--- a/rts/posix/OSMem.c
+++ b/rts/posix/OSMem.c
@@ -30,10 +30,8 @@
#if defined(HAVE_FCNTL_H)
#include <fcntl.h>
#endif
-#if defined(HAVE_NUMA_H)
+#if HAVE_LIBNUMA
#include <numa.h>
-#endif
-#if defined(HAVE_NUMAIF_H)
#include <numaif.h>
#endif
#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_SYS_TIME_H)