summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2017-12-18 13:57:20 +0100
committerKarel Zak2017-12-18 13:57:20 +0100
commitcf9b16f1d408faa63009667329431f7969303220 (patch)
treec85844bf8c0e40713d49a73534bd8da389b6696f
parentlibblkid: (bcache) cleanup magic string definition (diff)
downloadkernel-qcow2-util-linux-cf9b16f1d408faa63009667329431f7969303220.tar.gz
kernel-qcow2-util-linux-cf9b16f1d408faa63009667329431f7969303220.tar.xz
kernel-qcow2-util-linux-cf9b16f1d408faa63009667329431f7969303220.zip
build-sys: don't check for swapon() number of arguments
The syscall swapon() with two arguments is supported since Linux 1.3.2 and it's really long time ago... Let's assume that all libc header files have been already fixed. Signed-off-by: Karel Zak <kzak@redhat.com>
-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