aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2022-07-04 16:40:05 +0100
committerAndrew Burgess <aburgess@redhat.com>2022-07-18 11:32:40 +0100
commit602d2b520dc5917c2353987032c881f79b34d634 (patch)
treef84b64d0e9d010a9692c35d02e5da3ef487c1179
parent7e864bf71d55626dce94df26ebaf11f65b4d7b65 (diff)
downloadgdb-602d2b520dc5917c2353987032c881f79b34d634.zip
gdb-602d2b520dc5917c2353987032c881f79b34d634.tar.gz
gdb-602d2b520dc5917c2353987032c881f79b34d634.tar.bz2
gdb/python: look for python, then python 3 at configure time
It is possible that a system might have a python3 executable, but no python executable. For example, on my Fedora system the python2 package provides /usr/bin/python2, the python3 package provides /usr/bin/python3, and the python-unversioned-command package provides /usr/bin/python, which picks between python2 and python3. It is quite possible to only have python3 available on a system. Currently, when GDB configures, it looks for a 'python' executable. If non is found then GDB will be built without python support. Or the user needs to configure using --with-python=/usr/bin/python3. This commit updates GDB's configure.ac script to first look for 'python', and then 'python3'. Now, on a system that only has a python3 executable, GDB will automatically find, and use that in order to provide python support, no user supplied configure arguments are needed. I've tested this on my local machine by removing the python-unversioned-command package, confirming that there is no longer a 'python' executable in my $PATH, and then rebuilding GDB from scratch. GDB with this patch has python support.
-rwxr-xr-xgdb/configure12
-rw-r--r--gdb/configure.ac3
2 files changed, 11 insertions, 4 deletions
diff --git a/gdb/configure b/gdb/configure
index 1b82139..4b5e031 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -11098,8 +11098,11 @@ else
case "${with_python}" in
yes | auto)
if test "${build}" = "${host}"; then
- # Extract the first word of "python", so it can be a program name with args.
-set dummy python; ac_word=$2
+ # Look first for 'python', then 'python3'.
+ for ac_prog in python python3
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_python_prog_path+:} false; then :
@@ -11125,7 +11128,6 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_python_prog_path" && ac_cv_path_python_prog_path="missing"
;;
esac
fi
@@ -11139,6 +11141,10 @@ $as_echo "no" >&6; }
fi
+ test -n "$python_prog_path" && break
+done
+test -n "$python_prog_path" || python_prog_path="missing"
+
if test "${python_prog_path}" = missing; then
python_prog=missing
else
diff --git a/gdb/configure.ac b/gdb/configure.ac
index bf03b87..b681988 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -811,7 +811,8 @@ else
case "${with_python}" in
yes | auto)
if test "${build}" = "${host}"; then
- AC_PATH_PROG(python_prog_path, python, missing)
+ # Look first for 'python', then 'python3'.
+ AC_PATH_PROGS(python_prog_path, [python python3], missing)
if test "${python_prog_path}" = missing; then
python_prog=missing
else