summaryrefslogtreecommitdiffstats
path: root/mount/swap.configure
diff options
context:
space:
mode:
Diffstat (limited to 'mount/swap.configure')
-rw-r--r--mount/swap.configure22
1 files changed, 17 insertions, 5 deletions
diff --git a/mount/swap.configure b/mount/swap.configure
index a557e1871..ebd67ced6 100644
--- a/mount/swap.configure
+++ b/mount/swap.configure
@@ -1,24 +1,36 @@
# Find out whether we can include <sys/swap.h>
# and whether libc thinks that swapon() has two arguments.
-# Of course this will fail if <sys/swap.h> exists but belongs
-# to a libc that is not in use at present.
+
+# Prepare test
CC=${CC-cc}
compile="$CC -o conftest conftest.c >/dev/null 2>&1"
rm -f conftest conftest.c swapargs.h
+
+# What include files shall we try?
+# Unfortunately, recent versions of swap.h use PAGE_SIZE and hence need page.h
+# It is used only in mkswap, not in swapon/swapoff, so we might just pick any
+# random value (like #define PAGE_SIZE 4096) instead of including page.h.
SWAPH=
-if [ -f /usr/include/sys/swap.h ]; then SWAPH="#include <sys/swap.h>"; fi
-echo $SWAPH > conftest.c
+PAGEH=
+if [ -f /usr/include/sys/swap.h ]; then
+ SWAPH="#include <sys/swap.h>"
+ if [ -f /usr/include/asm/page.h ]; then
+ PAGEH="#include <asm/page.h>"
+ fi
+fi
+echo $PAGEH > conftest.c
+echo $SWAPH >> conftest.c
echo '#include <unistd.h>
main(){ exit(0); swapon("/dev/null", 0); }' >> conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then
echo "#define SWAPON_HAS_TWO_ARGS" > swapargs.h
+ echo $PAGEH >> swapargs.h
echo $SWAPH >> swapargs.h
else
echo > swapargs.h
echo "
Your libc thinks that swapon has 1 arg only.
-Define SWAPON_NEEDS_TWO_ARGS in swapon.c if you want to use priorities.
" 1>&2
fi
rm -f conftest conftest.c