summaryrefslogtreecommitdiffstats
path: root/mount/swap.configure
blob: ebd67ced669223c210b5c2576364d678dea9005d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Find out whether we can include <sys/swap.h>
# and whether libc thinks that swapon() has two arguments.

# 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=
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.
" 1>&2
fi
rm -f conftest conftest.c