public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gdb] gdb-17.2-rebase-f44: [ppc64le] Use skip_entrypoint for skip_trampoline_code (RH BZ 1260558).
@ 2026-06-27 23:57 Jan Kratochvil
0 siblings, 0 replies; only message in thread
From: Jan Kratochvil @ 2026-06-27 23:57 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gdb
Branch : gdb-17.2-rebase-f44
Commit : 276edb821d1c9d557e03b9d88eae387899baf3fb
Author : Jan Kratochvil <jan.kratochvil@redhat.com>
Date : 2015-09-10T23:51:47+02:00
Stats : +265/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/gdb/c/276edb821d1c9d557e03b9d88eae387899baf3fb?branch=gdb-17.2-rebase-f44
Log:
[ppc64le] Use skip_entrypoint for skip_trampoline_code (RH BZ 1260558).
---
diff --git a/gdb-rhbz1260558-ppc64le-skip_trampoline_code.patch b/gdb-rhbz1260558-ppc64le-skip_trampoline_code.patch
new file mode 100644
index 0000000..cdbbd6a
--- /dev/null
+++ b/gdb-rhbz1260558-ppc64le-skip_trampoline_code.patch
@@ -0,0 +1,257 @@
+http://sourceware.org/ml/gdb-patches/2015-09/msg00183.html
+Subject: [ppc64le patch v3] Use skip_entrypoint for skip_trampoline_code
+
+
+--mYCpIKhGyMATD0i+
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+An update to PASS the testcase on non-ppc64le archs.
+
+--mYCpIKhGyMATD0i+
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline; filename=4
+
+gdb/ChangeLog
+2015-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * linespec.c (minsym_found): Call gdbarch_skip_entrypoint.
+ * ppc64-tdep.c (ppc64_skip_trampoline_code): Rename to ...
+ (ppc64_skip_trampoline_code_1): ... here.
+ (ppc64_skip_trampoline_code): New wrapper function.
+ * symtab.c (find_function_start_sal): Call gdbarch_skip_entrypoint.
+
+gdb/testsuite/ChangeLog
+2015-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.opt/solib-intra-step-lib.c: New file.
+ * gdb.opt/solib-intra-step-main.c: New file.
+ * gdb.opt/solib-intra-step.exp: New file.
+
+diff --git a/gdb/linespec.c b/gdb/linespec.c
+index 8f102fa..4c29c12 100644
+--- a/gdb/linespec.c
++++ b/gdb/linespec.c
+@@ -3570,6 +3570,8 @@ minsym_found (struct linespec_state *self, struct objfile *objfile,
+ sal.pc = MSYMBOL_VALUE_ADDRESS (objfile, msymbol);
+ sal.pc = gdbarch_convert_from_func_ptr_addr (gdbarch, sal.pc,
+ ¤t_target);
++ if (gdbarch_skip_entrypoint_p (gdbarch))
++ sal.pc = gdbarch_skip_entrypoint (gdbarch, sal.pc);
+ }
+ else
+ skip_prologue_sal (&sal);
+diff --git a/gdb/ppc64-tdep.c b/gdb/ppc64-tdep.c
+index bb23b6a..4a0b93a 100644
+--- a/gdb/ppc64-tdep.c
++++ b/gdb/ppc64-tdep.c
+@@ -454,8 +454,8 @@ ppc64_standard_linkage4_target (struct frame_info *frame,
+ When the execution direction is EXEC_REVERSE, scan backward to
+ check whether we are in the middle of a PLT stub. */
+
+-CORE_ADDR
+-ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
++static CORE_ADDR
++ppc64_skip_trampoline_code_1 (struct frame_info *frame, CORE_ADDR pc)
+ {
+ #define MAX(a,b) ((a) > (b) ? (a) : (b))
+ unsigned int insns[MAX (MAX (MAX (ARRAY_SIZE (ppc64_standard_linkage1),
+@@ -530,6 +530,20 @@ ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
+ return 0;
+ }
+
++/* Wrapper of ppc64_skip_trampoline_code_1 checking also
++ ppc_elfv2_skip_entrypoint. */
++
++CORE_ADDR
++ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
++{
++ struct gdbarch *gdbarch = get_frame_arch (frame);
++
++ pc = ppc64_skip_trampoline_code_1 (frame, pc);
++ if (pc != 0 && gdbarch_skip_entrypoint_p (gdbarch))
++ pc = gdbarch_skip_entrypoint (gdbarch, pc);
++ return pc;
++}
++
+ /* Support for convert_from_func_ptr_addr (ARCH, ADDR, TARG) on PPC64
+ GNU/Linux.
+
+diff --git a/gdb/symtab.c b/gdb/symtab.c
+index 1ba691e..f65e809 100644
+--- a/gdb/symtab.c
++++ b/gdb/symtab.c
+@@ -3629,7 +3629,11 @@ find_function_start_sal (struct symbol *sym, int funfirstline)
+ && (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab))
+ || SYMTAB_LANGUAGE (sal.symtab) == language_asm))
+ {
++ struct gdbarch *gdbarch = symbol_arch (sym);
++
+ sal.pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
++ if (gdbarch_skip_entrypoint_p (gdbarch))
++ sal.pc = gdbarch_skip_entrypoint (gdbarch, sal.pc);
+ return sal;
+ }
+
+diff --git a/gdb/testsuite/gdb.opt/solib-intra-step-lib.c b/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
+new file mode 100644
+index 0000000..9ab1211
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
+@@ -0,0 +1,30 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2015 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/>. */
++
++#include <stdlib.h>
++
++void
++shlib_second (int dummy)
++{ /* second-retry */
++ abort (); /* second-hit */
++}
++
++void
++shlib_first (void)
++{ /* first-retry */
++ shlib_second (0); /* first-hit */
++}
+diff --git a/gdb/testsuite/gdb.opt/solib-intra-step-main.c b/gdb/testsuite/gdb.opt/solib-intra-step-main.c
+new file mode 100644
+index 0000000..186bd5f
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/solib-intra-step-main.c
+@@ -0,0 +1,25 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2015 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/>. */
++
++extern void shlib_first (void);
++
++int
++main (void)
++{
++ shlib_first ();
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.opt/solib-intra-step.exp b/gdb/testsuite/gdb.opt/solib-intra-step.exp
+new file mode 100644
+index 0000000..044c4bd
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/solib-intra-step.exp
+@@ -0,0 +1,86 @@
++# Copyright 2015 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/>.
++
++standard_testfile
++
++if {[skip_shlib_tests]} {
++ return 0
++}
++
++# Library file.
++set libname "${testfile}-lib"
++set srcfile_lib ${srcdir}/${subdir}/${libname}.c
++set binfile_lib [standard_output_file ${libname}.so]
++set lib_flags [list debug optimize=-O2]
++# Binary file.
++set testfile "${testfile}-main"
++set srcfile ${srcdir}/${subdir}/${testfile}.c
++set binfile [standard_output_file ${testfile}]
++set bin_flags [list debug shlib=${binfile_lib}]
++
++if [get_compiler_info] {
++ return -1
++}
++
++if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != ""
++ || [gdb_compile ${srcfile} ${binfile} executable $bin_flags] != "" } {
++ untested "Could not compile $binfile_lib or $binfile."
++ return -1
++}
++
++clean_restart ${binfile}
++gdb_load_shlibs $binfile_lib
++
++if ![runto_main] then {
++ return 0
++}
++
++set test "first-hit"
++gdb_test_multiple "step" $test {
++ -re " first-hit .*\r\n$gdb_prompt $" {
++ pass $test
++ }
++ -re " first-retry .*\r\n$gdb_prompt $" {
++ gdb_test "step" " first-hit .*" "first-hit (optimized)"
++ }
++}
++
++set test "second-hit"
++gdb_test_multiple "step" $test {
++ -re " second-hit .*\r\n$gdb_prompt $" {
++ pass $test
++ }
++ -re " first-retry .*\r\n$gdb_prompt $" {
++ set test "second-hit (optimized 1)"
++ gdb_test_multiple "step" $test {
++ -re " second-hit .*\r\n$gdb_prompt $" {
++ pass $test
++ }
++ -re " first-hit .*\r\n$gdb_prompt $" {
++ gdb_test "step" " second-hit .*" "second-hit (optimized 2)"
++ }
++ }
++ }
++ -re " second-retry .*\r\n$gdb_prompt $" {
++ gdb_test "step" " second-hit .*" "second-hit (optimized 3)"
++ }
++}
++
++if ![runto_main] then {
++ return 0
++}
++
++gdb_breakpoint "shlib_second"
++gdb_continue_to_breakpoint "second-hit" ".* (second-hit|second-retry) .*"
+
+--mYCpIKhGyMATD0i+--
+
diff --git a/gdb.spec b/gdb.spec
index 29ca50a..92885d4 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -26,7 +26,7 @@ Version: 7.10
# 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: 19%{?dist}
+Release: 20%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
Group: Development/Debuggers
@@ -540,6 +540,9 @@ Patch978: gdb-jit-reader-multilib.patch
Patch1029: gdb-probes-based-interface-robust-1of2.patch
Patch1030: gdb-probes-based-interface-robust-2of2.patch
+# [ppc64le] Use skip_entrypoint for skip_trampoline_code (RH BZ 1260558).
+Patch1031: gdb-rhbz1260558-ppc64le-skip_trampoline_code.patch
+
%if 0%{!?rhel:1} || 0%{?rhel} > 6
# RL_STATE_FEDORA_GDB would not be found for:
# Patch642: gdb-readline62-ask-more-rh.patch
@@ -835,6 +838,7 @@ find -name "*.info*"|xargs rm -f
%patch978 -p1
%patch1029 -p1
%patch1030 -p1
+%patch1031 -p1
%patch848 -p1
%if 0%{!?el6:1}
@@ -1344,6 +1348,9 @@ then
fi
%changelog
+* Thu Sep 10 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.10-20.fc23
+- [ppc64le] Use skip_entrypoint for skip_trampoline_code (RH BZ 1260558).
+
* Thu Sep 10 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.10-19.fc23
- Add changelog entry and fix librpm dependency broken by Peter Robinson.
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-27 23:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-27 23:57 [rpms/gdb] gdb-17.2-rebase-f44: [ppc64le] Use skip_entrypoint for skip_trampoline_code (RH BZ 1260558) Jan Kratochvil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox