Handle Python with non-default names

Check for python2/python3 and if found, pass them to --with-python.
Allow user to override the choice via a new config option. This
fixes systems where there is no "python", only "python2" or "python3".

Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
Alexey Neyman 2017-04-01 19:19:35 -07:00
parent 91c192e318
commit 4562aa2cff
2 changed files with 31 additions and 2 deletions

View File

@ -50,6 +50,22 @@ config GDB_CROSS_PYTHON
have been reports of problems when linking gdb to the static
libpython.a. This should be fixed in gdb >=7.3. YMMV.
config GDB_CROSS_PYTHON_BINARY
string "Python binary to use"
depends on GDB_CROSS_PYTHON
help
The path to a binary passed to GDB configure. You may need to
specify this if Python is not available under the default name
(i.e. 'python'). By default, crosstool-NG will try python, python3
and python2, in that order.
To use this option in a canadian/cross-native build, you will
need to provide a helper script that will report the compilation
and linking flags for the host's Python, since configure script
will not be able to run the interpreter and query it. See the
help message in gdb's configure script for the --with-python option
for further guidance.
config GDB_CROSS_EXTRA_CONFIG_ARRAY
string
prompt "Cross-gdb extra config"

View File

@ -48,7 +48,7 @@ do_debug_gdb_build() {
if [ "${CT_GDB_CROSS}" = "y" ]; then
local -a cross_extra_config
local gcc_version
local gcc_version p _p
CT_DoStep INFO "Installing cross-gdb"
CT_DoLog EXTRA "Configuring cross-gdb"
@ -75,7 +75,20 @@ do_debug_gdb_build() {
*) cross_extra_config+=("--enable-threads");;
esac
if [ "${CT_GDB_CROSS_PYTHON}" = "y" ]; then
cross_extra_config+=( "--with-python=yes" )
if [ -z "${CT_GDB_CROSS_PYTHON_BINARY}" ]; then
for p in python python3 python2; do
_p=$( which "${p}" || true )
if [ -n "${_p}" ]; then
cross_extra_config+=( "--with-python=${_p}" )
break
fi
done
if [ -z "${_p}" ]; then
CT_Abort "Python support requested in cross-gdb, but Python not found. Set CT_GDB_CROSS_PYTHON_BINARY in your config."
fi
else
cross_extra_config+=( "--with-python=${CT_GDB_CROSS_PYTHON_BINARY}" )
fi
else
cross_extra_config+=( "--with-python=no" )
fi