2b402b25f4
Every invocation of gdb-add-index will print which possible gdb command will be used. This is because the which command always prints the name of the command found. Redirect both stdout and stderr to /dev/null to suppress this when the output isn't needed.
78 lines
2.4 KiB
Diff
78 lines
2.4 KiB
Diff
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"
|