Remove 'gdb-x86_64-i386-syscall-restart.patch'.

This commit is contained in:
Sergio Durigan Junior 2019-04-12 18:22:24 -04:00
parent e90857f9de
commit a5d0cd87e1
5 changed files with 60 additions and 186 deletions

View File

@ -188,232 +188,228 @@ Patch046: gdb-simultaneous-step-resume-breakpoint-test.patch
#=fedoratest: It should be in glibc: libc-alpha: <20091004161706.GA27450@.*>
Patch047: gdb-core-open-vdso-warning.patch
# Fix syscall restarts for amd64->i386 biarch.
#=push+jan
Patch048: gdb-x86_64-i386-syscall-restart.patch
# Fix stepping with OMP parallel Fortran sections (BZ 533176).
#=push+jan: It requires some better DWARF annotations.
Patch049: gdb-bz533176-fortran-omp-step.patch
Patch048: gdb-bz533176-fortran-omp-step.patch
# Workaround ccache making lineno non-zero for command-line definitions.
#=fedoratest: ccache is rarely used and it is even fixed now.
Patch050: gdb-ccache-workaround.patch
Patch049: gdb-ccache-workaround.patch
#=push+jan: May get obsoleted by Tom's unrelocated objfiles patch.
Patch051: gdb-archer-pie-addons.patch
Patch050: gdb-archer-pie-addons.patch
#=push+jan: Breakpoints disabling matching should not be based on address.
Patch052: gdb-archer-pie-addons-keep-disabled.patch
Patch051: gdb-archer-pie-addons-keep-disabled.patch
# Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
#=fedoratest
Patch053: gdb-lineno-makeup-test.patch
Patch052: gdb-lineno-makeup-test.patch
# Test power7 ppc disassembly.
#=fedoratest
Patch054: gdb-ppc-power7-test.patch
Patch053: gdb-ppc-power7-test.patch
# Workaround non-stop moribund locations exploited by kernel utrace (BZ 590623).
#=push+jan: Currently it is still not fully safe.
Patch055: gdb-moribund-utrace-workaround.patch
Patch054: gdb-moribund-utrace-workaround.patch
# Fix follow-exec for C++ programs (bugreported by Martin Stransky).
#=fedoratest
Patch056: gdb-archer-next-over-throw-cxx-exec.patch
Patch055: gdb-archer-next-over-throw-cxx-exec.patch
# Backport DWARF-4 support (BZ 601887, Tom Tromey).
#=fedoratest
Patch057: gdb-bz601887-dwarf4-rh-test.patch
Patch056: gdb-bz601887-dwarf4-rh-test.patch
#=push+jan
Patch058: gdb-6.6-buildid-locate-core-as-arg.patch
Patch057: gdb-6.6-buildid-locate-core-as-arg.patch
# Workaround librpm BZ 643031 due to its unexpected exit() calls (BZ 642879).
#=push+jan
Patch059: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
Patch058: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
# [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
#=fedoratest
Patch060: gdb-test-bt-cfi-without-die.patch
Patch059: gdb-test-bt-cfi-without-die.patch
# Out of memory is just an error, not fatal (uninitialized VLS vars, BZ 568248).
#=push+jan: Inferior objects should be read in parts, then this patch gets obsoleted.
Patch061: gdb-bz568248-oom-is-error.patch
Patch060: gdb-bz568248-oom-is-error.patch
# Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
#=fedoratest
Patch062: gdb-bz634108-solib_address.patch
Patch061: gdb-bz634108-solib_address.patch
# New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435).
#=fedoratest
Patch063: gdb-test-pid0-core.patch
Patch062: gdb-test-pid0-core.patch
# [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp.
#=fedoratest
Patch064: gdb-test-dw2-aranges.patch
Patch063: gdb-test-dw2-aranges.patch
# [archer-keiths-expr-cumulative+upstream] Import C++ testcases.
#=fedoratest
Patch065: gdb-test-expr-cumulative-archer.patch
Patch064: gdb-test-expr-cumulative-archer.patch
# Fix regressions on C++ names resolving (PR 11734, PR 12273, Keith Seitz).
#=fedoratest
Patch066: gdb-physname-pr11734-test.patch
Patch065: gdb-physname-pr11734-test.patch
# Fix regressions on C++ names resolving (PR 11734, PR 12273, Keith Seitz).
#=fedoratest
Patch067: gdb-physname-pr12273-test.patch
Patch066: gdb-physname-pr12273-test.patch
# Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890).
#=fedoratest
Patch068: gdb-test-ivy-bridge.patch
Patch067: gdb-test-ivy-bridge.patch
# Hack for proper PIE run of the testsuite.
#=fedoratest
Patch069: gdb-runtest-pie-override.patch
Patch068: gdb-runtest-pie-override.patch
# Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878).
#=push+jan
Patch070: gdb-attach-fail-reasons-5of5.patch
Patch069: gdb-attach-fail-reasons-5of5.patch
# Workaround PR libc/14166 for inferior calls of strstr.
#=fedoratest: Compatibility with RHELs (unchecked which ones).
Patch071: gdb-glibc-strstr-workaround.patch
Patch070: gdb-glibc-strstr-workaround.patch
# Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789).
#=fedoratest
Patch072: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
Patch071: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
# Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343).
#=fedoratest
Patch073: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
Patch072: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
# Import regression test for `gdb/findvar.c:417: internal-error:
# read_var_value: Assertion `frame' failed.' (RH BZ 947564) from RHEL 6.5.
#=fedoratest
Patch074: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Patch073: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
# Fix crash of -readnow /usr/lib/debug/usr/bin/gnatbind.debug (BZ 1069211).
#=push+jan
Patch075: gdb-gnat-dwarf-crash-3of3.patch
Patch074: gdb-gnat-dwarf-crash-3of3.patch
# Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614)
#=fedoratest
Patch076: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Patch075: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
# Fix 'gdb gives highly misleading error when debuginfo pkg is present,
# but not corresponding binary pkg' (RH BZ 981154).
#=push+jan
Patch077: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
Patch076: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
#=fedoratest
Patch078: gdb-archer-vla-tests.patch
Patch077: gdb-archer-vla-tests.patch
#=fedoratest
Patch079: gdb-vla-intel-tests.patch
Patch078: gdb-vla-intel-tests.patch
# Continue backtrace even if a frame filter throws an exception (Phil Muldoon).
#=push
Patch080: gdb-btrobust.patch
Patch079: gdb-btrobust.patch
# Display Fortran strings in backtraces.
#=fedoratest
Patch081: gdb-fortran-frame-string.patch
Patch080: gdb-fortran-frame-string.patch
# Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to
# crash.' (RH BZ 1156192).
#=fedoratest
Patch082: gdb-rhbz1156192-recursive-dlopen-test.patch
Patch081: gdb-rhbz1156192-recursive-dlopen-test.patch
# Fix jit-reader.h for multi-lib.
#=push+jan
Patch083: gdb-jit-reader-multilib.patch
Patch082: gdb-jit-reader-multilib.patch
# Fix '`catch syscall' doesn't work for parent after `fork' is called'
# (Philippe Waroquiers, RH BZ 1149205).
#=fedoratest
Patch084: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Patch083: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
# Fix 'backport GDB 7.4 fix to RHEL 6.6 GDB' [Original Sourceware bug
# description: 'C++ (and objc): Internal error on unqualified name
# re-set', PR 11657] (RH BZ 1186476).
#=fedoratest
Patch085: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
Patch084: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
# Test 'info type-printers' Python error (RH BZ 1350436).
#=fedoratest
Patch086: gdb-rhbz1350436-type-printers-error.patch
Patch085: gdb-rhbz1350436-type-printers-error.patch
# Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan
# Kratochvil, RH BZ 1084404).
#=fedoratest
Patch087: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Patch086: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
# Never kill PID on: gdb exec PID (Jan Kratochvil, RH BZ 1219747).
#=push+jan
Patch088: gdb-bz1219747-attach-kills.patch
Patch087: gdb-bz1219747-attach-kills.patch
# Force libncursesw over libncurses to match the includes (RH BZ 1270534).
#=push+jan
Patch089: gdb-fedora-libncursesw.patch
Patch088: gdb-fedora-libncursesw.patch
# Test clflushopt instruction decode (for RH BZ 1262471).
#=fedoratest
Patch090: gdb-opcodes-clflushopt-test.patch
Patch089: gdb-opcodes-clflushopt-test.patch
# [rhel6] DTS backward Python compatibility API (BZ 1020004, Phil Muldoon).
#=fedora
Patch091: gdb-dts-rhel6-python-compat.patch
Patch090: gdb-dts-rhel6-python-compat.patch
# [SCL] Skip deprecated .gdb_index warning for Red Hat built files (BZ 953585).
#=push+jan
Patch092: gdb-6.6-buildid-locate-rpm-scl.patch
Patch091: gdb-6.6-buildid-locate-rpm-scl.patch
# Work around readline-6.2 incompatibility not asking for --more-- (BZ 701131).
#=fedora
Patch093: gdb-readline62-ask-more-rh.patch
Patch092: gdb-readline62-ask-more-rh.patch
# Make the GDB quit processing non-abortable to cleanup everything properly.
#=fedora: It was useful only after gdb-6.8-attach-signalled-detach-stopped.patch .
Patch094: gdb-6.8-quit-never-aborts.patch
Patch093: gdb-6.8-quit-never-aborts.patch
# [aarch64] Fix hardware watchpoints (RH BZ 1261564).
#=fedoratest
Patch095: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
Patch094: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
# Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
#=fedora
Patch096: gdb-container-rh-pkg.patch
Patch095: gdb-container-rh-pkg.patch
# New test for Python "Cannot locate object file for block" (for RH BZ 1325795).
#=fedoratest
Patch097: gdb-rhbz1325795-framefilters-test.patch
Patch096: gdb-rhbz1325795-framefilters-test.patch
# [dts+el7] [x86*] Bundle linux_perf.h for libipt (RH BZ 1256513).
#=fedora
Patch098: gdb-linux_perf-bundle.patch
Patch097: gdb-linux_perf-bundle.patch
# Fix gdb-headless /usr/bin/ executables (BZ 1390251).
#=fedora
Patch099: gdb-libexec-add-index.patch
Patch098: gdb-libexec-add-index.patch
# New testcase for: Fix <tab>-completion crash (Gary Benson, RH BZ 1398387).
#=fedoratest
Patch100: gdb-rhbz1398387-tab-crash-test.patch
Patch099: gdb-rhbz1398387-tab-crash-test.patch
# [testsuite] Fix false selftest.exp FAIL from system readline-6.3+ (Patrick Palka).
#=fedoratest
Patch101: gdb-testsuite-readline63-sigint.patch
Patch100: gdb-testsuite-readline63-sigint.patch
# Python patches of: http://sourceware.org/gdb/wiki/ProjectArcher
#=push
Patch102: gdb-archer.patch
Patch101: gdb-archer.patch
# Revert upstream commit 469412dd9ccc4de5874fd3299b105833f36b34cd
Patch103: gdb-vla-intel-fix-print-char-array.patch
Patch102: gdb-vla-intel-fix-print-char-array.patch
# [s390x] Backport arch12 instructions decoding (RH BZ 1553104).
# =fedoratest
Patch104: gdb-rhbz1553104-s390x-arch12-test.patch
Patch103: gdb-rhbz1553104-s390x-arch12-test.patch

View File

@ -101,4 +101,3 @@
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1

View File

@ -45,7 +45,6 @@ gdb-6.8-bz436037-reg-no-longer-active.patch
gdb-6.8-bz466901-backtrace-full-prelinked.patch
gdb-simultaneous-step-resume-breakpoint-test.patch
gdb-core-open-vdso-warning.patch
gdb-x86_64-i386-syscall-restart.patch
gdb-bz533176-fortran-omp-step.patch
gdb-ccache-workaround.patch
gdb-archer-pie-addons.patch

View File

@ -1,123 +0,0 @@
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-x86_64-i386-syscall-restart.patch
;; Fix syscall restarts for amd64->i386 biarch.
;;=push+jan
http://sourceware.org/ml/gdb-patches/2009-11/msg00592.html
Subject: [patch] Fix syscall restarts for amd64->i386 biarch
Hi,
tested only on recent Linux kernels, it should apply also on vanilla ones.
There were various changes of the kernels behavior in the past.
FSF GDB HEAD state:
kernel debugger inferior state
x86_64 x86_64 x86_64 PASS
x86_64 x86_64 i386 FAIL without this patch, PASS with this patch
x86_64 i386 i386 PASS on recent kernels
(FAIL: kernel-2.6.31.5-127.fc12.x86_64 - Fedora 12)
(PASS: kernel-2.6.32-0.55.rc8.git1.fc13.x86_64)
i386 i386 i386 PASS
Currently gdb.base/interrupt.exp fails on amd64 host running under
--target_board unix/-m32 with:
continue
Continuing.
Unknown error 512
<linux/errno.h>:
/*
* These should never be seen by user programs. To return one of ERESTART*
* codes, signal_pending() MUST be set. Note that ptrace can observe these
* at syscall exit tracing, but they will never be left for the debugged user
* process to see.
*/
"Unknown error 512" printed above is printed by the inferior itself, not by GDB.
It is because GDB reads it as 0xfffffffffffffe00 but writes it back as
0xfffffe00.
+ /* Sign-extend %eax as during return from a syscall it is being checked
+ for -ERESTART* values -512 being above 0xfffffffffffffe00; tested by
+ interrupt.exp. */
Quote of Roland McGrath from IRC:
roland: in the user_regset model, there are 64-bit user_regset flavors and
32-bit user_regset flavors, so at the kabi level the (kernel) caller can say
what it means: calls on the 32-bit user_regset flavor will behave as if on
a 32-bit kernel/userland. in ptrace, there is no way for x86_64 ptrace calls
to say "i think of the inferior as being 32 bits, so act accordingly" (tho ppc
and/or sparc have ptr
roland: ace requests that do that iirc)
roland: ergo 64-bit ptrace callers must either save/restore full 64-bits so
the kernel's sign-extension choices are preserved, or else grok magic ways to
expand stored 32-bit register contents to 64-bit values to stuff via 64-bit
ptrace
[...]
roland: there is a "32-bit-flavored task", but it's not really true that it
has 32-bit registers. there is no 32-bit-only userland condition. any task
can always ljmp to the 64-bit code segment and run 64-bit insns including
a 64-bit syscall
roland: so a 64-bit debugger should see and be able to fiddle the full
registers. it can even change cs via ptrace to force the inferior into
running 32 or 64 bit code.
Saving whole 64bits for i386 targets on x86_64 hosts does not much match the
GDB architecture as `struct type' for these registers still should be 32bit
etc. Therefore provided just this exception.
The problem is reproducible only if one does an inferior call during the
interruption to do full inferior save/restore from GDB regcache.
Regression tested on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu.
Thanks,
Jan
gdb/
2009-11-29 Jan Kratochvil <jan.kratochvil@redhat.com>
* amd64-nat.c (amd64_collect_native_gregset): Do not pre-clear %eax.
Sign extend it afterwards.
diff --git a/gdb/amd64-nat.c b/gdb/amd64-nat.c
--- a/gdb/amd64-nat.c
+++ b/gdb/amd64-nat.c
@@ -135,9 +135,9 @@ amd64_collect_native_gregset (const struct regcache *regcache,
{
num_regs = amd64_native_gregset32_num_regs;
- /* Make sure %eax, %ebx, %ecx, %edx, %esi, %edi, %ebp, %esp and
+ /* Make sure %ebx, %ecx, %edx, %esi, %edi, %ebp, %esp and
%eip get zero-extended to 64 bits. */
- for (i = 0; i <= I386_EIP_REGNUM; i++)
+ for (i = I386_ECX_REGNUM; i <= I386_EIP_REGNUM; i++)
{
if (regnum == -1 || regnum == i)
memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8);
@@ -163,4 +163,20 @@ amd64_collect_native_gregset (const struct regcache *regcache,
regcache->raw_collect (i, regs + offset);
}
}
+
+ if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
+ {
+ /* Sign-extend %eax as during return from a syscall it is being checked
+ for -ERESTART* values -512 being above 0xfffffffffffffe00; tested by
+ interrupt.exp. */
+
+ int k = I386_EAX_REGNUM;
+
+ if (regnum == -1 || regnum == i)
+ {
+ void *ptr = regs + amd64_native_gregset_reg_offset (gdbarch, k);
+
+ *(int64_t *) ptr = *(int32_t *) ptr;
+ }
+ }
}

View File

@ -30,7 +30,7 @@ Version: 8.3.50.%{snapsrc}
# 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: 5%{?dist}
Release: 6%{?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
# Do not provide URL for snapshots as the file lasts there only for 2 days.
@ -1025,6 +1025,9 @@ fi
%endif
%changelog
* Fri Apr 12 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 8.3.50.20190412-6
- Remove 'gdb-x86_64-i386-syscall-restart.patch'.
* Fri Apr 12 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 8.3.50.20190412-5
- Rebase to FSF GDB 8.3.50.20190412 (8.4pre).
- Adjust 'gdb-6.3-rh-testversion-20041202.patch'.