summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac18
-rw-r--r--sys-utils/swapoff.c3
-rw-r--r--sys-utils/swapon.c3
3 files changed, 6 insertions, 18 deletions
diff --git a/configure.ac b/configure.ac
index 1cb18dc20..4403391e7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -343,20 +343,6 @@ AC_CHECK_MEMBERS([struct termios.c_line],,,
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
[#include <sys/stat.h>])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-[[
-#ifdef HAVE_SYS_SWAP_H
-# include <sys/swap.h>
-#endif
-#include <unistd.h>
-]],
-[[swapon("/dev/null", 0);]])],
-[AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
-],
-[AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
-])
-
-
AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
AC_CHECK_DECL([llseek],
@@ -1431,10 +1417,14 @@ AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
UL_BUILD_INIT([swapon], [check])
UL_REQUIRES_LINUX([swapon])
+UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
+UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
UL_REQUIRES_BUILD([swapon], [libblkid])
UL_REQUIRES_BUILD([swapon], [libmount])
UL_REQUIRES_BUILD([swapon], [libsmartcols])
AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
+AC_CHECK_FUNCS([swapon])
+AC_CHECK_FUNCS([swapoff])
UL_BUILD_INIT([lsblk], [check])
diff --git a/sys-utils/swapoff.c b/sys-utils/swapoff.c
index e5e059d74..0a3807fda 100644
--- a/sys-utils/swapoff.c
+++ b/sys-utils/swapoff.c
@@ -14,8 +14,7 @@
#include "swapprober.h"
#include "swapon-common.h"
-#ifndef SWAPON_HAS_TWO_ARGS
-/* libc is insane, let's call the kernel */
+#if !defined(HAVE_SWAPOFF) && defined(SYS_swapoff)
# include <sys/syscall.h>
# define swapoff(path) syscall(SYS_swapoff, path)
#endif
diff --git a/sys-utils/swapon.c b/sys-utils/swapon.c
index 6bf67a91f..13437f771 100644
--- a/sys-utils/swapon.c
+++ b/sys-utils/swapon.c
@@ -59,8 +59,7 @@
# define SWAP_FLAG_PRIO_SHIFT 0
#endif
-#ifndef SWAPON_HAS_TWO_ARGS
-/* libc is insane, let's call the kernel */
+#if !defined(HAVE_SWAPON) && defined(SYS_swapon)
# include <sys/syscall.h>
# define swapon(path, flags) syscall(SYS_swapon, path, flags)
#endif