From 4562aa2cffab8fcd5b9f34191641c1f4f91fdde2 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 1 Apr 2017 19:19:35 -0700 Subject: 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 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 -- cgit v0.10.2-6-g49f6