Skip to content

Commit

Permalink
Handle Python with non-default names
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
stilor committed Apr 2, 2017
1 parent 91c192e commit 4562aa2
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 2 deletions.
16 changes: 16 additions & 0 deletions config/debug/gdb.in.cross
Expand Up @@ -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"
Expand Down
17 changes: 15 additions & 2 deletions scripts/build/debug/300-gdb.sh
Expand Up @@ -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"
Expand All @@ -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
Expand Down

0 comments on commit 4562aa2

Please sign in to comment.