summaryrefslogtreecommitdiff
path: root/gdb-add-index.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gdb-add-index.patch')
-rw-r--r--gdb-add-index.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/gdb-add-index.patch b/gdb-add-index.patch
new file mode 100644
index 0000000..5039172
--- /dev/null
+++ b/gdb-add-index.patch
@@ -0,0 +1,77 @@
+From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
+From: Fedora GDB patches <invalid@email.com>
+Date: Fri, 27 Oct 2017 21:07:50 +0200
+Subject: gdb-add-index.patch
+
+;; Update gdb-add-index.sh such that, when the GDB environment
+;; variable is not set, the script is smarter than just looking for
+;; 'gdb' in the $PATH.
+;;
+;; The actual search order is now: /usr/bin/gdb.minimal, gdb (in the
+;; $PATH), then /usr/libexec/gdb.
+;;
+;; For the rationale of looking for gdb.minimal see:
+;;
+;; https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
+;;
+;;=fedora
+
+diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh
+--- a/gdb/contrib/gdb-add-index.sh
++++ b/gdb/contrib/gdb-add-index.sh
+@@ -16,14 +16,52 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+-# This program assumes gdb and objcopy are in $PATH.
+-# If not, or you want others, pass the following in the environment
+-GDB=${GDB:=gdb}
++# This program assumes objcopy and readelf are in $PATH. If not, or
++# you want others, pass the following in the environment
+ OBJCOPY=${OBJCOPY:=objcopy}
+ READELF=${READELF:=readelf}
+
+ myname="${0##*/}"
+
++# For GDB itself we need to be a little smarter. If GDB is set in the
++# environment then we will use that. But if GDB is not set in the
++# environment then we have a couple of options that we need to check
++# through.
++#
++# Our default choice is for /usr/bin/gdb.minimal. For an explanation
++# of why this is chosen, check out:
++# https://bugzilla.redhat.com/show_bug.cgi?id=1695015
++# https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
++#
++# If gdb.minimal is not found then we look for a 'gdb' executable on
++# the path.
++#
++# And finally, we check for /usr/libexec/gdb.
++#
++# If none of those result in a useable GDB then we give an error and
++# exit.
++if test -z "$GDB"; then
++ for possible_gdb in /usr/bin/gdb.minimal gdb /usr/libexec/gdb; do
++ if ! which "$possible_gdb" >/dev/null 2>&1; then
++ continue
++ fi
++
++ possible_gdb=$(which "$possible_gdb")
++
++ if ! test -x "$possible_gdb"; then
++ continue
++ fi
++
++ GDB="$possible_gdb"
++ break
++ done
++
++ if test -z "$GDB"; then
++ echo "$myname: Failed to find a useable GDB binary" 1>&2
++ exit 1
++ fi
++fi
++
+ dwarf5=""
+ if [ "$1" = "-dwarf-5" ]; then
+ dwarf5="$1"