summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-04-02 02:19:35 (GMT)
committerAlexey Neyman <stilor@att.net>2017-04-02 02:19:35 (GMT)
commit4562aa2cffab8fcd5b9f34191641c1f4f91fdde2 (patch)
treebec2c94ece0b26f2ffb960e3d9f8694c061b7016
parent91c192e31853fd8d2e8b27d7157ea5a6cd583ca2 (diff)
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>
-rw-r--r--config/debug/gdb.in.cross16
-rw-r--r--scripts/build/debug/300-gdb.sh17
2 files changed, 31 insertions, 2 deletions
diff --git a/config/debug/gdb.in.cross b/config/debug/gdb.in.cross
index 3053f71..e193548 100644
--- a/config/debug/gdb.in.cross
+++ b/config/debug/gdb.in.cross
@@ -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"
diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
index b2cb08f..62a2d90 100644
--- a/scripts/build/debug/300-gdb.sh
+++ b/scripts/build/debug/300-gdb.sh
@@ -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