import gdb-8.2-18.el8
This commit is contained in:
parent
c7f2045cbf
commit
0eaf4bbb00
|
@ -803,3 +803,7 @@ Patch196: gdb-rhbz2012818-ibmz-update-4of5.patch
|
|||
# (Andreas Krebbel, RHBZ 2012818)
|
||||
Patch197: gdb-rhbz2012818-ibmz-update-5of5.patch
|
||||
|
||||
# Backport gdb/20948 (--write option to GDB causes segfault)
|
||||
# (Jozef Lawrynowicz, RHBZ 2018504)
|
||||
Patch198: gdb-rhbz2018504-do-not-update-elf-headers.patch
|
||||
|
||||
|
|
|
@ -195,3 +195,4 @@
|
|||
%patch195 -p1
|
||||
%patch196 -p1
|
||||
%patch197 -p1
|
||||
%patch198 -p1
|
||||
|
|
|
@ -0,0 +1,114 @@
|
|||
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
|
||||
From: Jozef Lawrynowicz <jozef.l@mittosystems.com>
|
||||
Date: Mon, 6 Dec 2021 12:56:59 -0500
|
||||
Subject: gdb-rhbz2018504-do-not-update-elf-headers.patch
|
||||
|
||||
;; Backport gdb/20948 (--write option to GDB causes segfault)
|
||||
;; (Jozef Lawrynowicz, RHBZ 2018504)
|
||||
|
||||
Fix PR gdb/20948: --write option to GDB causes segmentation fault
|
||||
|
||||
When opening a BFD for update, as gdb --write does, modifications to
|
||||
anything but the contents of sections is restricted.
|
||||
|
||||
Do not try to write back any ELF headers in this case.
|
||||
|
||||
diff --git a/bfd/elf.c b/bfd/elf.c
|
||||
--- a/bfd/elf.c
|
||||
+++ b/bfd/elf.c
|
||||
@@ -6418,6 +6418,18 @@ _bfd_elf_write_object_contents (bfd *abfd)
|
||||
if (! abfd->output_has_begun
|
||||
&& ! _bfd_elf_compute_section_file_positions (abfd, NULL))
|
||||
return FALSE;
|
||||
+ /* Do not rewrite ELF data when the BFD has been opened for update.
|
||||
+ abfd->output_has_begun was set to TRUE on opening, so creation of new
|
||||
+ sections, and modification of existing section sizes was restricted.
|
||||
+ This means the ELF header, program headers and section headers can't have
|
||||
+ changed.
|
||||
+ If the contents of any sections has been modified, then those changes have
|
||||
+ already been written to the BFD. */
|
||||
+ else if (abfd->direction == both_direction)
|
||||
+ {
|
||||
+ BFD_ASSERT (abfd->output_has_begun);
|
||||
+ return TRUE;
|
||||
+ }
|
||||
|
||||
i_shdrp = elf_elfsections (abfd);
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.base/write_mem.c b/gdb/testsuite/gdb.base/write_mem.c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/write_mem.c
|
||||
@@ -0,0 +1,20 @@
|
||||
+/* Copyright (C) 2018 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/>. */
|
||||
+
|
||||
+int main (void)
|
||||
+{
|
||||
+ while (1);
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/gdb/testsuite/gdb.base/write_mem.exp b/gdb/testsuite/gdb.base/write_mem.exp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/write_mem.exp
|
||||
@@ -0,0 +1,47 @@
|
||||
+# Copyright (C) 2018 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/>.
|
||||
+
|
||||
+# Contributed by Jozef Lawrynowicz (jozef.l@mittosystems.com)
|
||||
+
|
||||
+# Test for PR gdb/20948
|
||||
+# Verify that invoking gdb with the --write argument works as expected
|
||||
+
|
||||
+global GDBFLAGS
|
||||
+standard_testfile
|
||||
+
|
||||
+if {[build_executable $testfile.exp $testfile \
|
||||
+ $srcfile [list debug nowarnings] ] == -1} {
|
||||
+ untested $testfile.exp
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set old_gdbflags $GDBFLAGS
|
||||
+
|
||||
+# Expect a failure before --write has been added to the command line
|
||||
+set GDBFLAGS "$old_gdbflags $binfile"
|
||||
+clean_restart
|
||||
+test_print_reject "set {int}main = 0x4242" "Cannot access memory at address"
|
||||
+
|
||||
+# Setting memory should now work correctly after adding --write
|
||||
+set GDBFLAGS "$old_gdbflags --write $binfile"
|
||||
+clean_restart
|
||||
+gdb_test_no_output "set {int}main = 0x4242"
|
||||
+
|
||||
+# Check that memory write persists after quitting GDB
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_test "x /xh main" "<main>:.*4242"
|
||||
+
|
||||
+set GDBFLAGS $old_gdbflags
|
|
@ -26,7 +26,7 @@ Version: 8.2
|
|||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||
Release: 17%{?dist}
|
||||
Release: 18%{?dist}
|
||||
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
|
||||
Group: Development/Debuggers
|
||||
|
@ -1062,6 +1062,10 @@ fi
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Dec 8 2021 Keith Seitz <keiths@redhat.com> - 8.2-18.el8
|
||||
- Backport "Fix avx512 -m32 support in gdbserver"
|
||||
- (Tom de Vries, RH BZ 2011520)
|
||||
|
||||
* Mon Nov 1 2021 Keith Seitz <keiths@redhat.com> - 8.2-17.el8
|
||||
- Backport IBM arch14 updates.
|
||||
(Andreas Krebbel, RHBZ 2012818)
|
||||
|
|
Loading…
Reference in New Issue