mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-19 01:19:41 +08:00
Fix quoting in gdb-add-index.sh
When the filename quoting change was merged into the AdaCore tree, we saw a regression in a test setup that uses the DWARF 5 index (that is running gdb-add-index), and a filename with a space in it. Initially I thought this was a change in the 'file' command -- but looking again, I found out that 'file' has worked this way for a while, and our immediate error was caused by the (documented) change to "save gdb-index". While I'm not sure why this test was working previously, it seems to me that gdb-add-index.sh requires a change to quote the arguments to "file" and "save gdb-index". While working on this, though, it seemed to me that multiple other spots needed quoting for the script to work correctly. And, I was unable to get quoting working correctly in the objcopy calls, so I split it into multiple different invocations. Approved-by: Kevin Buettner <kevinb@redhat.com>
This commit is contained in:
@@ -113,7 +113,7 @@ trap "rm -f $tmp_files" 0
|
||||
|
||||
$GDB --batch -nx -iex 'set auto-load no' \
|
||||
-iex 'set debuginfod enabled off' \
|
||||
-ex "file $file" -ex "save gdb-index $dwarf5 $dir" || {
|
||||
-ex "file '$file'" -ex "save gdb-index $dwarf5 '$dir'" || {
|
||||
# Just in case.
|
||||
status=$?
|
||||
echo "$myname: gdb error generating index for $file" 1>&2
|
||||
@@ -143,35 +143,32 @@ handle_file ()
|
||||
index="$index5"
|
||||
section=".debug_names"
|
||||
fi
|
||||
debugstradd=false
|
||||
debugstrupdate=false
|
||||
if test -s "$debugstr"; then
|
||||
if ! $OBJCOPY --dump-section .debug_str="$debugstrmerge" "$fpath" \
|
||||
/dev/null 2>$debugstrerr; then
|
||||
cat >&2 $debugstrerr
|
||||
/dev/null 2> "$debugstrerr"; then
|
||||
cat >&2 "$debugstrerr"
|
||||
exit 1
|
||||
fi
|
||||
if grep -q "can't dump section '.debug_str' - it does not exist" \
|
||||
$debugstrerr; then
|
||||
debugstradd=true
|
||||
else
|
||||
debugstrupdate=true
|
||||
cat >&2 $debugstrerr
|
||||
fi
|
||||
cat "$debugstr" >>"$debugstrmerge"
|
||||
if grep -q "can't dump section '.debug_str' - it does not exist" \
|
||||
"$debugstrerr"; then
|
||||
$OBJCOPY --add-section $section="$index" \
|
||||
--set-section-flags $section=readonly \
|
||||
--add-section .debug_str="$debugstrmerge" \
|
||||
--set-section-flags .debug_str=readonly \
|
||||
"$fpath" "$fpath"
|
||||
else
|
||||
$OBJCOPY --add-section $section="$index" \
|
||||
--set-section-flags $section=readonly \
|
||||
--update-section .debug_str="$debugstrmerge" \
|
||||
"$fpath" "$fpath"
|
||||
fi
|
||||
else
|
||||
$OBJCOPY --add-section $section="$index" \
|
||||
--set-section-flags $section=readonly \
|
||||
"$fpath" "$fpath"
|
||||
fi
|
||||
|
||||
$OBJCOPY --add-section $section="$index" \
|
||||
--set-section-flags $section=readonly \
|
||||
$(if $debugstradd; then \
|
||||
echo --add-section .debug_str="$debugstrmerge"; \
|
||||
echo --set-section-flags .debug_str=readonly; \
|
||||
fi; \
|
||||
if $debugstrupdate; then \
|
||||
echo --update-section .debug_str="$debugstrmerge"; \
|
||||
fi) \
|
||||
"$fpath" "$fpath"
|
||||
|
||||
status=$?
|
||||
else
|
||||
echo "$myname: No index was created for $fpath" 1>&2
|
||||
|
||||
Reference in New Issue
Block a user