mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-17 21:03:55 +08:00
[gdb/testsuite] Add target board cc-with-gnu-debuglink.exp
Add target board cc-with-gnu-debuglink.exp that splits off debuginfo into a seperate .debug file and links to it using .gnu_debuglink. Tested on x86_64-linux. gdb/ChangeLog: 2021-05-21 Tom de Vries <tdevries@suse.de> PR testsuite/25047 * contrib/cc-with-tweaks.sh: Handle -l. gdb/testsuite/ChangeLog: 2021-05-21 Tom de Vries <tdevries@suse.de> PR testsuite/25047 * boards/cc-with-gnu-debuglink.exp: New file.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2021-05-21 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
PR testsuite/25047
|
||||
* contrib/cc-with-tweaks.sh: Handle -l.
|
||||
|
||||
2021-05-21 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
PR breakpoint/27889
|
||||
|
@ -45,6 +45,7 @@
|
||||
# -i make an index (.gdb_index)
|
||||
# -n make a dwarf5 index (.debug_names)
|
||||
# -p create .dwp files (Fission), you need to also use gcc option -gsplit-dwarf
|
||||
# -l creates separate debuginfo files linked to using .gnu_debuglink
|
||||
# If nothing is given, no changes are made
|
||||
|
||||
myname=cc-with-tweaks.sh
|
||||
@ -83,6 +84,7 @@ want_dwz=false
|
||||
want_multi=false
|
||||
want_dwp=false
|
||||
want_objcopy_compress=false
|
||||
want_gnu_debuglink=false
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
@ -92,6 +94,7 @@ while [ $# -gt 0 ]; do
|
||||
-n) want_index=true; index_options=-dwarf-5;;
|
||||
-m) want_multi=true ;;
|
||||
-p) want_dwp=true ;;
|
||||
-l) want_gnu_debuglink=true ;;
|
||||
*) break ;;
|
||||
esac
|
||||
shift
|
||||
@ -158,7 +161,12 @@ fi
|
||||
|
||||
get_tmpdir ()
|
||||
{
|
||||
tmpdir=$(dirname "$output_file")/.tmp
|
||||
subdir="$1"
|
||||
if [ "$subdir" = "" ]; then
|
||||
subdir=.tmp
|
||||
fi
|
||||
|
||||
tmpdir=$(dirname "$output_file")/"$subdir"
|
||||
mkdir -p "$tmpdir"
|
||||
}
|
||||
|
||||
@ -234,4 +242,40 @@ if [ "$want_dwp" = true ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$want_gnu_debuglink" = true ]; then
|
||||
# Based on gdb_gnu_strip_debug.
|
||||
|
||||
# Gdb looks for the .gnu_debuglink file in the .debug subdirectory
|
||||
# of the directory of the executable.
|
||||
get_tmpdir .debug
|
||||
|
||||
stripped_file="$tmpdir"/$(basename "$output_file").stripped
|
||||
debug_file="$tmpdir"/$(basename "$output_file").debug
|
||||
|
||||
# Create stripped and debug versions of output_file.
|
||||
strip --strip-debug "${output_file}" \
|
||||
-o "${stripped_file}"
|
||||
rc=$?
|
||||
[ $rc != 0 ] && exit $rc
|
||||
strip --only-keep-debug "${output_file}" \
|
||||
-o "${debug_file}"
|
||||
rc=$?
|
||||
[ $rc != 0 ] && exit $rc
|
||||
|
||||
# The .gnu_debuglink is supposed to contain no leading directories.
|
||||
link=$(basename "${debug_file}")
|
||||
|
||||
(
|
||||
# Temporarily cd to tmpdir to allow objcopy to find $link
|
||||
cd "$tmpdir" || exit 1
|
||||
|
||||
# Overwrite output_file with stripped version containing
|
||||
# .gnu_debuglink to debug_file.
|
||||
objcopy --add-gnu-debuglink="$link" "${stripped_file}" \
|
||||
"${output_file}"
|
||||
rc=$?
|
||||
[ $rc != 0 ] && exit $rc
|
||||
)
|
||||
fi
|
||||
|
||||
exit $rc
|
||||
|
@ -1,3 +1,8 @@
|
||||
2021-05-21 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
PR testsuite/25047
|
||||
* boards/cc-with-gnu-debuglink.exp: New file.
|
||||
|
||||
2021-05-21 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
|
||||
|
||||
* gdb.dwarf2/dw2-inline-with-lexical-scope.c (func): Replace
|
||||
|
26
gdb/testsuite/boards/cc-with-gnu-debuglink.exp
Normal file
26
gdb/testsuite/boards/cc-with-gnu-debuglink.exp
Normal file
@ -0,0 +1,26 @@
|
||||
# Copyright 2021 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# 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 file is a dejagnu "board file" and is used to run the testsuite
|
||||
# with contrib/cc-with-tweaks.sh -l.
|
||||
#
|
||||
# Example usage:
|
||||
# bash$ cd $objdir
|
||||
# bash$ make check-gdb \
|
||||
# RUNTESTFLAGS='--target_board=cc-with-gnu-debuglink'
|
||||
#
|
||||
|
||||
set CC_WITH_TWEAKS_FLAGS "-l"
|
||||
load_board_description "cc-with-tweaks"
|
Reference in New Issue
Block a user