configure: fix parsing issue on libbpf_dir option

configure is stuck in an endless loop if '--libbpf_dir' option is used
without a value:

$ ./configure --libbpf_dir
./configure: line 515: shift: 2: shift count out of range
./configure: line 515: shift: 2: shift count out of range
[...]

Fix it splitting 'shift 2' into two consecutive shifts, and making the
second one conditional to the number of remaining arguments.

A check is also provided after the while loop to verify the libbpf dir
exists; also, as LIBBPF_DIR does not have a default value, configure bails
out if the user does not specify a value after --libbpf_dir, thus avoiding
to produce an erroneous configuration.

Fixes: 7ae2585b86 ("configure: convert LIBBPF environment variables to command-line options")
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
Acked-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
Andrea Claudi 2021-10-14 10:50:50 +02:00 committed by David Ahern
parent 1d819dcc74
commit 48c379bc2a
1 changed files with 7 additions and 3 deletions

10
configure vendored
View File

@ -486,7 +486,7 @@ usage()
cat <<EOF
Usage: $0 [OPTIONS]
--include_dir <dir> Path to iproute2 include dir
--libbpf_dir Path to libbpf DESTDIR
--libbpf_dir <dir> Path to libbpf DESTDIR
--libbpf_force Enable/disable libbpf by force. Available options:
on: require link against libbpf, quit config if no libbpf support
off: disable libbpf probing
@ -506,8 +506,9 @@ else
INCLUDE="$1"
[ "$#" -gt 0 ] && shift ;;
--libbpf_dir)
LIBBPF_DIR="$2"
shift 2 ;;
shift
LIBBPF_DIR="$1"
[ "$#" -gt 0 ] && shift ;;
--libbpf_force)
if [ "$2" != 'on' ] && [ "$2" != 'off' ]; then
usage 1
@ -525,6 +526,9 @@ else
fi
[ -d "$INCLUDE" ] || usage 1
if [ "${LIBBPF_DIR-unused}" != "unused" ]; then
[ -d "$LIBBPF_DIR" ] || usage 1
fi
echo "# Generated config based on" $INCLUDE >$CONFIG
quiet_config >> $CONFIG