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 ]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM( -[[ -#ifdef HAVE_SYS_SWAP_H -# include -#endif -#include -]], -[[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 ]]) 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 # 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 # define swapon(path, flags) syscall(SYS_swapon, path, flags) #endif