aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/vm/check_config.sh
blob: 079c8a40b85df26ec97199d0c424c2a03017f410 (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
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Probe for libraries and create header files to record the results. Both C
# header files and Makefile include fragments are created.

OUTPUT_H_FILE=local_config.h
OUTPUT_MKFILE=local_config.mk

# libhugetlbfs
tmpname=$(mktemp)
tmpfile_c=${tmpname}.c
tmpfile_o=${tmpname}.o

echo "#include <sys/types.h>"        > $tmpfile_c
echo "#include <hugetlbfs.h>"       >> $tmpfile_c
echo "int func(void) { return 0; }" >> $tmpfile_c

CC=${1:?"Usage: $0 <compiler> # example compiler: gcc"}
$CC -c $tmpfile_c -o $tmpfile_o >/dev/null 2>&1

if [ -f $tmpfile_o ]; then
    echo "#define LOCAL_CONFIG_HAVE_LIBHUGETLBFS 1" > $OUTPUT_H_FILE
    echo "HMM_EXTRA_LIBS = -lhugetlbfs"             > $OUTPUT_MKFILE
else
    echo "// No libhugetlbfs support found"      > $OUTPUT_H_FILE
    echo "# No libhugetlbfs support found, so:"  > $OUTPUT_MKFILE
    echo "HMM_EXTRA_LIBS = "                    >> $OUTPUT_MKFILE
fi

rm ${tmpname}.*