diff --git a/.gitignore b/.gitignore
index b9a54bb..62239b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/gdb-libstdc++-v3-python-7.1.1-20170526.tar.xz
/v1.6.1.tar.gz
/gdb-8.0.1.tar.xz
+/gdb-8.0.50.20171204.tar.xz
diff --git a/README.local-patches b/README.local-patches
new file mode 100644
index 0000000..c1c7ab3
--- /dev/null
+++ b/README.local-patches
@@ -0,0 +1,96 @@
+Fedora GDB local patches policy
+===============================
+
+In order to make things easier for the Fedora GDB maintainer, we
+choose to auto-generate the local patches by making use of an upstream
+git repository. Below you can find a few instructions on how to work
+using this method.
+
+You need to run the following commands from the directory that
+contains the "gdb.spec" file.
+
+### Importing the GDB patches into a git repository
+
+1) The local patches (*.patch) need to be imported into an upstream
+git repository. For example, let's assume you cloned the repository
+by doing:
+
+ $ git clone git://sourceware.org/git/binutils-gdb.git
+
+ ## TIP: if you already have the repository cloned somewhere in your
+ ## system, you can pass a "--reference
" to the "git clone"
+ ## command and it will use your local repository as much as possible
+ ## to make the clone, speeding up things.
+
+2) After cloning the upstream repository, you can import your patches
+by using the script "generate-git-repo-from-patches.sh":
+
+ $ sh generate-git-repo-from-patches.sh
+
+The script will basically cd into the repository, checkout the
+revision specified in the file "_git_upstream_commit", iterate through
+the file "_patch_order" and "git-am" every patch *in that order*.
+This operation should complete without errors; if you find a problem
+with "git-am", it probably means that the revision specified in the
+file "_git_upstream_commit" is wrong.
+
+### Rebasing the patches against a newer version/release
+
+1) First, cd into the upstream repository. All you have to do is
+choose the revision against which you plan to rebase the patches, and
+"git rebase ". git will do the rest, and you will be able
+to perform conflict resolution by git's algorithm, which is smarter.
+
+### Creating new patches
+
+1) Create the new patch on top of the the others, as usual. Note that
+you can use "git rebase" whenever you want to reorder patch order, or
+even to delete a patch.
+
+2) When writing the commit log, you must obey a few rules. The
+subject line can be anything, but the body *must* have the following
+special line:
+
+ FileName: name-of-the-patch.patch
+
+This line will be used when exporting the patches from the git
+repository, and (obviously) it gives the filename that should be used
+for this specific patch.
+
+3) You can also add comments that will go into the auto-generated
+"Patch:" file (see below). To do that, use the special marker ";;" at
+the beginning of the line. This way, a commit log that says:
+
+ FileName: test-patch.patch
+
+ ;; This is a test patch
+ ;; Second line
+
+Will generate the following entry in the auto-generated "Patch:" file:
+
+ # This is a test patch
+ # Second line
+ PatchXYZ: test-patch.patch
+
+### Exporting the GDB patches from the git repository
+
+1) When you're done working with the patches, go back to the directory
+that contains the "gdb.spec" file, and from there you run:
+
+ $ sh generate-patches-from-git-repo.sh
+
+This will regenerate all of the *.patch files (excluding the ones that
+were also excluded from the git repository), and also regenerate a few
+control files. These control files are:
+
+ - _gdb.spec.Patch.include: This file contains the "Patch:" directives.
+
+ - _gdb.spec.patch.include: This file contains the "%patch" directives.
+
+ - _patch_order: This file contains the patches, in the exact order
+ that they must be applied. It is used when importing the patches
+ into the git repository.
+
+ - _git_upstream_commit: This file contains the last upstream commit
+ against which the patches were rebased. It is used when importing
+ the patches into the git repository.
diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include
new file mode 100644
index 0000000..c3dfa13
--- /dev/null
+++ b/_gdb.spec.Patch.include
@@ -0,0 +1,531 @@
+# Match the Fedora's version info.
+#=fedora
+Patch001: gdb-6.3-rh-testversion-20041202.patch
+
+# VLA (Fortran dynamic arrays) from Intel + archer-jankratochvil-vla tests.
+#=push
+Patch002: gdb-vla-intel-fortran-strides.patch
+
+#=push
+Patch003: gdb-vla-intel-fortran-vla-strings.patch
+
+#=push+jan
+Patch004: gdb-vla-intel-stringbt-fix.patch
+
+# Work around out-of-date dejagnu that does not have KFAIL
+#=push: That dejagnu is too old to be supported.
+Patch005: gdb-6.3-rh-dummykfail-20041202.patch
+
+# Better parse 64-bit PPC system call prologues.
+#=push: Write new testcase.
+Patch006: gdb-6.3-ppc64syscall-20040622.patch
+
+# Include the pc's section when doing a symbol lookup so that the
+# correct symbol is found.
+#=push: Write new testcase.
+Patch007: gdb-6.3-ppc64displaysymbol-20041124.patch
+
+# Add a wrapper script to GDB that implements pstack using the
+# --readnever option.
+#=push
+Patch008: gdb-6.3-gstack-20050411.patch
+
+# VSYSCALL and PIE
+#=fedoratest
+Patch009: gdb-6.3-test-pie-20050107.patch
+
+# Get selftest working with sep-debug-info
+#=fedoratest
+Patch010: gdb-6.3-test-self-20050110.patch
+
+# Test support of multiple destructors just like multiple constructors
+#=fedoratest
+Patch011: gdb-6.3-test-dtorfix-20050121.patch
+
+# Fix to support executable moving
+#=fedoratest
+Patch012: gdb-6.3-test-movedir-20050125.patch
+
+# Test sibling threads to set threaded watchpoints for x86 and x86-64
+#=fedoratest
+Patch013: gdb-6.3-threaded-watchpoints2-20050225.patch
+
+# Notify observers that the inferior has been created
+#=fedoratest
+Patch014: gdb-6.3-inferior-notification-20050721.patch
+
+# Verify printing of inherited members test
+#=fedoratest
+Patch015: gdb-6.3-inheritancetest-20050726.patch
+
+# Add readnever option
+#=push
+Patch016: gdb-6.3-readnever-20050907.patch
+
+# Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661).
+#=push+jan: There was some mail thread about it, this patch may be a hack.
+Patch017: gdb-6.5-bz203661-emit-relocs.patch
+
+# Support TLS symbols (+`errno' suggestion if no pthread is found) (BZ 185337).
+#=push+jan: It should be replaced by Infinity project.
+Patch018: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
+
+# Fix TLS symbols resolving for shared libraries with a relative pathname.
+# The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
+#=fedoratest: One should recheck if it is really fixed upstream.
+Patch019: gdb-6.5-sharedlibrary-path.patch
+
+# Improved testsuite results by the testsuite provided by the courtesy of BEA.
+#=fedoratest: For upstream it should be rewritten as a dejagnu test, the test of no "??" was useful.
+Patch020: gdb-6.5-BEA-testsuite.patch
+
+# Testcase for deadlocking on last address space byte; for corrupted backtraces.
+#=fedoratest
+Patch021: gdb-6.5-last-address-space-byte-test.patch
+
+# Fix readline segfault on excessively long hand-typed lines.
+#=fedoratest
+Patch022: gdb-6.5-readline-long-line-crash-test.patch
+
+# Fix bogus 0x0 unwind of the thread's topmost function clone(3) (BZ 216711).
+#=fedora
+Patch023: gdb-6.5-bz216711-clone-is-outermost.patch
+
+# Test sideeffects of skipping ppc .so libs trampolines (BZ 218379).
+#=fedoratest
+Patch024: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
+
+# Fix lockup on trampoline vs. its function lookup; unreproducible (BZ 218379).
+#=fedora
+Patch025: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
+
+# Find symbols properly at their original (included) file (BZ 109921).
+#=fedoratest
+Patch026: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
+
+# Update PPC unwinding patches to their upstream variants (BZ 140532).
+#=fedoratest
+Patch027: gdb-6.3-bz140532-ppc-unwinding-test.patch
+
+# Testcase for exec() from threaded program (BZ 202689).
+#=fedoratest
+Patch028: gdb-6.3-bz202689-exec-from-pthread-test.patch
+
+# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
+#=fedoratest
+Patch029: gdb-6.6-bz230000-power6-disassembly-test.patch
+
+# Allow running `/usr/bin/gcore' with provided but inaccessible tty (BZ 229517).
+#=fedoratest
+Patch030: gdb-6.6-bz229517-gcore-without-terminal.patch
+
+# Notify user of a child forked process being detached (BZ 235197).
+#=push+jan: This is more about discussion if/what should be printed.
+Patch031: gdb-6.6-bz235197-fork-detach-info.patch
+
+# Avoid too long timeouts on failing cases of "annota1.exp annota3.exp".
+#=fedoratest
+Patch032: gdb-6.6-testsuite-timeouts.patch
+
+# Support for stepping over PPC atomic instruction sequences (BZ 237572).
+#=fedoratest
+Patch033: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
+
+# Make upstream `set scheduler-locking step' as default.
+#=push+jan: How much is scheduler-locking relevant after non-stop?
+Patch034: gdb-6.6-scheduler_locking-step-is-default.patch
+
+# Test kernel VDSO decoding while attaching to an i386 process.
+#=fedoratest
+Patch035: gdb-6.3-attach-see-vdso-test.patch
+
+# Test leftover zombie process (BZ 243845).
+#=fedoratest
+Patch036: gdb-6.5-bz243845-stale-testing-zombie-test.patch
+
+# New locating of the matching binaries from the pure core file (build-id).
+#=push+jan
+Patch037: gdb-6.6-buildid-locate.patch
+
+# Fix loading of core files without build-ids but with build-ids in executables.
+# Load strictly build-id-checked core files only if no executable is specified
+# (Jan Kratochvil, RH BZ 1339862).
+#=push+jan
+Patch038: gdb-6.6-buildid-locate-solib-missing-ids.patch
+
+#=push+jan
+Patch039: gdb-6.6-buildid-locate-rpm.patch
+
+# Fix displaying of numeric char arrays as strings (BZ 224128).
+#=fedoratest: But it is failing anyway, one should check the behavior more.
+Patch040: gdb-6.7-charsign-test.patch
+
+# Test PPC hiding of call-volatile parameter register.
+#=fedoratest
+Patch041: gdb-6.7-ppc-clobbered-registers-O2-test.patch
+
+# Testsuite fixes for more stable/comparable results.
+#=fedoratest
+Patch042: gdb-6.7-testsuite-stable-results.patch
+
+# Test ia64 memory leaks of the code using libunwind.
+#=fedoratest
+Patch043: gdb-6.5-ia64-libunwind-leak-test.patch
+
+# Test hiding unexpected breakpoints on intentional step commands.
+#=fedoratest
+Patch044: gdb-6.5-missed-trap-on-step-test.patch
+
+# Test gcore memory and time requirements for large inferiors.
+#=fedoratest
+Patch045: gdb-6.5-gcore-buffer-limit-test.patch
+
+# Test GCORE for shmid 0 shared memory mappings.
+#=fedoratest: But it is broken anyway, sometimes the case being tested is not reproducible.
+Patch046: gdb-6.3-mapping-zero-inode-test.patch
+
+# Test a crash on `focus cmd', `focus prev' commands.
+#=fedoratest
+Patch047: gdb-6.3-focus-cmd-prev-test.patch
+
+# Test various forms of threads tracking across exec() (BZ 442765).
+#=fedoratest
+Patch048: gdb-6.8-bz442765-threaded-exec-test.patch
+
+# Silence memcpy check which returns false positive (sparc64)
+#=push: But it is just a GCC workaround, look up the existing GCC PR for it.
+Patch049: gdb-6.8-sparc64-silence-memcpy-check.patch
+
+# Test a crash on libraries missing the .text section.
+#=fedoratest
+Patch050: gdb-6.5-section-num-fixup-test.patch
+
+# Fix register assignments with no GDB stack frames (BZ 436037).
+#=push+jan: This fix is incorrect.
+Patch051: gdb-6.8-bz436037-reg-no-longer-active.patch
+
+# Test the watchpoints conditionals works.
+#=fedoratest
+Patch052: gdb-6.8-watchpoint-conditionals-test.patch
+
+# Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
+#=fedoratest
+Patch053: gdb-6.8-bz466901-backtrace-full-prelinked.patch
+
+# New test for step-resume breakpoint placed in multiple threads at once.
+#=fedoratest
+Patch054: gdb-simultaneous-step-resume-breakpoint-test.patch
+
+# Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
+# Fix regression of undisplayed missing shared libraries caused by a fix for.
+#=fedoratest: It should be in glibc: libc-alpha: <20091004161706.GA27450@.*>
+Patch055: gdb-core-open-vdso-warning.patch
+
+# Fix syscall restarts for amd64->i386 biarch.
+#=push+jan
+Patch056: gdb-x86_64-i386-syscall-restart.patch
+
+# Fix stepping with OMP parallel Fortran sections (BZ 533176).
+#=push+jan: It requires some better DWARF annotations.
+Patch057: gdb-bz533176-fortran-omp-step.patch
+
+# Fix regression by python on ia64 due to stale current frame.
+#=push+jan
+Patch058: gdb-follow-child-stale-parent.patch
+
+# Workaround ccache making lineno non-zero for command-line definitions.
+#=fedoratest: ccache is rarely used and it is even fixed now.
+Patch059: gdb-ccache-workaround.patch
+
+#=push+jan: May get obsoleted by Tom's unrelocated objfiles patch.
+Patch060: gdb-archer-pie-addons.patch
+
+#=push+jan: Breakpoints disabling matching should not be based on address.
+Patch061: gdb-archer-pie-addons-keep-disabled.patch
+
+# Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
+#=fedoratest
+Patch062: gdb-lineno-makeup-test.patch
+
+# Test power7 ppc disassembly.
+#=fedoratest
+Patch063: gdb-ppc-power7-test.patch
+
+# Fix i386+x86_64 rwatch+awatch before run, regression against 6.8 (BZ 541866).
+# Fix i386 rwatch+awatch before run (BZ 688788, on top of BZ 541866).
+#=push+jan: It should be fixed properly instead.
+Patch064: gdb-bz541866-rwatch-before-run.patch
+
+# Workaround non-stop moribund locations exploited by kernel utrace (BZ 590623).
+#=push+jan: Currently it is still not fully safe.
+Patch065: gdb-moribund-utrace-workaround.patch
+
+# Fix follow-exec for C++ programs (bugreported by Martin Stransky).
+#=fedoratest
+Patch066: gdb-archer-next-over-throw-cxx-exec.patch
+
+# Backport DWARF-4 support (BZ 601887, Tom Tromey).
+#=fedoratest
+Patch067: gdb-bz601887-dwarf4-rh-test.patch
+
+#=push+jan
+Patch068: gdb-6.6-buildid-locate-core-as-arg.patch
+
+# Workaround librpm BZ 643031 due to its unexpected exit() calls (BZ 642879).
+#=push+jan
+Patch069: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
+
+# [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
+#=fedoratest
+Patch070: gdb-test-bt-cfi-without-die.patch
+
+# Provide /usr/bin/gdb-add-index for rpm-build (Tom Tromey).
+#=push: Re-check against the upstream version.
+Patch071: gdb-gdb-add-index-script.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.
+Patch072: gdb-bz568248-oom-is-error.patch
+
+# Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
+#=fedoratest
+Patch073: gdb-bz634108-solib_address.patch
+
+# New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435).
+#=fedoratest
+Patch074: gdb-test-pid0-core.patch
+
+# [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp.
+#=fedoratest
+Patch075: gdb-test-dw2-aranges.patch
+
+# [archer-keiths-expr-cumulative+upstream] Import C++ testcases.
+#=fedoratest
+Patch076: gdb-test-expr-cumulative-archer.patch
+
+# Fix regressions on C++ names resolving (PR 11734, PR 12273, Keith Seitz).
+#=fedoratest
+Patch077: gdb-physname-pr11734-test.patch
+
+# Fix regressions on C++ names resolving (PR 11734, PR 12273, Keith Seitz).
+#=fedoratest
+Patch078: gdb-physname-pr12273-test.patch
+
+# Toolchain on sparc is slightly broken and debuginfo files are generated
+# with non 64bit aligned tables/offsets.
+# See for example readelf -S ../Xvnc.debug.
+#
+# As a consenquence calculation of sectp->filepos as used in
+# dwarf2_read_section (gdb/dwarf2read.c:1525) will return a non aligned buffer
+# that cannot be used directly as done with MMAP.
+# Usage will result in a BusError.
+#
+# While we figure out what's wrong in the toolchain and do a full archive
+# rebuild to fix it, we need to be able to use gdb :)
+#=push
+Patch079: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
+
+# Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890).
+#=fedoratest
+Patch080: gdb-test-ivy-bridge.patch
+
+# Work around PR libc/13097 "linux-vdso.so.1" warning message.
+#=push+jan
+Patch081: gdb-glibc-vdso-workaround.patch
+
+# Hack for proper PIE run of the testsuite.
+#=fedoratest
+Patch082: gdb-runtest-pie-override.patch
+
+# Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878).
+#=push+jan
+Patch083: gdb-attach-fail-reasons-5of5.patch
+
+# Workaround crashes from stale frame_info pointer (BZ 804256).
+#=push+jan
+Patch084: gdb-stale-frame_info.patch
+
+# Workaround PR libc/14166 for inferior calls of strstr.
+#=fedora: Compatibility with RHELs (unchecked which ones).
+Patch085: gdb-glibc-strstr-workaround.patch
+
+# Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789).
+#=fedoratest
+Patch086: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
+
+# Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343).
+#=fedoratest
+Patch087: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch088: gdb-rhbz795424-bitpos-20of25.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch089: gdb-rhbz795424-bitpos-21of25.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch090: gdb-rhbz795424-bitpos-22of25.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch091: gdb-rhbz795424-bitpos-23of25.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch092: gdb-rhbz795424-bitpos-25of25.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch093: gdb-rhbz795424-bitpos-25of25-test.patch
+
+# Fix `GDB cannot access struct member whose offset is larger than 256MB'
+# (RH BZ 795424).
+#=push
+Patch094: gdb-rhbz795424-bitpos-lazyvalue.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
+Patch095: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
+
+# Fix crash of -readnow /usr/lib/debug/usr/bin/gnatbind.debug (BZ 1069211).
+#=push+jan
+Patch096: gdb-gnat-dwarf-crash-3of3.patch
+
+# Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614)
+#=fedoratest
+Patch097: 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
+Patch098: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
+
+#=fedoratest
+Patch099: gdb-archer-vla-tests.patch
+
+#=fedoratest
+Patch100: gdb-vla-intel-tests.patch
+
+# Continue backtrace even if a frame filter throws an exception (Phil Muldoon).
+#=push
+Patch101: gdb-btrobust.patch
+
+# Display Fortran strings in backtraces.
+#=fedoratest
+Patch102: gdb-fortran-frame-string.patch
+
+# Fix Python GIL with gdb.execute("continue") (Phil Muldoon, BZ 1116957).
+#=push
+Patch103: gdb-python-gil.patch
+
+# Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to
+# crash.' (RH BZ 1156192).
+#=fedoratest
+Patch104: gdb-rhbz1156192-recursive-dlopen-test.patch
+
+# Fix jit-reader.h for multi-lib.
+#=push+jan
+Patch105: gdb-jit-reader-multilib.patch
+
+# Fix '`catch syscall' doesn't work for parent after `fork' is called'
+# (Philippe Waroquiers, RH BZ 1149205).
+#=fedoratest
+Patch106: 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
+Patch107: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
+
+# Test 'info type-printers' Python error (RH BZ 1350436).
+#=fedoratest
+Patch108: gdb-rhbz1350436-type-printers-error.patch
+
+# Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan
+# Kratochvil, RH BZ 1084404).
+#=fedoratest
+Patch109: 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
+Patch110: gdb-bz1219747-attach-kills.patch
+
+# Force libncursesw over libncurses to match the includes (RH BZ 1270534).
+#=push+jan
+Patch111: gdb-fedora-libncursesw.patch
+
+# Test clflushopt instruction decode (for RH BZ 1262471).
+#=fedoratest
+Patch112: gdb-opcodes-clflushopt-test.patch
+
+# [rhel6] DTS backward Python compatibility API (BZ 1020004, Phil Muldoon).
+#=fedora
+Patch113: gdb-dts-rhel6-python-compat.patch
+
+# [SCL] Skip deprecated .gdb_index warning for Red Hat built files (BZ 953585).
+#=push+jan
+Patch114: gdb-6.6-buildid-locate-rpm-scl.patch
+
+# Work around readline-6.2 incompatibility not asking for --more-- (BZ 701131).
+#=fedora
+Patch115: gdb-readline62-ask-more-rh.patch
+
+# [RHEL5,RHEL6] Fix attaching to stopped processes.
+# [RHEL5] Workaround kernel for detaching SIGSTOPped processes (BZ 809382).
+#=fedora
+Patch116: gdb-6.8-attach-signalled-detach-stopped.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 .
+Patch117: gdb-6.8-quit-never-aborts.patch
+
+# [aarch64] Fix hardware watchpoints (RH BZ 1261564).
+#=fedoratest
+Patch118: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
+
+# Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
+#=fedora
+Patch119: gdb-container-rh-pkg.patch
+
+# New test for Python "Cannot locate object file for block" (for RH BZ 1325795).
+#=fedoratest
+Patch120: gdb-rhbz1325795-framefilters-test.patch
+
+# [dts+el7] [x86*] Bundle linux_perf.h for libipt (RH BZ 1256513).
+#=fedora
+Patch121: gdb-linux_perf-bundle.patch
+
+# Fix gdb-headless /usr/bin/ executables (BZ 1390251).
+#=fedora
+Patch122: gdb-libexec-add-index.patch
+
+# Fix gdb-add-index for 444 *.debug files.
+#=push+jan
+Patch123: gdb-add-index-chmod.patch
+
+# New testcase for: Fix -completion crash (Gary Benson, RH BZ 1398387).
+#=fedoratest
+Patch124: gdb-rhbz1398387-tab-crash-test.patch
+
+# [testsuite] Fix false selftest.exp FAIL from system readline-6.3+ (Patrick Palka).
+#=fedoratest
+Patch125: gdb-testsuite-readline63-sigint.patch
+
+# Python patches of: http://sourceware.org/gdb/wiki/ProjectArcher
+#=push
+Patch126: gdb-archer.patch
+
+# Revert upstream commit 469412dd9ccc4de5874fd3299b105833f36b34cd
+Patch127: gdb-vla-intel-fix-print-char-array.patch
+
diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include
new file mode 100644
index 0000000..28c6d1f
--- /dev/null
+++ b/_gdb.spec.patch.include
@@ -0,0 +1,127 @@
+%patch001 -p1
+%patch002 -p1
+%patch003 -p1
+%patch004 -p1
+%patch005 -p1
+%patch006 -p1
+%patch007 -p1
+%patch008 -p1
+%patch009 -p1
+%patch010 -p1
+%patch011 -p1
+%patch012 -p1
+%patch013 -p1
+%patch014 -p1
+%patch015 -p1
+%patch016 -p1
+%patch017 -p1
+%patch018 -p1
+%patch019 -p1
+%patch020 -p1
+%patch021 -p1
+%patch022 -p1
+%patch023 -p1
+%patch024 -p1
+%patch025 -p1
+%patch026 -p1
+%patch027 -p1
+%patch028 -p1
+%patch029 -p1
+%patch030 -p1
+%patch031 -p1
+%patch032 -p1
+%patch033 -p1
+%patch034 -p1
+%patch035 -p1
+%patch036 -p1
+%patch037 -p1
+%patch038 -p1
+%patch039 -p1
+%patch040 -p1
+%patch041 -p1
+%patch042 -p1
+%patch043 -p1
+%patch044 -p1
+%patch045 -p1
+%patch046 -p1
+%patch047 -p1
+%patch048 -p1
+%patch049 -p1
+%patch050 -p1
+%patch051 -p1
+%patch052 -p1
+%patch053 -p1
+%patch054 -p1
+%patch055 -p1
+%patch056 -p1
+%patch057 -p1
+%patch058 -p1
+%patch059 -p1
+%patch060 -p1
+%patch061 -p1
+%patch062 -p1
+%patch063 -p1
+%patch064 -p1
+%patch065 -p1
+%patch066 -p1
+%patch067 -p1
+%patch068 -p1
+%patch069 -p1
+%patch070 -p1
+%patch071 -p1
+%patch072 -p1
+%patch073 -p1
+%patch074 -p1
+%patch075 -p1
+%patch076 -p1
+%patch077 -p1
+%patch078 -p1
+%patch079 -p1
+%patch080 -p1
+%patch081 -p1
+%patch082 -p1
+%patch083 -p1
+%patch084 -p1
+%patch085 -p1
+%patch086 -p1
+%patch087 -p1
+%patch088 -p1
+%patch089 -p1
+%patch090 -p1
+%patch091 -p1
+%patch092 -p1
+%patch093 -p1
+%patch094 -p1
+%patch095 -p1
+%patch096 -p1
+%patch097 -p1
+%patch098 -p1
+%patch099 -p1
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+%patch108 -p1
+%patch109 -p1
+%patch110 -p1
+%patch111 -p1
+%patch112 -p1
+%patch113 -p1
+%patch114 -p1
+%patch115 -p1
+%patch116 -p1
+%patch117 -p1
+%patch118 -p1
+%patch119 -p1
+%patch120 -p1
+%patch121 -p1
+%patch122 -p1
+%patch123 -p1
+%patch124 -p1
+%patch125 -p1
+%patch126 -p1
+%patch127 -p1
diff --git a/_git_upstream_commit b/_git_upstream_commit
new file mode 100644
index 0000000..10effd0
--- /dev/null
+++ b/_git_upstream_commit
@@ -0,0 +1 @@
+1e97a22796cced8bba3359df46e8c2883653516f
diff --git a/_patch_order b/_patch_order
new file mode 100644
index 0000000..47c9eba
--- /dev/null
+++ b/_patch_order
@@ -0,0 +1,127 @@
+gdb-6.3-rh-testversion-20041202.patch
+gdb-vla-intel-fortran-strides.patch
+gdb-vla-intel-fortran-vla-strings.patch
+gdb-vla-intel-stringbt-fix.patch
+gdb-6.3-rh-dummykfail-20041202.patch
+gdb-6.3-ppc64syscall-20040622.patch
+gdb-6.3-ppc64displaysymbol-20041124.patch
+gdb-6.3-gstack-20050411.patch
+gdb-6.3-test-pie-20050107.patch
+gdb-6.3-test-self-20050110.patch
+gdb-6.3-test-dtorfix-20050121.patch
+gdb-6.3-test-movedir-20050125.patch
+gdb-6.3-threaded-watchpoints2-20050225.patch
+gdb-6.3-inferior-notification-20050721.patch
+gdb-6.3-inheritancetest-20050726.patch
+gdb-6.3-readnever-20050907.patch
+gdb-6.5-bz203661-emit-relocs.patch
+gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
+gdb-6.5-sharedlibrary-path.patch
+gdb-6.5-BEA-testsuite.patch
+gdb-6.5-last-address-space-byte-test.patch
+gdb-6.5-readline-long-line-crash-test.patch
+gdb-6.5-bz216711-clone-is-outermost.patch
+gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
+gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
+gdb-6.5-bz109921-DW_AT_decl_file-test.patch
+gdb-6.3-bz140532-ppc-unwinding-test.patch
+gdb-6.3-bz202689-exec-from-pthread-test.patch
+gdb-6.6-bz230000-power6-disassembly-test.patch
+gdb-6.6-bz229517-gcore-without-terminal.patch
+gdb-6.6-bz235197-fork-detach-info.patch
+gdb-6.6-testsuite-timeouts.patch
+gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
+gdb-6.6-scheduler_locking-step-is-default.patch
+gdb-6.3-attach-see-vdso-test.patch
+gdb-6.5-bz243845-stale-testing-zombie-test.patch
+gdb-6.6-buildid-locate.patch
+gdb-6.6-buildid-locate-solib-missing-ids.patch
+gdb-6.6-buildid-locate-rpm.patch
+gdb-6.7-charsign-test.patch
+gdb-6.7-ppc-clobbered-registers-O2-test.patch
+gdb-6.7-testsuite-stable-results.patch
+gdb-6.5-ia64-libunwind-leak-test.patch
+gdb-6.5-missed-trap-on-step-test.patch
+gdb-6.5-gcore-buffer-limit-test.patch
+gdb-6.3-mapping-zero-inode-test.patch
+gdb-6.3-focus-cmd-prev-test.patch
+gdb-6.8-bz442765-threaded-exec-test.patch
+gdb-6.8-sparc64-silence-memcpy-check.patch
+gdb-6.5-section-num-fixup-test.patch
+gdb-6.8-bz436037-reg-no-longer-active.patch
+gdb-6.8-watchpoint-conditionals-test.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-follow-child-stale-parent.patch
+gdb-ccache-workaround.patch
+gdb-archer-pie-addons.patch
+gdb-archer-pie-addons-keep-disabled.patch
+gdb-lineno-makeup-test.patch
+gdb-ppc-power7-test.patch
+gdb-bz541866-rwatch-before-run.patch
+gdb-moribund-utrace-workaround.patch
+gdb-archer-next-over-throw-cxx-exec.patch
+gdb-bz601887-dwarf4-rh-test.patch
+gdb-6.6-buildid-locate-core-as-arg.patch
+gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
+gdb-test-bt-cfi-without-die.patch
+gdb-gdb-add-index-script.patch
+gdb-bz568248-oom-is-error.patch
+gdb-bz634108-solib_address.patch
+gdb-test-pid0-core.patch
+gdb-test-dw2-aranges.patch
+gdb-test-expr-cumulative-archer.patch
+gdb-physname-pr11734-test.patch
+gdb-physname-pr12273-test.patch
+gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
+gdb-test-ivy-bridge.patch
+gdb-glibc-vdso-workaround.patch
+gdb-runtest-pie-override.patch
+gdb-attach-fail-reasons-5of5.patch
+gdb-stale-frame_info.patch
+gdb-glibc-strstr-workaround.patch
+gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
+gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
+gdb-rhbz795424-bitpos-20of25.patch
+gdb-rhbz795424-bitpos-21of25.patch
+gdb-rhbz795424-bitpos-22of25.patch
+gdb-rhbz795424-bitpos-23of25.patch
+gdb-rhbz795424-bitpos-25of25.patch
+gdb-rhbz795424-bitpos-25of25-test.patch
+gdb-rhbz795424-bitpos-lazyvalue.patch
+gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
+gdb-gnat-dwarf-crash-3of3.patch
+gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
+gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
+gdb-archer-vla-tests.patch
+gdb-vla-intel-tests.patch
+gdb-btrobust.patch
+gdb-fortran-frame-string.patch
+gdb-python-gil.patch
+gdb-rhbz1156192-recursive-dlopen-test.patch
+gdb-jit-reader-multilib.patch
+gdb-rhbz1149205-catch-syscall-after-fork-test.patch
+gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
+gdb-rhbz1350436-type-printers-error.patch
+gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
+gdb-bz1219747-attach-kills.patch
+gdb-fedora-libncursesw.patch
+gdb-opcodes-clflushopt-test.patch
+gdb-dts-rhel6-python-compat.patch
+gdb-6.6-buildid-locate-rpm-scl.patch
+gdb-readline62-ask-more-rh.patch
+gdb-6.8-attach-signalled-detach-stopped.patch
+gdb-6.8-quit-never-aborts.patch
+gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
+gdb-container-rh-pkg.patch
+gdb-rhbz1325795-framefilters-test.patch
+gdb-linux_perf-bundle.patch
+gdb-libexec-add-index.patch
+gdb-add-index-chmod.patch
+gdb-rhbz1398387-tab-crash-test.patch
+gdb-testsuite-readline63-sigint.patch
+gdb-archer.patch
+gdb-vla-intel-fix-print-char-array.patch
diff --git a/gdb-6.3-attach-see-vdso-test.patch b/gdb-6.3-attach-see-vdso-test.patch
index f0d5769..cedcf29 100644
--- a/gdb-6.3-attach-see-vdso-test.patch
+++ b/gdb-6.3-attach-see-vdso-test.patch
@@ -1,14 +1,24 @@
+From 720465552f359e1b44666516d8032bfe11d9e9cf Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-attach-see-vdso-test.patch
FileName: gdb-6.3-attach-see-vdso-test.patch
+;; Test kernel VDSO decoding while attaching to an i386 process.
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/attach-see-vdso.c | 25 +++++++++++
+ gdb/testsuite/gdb.base/attach-see-vdso.exp | 72 ++++++++++++++++++++++++++++++
+ 2 files changed, 97 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/attach-see-vdso.c
+ create mode 100644 gdb/testsuite/gdb.base/attach-see-vdso.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-see-vdso.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-see-vdso.c 2016-02-15 23:25:36.749601045 +0100
+diff --git a/gdb/testsuite/gdb.base/attach-see-vdso.c b/gdb/testsuite/gdb.base/attach-see-vdso.c
+new file mode 100644
+index 0000000000..cf3c7207a5
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/attach-see-vdso.c
@@ -0,0 +1,25 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -35,10 +45,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-see-vdso.c
+ pause ();
+ return 1;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-see-vdso.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-see-vdso.exp 2016-02-15 23:25:44.889658840 +0100
+diff --git a/gdb/testsuite/gdb.base/attach-see-vdso.exp b/gdb/testsuite/gdb.base/attach-see-vdso.exp
+new file mode 100644
+index 0000000000..e8a538097e
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/attach-see-vdso.exp
@@ -0,0 +1,72 @@
+# Copyright 2007
+
@@ -112,3 +123,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-see-vdso.exp
+# work.
+
+remote_exec build "kill -9 ${testpid}"
+--
+2.14.3
+
diff --git a/gdb-6.3-bz140532-ppc-unwinding-test.patch b/gdb-6.3-bz140532-ppc-unwinding-test.patch
index 395b822..239e55f 100644
--- a/gdb-6.3-bz140532-ppc-unwinding-test.patch
+++ b/gdb-6.3-bz140532-ppc-unwinding-test.patch
@@ -1,13 +1,29 @@
+From c0b26dbea92bc106b9356fde2dd85c7a493055f7 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-bz140532-ppc-unwinding-test.patch
FileName: gdb-6.3-bz140532-ppc-unwinding-test.patch
+;; Update PPC unwinding patches to their upstream variants (BZ 140532).
+;;=fedoratest
+---
+ .../gdb.arch/powerpc-bcl-prologue-asm32.S | 78 +++++++++++++++++
+ .../gdb.arch/powerpc-bcl-prologue-asm64.S | 98 ++++++++++++++++++++++
+ gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c | 29 +++++++
+ gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp | 72 ++++++++++++++++
+ gdb/testsuite/gdb.arch/powerpc-prologue.exp | 5 +-
+ 5 files changed, 280 insertions(+), 2 deletions(-)
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
-diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S
---- gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S 1969-12-31 19:00:00.000000000 -0500
-+++ gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S 2007-08-02 13:23:10.000000000 -0400
+diff --git a/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S
+new file mode 100644
+index 0000000000..1e4301af89
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm32.S
@@ -0,0 +1,78 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -87,9 +103,11 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm3
+}
+
+*/
-diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S
---- gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S 1969-12-31 19:00:00.000000000 -0500
-+++ gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S 2007-08-02 14:28:56.000000000 -0400
+diff --git a/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S
+new file mode 100644
+index 0000000000..1af5c19a16
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm64.S
@@ -0,0 +1,98 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -189,9 +207,11 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue-asm6
+}
+
+*/
-diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c
---- gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c 1969-12-31 19:00:00.000000000 -0500
-+++ gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c 2007-08-02 13:25:10.000000000 -0400
+diff --git a/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c
+new file mode 100644
+index 0000000000..6b5bb08d0f
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c
@@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -222,9 +242,11 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.c gd
+ func1 ();
+ return 0;
+}
-diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
---- gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp 1969-12-31 19:00:00.000000000 -0500
-+++ gdb-6.3/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp 2007-08-02 14:21:29.000000000 -0400
+diff --git a/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
+new file mode 100644
+index 0000000000..5f50c4ef43
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
@@ -0,0 +1,72 @@
+# Copyright 2006, 2007 Free Software Foundation, Inc.
+
@@ -298,12 +320,11 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.arch/powerpc-bcl-prologue.exp
+ pass $test
+ }
+}
-
-Fixup the testcase for ppc64 biarch GDB.
-
---- ./gdb/testsuite/gdb.arch/powerpc-prologue.exp 2008-01-13 13:32:19.000000000 +0100
-+++ ./gdb/testsuite/gdb.arch/powerpc-prologue.exp 2008-01-02 00:04:10.000000000 +0100
-@@ -17,8 +17,9 @@
+diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
+index 9ab172be7b..91ee3a29ba 100644
+--- a/gdb/testsuite/gdb.arch/powerpc-prologue.exp
++++ b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
+@@ -16,8 +16,9 @@
# Test PowerPC prologue analyzer.
# Do not run on AIX (where we won't be able to build the tests without
@@ -315,3 +336,6 @@ Fixup the testcase for ppc64 biarch GDB.
verbose "Skipping PowerPC prologue tests."
return
}
+--
+2.14.3
+
diff --git a/gdb-6.3-bz202689-exec-from-pthread-test.patch b/gdb-6.3-bz202689-exec-from-pthread-test.patch
index 392a475..f386cbf 100644
--- a/gdb-6.3-bz202689-exec-from-pthread-test.patch
+++ b/gdb-6.3-bz202689-exec-from-pthread-test.patch
@@ -1,19 +1,28 @@
+From d75b7ef141bcc3ea9eaf7fa8bd7023b6372e25fb Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-bz202689-exec-from-pthread-test.patch
FileName: gdb-6.3-bz202689-exec-from-pthread-test.patch
+;; Testcase for exec() from threaded program (BZ 202689).
+;;=fedoratest
2007-01-17 Jan Kratochvil
* gdb.threads/threaded-exec.exp, gdb.threads/threaded-exec.c: New files.
+---
+ gdb/testsuite/gdb.threads/threaded-exec.c | 46 +++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.threads/threaded-exec.exp | 41 +++++++++++++++++++++++++
+ 2 files changed, 87 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.threads/threaded-exec.c
+ create mode 100644 gdb/testsuite/gdb.threads/threaded-exec.exp
-
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c 2016-02-16 09:54:06.936904418 +0100
+diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threads/threaded-exec.c
+new file mode 100644
+index 0000000000..522b24671d
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/threaded-exec.c
@@ -0,0 +1,46 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -61,10 +70,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c
+ execl ("/bin/true", "/bin/true", NULL);
+ abort ();
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp 2016-02-16 09:54:19.965992585 +0100
+diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.threads/threaded-exec.exp
+new file mode 100644
+index 0000000000..77c8a7dc85
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/threaded-exec.exp
@@ -0,0 +1,41 @@
+# threaded-exec.exp -- Check reset of the tracked threads on exec*(2)
+# Copyright (C) 2007 Free Software Foundation, Inc.
@@ -107,3 +117,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp
+ pass "Program exited"
+ }
+}
+--
+2.14.3
+
diff --git a/gdb-6.3-focus-cmd-prev-test.patch b/gdb-6.3-focus-cmd-prev-test.patch
index f7093ee..3395c42 100644
--- a/gdb-6.3-focus-cmd-prev-test.patch
+++ b/gdb-6.3-focus-cmd-prev-test.patch
@@ -1,14 +1,22 @@
+From 28e485ee8afbfc7b93a8cf7400cf9937487479c2 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-focus-cmd-prev-test.patch
FileName: gdb-6.3-focus-cmd-prev-test.patch
+;; Test a crash on `focus cmd', `focus prev' commands.
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/focus-cmd-prev.exp | 40 +++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/focus-cmd-prev.exp
-Index: gdb-7.12.50.20170226/gdb/testsuite/gdb.base/focus-cmd-prev.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170226/gdb/testsuite/gdb.base/focus-cmd-prev.exp 2017-03-02 09:39:14.508461085 +0100
+diff --git a/gdb/testsuite/gdb.base/focus-cmd-prev.exp b/gdb/testsuite/gdb.base/focus-cmd-prev.exp
+new file mode 100644
+index 0000000000..d5a653f684
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/focus-cmd-prev.exp
@@ -0,0 +1,40 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -50,3 +58,6 @@ Index: gdb-7.12.50.20170226/gdb/testsuite/gdb.base/focus-cmd-prev.exp
+ pass $test
+ }
+}
+--
+2.14.3
+
diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch
index 4facb04..caaa75d 100644
--- a/gdb-6.3-gstack-20050411.patch
+++ b/gdb-6.3-gstack-20050411.patch
@@ -1,20 +1,34 @@
+From fb87d00165f5686bbe548c48b88c3e2763db6845 Mon Sep 17 00:00:00 2001
From: Andrew Cagney
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-gstack-20050411.patch
FileName: gdb-6.3-gstack-20050411.patch
+;; Add a wrapper script to GDB that implements pstack using the
+;; --readnever option.
+;;=push
+
2004-11-23 Andrew Cagney
* Makefile.in (uninstall-gstack, install-gstack): New rules, add
to install and uninstall.
* gstack.sh, gstack.1: New files.
+---
+ gdb/Makefile.in | 34 ++++++++++++++++++--
+ gdb/gstack.sh | 43 +++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/gstack.c | 43 +++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/gstack.exp | 66 +++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 184 insertions(+), 2 deletions(-)
+ create mode 100644 gdb/gstack.sh
+ create mode 100644 gdb/testsuite/gdb.base/gstack.c
+ create mode 100644 gdb/testsuite/gdb.base/gstack.exp
-Index: gdb-7.7/gdb/Makefile.in
-===================================================================
---- gdb-7.7.orig/gdb/Makefile.in 2014-02-06 20:29:09.401214339 +0100
-+++ gdb-7.7/gdb/Makefile.in 2014-02-06 20:29:09.501214360 +0100
-@@ -1067,7 +1067,7 @@ info install-info clean-info dvi pdf ins
+diff --git a/gdb/Makefile.in b/gdb/Makefile.in
+index 5823098036..f95505ea21 100644
+--- a/gdb/Makefile.in
++++ b/gdb/Makefile.in
+@@ -1747,7 +1747,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force
install: all
@$(MAKE) $(FLAGS_TO_PASS) install-only
@@ -23,7 +37,7 @@ Index: gdb-7.7/gdb/Makefile.in
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e "$$t"` ; \
if test "x$$transformed_name" = x; then \
-@@ -1104,7 +1104,25 @@ install-strip:
+@@ -1787,7 +1787,25 @@ install-guile:
install-python:
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
@@ -50,7 +64,7 @@ Index: gdb-7.7/gdb/Makefile.in
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e $$t` ; \
if test "x$$transformed_name" = x; then \
-@@ -1127,6 +1145,18 @@ uninstall: force $(CONFIG_UNINSTALL)
+@@ -1810,6 +1828,18 @@ uninstall: force $(CONFIG_UNINSTALL)
fi
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
@@ -69,10 +83,11 @@ Index: gdb-7.7/gdb/Makefile.in
# The C++ name parser can be built standalone for testing.
test-cp-name-parser.o: cp-name-parser.c
$(COMPILE) -DTEST_CPNAMES cp-name-parser.c
-Index: gdb-7.7/gdb/gstack.sh
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7/gdb/gstack.sh 2014-02-06 20:29:09.501214360 +0100
+diff --git a/gdb/gstack.sh b/gdb/gstack.sh
+new file mode 100644
+index 0000000000..f7f07248f7
+--- /dev/null
++++ b/gdb/gstack.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
@@ -117,10 +132,60 @@ Index: gdb-7.7/gdb/gstack.sh
+ -e 's/^\((gdb) \)*//' \
+ -e '/^#/p' \
+ -e '/^Thread/p'
-Index: gdb-7.7/gdb/testsuite/gdb.base/gstack.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7/gdb/testsuite/gdb.base/gstack.exp 2014-02-06 20:43:17.774747352 +0100
+diff --git a/gdb/testsuite/gdb.base/gstack.c b/gdb/testsuite/gdb.base/gstack.c
+new file mode 100644
+index 0000000000..dc10813f04
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gstack.c
+@@ -0,0 +1,43 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2005, 2007, 2008, 2009 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 . */
++
++#include
++#include
++#include
++
++void
++func (void)
++{
++ const char msg[] = "looping\n";
++
++ /* Use the most simple notification not to get caught by attach on exiting
++ the function. */
++ write (1, msg, strlen (msg));
++
++ for (;;);
++}
++
++int
++main (void)
++{
++ alarm (60);
++ nice (100);
++
++ func ();
++
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.base/gstack.exp b/gdb/testsuite/gdb.base/gstack.exp
+new file mode 100644
+index 0000000000..1186ec57bc
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gstack.exp
@@ -0,0 +1,66 @@
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
@@ -188,51 +253,6 @@ Index: gdb-7.7/gdb/testsuite/gdb.base/gstack.exp
+gdb_exit
+
+remote_exec host "kill -9 $pid"
-Index: gdb-7.7/gdb/testsuite/gdb.base/gstack.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7/gdb/testsuite/gdb.base/gstack.c 2014-02-06 20:29:09.502214360 +0100
-@@ -0,0 +1,43 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2005, 2007, 2008, 2009 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 . */
-+
-+#include
-+#include
-+#include
-+
-+void
-+func (void)
-+{
-+ const char msg[] = "looping\n";
-+
-+ /* Use the most simple notification not to get caught by attach on exiting
-+ the function. */
-+ write (1, msg, strlen (msg));
-+
-+ for (;;);
-+}
-+
-+int
-+main (void)
-+{
-+ alarm (60);
-+ nice (100);
-+
-+ func ();
-+
-+ return 0;
-+}
+--
+2.14.3
+
diff --git a/gdb-6.3-inferior-notification-20050721.patch b/gdb-6.3-inferior-notification-20050721.patch
index df7239f..dd43600 100644
--- a/gdb-6.3-inferior-notification-20050721.patch
+++ b/gdb-6.3-inferior-notification-20050721.patch
@@ -1,9 +1,13 @@
+From 1e46c1307539e7594e8b6807ea41665b4b218e5c Mon Sep 17 00:00:00 2001
From: Jeff Johnston
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-inferior-notification-20050721.patch
FileName: gdb-6.3-inferior-notification-20050721.patch
+;; Notify observers that the inferior has been created
+;;=fedoratest
+
2005-07-21 Jeff Johnston
* gdb.base/attach-32.exp: New test for attaching in 32-bit
@@ -14,11 +18,20 @@ FileName: gdb-6.3-inferior-notification-20050721.patch
2007-12-26 Jan Kratochvil
* gdb.base/attach-32.exp: Fix forgotten $GDBFLAGS as set.
+---
+ gdb/testsuite/gdb.base/attach-32.c | 20 +++
+ gdb/testsuite/gdb.base/attach-32.exp | 245 +++++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/attach-32b.c | 24 ++++
+ 3 files changed, 289 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/attach-32.c
+ create mode 100644 gdb/testsuite/gdb.base/attach-32.exp
+ create mode 100644 gdb/testsuite/gdb.base/attach-32b.c
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32.c 2016-02-15 23:23:02.923499512 +0100
+diff --git a/gdb/testsuite/gdb.base/attach-32.c b/gdb/testsuite/gdb.base/attach-32.c
+new file mode 100644
+index 0000000000..0041b4732d
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/attach-32.c
@@ -0,0 +1,20 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@@ -40,10 +53,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32.c
+ }
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32.exp 2016-02-15 23:25:11.385420957 +0100
+diff --git a/gdb/testsuite/gdb.base/attach-32.exp b/gdb/testsuite/gdb.base/attach-32.exp
+new file mode 100644
+index 0000000000..67ded02ccf
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/attach-32.exp
@@ -0,0 +1,245 @@
+# Copyright 2005 Free Software Foundation, Inc.
+
@@ -290,10 +304,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32.exp
+do_call_attach_tests
+
+return 0
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32b.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32b.c 2016-02-15 23:23:02.924499519 +0100
+diff --git a/gdb/testsuite/gdb.base/attach-32b.c b/gdb/testsuite/gdb.base/attach-32b.c
+new file mode 100644
+index 0000000000..a78037ed38
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/attach-32b.c
@@ -0,0 +1,24 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@@ -319,3 +334,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/attach-32b.c
+ }
+ return (0);
+}
+--
+2.14.3
+
diff --git a/gdb-6.3-inheritancetest-20050726.patch b/gdb-6.3-inheritancetest-20050726.patch
index 763b4a1..0a41422 100644
--- a/gdb-6.3-inheritancetest-20050726.patch
+++ b/gdb-6.3-inheritancetest-20050726.patch
@@ -1,36 +1,35 @@
+From 445e9a113406752c01f61e27987b05067833428b Mon Sep 17 00:00:00 2001
From: Jeff Johnston
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-inheritancetest-20050726.patch
FileName: gdb-6.3-inheritancetest-20050726.patch
+;; Verify printing of inherited members test
+;;=fedoratest
+
2005-07-26 Jeff Johnston
* gdb.cp/b146835.exp: New testcase.
* gdb.cp/b146835.cc: Ditto.
* gdb.cp/b146835b.cc: Ditto.
* gdb.cp/b146835.h: Ditto.
+---
+ gdb/testsuite/gdb.cp/b146835.cc | 32 +++++++++++++++++++++++++++
+ gdb/testsuite/gdb.cp/b146835.exp | 47 ++++++++++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.cp/b146835.h | 36 ++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.cp/b146835b.cc | 11 ++++++++++
+ 4 files changed, 126 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.cp/b146835.cc
+ create mode 100644 gdb/testsuite/gdb.cp/b146835.exp
+ create mode 100644 gdb/testsuite/gdb.cp/b146835.h
+ create mode 100644 gdb/testsuite/gdb.cp/b146835b.cc
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835b.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835b.cc 2016-02-16 09:49:08.743886620 +0100
-@@ -0,0 +1,11 @@
-+#include "b146835.h"
-+
-+C::C() { d = 0; x = 3; }
-+
-+int C::z (char *s) { return 0; }
-+
-+C::~C() {}
-+
-+void A::funcD (class E *e, class D *d) {}
-+void A::funcE (E *e, D *d) {}
-+void A::funcF (unsigned long x, D *d) {}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.cc 2016-02-16 09:49:08.744886627 +0100
+diff --git a/gdb/testsuite/gdb.cp/b146835.cc b/gdb/testsuite/gdb.cp/b146835.cc
+new file mode 100644
+index 0000000000..4161d523f5
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/b146835.cc
@@ -0,0 +1,32 @@
+#include "b146835.h"
+#include
@@ -64,10 +63,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.cc
+ f.foo();
+}
+
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.exp 2016-02-16 09:51:48.601968339 +0100
+diff --git a/gdb/testsuite/gdb.cp/b146835.exp b/gdb/testsuite/gdb.cp/b146835.exp
+new file mode 100644
+index 0000000000..d03815bcff
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/b146835.exp
@@ -0,0 +1,47 @@
+# This testcase is part of GDB, the GNU debugger.
+
@@ -116,10 +116,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.exp
+
+# Verify that we can access the inherited member d
+gdb_test "p d" " = \\(D \\*\\) *0x0" "Verify inherited member d accessible"
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.h 2016-02-16 09:49:08.744886627 +0100
+diff --git a/gdb/testsuite/gdb.cp/b146835.h b/gdb/testsuite/gdb.cp/b146835.h
+new file mode 100644
+index 0000000000..48df7a2935
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/b146835.h
@@ -0,0 +1,36 @@
+
+class A {
@@ -157,3 +158,23 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/b146835.h
+ int z (char *s);
+ virtual ~C();
+};
+diff --git a/gdb/testsuite/gdb.cp/b146835b.cc b/gdb/testsuite/gdb.cp/b146835b.cc
+new file mode 100644
+index 0000000000..1853c1fa38
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/b146835b.cc
+@@ -0,0 +1,11 @@
++#include "b146835.h"
++
++C::C() { d = 0; x = 3; }
++
++int C::z (char *s) { return 0; }
++
++C::~C() {}
++
++void A::funcD (class E *e, class D *d) {}
++void A::funcE (E *e, D *d) {}
++void A::funcF (unsigned long x, D *d) {}
+--
+2.14.3
+
diff --git a/gdb-6.3-mapping-zero-inode-test.patch b/gdb-6.3-mapping-zero-inode-test.patch
index 85381ad..be46f28 100644
--- a/gdb-6.3-mapping-zero-inode-test.patch
+++ b/gdb-6.3-mapping-zero-inode-test.patch
@@ -1,120 +1,24 @@
+From 7d82abcba954738d51d73493ce52ac006b26e420 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-mapping-zero-inode-test.patch
FileName: gdb-6.3-mapping-zero-inode-test.patch
+;; Test GCORE for shmid 0 shared memory mappings.
+;;=fedoratest: But it is broken anyway, sometimes the case being tested is not reproducible.
+---
+ gdb/testsuite/gdb.base/gcore-shmid0.c | 128 ++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/gcore-shmid0.exp | 101 +++++++++++++++++++++++++
+ 2 files changed, 229 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/gcore-shmid0.c
+ create mode 100644 gdb/testsuite/gdb.base/gcore-shmid0.exp
-Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp 2013-08-02 22:24:04.747745133 +0200
-@@ -0,0 +1,101 @@
-+# Copyright 2007, 2009 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 2 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, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+# Test GDB's handling of gcore for mapping with a name but zero inode.
-+
-+if { [prepare_for_testing gcore-shmid0.exp gcore-shmid0] } {
-+ return -1
-+}
-+
-+# Does this gdb support gcore?
-+set test "help gcore"
-+gdb_test_multiple $test $test {
-+ -re "Undefined command: .gcore.*$gdb_prompt $" {
-+ # gcore command not supported -- nothing to test here.
-+ unsupported "gdb does not support gcore on this target"
-+ return -1;
-+ }
-+ -re "Save a core file .*$gdb_prompt $" {
-+ pass $test
-+ }
-+}
-+
-+if { ! [ runto_main ] } then {
-+ untested gcore-shmid0.exp
-+ return -1
-+}
-+
-+gdb_breakpoint "initialized"
-+gdb_breakpoint "unresolved"
-+
-+set oldtimeout $timeout
-+set timeout [expr $oldtimeout + 120]
-+
-+set test "Continue to initialized."
-+gdb_test_multiple "continue" $test {
-+ -re "Breakpoint .*, initialized .* at .*\r\n$gdb_prompt $" {
-+ pass $test
-+ }
-+ -re "Breakpoint .*, unresolved .* at .*\r\n$gdb_prompt $" {
-+ set timeout $oldtimeout
-+ unsupported $test
-+ return -1
-+ }
-+}
-+set timeout $oldtimeout
-+
-+set escapedfilename [string_to_regexp [standard_output_file gcore-shmid0.test]]
-+
-+set test "save a corefile"
-+gdb_test_multiple "gcore [standard_output_file gcore-shmid0.test]" $test {
-+ -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
-+ pass $test
-+ }
-+ -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
-+ unsupported $test
-+ }
-+}
-+
-+# Be sure to remove the handle first.
-+# But it would get removed even on a kill by GDB as the handle is already
-+# deleted, just it is still attached.
-+gdb_continue_to_end "finish"
-+
-+set test "core-file command"
-+gdb_test_multiple "core-file [standard_output_file gcore-shmid0.test]" $test {
-+ -re ".* program is being debugged already.*y or n. $" {
-+ # gdb_load may connect us to a gdbserver.
-+ send_gdb "y\n"
-+ exp_continue;
-+ }
-+ -re "Core was generated by .*\r\n\#0 .*\\\(\\\).*\r\n$gdb_prompt $" {
-+ # The filename does not fit there anyway so do not check it.
-+ pass $test
-+ }
-+ -re ".*registers from core file: File in wrong format.* $" {
-+ fail "core-file command (could not read registers from core file)"
-+ }
-+}
-+
-+set test "backtrace"
-+gdb_test_multiple "bt" $test {
-+ -re "#0 *initialized \\\(\\\) at .*#1 .* main \\\(.*$gdb_prompt $" {
-+ pass $test
-+ }
-+ -re "#0 *initialized \\\(\\\) at .*Cannot access memory at address .*$gdb_prompt $" {
-+ fail $test
-+ }
-+}
-Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c 2013-08-02 22:22:17.573599496 +0200
+diff --git a/gdb/testsuite/gdb.base/gcore-shmid0.c b/gdb/testsuite/gdb.base/gcore-shmid0.c
+new file mode 100644
+index 0000000000..bb9709a75c
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-shmid0.c
@@ -0,0 +1,128 @@
+/* Copyright 2007, 2009 Free Software Foundation, Inc.
+
@@ -244,3 +148,113 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
+
+ return 0;
+}
+diff --git a/gdb/testsuite/gdb.base/gcore-shmid0.exp b/gdb/testsuite/gdb.base/gcore-shmid0.exp
+new file mode 100644
+index 0000000000..b1fec682aa
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-shmid0.exp
+@@ -0,0 +1,101 @@
++# Copyright 2007, 2009 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 2 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, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++# Test GDB's handling of gcore for mapping with a name but zero inode.
++
++if { [prepare_for_testing gcore-shmid0.exp gcore-shmid0] } {
++ return -1
++}
++
++# Does this gdb support gcore?
++set test "help gcore"
++gdb_test_multiple $test $test {
++ -re "Undefined command: .gcore.*$gdb_prompt $" {
++ # gcore command not supported -- nothing to test here.
++ unsupported "gdb does not support gcore on this target"
++ return -1;
++ }
++ -re "Save a core file .*$gdb_prompt $" {
++ pass $test
++ }
++}
++
++if { ! [ runto_main ] } then {
++ untested gcore-shmid0.exp
++ return -1
++}
++
++gdb_breakpoint "initialized"
++gdb_breakpoint "unresolved"
++
++set oldtimeout $timeout
++set timeout [expr $oldtimeout + 120]
++
++set test "Continue to initialized."
++gdb_test_multiple "continue" $test {
++ -re "Breakpoint .*, initialized .* at .*\r\n$gdb_prompt $" {
++ pass $test
++ }
++ -re "Breakpoint .*, unresolved .* at .*\r\n$gdb_prompt $" {
++ set timeout $oldtimeout
++ unsupported $test
++ return -1
++ }
++}
++set timeout $oldtimeout
++
++set escapedfilename [string_to_regexp [standard_output_file gcore-shmid0.test]]
++
++set test "save a corefile"
++gdb_test_multiple "gcore [standard_output_file gcore-shmid0.test]" $test {
++ -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
++ pass $test
++ }
++ -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
++ unsupported $test
++ }
++}
++
++# Be sure to remove the handle first.
++# But it would get removed even on a kill by GDB as the handle is already
++# deleted, just it is still attached.
++gdb_continue_to_end "finish"
++
++set test "core-file command"
++gdb_test_multiple "core-file [standard_output_file gcore-shmid0.test]" $test {
++ -re ".* program is being debugged already.*y or n. $" {
++ # gdb_load may connect us to a gdbserver.
++ send_gdb "y\n"
++ exp_continue;
++ }
++ -re "Core was generated by .*\r\n\#0 .*\\\(\\\).*\r\n$gdb_prompt $" {
++ # The filename does not fit there anyway so do not check it.
++ pass $test
++ }
++ -re ".*registers from core file: File in wrong format.* $" {
++ fail "core-file command (could not read registers from core file)"
++ }
++}
++
++set test "backtrace"
++gdb_test_multiple "bt" $test {
++ -re "#0 *initialized \\\(\\\) at .*#1 .* main \\\(.*$gdb_prompt $" {
++ pass $test
++ }
++ -re "#0 *initialized \\\(\\\) at .*Cannot access memory at address .*$gdb_prompt $" {
++ fail $test
++ }
++}
+--
+2.14.3
+
diff --git a/gdb-6.3-ppc64displaysymbol-20041124.patch b/gdb-6.3-ppc64displaysymbol-20041124.patch
index 100d8c0..27d4b4c 100644
--- a/gdb-6.3-ppc64displaysymbol-20041124.patch
+++ b/gdb-6.3-ppc64displaysymbol-20041124.patch
@@ -1,19 +1,27 @@
+From 6b6cdece746885bcd078e9384fb50d3e5c9abfa0 Mon Sep 17 00:00:00 2001
From: Andrew Cagney
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-ppc64displaysymbol-20041124.patch
FileName: gdb-6.3-ppc64displaysymbol-20041124.patch
+;; Include the pc's section when doing a symbol lookup so that the
+;; correct symbol is found.
+;;=push: Write new testcase.
+
2004-11-24 Andrew Cagney
* printcmd.c (build_address_symbolic): Find a section for the
address.
+---
+ gdb/printcmd.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
-Index: gdb-6.8.50.20081128/gdb/printcmd.c
-===================================================================
---- gdb-6.8.50.20081128.orig/gdb/printcmd.c 2008-12-04 01:36:05.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/printcmd.c 2008-12-04 01:37:18.000000000 +0100
-@@ -616,6 +616,14 @@ build_address_symbolic (CORE_ADDR addr,
+diff --git a/gdb/printcmd.c b/gdb/printcmd.c
+index 2e596d1f09..20e5bda11e 100644
+--- a/gdb/printcmd.c
++++ b/gdb/printcmd.c
+@@ -602,6 +602,14 @@ build_address_symbolic (struct gdbarch *gdbarch,
addr = overlay_mapped_address (addr, section);
}
}
@@ -28,3 +36,6 @@ Index: gdb-6.8.50.20081128/gdb/printcmd.c
/* First try to find the address in the symbol table, then
in the minsyms. Take the closest one. */
+--
+2.14.3
+
diff --git a/gdb-6.3-ppc64syscall-20040622.patch b/gdb-6.3-ppc64syscall-20040622.patch
index 20a5789..8a59e5f 100644
--- a/gdb-6.3-ppc64syscall-20040622.patch
+++ b/gdb-6.3-ppc64syscall-20040622.patch
@@ -1,9 +1,13 @@
+From 032dfcfc1e11fe69aa49e7974379043a6c3040c3 Mon Sep 17 00:00:00 2001
From: Andrew Cagney
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-ppc64syscall-20040622.patch
FileName: gdb-6.3-ppc64syscall-20040622.patch
+;; Better parse 64-bit PPC system call prologues.
+;;=push: Write new testcase.
+
2004-06-22 Andrew Cagney
* rs6000-tdep.c (struct rs6000_framedata): Add field "func_start".
@@ -11,12 +15,15 @@ FileName: gdb-6.3-ppc64syscall-20040622.patch
"func_start". Add local variable "num_skip_linux_syscall_insn",
use to skip over first half of a GNU/Linux syscall and update
"func_start".
+---
+ gdb/rs6000-tdep.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 54 insertions(+), 3 deletions(-)
-Index: gdb-7.2.50.20110117/gdb/rs6000-tdep.c
-===================================================================
---- gdb-7.2.50.20110117.orig/gdb/rs6000-tdep.c 2011-01-11 20:23:02.000000000 +0100
-+++ gdb-7.2.50.20110117/gdb/rs6000-tdep.c 2011-01-17 15:48:19.000000000 +0100
-@@ -126,6 +126,7 @@ static const char *powerpc_vector_abi_st
+diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
+index 456dbcccb1..d27ce7b2af 100644
+--- a/gdb/rs6000-tdep.c
++++ b/gdb/rs6000-tdep.c
+@@ -134,6 +134,7 @@ static const char *powerpc_vector_abi_string = "auto";
struct rs6000_framedata
{
@@ -24,7 +31,7 @@ Index: gdb-7.2.50.20110117/gdb/rs6000-tdep.c
int offset; /* total size of frame --- the distance
by which we decrement sp to allocate
the frame */
-@@ -1496,7 +1497,6 @@ static CORE_ADDR
+@@ -1578,7 +1579,6 @@ static CORE_ADDR
skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
struct rs6000_framedata *fdata)
{
@@ -32,7 +39,7 @@ Index: gdb-7.2.50.20110117/gdb/rs6000-tdep.c
CORE_ADDR last_prologue_pc = pc;
CORE_ADDR li_found_pc = 0;
gdb_byte buf[4];
-@@ -1514,12 +1514,14 @@ skip_prologue (struct gdbarch *gdbarch,
+@@ -1596,12 +1596,14 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
int minimal_toc_loaded = 0;
int prev_insn_was_prologue_insn = 1;
int num_skip_non_prologue_insns = 0;
@@ -47,7 +54,7 @@ Index: gdb-7.2.50.20110117/gdb/rs6000-tdep.c
fdata->saved_gpr = -1;
fdata->saved_fpr = -1;
fdata->saved_vr = -1;
-@@ -1553,6 +1555,55 @@ skip_prologue (struct gdbarch *gdbarch,
+@@ -1635,6 +1637,55 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
break;
op = extract_unsigned_integer (buf, 4, byte_order);
@@ -103,7 +110,7 @@ Index: gdb-7.2.50.20110117/gdb/rs6000-tdep.c
if ((op & 0xfc1fffff) == 0x7c0802a6)
{ /* mflr Rx */
/* Since shared library / PIC code, which needs to get its
-@@ -1734,9 +1785,9 @@ skip_prologue (struct gdbarch *gdbarch,
+@@ -1826,9 +1877,9 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
we have no line table information or the line info tells
us that the subroutine call is not part of the line
associated with the prologue. */
@@ -115,3 +122,6 @@ Index: gdb-7.2.50.20110117/gdb/rs6000-tdep.c
struct symtab_and_line this_sal = find_pc_line (pc, 0);
if ((prologue_sal.line == 0)
+--
+2.14.3
+
diff --git a/gdb-6.3-readnever-20050907.patch b/gdb-6.3-readnever-20050907.patch
index 7cc7161..96702bd 100644
--- a/gdb-6.3-readnever-20050907.patch
+++ b/gdb-6.3-readnever-20050907.patch
@@ -1,9 +1,13 @@
+From b242ff013fe89c126e544b47538609b0f904771c Mon Sep 17 00:00:00 2001
From: Andrew Cagney
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-readnever-20050907.patch
FileName: gdb-6.3-readnever-20050907.patch
+;; Add readnever option
+;;=push
+
2004-11-18 Andrew Cagney
* dwarf2read.c: Include "top.c".
@@ -17,91 +21,15 @@ FileName: gdb-6.3-readnever-20050907.patch
* gdb.texinfo (File Options): Document --readnever.
-Index: gdb-7.99.90.20170420/gdb/doc/gdb.texinfo
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/doc/gdb.texinfo 2017-04-20 22:29:39.179740076 +0200
-+++ gdb-7.99.90.20170420/gdb/doc/gdb.texinfo 2017-04-20 22:29:40.924751096 +0200
-@@ -1037,6 +1037,12 @@
- the default, which is to read it incrementally as it is needed.
- This makes startup slower, but makes future operations faster.
-
-+@item --readnever
-+@cindex @code{--readnever}
-+Do not read each symbol file's symbolic debug information. This makes
-+startup faster but at the expense of not being able to perform
-+symbolic debugging.
-+
- @end table
-
- @node Mode Options
-Index: gdb-7.99.90.20170420/gdb/main.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/main.c 2017-04-20 22:29:39.182740095 +0200
-+++ gdb-7.99.90.20170420/gdb/main.c 2017-04-20 22:29:40.925751103 +0200
-@@ -615,6 +615,7 @@
- {"tui", no_argument, 0, OPT_TUI},
- {"dbx", no_argument, &dbx_commands, 1},
- {"readnow", no_argument, &readnow_symbol_files, 1},
-+ {"readnever", no_argument, &readnever_symbol_files, 1},
- {"r", no_argument, &readnow_symbol_files, 1},
- {"quiet", no_argument, &quiet, 1},
- {"q", no_argument, &quiet, 1},
-@@ -1254,6 +1255,7 @@
- --se=FILE Use FILE as symbol file and executable file.\n\
- --symbols=SYMFILE Read symbols from SYMFILE.\n\
- --readnow Fully read symbol files on first access.\n\
-+ --readnever Do not read symbol files.\n\
- --write Set writing into executable and core files.\n\n\
- "), stream);
- fputs_unfiltered (_("\
-Index: gdb-7.99.90.20170420/gdb/symfile.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/symfile.c 2017-04-20 22:29:39.183740101 +0200
-+++ gdb-7.99.90.20170420/gdb/symfile.c 2017-04-20 22:29:40.926751109 +0200
-@@ -79,6 +79,7 @@
-
- /* Global variables owned by this file. */
- int readnow_symbol_files; /* Read full symbols immediately. */
-+int readnever_symbol_files; /* Never read full symbols. */
-
- /* Functions this file defines. */
-
-Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 22:29:39.190740145 +0200
-+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 22:29:57.973858766 +0200
-@@ -73,6 +73,7 @@
- #include "common/function-view.h"
- #include "common/gdb_optional.h"
- #include "common/underlying.h"
-+#include "top.h"
-
- #include
- #include
-@@ -2208,7 +2209,8 @@
- (void *) names);
- dwarf2_per_objfile->objfile = objfile;
- }
-- return (!dwarf2_per_objfile->info.is_virtual
-+ return !readnever_symbol_files &&
-+ (!dwarf2_per_objfile->info.is_virtual
- && dwarf2_per_objfile->info.s.section != NULL
- && !dwarf2_per_objfile->abbrev.is_virtual
- && dwarf2_per_objfile->abbrev.s.section != NULL);
-Index: gdb-7.99.90.20170420/gdb/top.h
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/top.h 2017-04-20 22:29:39.191740152 +0200
-+++ gdb-7.99.90.20170420/gdb/top.h 2017-04-20 22:29:40.932751147 +0200
-@@ -269,6 +269,7 @@
-
- /* From random places. */
- extern int readnow_symbol_files;
-+extern int readnever_symbol_files;
-
- /* Perform _initialize initialization. */
- extern void gdb_init (char *);
---- gdb-8.0.1/gdb/gcore.in-orig 2017-06-04 17:51:26.000000000 +0200
-+++ gdb-8.0.1/gdb/gcore.in 2017-09-28 19:46:49.335407827 +0200
+Pushed upstream: https://sourceware.org/ml/gdb-cvs/2017-12/msg00007.html
+---
+ gdb/gcore.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdb/gcore.in b/gdb/gcore.in
+index 632f21bdfa..016bcb9a28 100644
+--- a/gdb/gcore.in
++++ b/gdb/gcore.in
@@ -85,7 +85,7 @@ for pid in $*
do
# `
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-rh-dummykfail-20041202.patch
FileName: gdb-6.3-rh-dummykfail-20041202.patch
+;; Work around out-of-date dejagnu that does not have KFAIL
+;;=push: That dejagnu is too old to be supported.
+
2003-07-11 Elena Zannoni
* lib/gdb.exp (setup_kfail, kfail): Redefine procedures.
-
---- ./gdb/testsuite/lib/gdb.exp.1 2004-11-24 15:59:46.131394720 -0500
-+++ ./gdb/testsuite/lib/gdb.exp 2004-11-24 16:01:06.304206600 -0500
-@@ -63,6 +63,15 @@
+---
+ gdb/testsuite/lib/gdb.exp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
+index fc0278b9da..018367c161 100644
+--- a/gdb/testsuite/lib/gdb.exp
++++ b/gdb/testsuite/lib/gdb.exp
+@@ -124,6 +124,15 @@ set valnum_re "\\\$$decimal"
### Only procedures should come after this point.
@@ -26,3 +35,6 @@ FileName: gdb-6.3-rh-dummykfail-20041202.patch
#
# gdb_version -- extract and print the version number of GDB
#
+--
+2.14.3
+
diff --git a/gdb-6.3-rh-testversion-20041202.patch b/gdb-6.3-rh-testversion-20041202.patch
index b425ac8..bf8f251 100644
--- a/gdb-6.3-rh-testversion-20041202.patch
+++ b/gdb-6.3-rh-testversion-20041202.patch
@@ -1,20 +1,27 @@
-From f408ba821f8c8b5ad6564b98806666d2478f7599 Mon Sep 17 00:00:00 2001
+From ab1e6ca291c467953f5a4b308595a4287618b836 Mon Sep 17 00:00:00 2001
From: Elena Zannoni
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: gdb.gdb/selftest.exp: Add matching on specific Red Hat only version string
+Subject: gdb.gdb/selftest.exp: Add matching on specific Red Hat only version
+ string
FileName: gdb-6.3-rh-testversion-20041202.patch
+;; Match the Fedora's version info.
+;;=fedora
+
2003-02-24 Elena Zannoni
* gdb.gdb/selftest.exp: Add matching on specific Red Hat only version
string.
+---
+ gdb/testsuite/gdb.gdb/selftest.exp | 3 +++
+ 1 file changed, 3 insertions(+)
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.gdb/selftest.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.gdb/selftest.exp 2017-02-07 19:47:06.472874620 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.gdb/selftest.exp 2017-02-07 19:48:12.593380575 +0100
-@@ -53,6 +53,9 @@
+diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
+index 712060c9ae..a4a446f9df 100644
+--- a/gdb/testsuite/gdb.gdb/selftest.exp
++++ b/gdb/testsuite/gdb.gdb/selftest.exp
+@@ -53,6 +53,9 @@ proc test_with_self { } {
-re ".\[0-9\]+ = +.+ +0x.*\[0-9.\]+.*$gdb_prompt $" {
pass "printed version with cast"
}
@@ -24,3 +31,6 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.gdb/selftest.exp
}
# start the "xgdb" process
+--
+2.14.3
+
diff --git a/gdb-6.3-test-dtorfix-20050121.patch b/gdb-6.3-test-dtorfix-20050121.patch
index 3a5d303..41e9a5e 100644
--- a/gdb-6.3-test-dtorfix-20050121.patch
+++ b/gdb-6.3-test-dtorfix-20050121.patch
@@ -1,14 +1,24 @@
-From f408ba821f8c8b5ad6564b98806666d2478f7599 Mon Sep 17 00:00:00 2001
+From d129a2807c31a40c5eaea1a7e0d853649a1e4abe Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-test-dtorfix-20050121.patch
FileName: gdb-6.3-test-dtorfix-20050121.patch
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/constructortest.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/constructortest.cc 2016-02-16 09:49:08.681886201 +0100
+;; Test support of multiple destructors just like multiple constructors
+;;=fedoratest
+---
+ gdb/testsuite/gdb.cp/constructortest.cc | 99 +++++++++++++++++++++++
+ gdb/testsuite/gdb.cp/constructortest.exp | 130 +++++++++++++++++++++++++++++++
+ 2 files changed, 229 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.cp/constructortest.cc
+ create mode 100644 gdb/testsuite/gdb.cp/constructortest.exp
+
+diff --git a/gdb/testsuite/gdb.cp/constructortest.cc b/gdb/testsuite/gdb.cp/constructortest.cc
+new file mode 100644
+index 0000000000..9ac8793e50
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/constructortest.cc
@@ -0,0 +1,99 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -109,10 +119,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/constructortest.cc
+{
+ y = 2; /* First line D */
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/constructortest.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/constructortest.exp 2016-02-16 09:52:12.609130779 +0100
+diff --git a/gdb/testsuite/gdb.cp/constructortest.exp b/gdb/testsuite/gdb.cp/constructortest.exp
+new file mode 100644
+index 0000000000..341f6c99ad
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/constructortest.exp
@@ -0,0 +1,130 @@
+# This testcase is part of GDB, the GNU debugger.
+
@@ -244,3 +255,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.cp/constructortest.exp
+}
+
+gdb_continue_to_breakpoint "First line ~C"
+--
+2.14.3
+
diff --git a/gdb-6.3-test-movedir-20050125.patch b/gdb-6.3-test-movedir-20050125.patch
index 851081f..cf4fd9a 100644
--- a/gdb-6.3-test-movedir-20050125.patch
+++ b/gdb-6.3-test-movedir-20050125.patch
@@ -1,19 +1,32 @@
+From fa01a7c6656eadbc6dd3ff1128fb0b2ec988f6ce Mon Sep 17 00:00:00 2001
From: Elena Zannoni
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-test-movedir-20050125.patch
FileName: gdb-6.3-test-movedir-20050125.patch
+;; Fix to support executable moving
+;;=fedoratest
+
2005-01-25 Elena Zannoni
* gdb.base/move-dir.exp: New test.
* gdb.base/move-dir.c: Ditto.
* gdb.base/move-dir.h: Ditto.
+---
+ gdb/testsuite/gdb.base/move-dir.c | 10 +++++++
+ gdb/testsuite/gdb.base/move-dir.exp | 57 +++++++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/move-dir.h | 7 +++++
+ 3 files changed, 74 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/move-dir.c
+ create mode 100644 gdb/testsuite/gdb.base/move-dir.exp
+ create mode 100644 gdb/testsuite/gdb.base/move-dir.h
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.c 2016-02-15 23:23:02.892499288 +0100
+diff --git a/gdb/testsuite/gdb.base/move-dir.c b/gdb/testsuite/gdb.base/move-dir.c
+new file mode 100644
+index 0000000000..89b65b4b6a
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/move-dir.c
@@ -0,0 +1,10 @@
+#include
+#include
@@ -25,10 +38,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.c
+ other();
+}
+
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.exp 2016-02-15 23:29:58.768461406 +0100
+diff --git a/gdb/testsuite/gdb.base/move-dir.exp b/gdb/testsuite/gdb.base/move-dir.exp
+new file mode 100644
+index 0000000000..f189ea77b9
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/move-dir.exp
@@ -0,0 +1,57 @@
+# Copyright 2005
+# Free Software Foundation, Inc.
@@ -87,10 +101,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.exp
+
+set timeout $oldtimeout
+return 0
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.h 2016-02-15 23:23:02.892499288 +0100
+diff --git a/gdb/testsuite/gdb.base/move-dir.h b/gdb/testsuite/gdb.base/move-dir.h
+new file mode 100644
+index 0000000000..4a99725a00
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/move-dir.h
@@ -0,0 +1,7 @@
+#include
+
@@ -99,3 +114,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/move-dir.h
+ printf ("%s\n", ostring);;
+}
+
+--
+2.14.3
+
diff --git a/gdb-6.3-test-pie-20050107.patch b/gdb-6.3-test-pie-20050107.patch
index 7b289fe..134d6ba 100644
--- a/gdb-6.3-test-pie-20050107.patch
+++ b/gdb-6.3-test-pie-20050107.patch
@@ -1,14 +1,36 @@
+From 47108e703ac6b76a12ee310512b60342d460f680 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-test-pie-20050107.patch
FileName: gdb-6.3-test-pie-20050107.patch
+;; VSYSCALL and PIE
+;;=fedoratest
+---
+ gdb/testsuite/gdb.pie/attach.c | 20 +
+ gdb/testsuite/gdb.pie/attach.exp | 416 ++++++++++++++++
+ gdb/testsuite/gdb.pie/attach2.c | 24 +
+ gdb/testsuite/gdb.pie/break.c | 146 ++++++
+ gdb/testsuite/gdb.pie/break.exp | 954 +++++++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.pie/break1.c | 44 ++
+ gdb/testsuite/gdb.pie/corefile.exp | 233 +++++++++
+ gdb/testsuite/gdb.pie/coremaker.c | 142 ++++++
+ 8 files changed, 1979 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.pie/attach.c
+ create mode 100644 gdb/testsuite/gdb.pie/attach.exp
+ create mode 100644 gdb/testsuite/gdb.pie/attach2.c
+ create mode 100644 gdb/testsuite/gdb.pie/break.c
+ create mode 100644 gdb/testsuite/gdb.pie/break.exp
+ create mode 100644 gdb/testsuite/gdb.pie/break1.c
+ create mode 100644 gdb/testsuite/gdb.pie/corefile.exp
+ create mode 100644 gdb/testsuite/gdb.pie/coremaker.c
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach.c 2016-02-15 23:23:02.843498936 +0100
+diff --git a/gdb/testsuite/gdb.pie/attach.c b/gdb/testsuite/gdb.pie/attach.c
+new file mode 100644
+index 0000000000..0041b4732d
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/attach.c
@@ -0,0 +1,20 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@@ -30,386 +52,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach.c
+ }
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach2.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach2.c 2016-02-15 23:23:02.843498936 +0100
-@@ -0,0 +1,24 @@
-+/* This program is intended to be started outside of gdb, and then
-+ attached to by gdb. Thus, it simply spins in a loop. The loop
-+ is exited when & if the variable 'should_exit' is non-zero. (It
-+ is initialized to zero in this program, so the loop will never
-+ exit unless/until gdb sets the variable to non-zero.)
-+ */
-+#include
-+#include
-+#include
-+
-+int should_exit = 0;
-+
-+int main ()
-+{
-+ int local_i = 0;
-+
-+ sleep( 10 ); /* System call causes register fetch to fail */
-+ /* This is a known HPUX "feature" */
-+ while (! should_exit)
-+ {
-+ local_i++;
-+ }
-+ return (0);
-+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break.c 2016-02-15 23:23:02.844498943 +0100
-@@ -0,0 +1,146 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 1992, 1993, 1994, 1995, 1999, 2002, 2003 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 2 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, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+ Please email any bugs, comments, and/or additions to this file to:
-+ bug-gdb@prep.ai.mit.edu */
-+
-+#ifdef vxworks
-+
-+# include
-+
-+/* VxWorks does not supply atoi. */
-+static int
-+atoi (z)
-+ char *z;
-+{
-+ int i = 0;
-+
-+ while (*z >= '0' && *z <= '9')
-+ i = i * 10 + (*z++ - '0');
-+ return i;
-+}
-+
-+/* I don't know of any way to pass an array to VxWorks. This function
-+ can be called directly from gdb. */
-+
-+vxmain (arg)
-+char *arg;
-+{
-+ char *argv[2];
-+
-+ argv[0] = "";
-+ argv[1] = arg;
-+ main (2, argv, (char **) 0);
-+}
-+
-+#else /* ! vxworks */
-+# include
-+# include
-+#endif /* ! vxworks */
-+
-+#ifdef PROTOTYPES
-+extern int marker1 (void);
-+extern int marker2 (int a);
-+extern void marker3 (char *a, char *b);
-+extern void marker4 (long d);
-+#else
-+extern int marker1 ();
-+extern int marker2 ();
-+extern void marker3 ();
-+extern void marker4 ();
-+#endif
-+
-+/*
-+ * This simple classical example of recursion is useful for
-+ * testing stack backtraces and such.
-+ */
-+
-+#ifdef PROTOTYPES
-+int factorial(int);
-+
-+int
-+main (int argc, char **argv, char **envp)
-+#else
-+int
-+main (argc, argv, envp)
-+int argc;
-+char *argv[], **envp;
-+#endif
-+{
-+#ifdef usestubs
-+ set_debug_traps(); /* set breakpoint 5 here */
-+ breakpoint();
-+#endif
-+ if (argc == 12345) { /* an unlikely value < 2^16, in case uninited */ /* set breakpoint 6 here */
-+ fprintf (stderr, "usage: factorial \n");
-+ return 1;
-+ }
-+ printf ("%d\n", factorial (atoi ("6"))); /* set breakpoint 1 here */
-+ /* set breakpoint 12 here */
-+ marker1 (); /* set breakpoint 11 here */
-+ marker2 (43); /* set breakpoint 20 here */
-+ marker3 ("stack", "trace"); /* set breakpoint 21 here */
-+ marker4 (177601976L);
-+ argc = (argc == 12345); /* This is silly, but we can step off of it */ /* set breakpoint 2 here */
-+ return argc; /* set breakpoint 10 here */
-+}
-+
-+#ifdef PROTOTYPES
-+int factorial (int value)
-+#else
-+int factorial (value)
-+int value;
-+#endif
-+{
-+ if (value > 1) { /* set breakpoint 7 here */
-+ value *= factorial (value - 1);
-+ }
-+ return (value); /* set breakpoint 19 here */
-+}
-+
-+#ifdef PROTOTYPES
-+int multi_line_if_conditional (int a, int b, int c)
-+#else
-+int multi_line_if_conditional (a, b, c)
-+ int a, b, c;
-+#endif
-+{
-+ if (a /* set breakpoint 3 here */
-+ && b
-+ && c)
-+ return 0;
-+ else
-+ return 1;
-+}
-+
-+#ifdef PROTOTYPES
-+int multi_line_while_conditional (int a, int b, int c)
-+#else
-+int multi_line_while_conditional (a, b, c)
-+ int a, b, c;
-+#endif
-+{
-+ while (a /* set breakpoint 4 here */
-+ && b
-+ && c)
-+ {
-+ a--, b--, c--;
-+ }
-+ return 0;
-+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break1.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break1.c 2016-02-15 23:23:02.844498943 +0100
-@@ -0,0 +1,44 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 1992, 1993, 1994, 1995, 1999, 2002, 2003 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 2 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, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+ Please email any bugs, comments, and/or additions to this file to:
-+ bug-gdb@prep.ai.mit.edu */
-+
-+/* The code for this file was extracted from the gdb testsuite
-+ testcase "break.c". */
-+
-+/* The following functions do nothing useful. They are included
-+ simply as places to try setting breakpoints at. They are
-+ explicitly "one-line functions" to verify that this case works
-+ (some versions of gcc have or have had problems with this).
-+
-+ These functions are in a separate source file to prevent an
-+ optimizing compiler from inlining them and optimizing them away. */
-+
-+#ifdef PROTOTYPES
-+int marker1 (void) { return (0); } /* set breakpoint 15 here */
-+int marker2 (int a) { return (1); } /* set breakpoint 8 here */
-+void marker3 (char *a, char *b) {} /* set breakpoint 17 here */
-+void marker4 (long d) {} /* set breakpoint 14 here */
-+#else
-+int marker1 () { return (0); } /* set breakpoint 16 here */
-+int marker2 (a) int a; { return (1); } /* set breakpoint 9 here */
-+void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
-+void marker4 (d) long d; {} /* set breakpoint 13 here */
-+#endif
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/coremaker.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/coremaker.c 2016-02-15 23:23:02.844498943 +0100
-@@ -0,0 +1,142 @@
-+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
-+ Free Software Foundation, Inc.
-+
-+ This file is part of GDB.
-+
-+ 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 2 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, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA. */
-+
-+/* Simple little program that just generates a core dump from inside some
-+ nested function calls. */
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#ifndef __STDC__
-+#define const /**/
-+#endif
-+
-+#define MAPSIZE (8 * 1024)
-+
-+/* Don't make these automatic vars or we will have to walk back up the
-+ stack to access them. */
-+
-+char *buf1;
-+char *buf2;
-+
-+int coremaker_data = 1; /* In Data section */
-+int coremaker_bss; /* In BSS section */
-+
-+const int coremaker_ro = 201; /* In Read-Only Data section */
-+
-+/* Note that if the mapping fails for any reason, we set buf2
-+ to -1 and the testsuite notices this and reports it as
-+ a failure due to a mapping error. This way we don't have
-+ to test for specific errors when running the core maker. */
-+
-+void
-+mmapdata ()
-+{
-+ int j, fd;
-+
-+ /* Allocate and initialize a buffer that will be used to write
-+ the file that is later mapped in. */
-+
-+ buf1 = (char *) malloc (MAPSIZE);
-+ for (j = 0; j < MAPSIZE; ++j)
-+ {
-+ buf1[j] = j;
-+ }
-+
-+ /* Write the file to map in */
-+
-+ fd = open ("coremmap.data", O_CREAT | O_RDWR, 0666);
-+ if (fd == -1)
-+ {
-+ perror ("coremmap.data open failed");
-+ buf2 = (char *) -1;
-+ return;
-+ }
-+ write (fd, buf1, MAPSIZE);
-+
-+ /* Now map the file into our address space as buf2 */
-+
-+ buf2 = (char *) mmap (0, MAPSIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
-+ if (buf2 == (char *) -1)
-+ {
-+ perror ("mmap failed");
-+ return;
-+ }
-+
-+ /* Verify that the original data and the mapped data are identical.
-+ If not, we'd rather fail now than when trying to access the mapped
-+ data from the core file. */
-+
-+ for (j = 0; j < MAPSIZE; ++j)
-+ {
-+ if (buf1[j] != buf2[j])
-+ {
-+ fprintf (stderr, "mapped data is incorrect");
-+ buf2 = (char *) -1;
-+ return;
-+ }
-+ }
-+}
-+
-+void
-+func2 ()
-+{
-+ int coremaker_local[5];
-+ int i;
-+
-+#ifdef SA_FULLDUMP
-+ /* Force a corefile that includes the data section for AIX. */
-+ {
-+ struct sigaction sa;
-+
-+ sigaction (SIGABRT, (struct sigaction *)0, &sa);
-+ sa.sa_flags |= SA_FULLDUMP;
-+ sigaction (SIGABRT, &sa, (struct sigaction *)0);
-+ }
-+#endif
-+
-+ /* Make sure that coremaker_local doesn't get optimized away. */
-+ for (i = 0; i < 5; i++)
-+ coremaker_local[i] = i;
-+ coremaker_bss = 0;
-+ for (i = 0; i < 5; i++)
-+ coremaker_bss += coremaker_local[i];
-+ coremaker_data = coremaker_ro + 1;
-+ abort ();
-+}
-+
-+void
-+func1 ()
-+{
-+ func2 ();
-+}
-+
-+int main ()
-+{
-+ mmapdata ();
-+ func1 ();
-+ return 0;
-+}
-+
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach.exp 2016-02-15 23:37:15.190560048 +0100
+diff --git a/gdb/testsuite/gdb.pie/attach.exp b/gdb/testsuite/gdb.pie/attach.exp
+new file mode 100644
+index 0000000000..648c92608c
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/attach.exp
@@ -0,0 +1,416 @@
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
+
@@ -827,10 +474,193 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/attach.exp
+do_call_attach_tests
+
+return 0
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break.exp 2016-02-15 23:37:15.191560055 +0100
+diff --git a/gdb/testsuite/gdb.pie/attach2.c b/gdb/testsuite/gdb.pie/attach2.c
+new file mode 100644
+index 0000000000..a78037ed38
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/attach2.c
+@@ -0,0 +1,24 @@
++/* This program is intended to be started outside of gdb, and then
++ attached to by gdb. Thus, it simply spins in a loop. The loop
++ is exited when & if the variable 'should_exit' is non-zero. (It
++ is initialized to zero in this program, so the loop will never
++ exit unless/until gdb sets the variable to non-zero.)
++ */
++#include
++#include
++#include
++
++int should_exit = 0;
++
++int main ()
++{
++ int local_i = 0;
++
++ sleep( 10 ); /* System call causes register fetch to fail */
++ /* This is a known HPUX "feature" */
++ while (! should_exit)
++ {
++ local_i++;
++ }
++ return (0);
++}
+diff --git a/gdb/testsuite/gdb.pie/break.c b/gdb/testsuite/gdb.pie/break.c
+new file mode 100644
+index 0000000000..bf398fcca9
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/break.c
+@@ -0,0 +1,146 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 1992, 1993, 1994, 1995, 1999, 2002, 2003 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 2 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, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++ Please email any bugs, comments, and/or additions to this file to:
++ bug-gdb@prep.ai.mit.edu */
++
++#ifdef vxworks
++
++# include
++
++/* VxWorks does not supply atoi. */
++static int
++atoi (z)
++ char *z;
++{
++ int i = 0;
++
++ while (*z >= '0' && *z <= '9')
++ i = i * 10 + (*z++ - '0');
++ return i;
++}
++
++/* I don't know of any way to pass an array to VxWorks. This function
++ can be called directly from gdb. */
++
++vxmain (arg)
++char *arg;
++{
++ char *argv[2];
++
++ argv[0] = "";
++ argv[1] = arg;
++ main (2, argv, (char **) 0);
++}
++
++#else /* ! vxworks */
++# include
++# include
++#endif /* ! vxworks */
++
++#ifdef PROTOTYPES
++extern int marker1 (void);
++extern int marker2 (int a);
++extern void marker3 (char *a, char *b);
++extern void marker4 (long d);
++#else
++extern int marker1 ();
++extern int marker2 ();
++extern void marker3 ();
++extern void marker4 ();
++#endif
++
++/*
++ * This simple classical example of recursion is useful for
++ * testing stack backtraces and such.
++ */
++
++#ifdef PROTOTYPES
++int factorial(int);
++
++int
++main (int argc, char **argv, char **envp)
++#else
++int
++main (argc, argv, envp)
++int argc;
++char *argv[], **envp;
++#endif
++{
++#ifdef usestubs
++ set_debug_traps(); /* set breakpoint 5 here */
++ breakpoint();
++#endif
++ if (argc == 12345) { /* an unlikely value < 2^16, in case uninited */ /* set breakpoint 6 here */
++ fprintf (stderr, "usage: factorial \n");
++ return 1;
++ }
++ printf ("%d\n", factorial (atoi ("6"))); /* set breakpoint 1 here */
++ /* set breakpoint 12 here */
++ marker1 (); /* set breakpoint 11 here */
++ marker2 (43); /* set breakpoint 20 here */
++ marker3 ("stack", "trace"); /* set breakpoint 21 here */
++ marker4 (177601976L);
++ argc = (argc == 12345); /* This is silly, but we can step off of it */ /* set breakpoint 2 here */
++ return argc; /* set breakpoint 10 here */
++}
++
++#ifdef PROTOTYPES
++int factorial (int value)
++#else
++int factorial (value)
++int value;
++#endif
++{
++ if (value > 1) { /* set breakpoint 7 here */
++ value *= factorial (value - 1);
++ }
++ return (value); /* set breakpoint 19 here */
++}
++
++#ifdef PROTOTYPES
++int multi_line_if_conditional (int a, int b, int c)
++#else
++int multi_line_if_conditional (a, b, c)
++ int a, b, c;
++#endif
++{
++ if (a /* set breakpoint 3 here */
++ && b
++ && c)
++ return 0;
++ else
++ return 1;
++}
++
++#ifdef PROTOTYPES
++int multi_line_while_conditional (int a, int b, int c)
++#else
++int multi_line_while_conditional (a, b, c)
++ int a, b, c;
++#endif
++{
++ while (a /* set breakpoint 4 here */
++ && b
++ && c)
++ {
++ a--, b--, c--;
++ }
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.pie/break.exp b/gdb/testsuite/gdb.pie/break.exp
+new file mode 100644
+index 0000000000..97b87397c2
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/break.exp
@@ -0,0 +1,954 @@
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2002, 2003, 2004
@@ -1786,10 +1616,61 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/break.exp
+ send_gdb "set args main\n"
+ gdb_expect -re ".*$gdb_prompt $" {}
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/corefile.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/corefile.exp 2016-02-15 23:37:15.191560055 +0100
+diff --git a/gdb/testsuite/gdb.pie/break1.c b/gdb/testsuite/gdb.pie/break1.c
+new file mode 100644
+index 0000000000..2ed8b2a4a0
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/break1.c
+@@ -0,0 +1,44 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 1992, 1993, 1994, 1995, 1999, 2002, 2003 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 2 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, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++ Please email any bugs, comments, and/or additions to this file to:
++ bug-gdb@prep.ai.mit.edu */
++
++/* The code for this file was extracted from the gdb testsuite
++ testcase "break.c". */
++
++/* The following functions do nothing useful. They are included
++ simply as places to try setting breakpoints at. They are
++ explicitly "one-line functions" to verify that this case works
++ (some versions of gcc have or have had problems with this).
++
++ These functions are in a separate source file to prevent an
++ optimizing compiler from inlining them and optimizing them away. */
++
++#ifdef PROTOTYPES
++int marker1 (void) { return (0); } /* set breakpoint 15 here */
++int marker2 (int a) { return (1); } /* set breakpoint 8 here */
++void marker3 (char *a, char *b) {} /* set breakpoint 17 here */
++void marker4 (long d) {} /* set breakpoint 14 here */
++#else
++int marker1 () { return (0); } /* set breakpoint 16 here */
++int marker2 (a) int a; { return (1); } /* set breakpoint 9 here */
++void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
++void marker4 (d) long d; {} /* set breakpoint 13 here */
++#endif
+diff --git a/gdb/testsuite/gdb.pie/corefile.exp b/gdb/testsuite/gdb.pie/corefile.exp
+new file mode 100644
+index 0000000000..ca4b01be3e
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/corefile.exp
@@ -0,0 +1,233 @@
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc.
@@ -2024,3 +1905,154 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.pie/corefile.exp
+gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"
+
+gdb_test "core" "No core file now."
+diff --git a/gdb/testsuite/gdb.pie/coremaker.c b/gdb/testsuite/gdb.pie/coremaker.c
+new file mode 100644
+index 0000000000..a7fbd94141
+--- /dev/null
++++ b/gdb/testsuite/gdb.pie/coremaker.c
+@@ -0,0 +1,142 @@
++/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
++ Free Software Foundation, Inc.
++
++ This file is part of GDB.
++
++ 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 2 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, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA. */
++
++/* Simple little program that just generates a core dump from inside some
++ nested function calls. */
++
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++#ifndef __STDC__
++#define const /**/
++#endif
++
++#define MAPSIZE (8 * 1024)
++
++/* Don't make these automatic vars or we will have to walk back up the
++ stack to access them. */
++
++char *buf1;
++char *buf2;
++
++int coremaker_data = 1; /* In Data section */
++int coremaker_bss; /* In BSS section */
++
++const int coremaker_ro = 201; /* In Read-Only Data section */
++
++/* Note that if the mapping fails for any reason, we set buf2
++ to -1 and the testsuite notices this and reports it as
++ a failure due to a mapping error. This way we don't have
++ to test for specific errors when running the core maker. */
++
++void
++mmapdata ()
++{
++ int j, fd;
++
++ /* Allocate and initialize a buffer that will be used to write
++ the file that is later mapped in. */
++
++ buf1 = (char *) malloc (MAPSIZE);
++ for (j = 0; j < MAPSIZE; ++j)
++ {
++ buf1[j] = j;
++ }
++
++ /* Write the file to map in */
++
++ fd = open ("coremmap.data", O_CREAT | O_RDWR, 0666);
++ if (fd == -1)
++ {
++ perror ("coremmap.data open failed");
++ buf2 = (char *) -1;
++ return;
++ }
++ write (fd, buf1, MAPSIZE);
++
++ /* Now map the file into our address space as buf2 */
++
++ buf2 = (char *) mmap (0, MAPSIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
++ if (buf2 == (char *) -1)
++ {
++ perror ("mmap failed");
++ return;
++ }
++
++ /* Verify that the original data and the mapped data are identical.
++ If not, we'd rather fail now than when trying to access the mapped
++ data from the core file. */
++
++ for (j = 0; j < MAPSIZE; ++j)
++ {
++ if (buf1[j] != buf2[j])
++ {
++ fprintf (stderr, "mapped data is incorrect");
++ buf2 = (char *) -1;
++ return;
++ }
++ }
++}
++
++void
++func2 ()
++{
++ int coremaker_local[5];
++ int i;
++
++#ifdef SA_FULLDUMP
++ /* Force a corefile that includes the data section for AIX. */
++ {
++ struct sigaction sa;
++
++ sigaction (SIGABRT, (struct sigaction *)0, &sa);
++ sa.sa_flags |= SA_FULLDUMP;
++ sigaction (SIGABRT, &sa, (struct sigaction *)0);
++ }
++#endif
++
++ /* Make sure that coremaker_local doesn't get optimized away. */
++ for (i = 0; i < 5; i++)
++ coremaker_local[i] = i;
++ coremaker_bss = 0;
++ for (i = 0; i < 5; i++)
++ coremaker_bss += coremaker_local[i];
++ coremaker_data = coremaker_ro + 1;
++ abort ();
++}
++
++void
++func1 ()
++{
++ func2 ();
++}
++
++int main ()
++{
++ mmapdata ();
++ func1 ();
++ return 0;
++}
++
+--
+2.14.3
+
diff --git a/gdb-6.3-test-self-20050110.patch b/gdb-6.3-test-self-20050110.patch
index 467f804..9cfb89d 100644
--- a/gdb-6.3-test-self-20050110.patch
+++ b/gdb-6.3-test-self-20050110.patch
@@ -1,9 +1,13 @@
+From 7f31b8c1940c73a2ca85bc925d6b61a10117cd2a Mon Sep 17 00:00:00 2001
From: Elena Zannoni
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-test-self-20050110.patch
FileName: gdb-6.3-test-self-20050110.patch
+;; Get selftest working with sep-debug-info
+;;=fedoratest
+
2004-02-23 Elena Zannoni
* gdb.gdb/selftest.exp: Make sure that the debug directory is
@@ -11,12 +15,15 @@ FileName: gdb-6.3-test-self-20050110.patch
* gdb.gdb/complaints.exp: Ditto.
* gdb.gdb/xfullpath.exp: Ditto.
* gdb.gdb/observer.exp: Ditto.
+---
+ gdb/testsuite/lib/selftest-support.exp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
-Index: gdb-7.6.90.20140127/gdb/testsuite/lib/selftest-support.exp
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/selftest-support.exp 2014-01-27 22:42:04.022535966 +0100
-+++ gdb-7.6.90.20140127/gdb/testsuite/lib/selftest-support.exp 2014-01-27 22:42:42.630565675 +0100
-@@ -136,18 +136,18 @@ proc do_self_tests {function body} {
+diff --git a/gdb/testsuite/lib/selftest-support.exp b/gdb/testsuite/lib/selftest-support.exp
+index 798d19dd89..e26e095b17 100644
+--- a/gdb/testsuite/lib/selftest-support.exp
++++ b/gdb/testsuite/lib/selftest-support.exp
+@@ -156,18 +156,18 @@ proc do_self_tests {function body} {
}
# Remove any old copy lying around.
@@ -39,3 +46,6 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/lib/selftest-support.exp
if {$result < 0} then {
warning "Couldn't test self"
+--
+2.14.3
+
diff --git a/gdb-6.3-threaded-watchpoints2-20050225.patch b/gdb-6.3-threaded-watchpoints2-20050225.patch
index e3ab995..0ffaad3 100644
--- a/gdb-6.3-threaded-watchpoints2-20050225.patch
+++ b/gdb-6.3-threaded-watchpoints2-20050225.patch
@@ -1,9 +1,13 @@
+From aa2b8656004b28f8e274967b2e07b7ac9da41915 Mon Sep 17 00:00:00 2001
From: Jeff Johnston
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-threaded-watchpoints2-20050225.patch
FileName: gdb-6.3-threaded-watchpoints2-20050225.patch
+;; Test sibling threads to set threaded watchpoints for x86 and x86-64
+;;=fedoratest
+
2005-02-28 Jeff Johnston
* config/i386/nm-linux.h: Change dr register routines to
@@ -47,11 +51,18 @@ FileName: gdb-6.3-threaded-watchpoints2-20050225.patch
testcase of the same name. ]
FIXME: The testcase does not expects multiple watchpoints hits per one stop.
+---
+ gdb/testsuite/gdb.threads/watchthreads-threaded.c | 66 +++++++++++
+ .../gdb.threads/watchthreads-threaded.exp | 126 +++++++++++++++++++++
+ 2 files changed, 192 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.threads/watchthreads-threaded.c
+ create mode 100644 gdb/testsuite/gdb.threads/watchthreads-threaded.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/watchthreads-threaded.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/watchthreads-threaded.c 2016-02-15 23:37:39.766734541 +0100
+diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.c b/gdb/testsuite/gdb.threads/watchthreads-threaded.c
+new file mode 100644
+index 0000000000..1402640ccf
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/watchthreads-threaded.c
@@ -0,0 +1,66 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -119,10 +130,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/watchthreads-threaded.c
+ pthread_exit(NULL);
+}
+
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/watchthreads-threaded.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/watchthreads-threaded.exp 2016-02-15 23:40:32.484960858 +0100
+diff --git a/gdb/testsuite/gdb.threads/watchthreads-threaded.exp b/gdb/testsuite/gdb.threads/watchthreads-threaded.exp
+new file mode 100644
+index 0000000000..e9cdd59771
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/watchthreads-threaded.exp
@@ -0,0 +1,126 @@
+# This testcase is part of GDB, the GNU debugger.
+
@@ -250,3 +262,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/watchthreads-threaded.exp
+} else {
+ fail $message
+}
+--
+2.14.3
+
diff --git a/gdb-6.5-BEA-testsuite.patch b/gdb-6.5-BEA-testsuite.patch
index d3a5ada..a391639 100644
--- a/gdb-6.5-BEA-testsuite.patch
+++ b/gdb-6.5-BEA-testsuite.patch
@@ -1,13 +1,28 @@
+From 2b1fb9ed1702d69c897a059f8e5fdbdebce8533b Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-BEA-testsuite.patch
FileName: gdb-6.5-BEA-testsuite.patch
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.c 2016-02-15 23:37:39.884735379 +0100
+;; Improved testsuite results by the testsuite provided by the courtesy of BEA.
+;;=fedoratest: For upstream it should be rewritten as a dejagnu test, the test of no "??" was useful.
+---
+ gdb/testsuite/gdb.threads/threadcrash.c | 301 ++++++++++++++++++++++++
+ gdb/testsuite/gdb.threads/threadcrash.exp | 37 +++
+ gdb/testsuite/gdb.threads/threadcrash.sh | 324 ++++++++++++++++++++++++++
+ gdb/testsuite/gdb.threads/threadcrash.sh-orig | 248 ++++++++++++++++++++
+ 4 files changed, 910 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.threads/threadcrash.c
+ create mode 100644 gdb/testsuite/gdb.threads/threadcrash.exp
+ create mode 100644 gdb/testsuite/gdb.threads/threadcrash.sh
+ create mode 100644 gdb/testsuite/gdb.threads/threadcrash.sh-orig
+
+diff --git a/gdb/testsuite/gdb.threads/threadcrash.c b/gdb/testsuite/gdb.threads/threadcrash.c
+new file mode 100644
+index 0000000000..80c599d0fb
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/threadcrash.c
@@ -0,0 +1,301 @@
+/*
+ * The point of this program is to crash in a multi-threaded app.
@@ -310,10 +325,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.c
+
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.exp 2016-02-15 23:38:58.486293458 +0100
+diff --git a/gdb/testsuite/gdb.threads/threadcrash.exp b/gdb/testsuite/gdb.threads/threadcrash.exp
+new file mode 100644
+index 0000000000..af6b919f58
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/threadcrash.exp
@@ -0,0 +1,37 @@
+# threadcrash.exp - The point of this program is to crash in a multi-threaded app.
+
@@ -352,10 +368,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.exp
+}
+
+return 0
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.sh
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.sh 2016-02-15 23:37:39.885735386 +0100
+diff --git a/gdb/testsuite/gdb.threads/threadcrash.sh b/gdb/testsuite/gdb.threads/threadcrash.sh
+new file mode 100644
+index 0000000000..7f7e6520d6
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/threadcrash.sh
@@ -0,0 +1,324 @@
+#! /bin/bash
+
@@ -681,10 +698,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.sh
+rm -rf $WORKDIR
+
+exit $FAILURES
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.sh-orig
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.sh-orig 2016-02-15 23:37:39.885735386 +0100
+diff --git a/gdb/testsuite/gdb.threads/threadcrash.sh-orig b/gdb/testsuite/gdb.threads/threadcrash.sh-orig
+new file mode 100644
+index 0000000000..eb602036c2
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/threadcrash.sh-orig
@@ -0,0 +1,248 @@
+#! /bin/bash
+
@@ -934,3 +952,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threadcrash.sh-orig
+rm -rf $WORKDIR
+
+exit $FAILURES
+--
+2.14.3
+
diff --git a/gdb-6.5-bz109921-DW_AT_decl_file-test.patch b/gdb-6.5-bz109921-DW_AT_decl_file-test.patch
index b20d3c5..b4393be 100644
--- a/gdb-6.5-bz109921-DW_AT_decl_file-test.patch
+++ b/gdb-6.5-bz109921-DW_AT_decl_file-test.patch
@@ -1,9 +1,12 @@
+From d3fcf82a62d820f25b42398a4f6623c7ad7ea4d1 Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
FileName: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
+;; Find symbols properly at their original (included) file (BZ 109921).
+;;=fedoratest
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109921
@@ -22,11 +25,20 @@ http://sourceware.org/ml/gdb-patches/2007-01/msg00434.html
* gdb.dwarf2/dw2-included.exp, gdb.dwarf2/dw2-included.c,
gdb.dwarf2/dw2-included.h: New files.
+---
+ gdb/testsuite/gdb.dwarf2/dw2-included.c | 26 +++++++++++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-included.exp | 47 +++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-included.h | 20 +++++++++++++
+ 3 files changed, 93 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-included.c
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-included.exp
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-included.h
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.c 2016-02-16 09:52:29.861247534 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-included.c b/gdb/testsuite/gdb.dwarf2/dw2-included.c
+new file mode 100644
+index 0000000000..28e54fb932
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-included.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -54,10 +66,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.c
+{
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.exp 2016-02-16 09:52:36.481292330 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-included.exp b/gdb/testsuite/gdb.dwarf2/dw2-included.exp
+new file mode 100644
+index 0000000000..9aaf8e9772
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-included.exp
@@ -0,0 +1,47 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -106,10 +119,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.exp
+gdb_test "ptype integer" "type = int\r"
+# Path varies depending on the build location.
+gdb_test "info variables integer" "\r\nFile \[^\r\n\]*/gdb.dwarf2/dw2-included.h:\r\nint integer;\r"
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.h 2016-02-16 09:52:29.862247541 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-included.h b/gdb/testsuite/gdb.dwarf2/dw2-included.h
+new file mode 100644
+index 0000000000..f31348ab4f
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-included.h
@@ -0,0 +1,20 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -131,3 +145,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.dwarf2/dw2-included.h
+ USA. */
+
+int integer;
+--
+2.14.3
+
diff --git a/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch b/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
index 1dfaed1..df6af86 100644
--- a/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
+++ b/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
@@ -1,9 +1,13 @@
+From 599be587bb5eed8a8c3908f52d75c1e93543ee5d Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
FileName: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
+;; Support TLS symbols (+`errno' suggestion if no pthread is found) (BZ 185337).
+;;=push+jan: It should be replaced by Infinity project.
+
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=185337
2008-02-24 Jan Kratochvil
@@ -30,7 +34,6 @@ call invalidates `struct frame *' in the callers - RH BZ 690908.
https://bugzilla.redhat.com/show_bug.cgi?id=1166549
-
2007-11-03 Jan Kratochvil
* ./gdb/dwarf2read.c (read_partial_die, dwarf2_linkage_name): Prefer
@@ -39,12 +42,23 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1166549
glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
+---
+ gdb/printcmd.c | 4 ++
+ gdb/testsuite/gdb.dwarf2/dw2-errno.c | 28 +++++++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-errno.exp | 60 ++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-errno2.c | 28 +++++++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-errno2.exp | 71 +++++++++++++++++++++++++++++++++
+ 5 files changed, 191 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-errno.c
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-errno.exp
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-errno2.c
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
-Index: gdb-7.12.50.20170207/gdb/printcmd.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/printcmd.c 2017-02-07 21:06:20.196593884 +0100
-+++ gdb-7.12.50.20170207/gdb/printcmd.c 2017-02-07 21:07:10.230973906 +0100
-@@ -1258,6 +1258,10 @@
+diff --git a/gdb/printcmd.c b/gdb/printcmd.c
+index 20e5bda11e..38642641b9 100644
+--- a/gdb/printcmd.c
++++ b/gdb/printcmd.c
+@@ -1210,6 +1210,10 @@ print_command_1 (const char *exp, int voidprint)
if (exp && *exp)
{
@@ -55,10 +69,11 @@ Index: gdb-7.12.50.20170207/gdb/printcmd.c
expression_up expr = parse_expression (exp);
val = evaluate_expression (expr.get ());
}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2017-02-07 21:06:20.196593884 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-errno.c b/gdb/testsuite/gdb.dwarf2/dw2-errno.c
+new file mode 100644
+index 0000000000..7bd10d0978
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-errno.c
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -88,10 +103,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.c
+
+ return 0; /* breakpoint */
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2017-02-07 21:06:20.196593884 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-errno.exp b/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
+new file mode 100644
+index 0000000000..1f13cc1323
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
@@ -0,0 +1,60 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -153,10 +169,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
+
+# TODO: Test the error on resolving ERRNO with only libc loaded.
+# Just how to find the current libc filename?
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.c 2017-02-07 21:06:20.196593884 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-errno2.c b/gdb/testsuite/gdb.dwarf2/dw2-errno2.c
+new file mode 100644
+index 0000000000..7bd10d0978
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-errno2.c
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -186,10 +203,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.c
+
+ return 0; /* breakpoint */
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp 2017-02-07 21:06:20.197593892 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp b/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
+new file mode 100644
+index 0000000000..0f6e66870b
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
@@ -0,0 +1,71 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -231,7 +249,7 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
+ if $do_xfail {
+ setup_xfail "*-*-*"
+ }
-+ gdb_test "print errno" ".* = 42" "print errno for core"
++ gdb_test "print (int) errno" ".* = 42" "print errno for core"
+}}
+
+set variant g2thrN
@@ -262,3 +280,6 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-errno2.exp
+
+# TODO: Test the error on resolving ERRNO with only libc loaded.
+# Just how to find the current libc filename?
+--
+2.14.3
+
diff --git a/gdb-6.5-bz203661-emit-relocs.patch b/gdb-6.5-bz203661-emit-relocs.patch
index def081a..1c81698 100644
--- a/gdb-6.5-bz203661-emit-relocs.patch
+++ b/gdb-6.5-bz203661-emit-relocs.patch
@@ -1,14 +1,21 @@
+From e4110d40b80bf37595c9f189af73d6dedb113259 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz203661-emit-relocs.patch
FileName: gdb-6.5-bz203661-emit-relocs.patch
-Index: gdb-7.4.50.20120602/gdb/symfile.c
-===================================================================
---- gdb-7.4.50.20120602.orig/gdb/symfile.c 2012-06-02 18:25:20.000000000 +0200
-+++ gdb-7.4.50.20120602/gdb/symfile.c 2012-06-02 18:26:36.145232057 +0200
-@@ -3630,6 +3630,12 @@ default_symfile_relocate (struct objfile
+;; Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661).
+;;=push+jan: There was some mail thread about it, this patch may be a hack.
+---
+ gdb/symfile.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/gdb/symfile.c b/gdb/symfile.c
+index 8f45d45d85..37a31950a2 100644
+--- a/gdb/symfile.c
++++ b/gdb/symfile.c
+@@ -3634,6 +3634,12 @@ default_symfile_relocate (struct objfile *objfile, asection *sectp,
DWO file. */
bfd *abfd = sectp->owner;
@@ -21,3 +28,6 @@ Index: gdb-7.4.50.20120602/gdb/symfile.c
/* We're only interested in sections with relocation
information. */
if ((sectp->flags & SEC_RELOC) == 0)
+--
+2.14.3
+
diff --git a/gdb-6.5-bz216711-clone-is-outermost.patch b/gdb-6.5-bz216711-clone-is-outermost.patch
index cc63f6e..adcef20 100644
--- a/gdb-6.5-bz216711-clone-is-outermost.patch
+++ b/gdb-6.5-bz216711-clone-is-outermost.patch
@@ -1,9 +1,12 @@
+From c0f75843ac7b311bc8e0faef1d7d3d5e2e549df3 Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz216711-clone-is-outermost.patch
FileName: gdb-6.5-bz216711-clone-is-outermost.patch
+;; Fix bogus 0x0 unwind of the thread's topmost function clone(3) (BZ 216711).
+;;=fedora
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=216711
@@ -29,12 +32,22 @@ instead.
2007-10-16 Jan Kratochvil
Port to GDB-6.7.
+---
+ gdb/amd64-linux-tdep.c | 76 +++++++++++++++++++++++++++++
+ gdb/amd64-tdep.c | 11 +++++
+ gdb/i386-tdep.c | 3 ++
+ gdb/i386-tdep.h | 3 ++
+ gdb/testsuite/gdb.threads/bt-clone-stop.c | 39 +++++++++++++++
+ gdb/testsuite/gdb.threads/bt-clone-stop.exp | 61 +++++++++++++++++++++++
+ 6 files changed, 193 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.threads/bt-clone-stop.c
+ create mode 100644 gdb/testsuite/gdb.threads/bt-clone-stop.exp
-Index: gdb-7.10.90.20160211/gdb/amd64-linux-tdep.c
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/amd64-linux-tdep.c 2016-02-15 23:37:06.936501443 +0100
-+++ gdb-7.10.90.20160211/gdb/amd64-linux-tdep.c 2016-02-15 23:37:39.928735691 +0100
-@@ -292,6 +292,80 @@
+diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
+index 87f09a4542..2a705ea41a 100644
+--- a/gdb/amd64-linux-tdep.c
++++ b/gdb/amd64-linux-tdep.c
+@@ -291,6 +291,80 @@ amd64_linux_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
/* Set the program counter for process PTID to PC. */
@@ -115,7 +128,7 @@ Index: gdb-7.10.90.20160211/gdb/amd64-linux-tdep.c
static void
amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
{
-@@ -1800,6 +1874,8 @@
+@@ -1802,6 +1876,8 @@ amd64_linux_init_abi_common(struct gdbarch_info info, struct gdbarch *gdbarch)
tdep->xsave_xcr0_offset = I386_LINUX_XSAVE_XCR0_OFFSET;
@@ -124,11 +137,11 @@ Index: gdb-7.10.90.20160211/gdb/amd64-linux-tdep.c
/* Add the %orig_rax register used for syscall restarting. */
set_gdbarch_write_pc (gdbarch, amd64_linux_write_pc);
-Index: gdb-7.10.90.20160211/gdb/amd64-tdep.c
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/amd64-tdep.c 2016-02-15 23:37:06.936501443 +0100
-+++ gdb-7.10.90.20160211/gdb/amd64-tdep.c 2016-02-15 23:37:39.929735698 +0100
-@@ -2494,6 +2494,7 @@
+diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
+index bcd37ef048..81fbe52795 100644
+--- a/gdb/amd64-tdep.c
++++ b/gdb/amd64-tdep.c
+@@ -2555,6 +2555,7 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame,
{
struct amd64_frame_cache *cache =
amd64_frame_cache (this_frame, this_cache);
@@ -136,7 +149,7 @@ Index: gdb-7.10.90.20160211/gdb/amd64-tdep.c
if (!cache->base_p)
return UNWIND_UNAVAILABLE;
-@@ -2502,6 +2503,10 @@
+@@ -2563,6 +2564,10 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame,
if (cache->base == 0)
return UNWIND_OUTERMOST;
@@ -147,7 +160,7 @@ Index: gdb-7.10.90.20160211/gdb/amd64-tdep.c
return UNWIND_NO_REASON;
}
-@@ -2636,6 +2641,7 @@
+@@ -2697,6 +2702,7 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame,
{
struct amd64_frame_cache *cache =
amd64_sigtramp_frame_cache (this_frame, this_cache);
@@ -155,7 +168,7 @@ Index: gdb-7.10.90.20160211/gdb/amd64-tdep.c
if (!cache->base_p)
(*this_id) = frame_id_build_unavailable_stack (get_frame_pc (this_frame));
-@@ -2644,6 +2650,11 @@
+@@ -2705,6 +2711,11 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame,
/* This marks the outermost frame. */
return;
}
@@ -167,11 +180,11 @@ Index: gdb-7.10.90.20160211/gdb/amd64-tdep.c
else
(*this_id) = frame_id_build (cache->base + 16, get_frame_pc (this_frame));
}
-Index: gdb-7.10.90.20160211/gdb/i386-tdep.c
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/i386-tdep.c 2016-02-15 23:37:06.936501443 +0100
-+++ gdb-7.10.90.20160211/gdb/i386-tdep.c 2016-02-15 23:37:39.931735713 +0100
-@@ -8305,6 +8305,9 @@
+diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
+index 81048081ad..290b1c8368 100644
+--- a/gdb/i386-tdep.c
++++ b/gdb/i386-tdep.c
+@@ -8401,6 +8401,9 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->xsave_xcr0_offset = -1;
@@ -181,11 +194,11 @@ Index: gdb-7.10.90.20160211/gdb/i386-tdep.c
tdep->record_regmap = i386_record_regmap;
set_gdbarch_long_long_align_bit (gdbarch, 32);
-Index: gdb-7.10.90.20160211/gdb/i386-tdep.h
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/i386-tdep.h 2016-02-15 23:37:06.936501443 +0100
-+++ gdb-7.10.90.20160211/gdb/i386-tdep.h 2016-02-15 23:37:39.932735720 +0100
-@@ -240,6 +240,9 @@
+diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
+index f190bb3002..6fb45ca59c 100644
+--- a/gdb/i386-tdep.h
++++ b/gdb/i386-tdep.h
+@@ -251,6 +251,9 @@ struct gdbarch_tdep
/* Regsets. */
const struct regset *fpregset;
@@ -195,10 +208,11 @@ Index: gdb-7.10.90.20160211/gdb/i386-tdep.h
};
/* Floating-point registers. */
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/bt-clone-stop.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/bt-clone-stop.c 2016-02-15 23:37:39.932735720 +0100
+diff --git a/gdb/testsuite/gdb.threads/bt-clone-stop.c b/gdb/testsuite/gdb.threads/bt-clone-stop.c
+new file mode 100644
+index 0000000000..2ac93f8664
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/bt-clone-stop.c
@@ -0,0 +1,39 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -239,10 +253,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/bt-clone-stop.c
+ for (;;)
+ pause();
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/bt-clone-stop.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/bt-clone-stop.exp 2016-02-15 23:37:56.197851204 +0100
+diff --git a/gdb/testsuite/gdb.threads/bt-clone-stop.exp b/gdb/testsuite/gdb.threads/bt-clone-stop.exp
+new file mode 100644
+index 0000000000..02728e05b9
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/bt-clone-stop.exp
@@ -0,0 +1,61 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -305,3 +320,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/bt-clone-stop.exp
+ pass "0x0 entry not found"
+ }
+}
+--
+2.14.3
+
diff --git a/gdb-6.5-bz218379-ppc-solib-trampoline-test.patch b/gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
index 9e78146..d054a85 100644
--- a/gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
+++ b/gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
@@ -1,17 +1,60 @@
+From 5c0ae003e4412f25bfafa5ab0073852bb6c295ba Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
FileName: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
+;; Test sideeffects of skipping ppc .so libs trampolines (BZ 218379).
+;;=fedoratest
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
+---
+ gdb/testsuite/gdb.base/step-over-trampoline.c | 28 +++++++++++++
+ gdb/testsuite/gdb.base/step-over-trampoline.exp | 54 +++++++++++++++++++++++++
+ 2 files changed, 82 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/step-over-trampoline.c
+ create mode 100644 gdb/testsuite/gdb.base/step-over-trampoline.exp
-
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/step-over-trampoline.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/step-over-trampoline.exp 2016-02-15 23:31:47.312232078 +0100
+diff --git a/gdb/testsuite/gdb.base/step-over-trampoline.c b/gdb/testsuite/gdb.base/step-over-trampoline.c
+new file mode 100644
+index 0000000000..a012da1031
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/step-over-trampoline.c
+@@ -0,0 +1,28 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2006 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 2 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, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++ Please email any bugs, comments, and/or additions to this file to:
++ bug-gdb@prep.ai.mit.edu */
++
++#include
++
++int main (void)
++{
++ puts ("hello world");
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.base/step-over-trampoline.exp b/gdb/testsuite/gdb.base/step-over-trampoline.exp
+new file mode 100644
+index 0000000000..a183e36263
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/step-over-trampoline.exp
@@ -0,0 +1,54 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -67,36 +110,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/step-over-trampoline.exp
+ fail "stepped into trampoline"
+ }
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/step-over-trampoline.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/step-over-trampoline.c 2016-02-15 23:30:54.698858518 +0100
-@@ -0,0 +1,28 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2006 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 2 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, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+ Please email any bugs, comments, and/or additions to this file to:
-+ bug-gdb@prep.ai.mit.edu */
-+
-+#include
-+
-+int main (void)
-+{
-+ puts ("hello world");
-+ return 0;
-+}
+--
+2.14.3
+
diff --git a/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch b/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
index ecd9ebf..dda2c6e 100644
--- a/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
+++ b/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
@@ -1,18 +1,23 @@
+From aa4a5d2f57b748a80198c2015aaae81e6d4ff80d Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
FileName: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
+;; Fix lockup on trampoline vs. its function lookup; unreproducible (BZ 218379).
+;;=fedora
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
+---
+ gdb/symtab.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
-
-Index: gdb-7.7.90.20140613/gdb/symtab.c
-===================================================================
---- gdb-7.7.90.20140613.orig/gdb/symtab.c 2014-06-13 21:52:06.219338401 +0200
-+++ gdb-7.7.90.20140613/gdb/symtab.c 2014-06-13 21:55:02.753531885 +0200
-@@ -2394,6 +2394,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
+diff --git a/gdb/symtab.c b/gdb/symtab.c
+index dd7434ed50..d731a5421b 100644
+--- a/gdb/symtab.c
++++ b/gdb/symtab.c
+@@ -3141,6 +3141,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
SYMBOL_LINKAGE_NAME (msymbol)); */
;
/* fall through */
@@ -26,3 +31,6 @@ Index: gdb-7.7.90.20140613/gdb/symtab.c
else
return find_pc_line (BMSYMBOL_VALUE_ADDRESS (mfunsym), 0);
}
+--
+2.14.3
+
diff --git a/gdb-6.5-bz243845-stale-testing-zombie-test.patch b/gdb-6.5-bz243845-stale-testing-zombie-test.patch
index 37c7aa8..a483612 100644
--- a/gdb-6.5-bz243845-stale-testing-zombie-test.patch
+++ b/gdb-6.5-bz243845-stale-testing-zombie-test.patch
@@ -1,13 +1,22 @@
+From e1f17c2fd64dea2eed810ca42cf687fba3fd8510 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-bz243845-stale-testing-zombie-test.patch
FileName: gdb-6.5-bz243845-stale-testing-zombie-test.patch
+;; Test leftover zombie process (BZ 243845).
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/tracefork-zombie.exp | 75 +++++++++++++++++++++++++++++
+ 1 file changed, 75 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/tracefork-zombie.exp
-diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.base/tracefork-zombie.exp gdb-6.3/gdb/testsuite/gdb.base/tracefork-zombie.exp
---- gdb-6.3-unpatched/gdb/testsuite/gdb.base/tracefork-zombie.exp 1969-12-31 19:00:00.000000000 -0500
-+++ gdb-6.3/gdb/testsuite/gdb.base/tracefork-zombie.exp 2007-07-31 13:04:12.000000000 -0400
+diff --git a/gdb/testsuite/gdb.base/tracefork-zombie.exp b/gdb/testsuite/gdb.base/tracefork-zombie.exp
+new file mode 100644
+index 0000000000..5807040840
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/tracefork-zombie.exp
@@ -0,0 +1,75 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -84,3 +93,6 @@ diff -u -ruNp gdb-6.3-unpatched/gdb/testsuite/gdb.base/tracefork-zombie.exp gdb-
+} else {
+ fail $test
+}
+--
+2.14.3
+
diff --git a/gdb-6.5-gcore-buffer-limit-test.patch b/gdb-6.5-gcore-buffer-limit-test.patch
index 1cfb728..5aef382 100644
--- a/gdb-6.5-gcore-buffer-limit-test.patch
+++ b/gdb-6.5-gcore-buffer-limit-test.patch
@@ -1,14 +1,24 @@
+From e31680bcf1cfd0fbfad00e92cdb5029a317c093c Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-gcore-buffer-limit-test.patch
FileName: gdb-6.5-gcore-buffer-limit-test.patch
+;; Test gcore memory and time requirements for large inferiors.
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/gcore-excessive-memory.c | 37 +++++++++
+ gdb/testsuite/gdb.base/gcore-excessive-memory.exp | 94 +++++++++++++++++++++++
+ 2 files changed, 131 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/gcore-excessive-memory.c
+ create mode 100644 gdb/testsuite/gdb.base/gcore-excessive-memory.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcore-excessive-memory.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcore-excessive-memory.c 2016-02-15 23:28:15.943731340 +0100
+diff --git a/gdb/testsuite/gdb.base/gcore-excessive-memory.c b/gdb/testsuite/gdb.base/gcore-excessive-memory.c
+new file mode 100644
+index 0000000000..56b4d3a63a
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-excessive-memory.c
@@ -0,0 +1,37 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -47,10 +57,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcore-excessive-memory.c
+
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcore-excessive-memory.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcore-excessive-memory.exp 2016-02-15 23:28:22.720779458 +0100
+diff --git a/gdb/testsuite/gdb.base/gcore-excessive-memory.exp b/gdb/testsuite/gdb.base/gcore-excessive-memory.exp
+new file mode 100644
+index 0000000000..4e71b5534e
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-excessive-memory.exp
@@ -0,0 +1,94 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -146,3 +157,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcore-excessive-memory.exp
+
+# Cleanup.
+exec kill -9 $pid_of_bin
+--
+2.14.3
+
diff --git a/gdb-6.5-ia64-libunwind-leak-test.patch b/gdb-6.5-ia64-libunwind-leak-test.patch
index d5be9a7..0674bf4 100644
--- a/gdb-6.5-ia64-libunwind-leak-test.patch
+++ b/gdb-6.5-ia64-libunwind-leak-test.patch
@@ -1,14 +1,24 @@
+From 542fd88438a3b966bf18d4b40bf73fe10726213a Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-ia64-libunwind-leak-test.patch
FileName: gdb-6.5-ia64-libunwind-leak-test.patch
+;; Test ia64 memory leaks of the code using libunwind.
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/unwind-leak.c | 29 ++++++++++++
+ gdb/testsuite/gdb.base/unwind-leak.exp | 83 ++++++++++++++++++++++++++++++++++
+ 2 files changed, 112 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/unwind-leak.c
+ create mode 100644 gdb/testsuite/gdb.base/unwind-leak.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/unwind-leak.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/unwind-leak.c 2016-02-15 23:32:11.307402446 +0100
+diff --git a/gdb/testsuite/gdb.base/unwind-leak.c b/gdb/testsuite/gdb.base/unwind-leak.c
+new file mode 100644
+index 0000000000..58e34fb264
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/unwind-leak.c
@@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -39,10 +49,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/unwind-leak.c
+ alarm (0);
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/unwind-leak.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/unwind-leak.exp 2016-02-15 23:32:18.559453937 +0100
+diff --git a/gdb/testsuite/gdb.base/unwind-leak.exp b/gdb/testsuite/gdb.base/unwind-leak.exp
+new file mode 100644
+index 0000000000..098962a57c
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/unwind-leak.exp
@@ -0,0 +1,83 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -127,3 +138,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/unwind-leak.exp
+ fail $test
+ }
+}
+--
+2.14.3
+
diff --git a/gdb-6.5-last-address-space-byte-test.patch b/gdb-6.5-last-address-space-byte-test.patch
index f7071e2..fbe8398 100644
--- a/gdb-6.5-last-address-space-byte-test.patch
+++ b/gdb-6.5-last-address-space-byte-test.patch
@@ -1,15 +1,22 @@
+From 95319c14b0cc5f4f44ca0088de5fdd44c4db5d5e Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-last-address-space-byte-test.patch
FileName: gdb-6.5-last-address-space-byte-test.patch
-Index: ./gdb/testsuite/gdb.base/largecore-last-address-lock.exp
-===================================================================
-RCS file: ./gdb/testsuite/gdb.base/largecore-last-address-lock.exp
-diff -N ./gdb/testsuite/gdb.base/largecore-last-address-lock.exp
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ ./gdb/testsuite/gdb.base/largecore-last-address-lock.exp 15 Nov 2006 21:43:24 -0000
+;; Testcase for deadlocking on last address space byte; for corrupted backtraces.
+;;=fedoratest
+---
+ .../gdb.base/largecore-last-address-lock.exp | 49 ++++++++++++++++++++++
+ 1 file changed, 49 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/largecore-last-address-lock.exp
+
+diff --git a/gdb/testsuite/gdb.base/largecore-last-address-lock.exp b/gdb/testsuite/gdb.base/largecore-last-address-lock.exp
+new file mode 100644
+index 0000000000..8a597e9b15
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/largecore-last-address-lock.exp
@@ -0,0 +1,49 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -60,3 +67,6 @@ diff -N ./gdb/testsuite/gdb.base/largecore-last-address-lock.exp
+ "Read the last address space byte"
+
+set timeout ${timeoutold}
+--
+2.14.3
+
diff --git a/gdb-6.5-missed-trap-on-step-test.patch b/gdb-6.5-missed-trap-on-step-test.patch
index 776d806..cea9450 100644
--- a/gdb-6.5-missed-trap-on-step-test.patch
+++ b/gdb-6.5-missed-trap-on-step-test.patch
@@ -1,17 +1,63 @@
+From 1203cb00b3ac2d3f14f9601e2ee749976617f005 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-missed-trap-on-step-test.patch
FileName: gdb-6.5-missed-trap-on-step-test.patch
+;; Test hiding unexpected breakpoints on intentional step commands.
+;;=fedoratest
Fix has been committed to:
gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
+---
+ gdb/testsuite/gdb.base/watchpoint-during-step.c | 30 ++++++++++++++++
+ gdb/testsuite/gdb.base/watchpoint-during-step.exp | 44 +++++++++++++++++++++++
+ 2 files changed, 74 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/watchpoint-during-step.c
+ create mode 100644 gdb/testsuite/gdb.base/watchpoint-during-step.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-during-step.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-during-step.exp 2016-02-15 23:34:10.455248408 +0100
+diff --git a/gdb/testsuite/gdb.base/watchpoint-during-step.c b/gdb/testsuite/gdb.base/watchpoint-during-step.c
+new file mode 100644
+index 0000000000..107eae45a0
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/watchpoint-during-step.c
+@@ -0,0 +1,30 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2007 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 2 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, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++ Please email any bugs, comments, and/or additions to this file to:
++ bug-gdb@prep.ai.mit.edu */
++
++static int var;
++
++int main()
++{
++ var = 1;
++ var = 2;
++ var = 3;
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.base/watchpoint-during-step.exp b/gdb/testsuite/gdb.base/watchpoint-during-step.exp
+new file mode 100644
+index 0000000000..12ba99f1a9
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/watchpoint-during-step.exp
@@ -0,0 +1,44 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -57,38 +103,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-during-step.exp
+# we step from as in this case it is a valid upstream KFAIL gdb/38
+
+gdb_test "step" ".*Old value = 2.*New value = 3.*" "Catch the watchpoint"
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-during-step.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-during-step.c 2016-02-15 23:32:51.846690279 +0100
-@@ -0,0 +1,30 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2007 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 2 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, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+ Please email any bugs, comments, and/or additions to this file to:
-+ bug-gdb@prep.ai.mit.edu */
-+
-+static int var;
-+
-+int main()
-+{
-+ var = 1;
-+ var = 2;
-+ var = 3;
-+ return 0;
-+}
+--
+2.14.3
+
diff --git a/gdb-6.5-readline-long-line-crash-test.patch b/gdb-6.5-readline-long-line-crash-test.patch
index ba83431..c7f60b4 100644
--- a/gdb-6.5-readline-long-line-crash-test.patch
+++ b/gdb-6.5-readline-long-line-crash-test.patch
@@ -1,17 +1,24 @@
+From 2b4ff32b8c143887747c49a67d32f945412278b9 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-readline-long-line-crash-test.patch
FileName: gdb-6.5-readline-long-line-crash-test.patch
+;; Fix readline segfault on excessively long hand-typed lines.
+;;=fedoratest
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=214196
+---
+ gdb/testsuite/gdb.base/readline-overflow.exp | 126 +++++++++++++++++++++++++++
+ 1 file changed, 126 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/readline-overflow.exp
-
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/readline-overflow.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/readline-overflow.exp 2016-02-15 23:30:29.191677414 +0100
+diff --git a/gdb/testsuite/gdb.base/readline-overflow.exp b/gdb/testsuite/gdb.base/readline-overflow.exp
+new file mode 100644
+index 0000000000..5e46816d21
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/readline-overflow.exp
@@ -0,0 +1,126 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -139,3 +146,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/readline-overflow.exp
+}
+set timeout $oldtimeout1
+
+--
+2.14.3
+
diff --git a/gdb-6.5-section-num-fixup-test.patch b/gdb-6.5-section-num-fixup-test.patch
index 1157425..21ebc66 100644
--- a/gdb-6.5-section-num-fixup-test.patch
+++ b/gdb-6.5-section-num-fixup-test.patch
@@ -1,14 +1,26 @@
+From 8909018fa1815f0323970616cb34036512095a5d Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-section-num-fixup-test.patch
FileName: gdb-6.5-section-num-fixup-test.patch
+;; Test a crash on libraries missing the .text section.
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/datalib-lib.c | 22 +++++++++++++++
+ gdb/testsuite/gdb.base/datalib-main.c | 26 ++++++++++++++++++
+ gdb/testsuite/gdb.base/datalib.exp | 51 +++++++++++++++++++++++++++++++++++
+ 3 files changed, 99 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/datalib-lib.c
+ create mode 100644 gdb/testsuite/gdb.base/datalib-main.c
+ create mode 100644 gdb/testsuite/gdb.base/datalib.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib-lib.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib-lib.c 2016-02-15 23:27:19.654331680 +0100
+diff --git a/gdb/testsuite/gdb.base/datalib-lib.c b/gdb/testsuite/gdb.base/datalib-lib.c
+new file mode 100644
+index 0000000000..dd39e23746
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/datalib-lib.c
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -32,10 +44,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib-lib.c
+ bug-gdb@prep.ai.mit.edu */
+
+int var;
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib-main.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib-main.c 2016-02-15 23:27:19.654331680 +0100
+diff --git a/gdb/testsuite/gdb.base/datalib-main.c b/gdb/testsuite/gdb.base/datalib-main.c
+new file mode 100644
+index 0000000000..4e0b80d2d6
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/datalib-main.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -63,10 +76,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib-main.c
+{
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib.exp 2016-02-15 23:27:25.968376510 +0100
+diff --git a/gdb/testsuite/gdb.base/datalib.exp b/gdb/testsuite/gdb.base/datalib.exp
+new file mode 100644
+index 0000000000..385716d901
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/datalib.exp
@@ -0,0 +1,51 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -119,3 +133,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/datalib.exp
+gdb_test "start" \
+ "main \\(\\) at .*${srcfilemain}.*" \
+ "start"
+--
+2.14.3
+
diff --git a/gdb-6.5-sharedlibrary-path.patch b/gdb-6.5-sharedlibrary-path.patch
index f9b5977..3c17a67 100644
--- a/gdb-6.5-sharedlibrary-path.patch
+++ b/gdb-6.5-sharedlibrary-path.patch
@@ -1,21 +1,23 @@
+From 929ceca097bec5a5f5182e85c5ab9a7ef38fe39e Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.5-sharedlibrary-path.patch
FileName: gdb-6.5-sharedlibrary-path.patch
+;; Fix TLS symbols resolving for shared libraries with a relative pathname.
+;; The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
+;;=fedoratest: One should recheck if it is really fixed upstream.
+
If you provided some relative path to the shared library, such as with
export LD_LIBRARY_PATH=.
then gdb would fail to match the shared library name during the TLS lookup.
-
Dropped the workaround/fix for gdb-6.8.50.20081128 - is it still needed?
-
The testsuite needs `gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch'.
The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
-
2006-09-01 Jan Kratochvil
* solib-svr4.c (svr4_fetch_objfile_link_map): Match even absolute
@@ -28,11 +30,20 @@ The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
2008-02-27 Jan Kratochvil
Port to gdb-6.7.50.20080227.
+---
+ gdb/testsuite/gdb.threads/tls-sepdebug-main.c | 25 +++++++
+ gdb/testsuite/gdb.threads/tls-sepdebug-shared.c | 22 +++++++
+ gdb/testsuite/gdb.threads/tls-sepdebug.exp | 87 +++++++++++++++++++++++++
+ 3 files changed, 134 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.threads/tls-sepdebug-main.c
+ create mode 100644 gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
+ create mode 100644 gdb/testsuite/gdb.threads/tls-sepdebug.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug-main.c 2016-02-16 10:16:12.629875073 +0100
+diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-main.c b/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
+new file mode 100644
+index 0000000000..ea5d0174d6
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
@@ -0,0 +1,25 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -59,10 +70,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
+{
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c 2016-02-16 10:16:12.630875080 +0100
+diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c b/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
+new file mode 100644
+index 0000000000..61b49251ba
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -86,10 +98,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
+ bug-gdb@prep.ai.mit.edu */
+
+__thread int var = 42;
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2016-02-16 10:16:31.241001010 +0100
+diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug.exp b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
+new file mode 100644
+index 0000000000..00773f78f2
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
@@ -0,0 +1,87 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -178,3 +191,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/tls-sepdebug.exp
+ "\\\$1 = \[0-9\].*" \
+ "print TLS variable from a shared library with $name-directory separate debug info file"
+}
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate-core-as-arg.patch b/gdb-6.6-buildid-locate-core-as-arg.patch
index 4381eb0..3ad2cd5 100644
--- a/gdb-6.6-buildid-locate-core-as-arg.patch
+++ b/gdb-6.6-buildid-locate-core-as-arg.patch
@@ -1,9 +1,11 @@
+From c3963f29ef9be6e48dee8b058da646867757810c Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: Re: [patch] print a more useful error message for "gdb core"
+Subject: print a more useful error message for "gdb core"
FileName: gdb-6.6-buildid-locate-core-as-arg.patch
+;;=push+jan
http://sourceware.org/ml/gdb-patches/2010-01/msg00558.html
@@ -37,16 +39,13 @@ autodetections. The second command line argument
(captured_main->pid_or_core_arg) is also autodetected (for PID or CORE) but
neither "attach" accepts a core file nor "core-file" accepts a PID.
-
The patch makes sense only with the build-id patchset so this is not submit
for FSF GDB inclusion yet. I am fine with your patch (+/- Hui Zhu's pending
bfd_check_format_matches) as the patch below is its natural extension.
-
Sorry for the delay,
Jan
-
2010-01-25 Jan Kratochvil
* exceptions.h (enum errors ): New.
@@ -63,11 +62,30 @@ Http://sourceware.org/ml/gdb-patches/2010-01/msg00517.html
* exec.c (exec_file_attach): Print a more useful error message if the
user did "gdb core".
+---
+ gdb/common/common-exceptions.h | 3 +++
+ gdb/exec.c | 22 +++++++++++++++---
+ gdb/main.c | 53 +++++++++++++++++++++++++++++++++++++++---
+ 3 files changed, 72 insertions(+), 6 deletions(-)
-Index: gdb-7.12.50.20170226/gdb/exec.c
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/exec.c 2017-02-27 22:18:00.945026211 +0100
-+++ gdb-7.12.50.20170226/gdb/exec.c 2017-02-27 22:18:08.111076350 +0100
+diff --git a/gdb/common/common-exceptions.h b/gdb/common/common-exceptions.h
+index 99aa876dfc..3b9ed3ee71 100644
+--- a/gdb/common/common-exceptions.h
++++ b/gdb/common/common-exceptions.h
+@@ -104,6 +104,9 @@ enum errors {
+ "_ERROR" is appended to the name. */
+ MAX_COMPLETIONS_REACHED_ERROR,
+
++ /* Attempt to load a core file as executable. */
++ IS_CORE_ERROR,
++
+ /* Add more errors here. */
+ NR_ERRORS
+ };
+diff --git a/gdb/exec.c b/gdb/exec.c
+index 4fbe9dd635..a78ab99fc7 100644
+--- a/gdb/exec.c
++++ b/gdb/exec.c
@@ -35,6 +35,7 @@
#include "progspace.h"
#include "gdb_bfd.h"
@@ -76,7 +94,7 @@ Index: gdb-7.12.50.20170226/gdb/exec.c
#include
#include "readline/readline.h"
-@@ -359,12 +360,27 @@
+@@ -346,12 +347,27 @@ exec_file_attach (const char *filename, int from_tty)
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
{
@@ -107,11 +125,11 @@ Index: gdb-7.12.50.20170226/gdb/exec.c
}
if (build_section_table (exec_bfd, §ions, §ions_end))
-Index: gdb-7.12.50.20170226/gdb/main.c
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/main.c 2017-02-27 22:18:00.945026211 +0100
-+++ gdb-7.12.50.20170226/gdb/main.c 2017-02-27 22:18:08.112076357 +0100
-@@ -459,6 +459,37 @@
+diff --git a/gdb/main.c b/gdb/main.c
+index 8f04da107a..d5b4c3adb9 100644
+--- a/gdb/main.c
++++ b/gdb/main.c
+@@ -446,6 +446,37 @@ struct cmdarg
char *string;
};
@@ -147,9 +165,9 @@ Index: gdb-7.12.50.20170226/gdb/main.c
+}
+
static void
- captured_main_1 (struct captured_main_args *context, int &python_script)
+ captured_main_1 (struct captured_main_args *context)
{
-@@ -910,6 +941,8 @@
+@@ -881,6 +912,8 @@ captured_main_1 (struct captured_main_args *context)
{
symarg = argv[optind];
execarg = argv[optind];
@@ -158,7 +176,7 @@ Index: gdb-7.12.50.20170226/gdb/main.c
optind++;
}
-@@ -1060,11 +1093,25 @@
+@@ -1031,11 +1064,25 @@ captured_main_1 (struct captured_main_args *context)
&& symarg != NULL
&& strcmp (execarg, symarg) == 0)
{
@@ -177,27 +195,16 @@ Index: gdb-7.12.50.20170226/gdb/main.c
/* The exec file and the symbol-file are the same. If we can't
open it, better only print one error message.
- catch_command_errors returns non-zero on success! */
-- if (catch_command_errors_const (exec_file_attach, execarg,
-- !batch_flag))
+- if (catch_command_errors (exec_file_attach, execarg,
+- !batch_flag))
+ catch_command_errors returns non-zero on success!
+ Do not load EXECARG as a symbol file if it has been already processed
+ as a core file. */
-+ if (catch_command_errors_const (func, execarg, !batch_flag)
++ if (catch_command_errors (func, execarg, !batch_flag)
+ && core_bfd == NULL)
- catch_command_errors_const (symbol_file_add_main_adapter, symarg,
- !batch_flag);
+ catch_command_errors (symbol_file_add_main_adapter, symarg,
+ !batch_flag);
}
-Index: gdb-7.12.50.20170226/gdb/common/common-exceptions.h
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/common/common-exceptions.h 2017-02-27 22:18:00.946026218 +0100
-+++ gdb-7.12.50.20170226/gdb/common/common-exceptions.h 2017-02-27 22:18:08.112076357 +0100
-@@ -106,6 +106,9 @@
- "_ERROR" is appended to the name. */
- MAX_COMPLETIONS_REACHED_ERROR,
-
-+ /* Attempt to load a core file as executable. */
-+ IS_CORE_ERROR,
-+
- /* Add more errors here. */
- NR_ERRORS
- };
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch b/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
index 3dc85a6..c10e8f1 100644
--- a/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
+++ b/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
@@ -1,9 +1,15 @@
+From ee95f1e165896f860268b46e04fc1711374af019 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
+Subject:
+ gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
FileName: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
+;; Fix 'gdb gives highly misleading error when debuginfo pkg is present,
+;; but not corresponding binary pkg' (RH BZ 981154).
+;;=push+jan
+
Comments by Sergio Durigan Junior :
This is the fix for RH BZ #981154
@@ -20,11 +26,33 @@ Comments by Sergio Durigan Junior :
and had a little thinko there. The variable 'filename' needs to be set to
NULL after it is free'd, otherwise the code below thinks that it is still
valid and doesn't print the necessary warning ("Try: yum install ...").
+---
+ gdb/build-id.c | 5 +-
+ .../rhbz981154-misleading-yum-install-warning.exp | 97 ++++++++++++++++++++++
+ 2 files changed, 101 insertions(+), 1 deletion(-)
+ create mode 100644 gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp 2017-02-26 19:14:58.492609659 +0100
+diff --git a/gdb/build-id.c b/gdb/build-id.c
+index a1fd3bfaab..831f16459f 100644
+--- a/gdb/build-id.c
++++ b/gdb/build-id.c
+@@ -592,7 +592,10 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id,
+ do_cleanups (inner);
+
+ if (abfd == NULL)
+- continue;
++ {
++ filename = NULL;
++ continue;
++ }
+
+ if (build_id_verify (abfd.get(), build_id_len, build_id))
+ break;
+diff --git a/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp b/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
+new file mode 100644
+index 0000000000..bb70c5cf44
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp
@@ -0,0 +1,97 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
@@ -123,19 +151,6 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-ins
+
+# Leaving the link there will cause breakage in the next run.
+remote_exec build "rm -f [standard_output_file ${build_id_without_debug}]"
-Index: gdb-7.12.50.20170207/gdb/build-id.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/build-id.c 2017-02-26 19:14:51.943562799 +0100
-+++ gdb-7.12.50.20170207/gdb/build-id.c 2017-02-26 19:14:58.492609659 +0100
-@@ -589,7 +589,10 @@
- do_cleanups (inner);
-
- if (abfd == NULL)
-- continue;
-+ {
-+ filename = NULL;
-+ continue;
-+ }
-
- if (build_id_verify (abfd.get(), build_id_len, build_id))
- break;
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch b/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
index aed1fff..f38ead3 100644
--- a/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
+++ b/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
@@ -1,27 +1,22 @@
+From f193c41757aab810d11339c1a001b6ea33b9575f Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
FileName: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
+;; Workaround librpm BZ 643031 due to its unexpected exit() calls (BZ 642879).
+;;=push+jan
+---
+ gdb/build-id.c | 13 +++++++++++++
+ gdb/proc-service.list | 3 +++
+ 2 files changed, 16 insertions(+)
-Index: gdb-7.6.90.20140127/gdb/proc-service.list
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/proc-service.list 2014-02-06 17:32:42.810640320 +0100
-+++ gdb-7.6.90.20140127/gdb/proc-service.list 2014-02-06 17:33:35.406696964 +0100
-@@ -37,4 +37,7 @@
- ps_pstop;
- ps_ptread;
- ps_ptwrite;
-+
-+ /* gdb-6.6-buildid-locate-rpm.patch */
-+ rpmsqEnable;
- };
-Index: gdb-7.6.90.20140127/gdb/build-id.c
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/build-id.c 2014-02-06 17:30:14.230480264 +0100
-+++ gdb-7.6.90.20140127/gdb/build-id.c 2014-02-06 17:34:28.846754283 +0100
-@@ -677,6 +677,19 @@ build_id_to_filename (const struct elf_b
+diff --git a/gdb/build-id.c b/gdb/build-id.c
+index d420e3f9e7..a1fd3bfaab 100644
+--- a/gdb/build-id.c
++++ b/gdb/build-id.c
+@@ -678,6 +678,19 @@ build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
#include
#endif
@@ -41,3 +36,18 @@ Index: gdb-7.6.90.20140127/gdb/build-id.c
/* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files
and avoid their duplicities during a single inferior run. */
+diff --git a/gdb/proc-service.list b/gdb/proc-service.list
+index 79c2e5b7fc..ac8364928c 100644
+--- a/gdb/proc-service.list
++++ b/gdb/proc-service.list
+@@ -37,4 +37,7 @@
+ ps_pstop;
+ ps_ptread;
+ ps_ptwrite;
++
++ /* gdb-6.6-buildid-locate-rpm.patch */
++ rpmsqEnable;
+ };
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate-rpm-scl.patch b/gdb-6.6-buildid-locate-rpm-scl.patch
index f3752eb..73f6900 100644
--- a/gdb-6.6-buildid-locate-rpm-scl.patch
+++ b/gdb-6.6-buildid-locate-rpm-scl.patch
@@ -1,16 +1,25 @@
+From 1edc19907a3ff66132cca69c54b0cdfeaf21a2b3 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-buildid-locate-rpm-scl.patch
FileName: gdb-6.6-buildid-locate-rpm-scl.patch
+;; [SCL] Skip deprecated .gdb_index warning for Red Hat built files (BZ 953585).
+;;=push+jan
+
warning: Skipping deprecated .gdb_index section
https://bugzilla.redhat.com/show_bug.cgi?id=953585
+---
+ gdb/build-id.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gdb/dwarf2read.c | 14 ++++++++++++++
+ 2 files changed, 68 insertions(+)
-diff -dup -rup gdb-7.10.50.20160106-orig/gdb/build-id.c gdb-7.10.50.20160106/gdb/build-id.c
---- gdb-7.10.50.20160106-orig/gdb/build-id.c 2016-01-09 14:40:39.420385241 +0100
-+++ gdb-7.10.50.20160106/gdb/build-id.c 2016-01-09 14:41:05.944549393 +0100
-@@ -713,7 +713,11 @@ static int missing_rpm_list_entries;
+diff --git a/gdb/build-id.c b/gdb/build-id.c
+index 831f16459f..531e652e75 100644
+--- a/gdb/build-id.c
++++ b/gdb/build-id.c
+@@ -715,7 +715,11 @@ static int missing_rpm_list_entries;
/* Returns the count of newly added rpms. */
static int
@@ -22,7 +31,7 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/build-id.c gdb-7.10.50.20160106/gdb
{
static int rpm_init_done = 0;
rpmts ts;
-@@ -817,7 +821,11 @@ missing_rpm_enlist (const char *filename
+@@ -822,7 +826,11 @@ missing_rpm_enlist (const char *filename)
mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
if (mi != NULL)
{
@@ -34,7 +43,7 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/build-id.c gdb-7.10.50.20160106/gdb
{
Header h;
char *debuginfo, **slot, *s, *s2;
-@@ -935,6 +943,37 @@ missing_rpm_enlist (const char *filename
+@@ -940,6 +948,37 @@ missing_rpm_enlist (const char *filename)
xfree (debuginfo);
count++;
}
@@ -72,7 +81,7 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/build-id.c gdb-7.10.50.20160106/gdb
rpmdbFreeIterator_p (mi);
}
-@@ -945,6 +984,21 @@ missing_rpm_enlist (const char *filename
+@@ -950,6 +989,21 @@ missing_rpm_enlist (const char *filename)
}
static int
@@ -94,10 +103,11 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/build-id.c gdb-7.10.50.20160106/gdb
missing_rpm_list_compar (const char *const *ap, const char *const *bp)
{
return strcoll (*ap, *bp);
-diff -dup -rup gdb-7.10.50.20160106-orig/gdb/dwarf2read.c gdb-7.10.50.20160106/gdb/dwarf2read.c
---- gdb-7.10.50.20160106-orig/gdb/dwarf2read.c 2016-01-09 14:40:39.416385216 +0100
-+++ gdb-7.10.50.20160106/gdb/dwarf2read.c 2016-01-09 14:41:05.942549381 +0100
-@@ -3111,6 +3111,16 @@ read_index_from_section (struct objfile
+diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+index 49b2658ade..e44844fbd7 100644
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -3373,6 +3373,16 @@ read_index_from_section (struct objfile *objfile,
"set use-deprecated-index-sections on". */
if (version < 6 && !deprecated_ok)
{
@@ -114,7 +124,7 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/dwarf2read.c gdb-7.10.50.20160106/g
static int warning_printed = 0;
if (!warning_printed)
{
-@@ -3122,6 +3132,10 @@ to use the section anyway."),
+@@ -3384,6 +3394,10 @@ to use the section anyway."),
warning_printed = 1;
}
return 0;
@@ -125,3 +135,6 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/dwarf2read.c gdb-7.10.50.20160106/g
}
/* Version 7 indices generated by gold refer to the CU for a symbol instead
of the TU (for symbols coming from TUs),
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate-rpm.patch b/gdb-6.6-buildid-locate-rpm.patch
index da84836..f1067bd 100644
--- a/gdb-6.6-buildid-locate-rpm.patch
+++ b/gdb-6.6-buildid-locate-rpm.patch
@@ -1,61 +1,27 @@
+From 8882716512a2a656edf8a600af79f53630e5632c Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-buildid-locate-rpm.patch
FileName: gdb-6.6-buildid-locate-rpm.patch
+;;=push+jan
+---
+ gdb/aclocal.m4 | 215 +++++++++++++++++++++++
+ gdb/build-id.c | 407 +++++++++++++++++++++++++++++++++++++++++++-
+ gdb/config.in | 6 +
+ gdb/configure | 508 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gdb/configure.ac | 193 +++++++++++++++++++++
+ gdb/corelow.c | 2 +-
+ gdb/event-top.c | 8 +-
+ gdb/symfile.h | 2 +
+ 8 files changed, 1331 insertions(+), 10 deletions(-)
-Index: gdb-7.11.50.20160630/gdb/event-top.c
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/event-top.c 2016-07-02 23:43:24.085214144 +0200
-+++ gdb-7.11.50.20160630/gdb/event-top.c 2016-07-03 14:37:12.572130734 +0200
-@@ -40,6 +40,7 @@
- #include "buffer.h"
- #include "ser-event.h"
- #include "gdb_select.h"
-+#include "symfile.h"
-
- /* readline include files. */
- #include "readline/readline.h"
-@@ -347,6 +348,8 @@
- /* Reset the nesting depth used when trace-commands is set. */
- reset_command_nest_depth ();
-
-+ debug_flush_missing ();
-+
- old_chain = make_cleanup (free_current_contents, &actual_gdb_prompt);
-
- /* Do not call the python hook on an explicit prompt change as
-@@ -794,7 +797,10 @@
- command_handler (cmd);
-
- if (ui->prompt_state != PROMPTED)
-- display_gdb_prompt (0);
-+ {
-+ debug_flush_missing ();
-+ display_gdb_prompt (0);
-+ }
- }
- }
-
-Index: gdb-7.11.50.20160630/gdb/symfile.h
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/symfile.h 2016-07-03 14:34:32.032753668 +0200
-+++ gdb-7.11.50.20160630/gdb/symfile.h 2016-07-03 14:37:12.573130742 +0200
-@@ -592,6 +592,8 @@
- /* build-id support. */
- extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
- extern void debug_print_missing (const char *binary, const char *debug);
-+extern void debug_flush_missing (void);
-+#define BUILD_ID_MAIN_EXECUTABLE_FILENAME _("the main executable file")
-
- /* From dwarf2read.c */
-
-Index: gdb-7.11.50.20160630/gdb/aclocal.m4
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/aclocal.m4 2016-07-02 23:43:24.085214144 +0200
-+++ gdb-7.11.50.20160630/gdb/aclocal.m4 2016-07-03 14:37:12.576130768 +0200
-@@ -11,6 +11,221 @@
+diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4
+index e0d38ea267..da5ac313e3 100644
+--- a/gdb/aclocal.m4
++++ b/gdb/aclocal.m4
+@@ -12,6 +12,221 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@@ -276,11 +242,457 @@ Index: gdb-7.11.50.20160630/gdb/aclocal.m4
+
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-Index: gdb-7.11.50.20160630/gdb/config.in
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/config.in 2016-07-02 23:43:24.085214144 +0200
-+++ gdb-7.11.50.20160630/gdb/config.in 2016-07-03 14:37:12.576130768 +0200
+ # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+diff --git a/gdb/build-id.c b/gdb/build-id.c
+index 11d3774d9e..d420e3f9e7 100644
+--- a/gdb/build-id.c
++++ b/gdb/build-id.c
+@@ -35,6 +35,8 @@
+ #include "elf/common.h"
+ #include "elf-bfd.h"
+ #include
++#include "elf/external.h"
++#include "inferior.h"
+
+ #define BUILD_ID_VERBOSE_NONE 0
+ #define BUILD_ID_VERBOSE_FILENAMES 1
+@@ -666,8 +668,366 @@ build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
+ return result;
+ }
+
++#ifdef HAVE_LIBRPM
++
++#include
++#include
++#include
++#include
++#ifdef DLOPEN_LIBRPM
++#include
++#endif
++
++/* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files
++ and avoid their duplicities during a single inferior run. */
++
++static struct htab *missing_rpm_hash;
++
++/* This MISSING_RPM_LIST tracker is used to collect and print as a single line
++ all the rpms right before the nearest GDB prompt. It gets cleared after
++ each such print (it is questionable if we should clear it after the print).
++ */
++
++struct missing_rpm
++ {
++ struct missing_rpm *next;
++ char rpm[1];
++ };
++static struct missing_rpm *missing_rpm_list;
++static int missing_rpm_list_entries;
++
++/* Returns the count of newly added rpms. */
++
++static int
++missing_rpm_enlist (const char *filename)
++{
++ static int rpm_init_done = 0;
++ rpmts ts;
++ rpmdbMatchIterator mi;
++ int count = 0;
++
++#ifdef DLOPEN_LIBRPM
++ /* Duplicate here the declarations to verify they match. The same sanity
++ check is present also in `configure.ac'. */
++ extern char * headerFormat(Header h, const char * fmt, errmsg_t * errmsg);
++ static char *(*headerFormat_p) (Header h, const char * fmt, errmsg_t *errmsg);
++ extern int rpmReadConfigFiles(const char * file, const char * target);
++ static int (*rpmReadConfigFiles_p) (const char * file, const char * target);
++ extern rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi);
++ static rpmdbMatchIterator (*rpmdbFreeIterator_p) (rpmdbMatchIterator mi);
++ extern Header rpmdbNextIterator(rpmdbMatchIterator mi);
++ static Header (*rpmdbNextIterator_p) (rpmdbMatchIterator mi);
++ extern rpmts rpmtsCreate(void);
++ static rpmts (*rpmtsCreate_p) (void);
++ extern rpmts rpmtsFree(rpmts ts);
++ static rpmts (*rpmtsFree_p) (rpmts ts);
++ extern rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmTag rpmtag,
++ const void * keyp, size_t keylen);
++ static rpmdbMatchIterator (*rpmtsInitIterator_p) (const rpmts ts,
++ rpmTag rpmtag,
++ const void *keyp,
++ size_t keylen);
++#else /* !DLOPEN_LIBRPM */
++# define headerFormat_p headerFormat
++# define rpmReadConfigFiles_p rpmReadConfigFiles
++# define rpmdbFreeIterator_p rpmdbFreeIterator
++# define rpmdbNextIterator_p rpmdbNextIterator
++# define rpmtsCreate_p rpmtsCreate
++# define rpmtsFree_p rpmtsFree
++# define rpmtsInitIterator_p rpmtsInitIterator
++#endif /* !DLOPEN_LIBRPM */
++
++ gdb_assert (filename != NULL);
++
++ if (strcmp (filename, BUILD_ID_MAIN_EXECUTABLE_FILENAME) == 0)
++ return 0;
++
++ if (is_target_filename (filename))
++ return 0;
++
++ if (filename[0] != '/')
++ {
++ warning (_("Ignoring non-absolute filename: <%s>"), filename);
++ return 0;
++ }
++
++ if (!rpm_init_done)
++ {
++ static int init_tried;
++
++ /* Already failed the initialization before? */
++ if (init_tried)
++ return 0;
++ init_tried = 1;
++
++#ifdef DLOPEN_LIBRPM
++ {
++ void *h;
++
++ h = dlopen (DLOPEN_LIBRPM, RTLD_LAZY);
++ if (!h)
++ {
++ warning (_("Unable to open \"%s\" (%s), "
++ "missing debuginfos notifications will not be displayed"),
++ DLOPEN_LIBRPM, dlerror ());
++ return 0;
++ }
++
++ if (!((headerFormat_p = (char *(*) (Header h, const char * fmt, errmsg_t *errmsg)) dlsym (h, "headerFormat"))
++ && (rpmReadConfigFiles_p = (int (*) (const char * file, const char * target)) dlsym (h, "rpmReadConfigFiles"))
++ && (rpmdbFreeIterator_p = (rpmdbMatchIterator (*) (rpmdbMatchIterator mi)) dlsym (h, "rpmdbFreeIterator"))
++ && (rpmdbNextIterator_p = (Header (*) (rpmdbMatchIterator mi)) dlsym (h, "rpmdbNextIterator"))
++ && (rpmtsCreate_p = (rpmts (*) (void)) dlsym (h, "rpmtsCreate"))
++ && (rpmtsFree_p = (rpmts (*) (rpmts ts)) dlsym (h, "rpmtsFree"))
++ && (rpmtsInitIterator_p = (rpmdbMatchIterator (*) (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)) dlsym (h, "rpmtsInitIterator"))))
++ {
++ warning (_("Opened library \"%s\" is incompatible (%s), "
++ "missing debuginfos notifications will not be displayed"),
++ DLOPEN_LIBRPM, dlerror ());
++ if (dlclose (h))
++ warning (_("Error closing library \"%s\": %s\n"), DLOPEN_LIBRPM,
++ dlerror ());
++ return 0;
++ }
++ }
++#endif /* DLOPEN_LIBRPM */
++
++ if (rpmReadConfigFiles_p (NULL, NULL) != 0)
++ {
++ warning (_("Error reading the rpm configuration files"));
++ return 0;
++ }
++
++ rpm_init_done = 1;
++ }
++
++ ts = rpmtsCreate_p ();
++
++ mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
++ if (mi != NULL)
++ {
++ for (;;)
++ {
++ Header h;
++ char *debuginfo, **slot, *s, *s2;
++ errmsg_t err;
++ size_t srcrpmlen = sizeof (".src.rpm") - 1;
++ size_t debuginfolen = sizeof ("-debuginfo") - 1;
++ rpmdbMatchIterator mi_debuginfo;
++
++ h = rpmdbNextIterator_p (mi);
++ if (h == NULL)
++ break;
++
++ /* Verify the debuginfo file is not already installed. */
++
++ debuginfo = headerFormat_p (h, "%{sourcerpm}-debuginfo.%{arch}",
++ &err);
++ if (!debuginfo)
++ {
++ warning (_("Error querying the rpm file `%s': %s"), filename,
++ err);
++ continue;
++ }
++ /* s = `.src.rpm-debuginfo.%{arch}' */
++ s = strrchr (debuginfo, '-') - srcrpmlen;
++ s2 = NULL;
++ if (s > debuginfo && memcmp (s, ".src.rpm", srcrpmlen) == 0)
++ {
++ /* s2 = `-%{release}.src.rpm-debuginfo.%{arch}' */
++ s2 = (char *) memrchr (debuginfo, '-', s - debuginfo);
++ }
++ if (s2)
++ {
++ /* s2 = `-%{version}-%{release}.src.rpm-debuginfo.%{arch}' */
++ s2 = (char *) memrchr (debuginfo, '-', s2 - debuginfo);
++ }
++ if (!s2)
++ {
++ warning (_("Error querying the rpm file `%s': %s"), filename,
++ debuginfo);
++ xfree (debuginfo);
++ continue;
++ }
++ /* s = `.src.rpm-debuginfo.%{arch}' */
++ /* s2 = `-%{version}-%{release}.src.rpm-debuginfo.%{arch}' */
++ memmove (s2 + debuginfolen, s2, s - s2);
++ memcpy (s2, "-debuginfo", debuginfolen);
++ /* s = `XXXX.%{arch}' */
++ /* strlen ("XXXX") == srcrpmlen + debuginfolen */
++ /* s2 = `-debuginfo-%{version}-%{release}XX.%{arch}' */
++ /* strlen ("XX") == srcrpmlen */
++ memmove (s + debuginfolen, s + srcrpmlen + debuginfolen,
++ strlen (s + srcrpmlen + debuginfolen) + 1);
++ /* s = `-debuginfo-%{version}-%{release}.%{arch}' */
++
++ /* RPMDBI_PACKAGES requires keylen == sizeof (int). */
++ /* RPMDBI_LABEL is an interface for NVR-based dbiFindByLabel(). */
++ mi_debuginfo = rpmtsInitIterator_p (ts, (rpmTag) RPMDBI_LABEL, debuginfo, 0);
++ xfree (debuginfo);
++ if (mi_debuginfo)
++ {
++ rpmdbFreeIterator_p (mi_debuginfo);
++ count = 0;
++ break;
++ }
++
++ /* The allocated memory gets utilized below for MISSING_RPM_HASH. */
++ debuginfo = headerFormat_p (h,
++ "%{name}-%{version}-%{release}.%{arch}",
++ &err);
++ if (!debuginfo)
++ {
++ warning (_("Error querying the rpm file `%s': %s"), filename,
++ err);
++ continue;
++ }
++
++ /* Base package name for `debuginfo-install'. We do not use the
++ `yum' command directly as the line
++ yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
++ would be more complicated than just:
++ debuginfo-install NAME-VERSION-RELEASE.ARCH
++ Do not supply the rpm base name (derived from .src.rpm name) as
++ debuginfo-install is unable to install the debuginfo package if
++ the base name PKG binary rpm is not installed while for example
++ PKG-libs would be installed (RH Bug 467901).
++ FUTURE: After multiple debuginfo versions simultaneously installed
++ get supported the support for the VERSION-RELEASE tags handling
++ may need an update. */
++
++ if (missing_rpm_hash == NULL)
++ {
++ /* DEL_F is passed NULL as MISSING_RPM_LIST's HTAB_DELETE
++ should not deallocate the entries. */
++
++ missing_rpm_hash = htab_create_alloc (64, htab_hash_string,
++ (int (*) (const void *, const void *)) streq,
++ NULL, xcalloc, xfree);
++ }
++ slot = (char **) htab_find_slot (missing_rpm_hash, debuginfo, INSERT);
++ /* XCALLOC never returns NULL. */
++ gdb_assert (slot != NULL);
++ if (*slot == NULL)
++ {
++ struct missing_rpm *missing_rpm;
++
++ *slot = debuginfo;
++
++ missing_rpm = (struct missing_rpm *) xmalloc (sizeof (*missing_rpm) + strlen (debuginfo));
++ strcpy (missing_rpm->rpm, debuginfo);
++ missing_rpm->next = missing_rpm_list;
++ missing_rpm_list = missing_rpm;
++ missing_rpm_list_entries++;
++ }
++ else
++ xfree (debuginfo);
++ count++;
++ }
++
++ rpmdbFreeIterator_p (mi);
++ }
++
++ rpmtsFree_p (ts);
++
++ return count;
++}
++
++static int
++missing_rpm_list_compar (const char *const *ap, const char *const *bp)
++{
++ return strcoll (*ap, *bp);
++}
++
++/* It returns a NULL-terminated array of strings needing to be FREEd. It may
++ also return only NULL. */
++
++static void
++missing_rpm_list_print (void)
++{
++ char **array, **array_iter;
++ struct missing_rpm *list_iter;
++ struct cleanup *cleanups;
++
++ if (missing_rpm_list_entries == 0)
++ return;
++
++ array = (char **) xmalloc (sizeof (*array) * missing_rpm_list_entries);
++ cleanups = make_cleanup (xfree, array);
++
++ array_iter = array;
++ for (list_iter = missing_rpm_list; list_iter != NULL;
++ list_iter = list_iter->next)
++ {
++ *array_iter++ = list_iter->rpm;
++ }
++ gdb_assert (array_iter == array + missing_rpm_list_entries);
++
++ qsort (array, missing_rpm_list_entries, sizeof (*array),
++ (int (*) (const void *, const void *)) missing_rpm_list_compar);
++
++ printf_unfiltered (_("Missing separate debuginfos, use: %s"),
++#ifdef DNF_DEBUGINFO_INSTALL
++ "dnf "
++#endif
++ "debuginfo-install");
++ for (array_iter = array; array_iter < array + missing_rpm_list_entries;
++ array_iter++)
++ {
++ putchar_unfiltered (' ');
++ puts_unfiltered (*array_iter);
++ }
++ putchar_unfiltered ('\n');
++
++ while (missing_rpm_list != NULL)
++ {
++ list_iter = missing_rpm_list;
++ missing_rpm_list = list_iter->next;
++ xfree (list_iter);
++ }
++ missing_rpm_list_entries = 0;
++
++ do_cleanups (cleanups);
++}
++
++static void
++missing_rpm_change (void)
++{
++ debug_flush_missing ();
++
++ gdb_assert (missing_rpm_list == NULL);
++ if (missing_rpm_hash != NULL)
++ {
++ htab_delete (missing_rpm_hash);
++ missing_rpm_hash = NULL;
++ }
++}
++
++enum missing_exec
++ {
++ /* Init state. EXEC_BFD also still could be NULL. */
++ MISSING_EXEC_NOT_TRIED,
++ /* We saw a non-NULL EXEC_BFD but RPM has no info about it. */
++ MISSING_EXEC_NOT_FOUND,
++ /* We found EXEC_BFD by RPM and we either have its symbols (either embedded
++ or separate) or the main executable's RPM is now contained in
++ MISSING_RPM_HASH. */
++ MISSING_EXEC_ENLISTED
++ };
++static enum missing_exec missing_exec = MISSING_EXEC_NOT_TRIED;
++
++#endif /* HAVE_LIBRPM */
++
++void
++debug_flush_missing (void)
++{
++#ifdef HAVE_LIBRPM
++ missing_rpm_list_print ();
++#endif
++}
++
+ /* This MISSING_FILEPAIR_HASH tracker is used only for the duplicite messages
+- Try to install the hash file ...
++ yum --enablerepo='*debug*' install ...
+ avoidance. */
+
+ struct missing_filepair
+@@ -721,11 +1081,17 @@ missing_filepair_change (void)
+ /* All their memory came just from missing_filepair_OBSTACK. */
+ missing_filepair_hash = NULL;
+ }
++#ifdef HAVE_LIBRPM
++ missing_exec = MISSING_EXEC_NOT_TRIED;
++#endif
+ }
+
+ static void
+ debug_print_executable_changed (void)
+ {
++#ifdef HAVE_LIBRPM
++ missing_rpm_change ();
++#endif
+ missing_filepair_change ();
+ }
+
+@@ -792,14 +1158,39 @@ debug_print_missing (const char *binary, const char *debug)
+
+ *slot = missing_filepair;
+
+- /* We do not collect and flush these messages as each such message
+- already requires its own separate lines. */
++#ifdef HAVE_LIBRPM
++ if (missing_exec == MISSING_EXEC_NOT_TRIED)
++ {
++ char *execfilename;
+
+- fprintf_unfiltered (gdb_stdlog,
+- _("Missing separate debuginfo for %s\n"), binary);
+- if (debug != NULL)
+- fprintf_unfiltered (gdb_stdlog, _("Try to install the hash file %s\n"),
+- debug);
++ execfilename = get_exec_file (0);
++ if (execfilename != NULL)
++ {
++ if (missing_rpm_enlist (execfilename) == 0)
++ missing_exec = MISSING_EXEC_NOT_FOUND;
++ else
++ missing_exec = MISSING_EXEC_ENLISTED;
++ }
++ }
++ if (missing_exec != MISSING_EXEC_ENLISTED)
++ if ((binary[0] == 0 || missing_rpm_enlist (binary) == 0)
++ && (debug == NULL || missing_rpm_enlist (debug) == 0))
++#endif /* HAVE_LIBRPM */
++ {
++ /* We do not collect and flush these messages as each such message
++ already requires its own separate lines. */
++
++ fprintf_unfiltered (gdb_stdlog,
++ _("Missing separate debuginfo for %s\n"), binary);
++ if (debug != NULL)
++ fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"),
++#ifdef DNF_DEBUGINFO_INSTALL
++ "dnf"
++#else
++ "yum"
++#endif
++ " --enablerepo='*debug*' install", debug);
++ }
+ }
+
+ /* See build-id.h. */
+diff --git a/gdb/config.in b/gdb/config.in
+index 1d11a97080..edd7028f76 100644
+--- a/gdb/config.in
++++ b/gdb/config.in
@@ -33,6 +33,9 @@
/* Define to BFD's default target vector. */
#undef DEFAULT_BFD_VEC
@@ -291,7 +703,7 @@ Index: gdb-7.11.50.20160630/gdb/config.in
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
-@@ -261,6 +264,9 @@
+@@ -264,6 +267,9 @@
/* Define if Python 2.7 is being used. */
#undef HAVE_LIBPYTHON2_7
@@ -301,11 +713,11 @@ Index: gdb-7.11.50.20160630/gdb/config.in
/* Define to 1 if you have the header file. */
#undef HAVE_LIBUNWIND_IA64_H
-Index: gdb-7.11.50.20160630/gdb/configure
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/configure 2016-07-02 23:43:24.085214144 +0200
-+++ gdb-7.11.50.20160630/gdb/configure 2016-07-03 14:37:12.581130811 +0200
-@@ -705,6 +705,11 @@
+diff --git a/gdb/configure b/gdb/configure
+index 7b250079de..e314e28ff3 100755
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -716,6 +716,11 @@ PKGVERSION
HAVE_NATIVE_GCORE_TARGET
TARGET_OBS
subdirs
@@ -317,7 +729,7 @@ Index: gdb-7.11.50.20160630/gdb/configure
GDB_DATADIR
DEBUGDIR
MAKEINFO_EXTRA_FLAGS
-@@ -814,6 +819,7 @@
+@@ -820,6 +825,7 @@ with_gdb_datadir
with_relocated_sources
with_auto_load_dir
with_auto_load_safe_path
@@ -325,7 +737,7 @@ Index: gdb-7.11.50.20160630/gdb/configure
enable_targets
enable_64_bit_bfd
enable_gdbcli
-@@ -870,6 +876,11 @@
+@@ -878,6 +884,11 @@ CCC
CPP
MAKEINFO
MAKEINFOFLAGS
@@ -337,7 +749,7 @@ Index: gdb-7.11.50.20160630/gdb/configure
YACC
YFLAGS
XMKMF'
-@@ -1541,6 +1552,8 @@
+@@ -1548,6 +1559,8 @@ Optional Packages:
[--with-auto-load-dir]
--without-auto-load-safe-path
do not restrict auto-loaded files locations
@@ -346,7 +758,7 @@ Index: gdb-7.11.50.20160630/gdb/configure
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
--with-curses use the curses library instead of the termcap
library
-@@ -1595,6 +1608,13 @@
+@@ -1605,6 +1618,13 @@ Some influential environment variables:
MAKEINFO Parent configure detects if it is of sufficient version.
MAKEINFOFLAGS
Parameters for MAKEINFO.
@@ -360,7 +772,7 @@ Index: gdb-7.11.50.20160630/gdb/configure
YACC The `Yet Another C Compiler' implementation to use. Defaults to
the first program found out of: `bison -y', `byacc', `yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC.
-@@ -5613,6 +5633,494 @@
+@@ -6486,6 +6506,494 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
$as_echo "$with_auto_load_safe_path" >&6; }
@@ -855,11 +1267,11 @@ Index: gdb-7.11.50.20160630/gdb/configure
subdirs="$subdirs testsuite"
-Index: gdb-7.11.50.20160630/gdb/configure.ac
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/configure.ac 2016-07-02 23:43:24.085214144 +0200
-+++ gdb-7.11.50.20160630/gdb/configure.ac 2016-07-03 14:37:12.582130819 +0200
-@@ -177,6 +177,199 @@
+diff --git a/gdb/configure.ac b/gdb/configure.ac
+index 8e706b6e27..9de441fe79 100644
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -167,6 +167,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
[Directories safe to hold auto-loaded files.])
AC_MSG_RESULT([$with_auto_load_safe_path])
@@ -1059,11 +1471,11 @@ Index: gdb-7.11.50.20160630/gdb/configure.ac
AC_CONFIG_SUBDIRS(testsuite)
# Check whether to support alternative target configurations
-Index: gdb-7.11.50.20160630/gdb/corelow.c
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/corelow.c 2016-07-03 14:34:32.022753582 +0200
-+++ gdb-7.11.50.20160630/gdb/corelow.c 2016-07-03 14:37:12.582130819 +0200
-@@ -310,7 +310,7 @@
+diff --git a/gdb/corelow.c b/gdb/corelow.c
+index b6e9ddc652..547313c4b5 100644
+--- a/gdb/corelow.c
++++ b/gdb/corelow.c
+@@ -309,7 +309,7 @@ build_id_locate_exec (int from_tty)
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
}
else
@@ -1072,448 +1484,52 @@ Index: gdb-7.11.50.20160630/gdb/corelow.c
do_cleanups (back_to);
-Index: gdb-7.11.50.20160630/gdb/build-id.c
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/build-id.c 2016-07-03 14:36:50.124938187 +0200
-+++ gdb-7.11.50.20160630/gdb/build-id.c 2016-07-03 14:42:25.171812134 +0200
-@@ -35,6 +35,7 @@
- #include "elf/common.h"
- #include "elf-bfd.h"
- #include
-+#include "elf/external.h"
+diff --git a/gdb/event-top.c b/gdb/event-top.c
+index 89936965a9..a1866f0c88 100644
+--- a/gdb/event-top.c
++++ b/gdb/event-top.c
+@@ -40,6 +40,7 @@
+ #include "buffer.h"
+ #include "ser-event.h"
+ #include "gdb_select.h"
++#include "symfile.h"
- #define BUILD_ID_VERBOSE_NONE 0
- #define BUILD_ID_VERBOSE_FILENAMES 1
-@@ -665,8 +666,366 @@
- return result;
- }
+ /* readline include files. */
+ #include "readline/readline.h"
+@@ -359,6 +360,8 @@ display_gdb_prompt (const char *new_prompt)
+ /* Reset the nesting depth used when trace-commands is set. */
+ reset_command_nest_depth ();
-+#ifdef HAVE_LIBRPM
-+
-+#include
-+#include
-+#include
-+#include
-+#ifdef DLOPEN_LIBRPM
-+#include
-+#endif
-+
-+/* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files
-+ and avoid their duplicities during a single inferior run. */
-+
-+static struct htab *missing_rpm_hash;
-+
-+/* This MISSING_RPM_LIST tracker is used to collect and print as a single line
-+ all the rpms right before the nearest GDB prompt. It gets cleared after
-+ each such print (it is questionable if we should clear it after the print).
-+ */
-+
-+struct missing_rpm
-+ {
-+ struct missing_rpm *next;
-+ char rpm[1];
-+ };
-+static struct missing_rpm *missing_rpm_list;
-+static int missing_rpm_list_entries;
-+
-+/* Returns the count of newly added rpms. */
-+
-+static int
-+missing_rpm_enlist (const char *filename)
-+{
-+ static int rpm_init_done = 0;
-+ rpmts ts;
-+ rpmdbMatchIterator mi;
-+ int count = 0;
-+
-+#ifdef DLOPEN_LIBRPM
-+ /* Duplicate here the declarations to verify they match. The same sanity
-+ check is present also in `configure.ac'. */
-+ extern char * headerFormat(Header h, const char * fmt, errmsg_t * errmsg);
-+ static char *(*headerFormat_p) (Header h, const char * fmt, errmsg_t *errmsg);
-+ extern int rpmReadConfigFiles(const char * file, const char * target);
-+ static int (*rpmReadConfigFiles_p) (const char * file, const char * target);
-+ extern rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi);
-+ static rpmdbMatchIterator (*rpmdbFreeIterator_p) (rpmdbMatchIterator mi);
-+ extern Header rpmdbNextIterator(rpmdbMatchIterator mi);
-+ static Header (*rpmdbNextIterator_p) (rpmdbMatchIterator mi);
-+ extern rpmts rpmtsCreate(void);
-+ static rpmts (*rpmtsCreate_p) (void);
-+ extern rpmts rpmtsFree(rpmts ts);
-+ static rpmts (*rpmtsFree_p) (rpmts ts);
-+ extern rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmTag rpmtag,
-+ const void * keyp, size_t keylen);
-+ static rpmdbMatchIterator (*rpmtsInitIterator_p) (const rpmts ts,
-+ rpmTag rpmtag,
-+ const void *keyp,
-+ size_t keylen);
-+#else /* !DLOPEN_LIBRPM */
-+# define headerFormat_p headerFormat
-+# define rpmReadConfigFiles_p rpmReadConfigFiles
-+# define rpmdbFreeIterator_p rpmdbFreeIterator
-+# define rpmdbNextIterator_p rpmdbNextIterator
-+# define rpmtsCreate_p rpmtsCreate
-+# define rpmtsFree_p rpmtsFree
-+# define rpmtsInitIterator_p rpmtsInitIterator
-+#endif /* !DLOPEN_LIBRPM */
-+
-+ gdb_assert (filename != NULL);
-+
-+ if (strcmp (filename, BUILD_ID_MAIN_EXECUTABLE_FILENAME) == 0)
-+ return 0;
-+
-+ if (is_target_filename (filename))
-+ return 0;
-+
-+ if (filename[0] != '/')
-+ {
-+ warning (_("Ignoring non-absolute filename: <%s>"), filename);
-+ return 0;
-+ }
-+
-+ if (!rpm_init_done)
-+ {
-+ static int init_tried;
-+
-+ /* Already failed the initialization before? */
-+ if (init_tried)
-+ return 0;
-+ init_tried = 1;
-+
-+#ifdef DLOPEN_LIBRPM
-+ {
-+ void *h;
-+
-+ h = dlopen (DLOPEN_LIBRPM, RTLD_LAZY);
-+ if (!h)
-+ {
-+ warning (_("Unable to open \"%s\" (%s), "
-+ "missing debuginfos notifications will not be displayed"),
-+ DLOPEN_LIBRPM, dlerror ());
-+ return 0;
-+ }
-+
-+ if (!((headerFormat_p = (char *(*) (Header h, const char * fmt, errmsg_t *errmsg)) dlsym (h, "headerFormat"))
-+ && (rpmReadConfigFiles_p = (int (*) (const char * file, const char * target)) dlsym (h, "rpmReadConfigFiles"))
-+ && (rpmdbFreeIterator_p = (rpmdbMatchIterator (*) (rpmdbMatchIterator mi)) dlsym (h, "rpmdbFreeIterator"))
-+ && (rpmdbNextIterator_p = (Header (*) (rpmdbMatchIterator mi)) dlsym (h, "rpmdbNextIterator"))
-+ && (rpmtsCreate_p = (rpmts (*) (void)) dlsym (h, "rpmtsCreate"))
-+ && (rpmtsFree_p = (rpmts (*) (rpmts ts)) dlsym (h, "rpmtsFree"))
-+ && (rpmtsInitIterator_p = (rpmdbMatchIterator (*) (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)) dlsym (h, "rpmtsInitIterator"))))
-+ {
-+ warning (_("Opened library \"%s\" is incompatible (%s), "
-+ "missing debuginfos notifications will not be displayed"),
-+ DLOPEN_LIBRPM, dlerror ());
-+ if (dlclose (h))
-+ warning (_("Error closing library \"%s\": %s\n"), DLOPEN_LIBRPM,
-+ dlerror ());
-+ return 0;
-+ }
-+ }
-+#endif /* DLOPEN_LIBRPM */
-+
-+ if (rpmReadConfigFiles_p (NULL, NULL) != 0)
-+ {
-+ warning (_("Error reading the rpm configuration files"));
-+ return 0;
-+ }
-+
-+ rpm_init_done = 1;
-+ }
-+
-+ ts = rpmtsCreate_p ();
-+
-+ mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
-+ if (mi != NULL)
-+ {
-+ for (;;)
-+ {
-+ Header h;
-+ char *debuginfo, **slot, *s, *s2;
-+ errmsg_t err;
-+ size_t srcrpmlen = sizeof (".src.rpm") - 1;
-+ size_t debuginfolen = sizeof ("-debuginfo") - 1;
-+ rpmdbMatchIterator mi_debuginfo;
-+
-+ h = rpmdbNextIterator_p (mi);
-+ if (h == NULL)
-+ break;
-+
-+ /* Verify the debuginfo file is not already installed. */
-+
-+ debuginfo = headerFormat_p (h, "%{sourcerpm}-debuginfo.%{arch}",
-+ &err);
-+ if (!debuginfo)
-+ {
-+ warning (_("Error querying the rpm file `%s': %s"), filename,
-+ err);
-+ continue;
-+ }
-+ /* s = `.src.rpm-debuginfo.%{arch}' */
-+ s = strrchr (debuginfo, '-') - srcrpmlen;
-+ s2 = NULL;
-+ if (s > debuginfo && memcmp (s, ".src.rpm", srcrpmlen) == 0)
-+ {
-+ /* s2 = `-%{release}.src.rpm-debuginfo.%{arch}' */
-+ s2 = (char *) memrchr (debuginfo, '-', s - debuginfo);
-+ }
-+ if (s2)
-+ {
-+ /* s2 = `-%{version}-%{release}.src.rpm-debuginfo.%{arch}' */
-+ s2 = (char *) memrchr (debuginfo, '-', s2 - debuginfo);
-+ }
-+ if (!s2)
-+ {
-+ warning (_("Error querying the rpm file `%s': %s"), filename,
-+ debuginfo);
-+ xfree (debuginfo);
-+ continue;
-+ }
-+ /* s = `.src.rpm-debuginfo.%{arch}' */
-+ /* s2 = `-%{version}-%{release}.src.rpm-debuginfo.%{arch}' */
-+ memmove (s2 + debuginfolen, s2, s - s2);
-+ memcpy (s2, "-debuginfo", debuginfolen);
-+ /* s = `XXXX.%{arch}' */
-+ /* strlen ("XXXX") == srcrpmlen + debuginfolen */
-+ /* s2 = `-debuginfo-%{version}-%{release}XX.%{arch}' */
-+ /* strlen ("XX") == srcrpmlen */
-+ memmove (s + debuginfolen, s + srcrpmlen + debuginfolen,
-+ strlen (s + srcrpmlen + debuginfolen) + 1);
-+ /* s = `-debuginfo-%{version}-%{release}.%{arch}' */
-+
-+ /* RPMDBI_PACKAGES requires keylen == sizeof (int). */
-+ /* RPMDBI_LABEL is an interface for NVR-based dbiFindByLabel(). */
-+ mi_debuginfo = rpmtsInitIterator_p (ts, (rpmTag) RPMDBI_LABEL, debuginfo, 0);
-+ xfree (debuginfo);
-+ if (mi_debuginfo)
-+ {
-+ rpmdbFreeIterator_p (mi_debuginfo);
-+ count = 0;
-+ break;
-+ }
-+
-+ /* The allocated memory gets utilized below for MISSING_RPM_HASH. */
-+ debuginfo = headerFormat_p (h,
-+ "%{name}-%{version}-%{release}.%{arch}",
-+ &err);
-+ if (!debuginfo)
-+ {
-+ warning (_("Error querying the rpm file `%s': %s"), filename,
-+ err);
-+ continue;
-+ }
-+
-+ /* Base package name for `debuginfo-install'. We do not use the
-+ `yum' command directly as the line
-+ yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
-+ would be more complicated than just:
-+ debuginfo-install NAME-VERSION-RELEASE.ARCH
-+ Do not supply the rpm base name (derived from .src.rpm name) as
-+ debuginfo-install is unable to install the debuginfo package if
-+ the base name PKG binary rpm is not installed while for example
-+ PKG-libs would be installed (RH Bug 467901).
-+ FUTURE: After multiple debuginfo versions simultaneously installed
-+ get supported the support for the VERSION-RELEASE tags handling
-+ may need an update. */
-+
-+ if (missing_rpm_hash == NULL)
-+ {
-+ /* DEL_F is passed NULL as MISSING_RPM_LIST's HTAB_DELETE
-+ should not deallocate the entries. */
-+
-+ missing_rpm_hash = htab_create_alloc (64, htab_hash_string,
-+ (int (*) (const void *, const void *)) streq,
-+ NULL, xcalloc, xfree);
-+ }
-+ slot = (char **) htab_find_slot (missing_rpm_hash, debuginfo, INSERT);
-+ /* XCALLOC never returns NULL. */
-+ gdb_assert (slot != NULL);
-+ if (*slot == NULL)
-+ {
-+ struct missing_rpm *missing_rpm;
-+
-+ *slot = debuginfo;
-+
-+ missing_rpm = (struct missing_rpm *) xmalloc (sizeof (*missing_rpm) + strlen (debuginfo));
-+ strcpy (missing_rpm->rpm, debuginfo);
-+ missing_rpm->next = missing_rpm_list;
-+ missing_rpm_list = missing_rpm;
-+ missing_rpm_list_entries++;
-+ }
-+ else
-+ xfree (debuginfo);
-+ count++;
-+ }
-+
-+ rpmdbFreeIterator_p (mi);
-+ }
-+
-+ rpmtsFree_p (ts);
-+
-+ return count;
-+}
-+
-+static int
-+missing_rpm_list_compar (const char *const *ap, const char *const *bp)
-+{
-+ return strcoll (*ap, *bp);
-+}
-+
-+/* It returns a NULL-terminated array of strings needing to be FREEd. It may
-+ also return only NULL. */
-+
-+static void
-+missing_rpm_list_print (void)
-+{
-+ char **array, **array_iter;
-+ struct missing_rpm *list_iter;
-+ struct cleanup *cleanups;
-+
-+ if (missing_rpm_list_entries == 0)
-+ return;
-+
-+ array = (char **) xmalloc (sizeof (*array) * missing_rpm_list_entries);
-+ cleanups = make_cleanup (xfree, array);
-+
-+ array_iter = array;
-+ for (list_iter = missing_rpm_list; list_iter != NULL;
-+ list_iter = list_iter->next)
-+ {
-+ *array_iter++ = list_iter->rpm;
-+ }
-+ gdb_assert (array_iter == array + missing_rpm_list_entries);
-+
-+ qsort (array, missing_rpm_list_entries, sizeof (*array),
-+ (int (*) (const void *, const void *)) missing_rpm_list_compar);
-+
-+ printf_unfiltered (_("Missing separate debuginfos, use: %s"),
-+#ifdef DNF_DEBUGINFO_INSTALL
-+ "dnf "
-+#endif
-+ "debuginfo-install");
-+ for (array_iter = array; array_iter < array + missing_rpm_list_entries;
-+ array_iter++)
-+ {
-+ putchar_unfiltered (' ');
-+ puts_unfiltered (*array_iter);
-+ }
-+ putchar_unfiltered ('\n');
-+
-+ while (missing_rpm_list != NULL)
-+ {
-+ list_iter = missing_rpm_list;
-+ missing_rpm_list = list_iter->next;
-+ xfree (list_iter);
-+ }
-+ missing_rpm_list_entries = 0;
-+
-+ do_cleanups (cleanups);
-+}
-+
-+static void
-+missing_rpm_change (void)
-+{
+ debug_flush_missing ();
+
-+ gdb_assert (missing_rpm_list == NULL);
-+ if (missing_rpm_hash != NULL)
-+ {
-+ htab_delete (missing_rpm_hash);
-+ missing_rpm_hash = NULL;
-+ }
-+}
-+
-+enum missing_exec
-+ {
-+ /* Init state. EXEC_BFD also still could be NULL. */
-+ MISSING_EXEC_NOT_TRIED,
-+ /* We saw a non-NULL EXEC_BFD but RPM has no info about it. */
-+ MISSING_EXEC_NOT_FOUND,
-+ /* We found EXEC_BFD by RPM and we either have its symbols (either embedded
-+ or separate) or the main executable's RPM is now contained in
-+ MISSING_RPM_HASH. */
-+ MISSING_EXEC_ENLISTED
-+ };
-+static enum missing_exec missing_exec = MISSING_EXEC_NOT_TRIED;
-+
-+#endif /* HAVE_LIBRPM */
-+
-+void
-+debug_flush_missing (void)
-+{
-+#ifdef HAVE_LIBRPM
-+ missing_rpm_list_print ();
-+#endif
-+}
-+
- /* This MISSING_FILEPAIR_HASH tracker is used only for the duplicite messages
-- Try to install the hash file ...
-+ yum --enablerepo='*debug*' install ...
- avoidance. */
+ /* Do not call the python hook on an explicit prompt change as
+ passed to this function, as this forms a secondary/local prompt,
+ IE, displayed but not set. */
+@@ -773,7 +776,10 @@ command_line_handler (char *rl)
+ command_handler (cmd);
- struct missing_filepair
-@@ -720,11 +1079,17 @@
- /* All their memory came just from missing_filepair_OBSTACK. */
- missing_filepair_hash = NULL;
- }
-+#ifdef HAVE_LIBRPM
-+ missing_exec = MISSING_EXEC_NOT_TRIED;
-+#endif
- }
-
- static void
- debug_print_executable_changed (void)
- {
-+#ifdef HAVE_LIBRPM
-+ missing_rpm_change ();
-+#endif
- missing_filepair_change ();
- }
-
-@@ -791,14 +1156,39 @@
-
- *slot = missing_filepair;
-
-- /* We do not collect and flush these messages as each such message
-- already requires its own separate lines. */
-+#ifdef HAVE_LIBRPM
-+ if (missing_exec == MISSING_EXEC_NOT_TRIED)
-+ {
-+ char *execfilename;
-
-- fprintf_unfiltered (gdb_stdlog,
-- _("Missing separate debuginfo for %s\n"), binary);
-- if (debug != NULL)
-- fprintf_unfiltered (gdb_stdlog, _("Try to install the hash file %s\n"),
-- debug);
-+ execfilename = get_exec_file (0);
-+ if (execfilename != NULL)
+ if (ui->prompt_state != PROMPTED)
+- display_gdb_prompt (0);
+ {
-+ if (missing_rpm_enlist (execfilename) == 0)
-+ missing_exec = MISSING_EXEC_NOT_FOUND;
-+ else
-+ missing_exec = MISSING_EXEC_ENLISTED;
++ debug_flush_missing ();
++ display_gdb_prompt (0);
+ }
-+ }
-+ if (missing_exec != MISSING_EXEC_ENLISTED)
-+ if ((binary[0] == 0 || missing_rpm_enlist (binary) == 0)
-+ && (debug == NULL || missing_rpm_enlist (debug) == 0))
-+#endif /* HAVE_LIBRPM */
-+ {
-+ /* We do not collect and flush these messages as each such message
-+ already requires its own separate lines. */
-+
-+ fprintf_unfiltered (gdb_stdlog,
-+ _("Missing separate debuginfo for %s\n"), binary);
-+ if (debug != NULL)
-+ fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"),
-+#ifdef DNF_DEBUGINFO_INSTALL
-+ "dnf"
-+#else
-+ "yum"
-+#endif
-+ " --enablerepo='*debug*' install", debug);
-+ }
+ }
}
- /* See build-id.h. */
+diff --git a/gdb/symfile.h b/gdb/symfile.h
+index 45bbe0a229..69eead20d9 100644
+--- a/gdb/symfile.h
++++ b/gdb/symfile.h
+@@ -546,6 +546,8 @@ void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
+ /* build-id support. */
+ extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
+ extern void debug_print_missing (const char *binary, const char *debug);
++extern void debug_flush_missing (void);
++#define BUILD_ID_MAIN_EXECUTABLE_FILENAME _("the main executable file")
+
+ /* From dwarf2read.c */
+
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate-solib-missing-ids.patch b/gdb-6.6-buildid-locate-solib-missing-ids.patch
index 08d901e..72a574b 100644
--- a/gdb-6.6-buildid-locate-solib-missing-ids.patch
+++ b/gdb-6.6-buildid-locate-solib-missing-ids.patch
@@ -1,18 +1,32 @@
+From d27963f81d095648d49c623d5567dc1aa96429e2 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-buildid-locate-solib-missing-ids.patch
FileName: gdb-6.6-buildid-locate-solib-missing-ids.patch
+;; Fix loading of core files without build-ids but with build-ids in executables.
+;; Load strictly build-id-checked core files only if no executable is specified
+;; (Jan Kratochvil, RH BZ 1339862).
+;;=push+jan
gdb returns an incorrect back trace when applying a debuginfo
https://bugzilla.redhat.com/show_bug.cgi?id=1339862
+---
+ gdb/solib-svr4.c | 35 ++++---
+ .../gcore-buildid-exec-but-not-solib-lib.c | 21 +++++
+ .../gcore-buildid-exec-but-not-solib-main.c | 25 +++++
+ .../gdb.base/gcore-buildid-exec-but-not-solib.exp | 105 +++++++++++++++++++++
+ 4 files changed, 167 insertions(+), 19 deletions(-)
+ create mode 100644 gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-lib.c
+ create mode 100644 gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-main.c
+ create mode 100644 gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib.exp
-Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
-===================================================================
---- gdb-7.9.90.20150709.orig/gdb/solib-svr4.c 2015-07-09 18:18:54.526417766 +0200
-+++ gdb-7.9.90.20150709/gdb/solib-svr4.c 2015-07-09 18:19:33.074746586 +0200
-@@ -1381,14 +1381,27 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
+diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
+index 08788092dc..12207ac6e9 100644
+--- a/gdb/solib-svr4.c
++++ b/gdb/solib-svr4.c
+@@ -1387,14 +1387,27 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
}
{
@@ -38,11 +52,11 @@ Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
+ to the only existing file loaded that time - the executable. */
+ if (symfile_objfile != NULL
+ && (symfile_objfile->flags & OBJF_BUILD_ID_CORE_LOADED) != 0)
-+ build_id = build_id_addr_get (newobj->lm_info->l_ld);
++ build_id = build_id_addr_get (li->l_ld);
if (build_id != NULL)
{
char *name, *build_id_filename;
-@@ -1403,23 +1416,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
+@@ -1409,23 +1422,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
xfree (name);
}
else
@@ -67,8 +81,69 @@ Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
xfree (build_id_filename);
xfree (build_id);
---- /dev/null 2016-07-02 20:29:01.679404943 +0200
-+++ gdb-7.11.50.20160721/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib.exp 2016-07-31 23:04:49.062753722 +0200
+diff --git a/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-lib.c b/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-lib.c
+new file mode 100644
+index 0000000000..d74b690c73
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-lib.c
+@@ -0,0 +1,21 @@
++/* Copyright 2010 Free Software Foundation, Inc.
++
++ This file is part of GDB.
++
++ 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 . */
++
++void
++lib (void)
++{
++}
+diff --git a/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-main.c b/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-main.c
+new file mode 100644
+index 0000000000..46b9dfe161
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-main.c
+@@ -0,0 +1,25 @@
++/* Copyright 2010 Free Software Foundation, Inc.
++
++ This file is part of GDB.
++
++ 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 . */
++
++extern void lib (void);
++
++int
++main (void)
++{
++ lib ();
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib.exp b/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib.exp
+new file mode 100644
+index 0000000000..0c46489f31
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib.exp
@@ -0,0 +1,105 @@
+# Copyright 2016 Free Software Foundation, Inc.
+
@@ -175,55 +250,6 @@ Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
+
+gdb_test "bt"
+gdb_test "info shared"
---- /dev/null 2016-07-02 20:29:01.679404943 +0200
-+++ gdb-7.11.50.20160721/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-main.c 2016-07-28 21:06:40.977786922 +0200
-@@ -0,0 +1,25 @@
-+/* Copyright 2010 Free Software Foundation, Inc.
-+
-+ This file is part of GDB.
-+
-+ 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 . */
-+
-+extern void lib (void);
-+
-+int
-+main (void)
-+{
-+ lib ();
-+ return 0;
-+}
---- /dev/null 2016-07-02 20:29:01.679404943 +0200
-+++ gdb-7.11.50.20160721/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-lib.c 2016-07-28 21:06:40.977786922 +0200
-@@ -0,0 +1,21 @@
-+/* Copyright 2010 Free Software Foundation, Inc.
-+
-+ This file is part of GDB.
-+
-+ 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 . */
-+
-+void
-+lib (void)
-+{
-+}
+--
+2.14.3
+
diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch
index 0a65462..460594c 100644
--- a/gdb-6.6-buildid-locate.patch
+++ b/gdb-6.6-buildid-locate.patch
@@ -1,359 +1,34 @@
+From b38d8630ecce2839b35e18ec8420fce6aacc04e5 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-buildid-locate.patch
FileName: gdb-6.6-buildid-locate.patch
+;; New locating of the matching binaries from the pure core file (build-id).
+;;=push+jan
+---
+ gdb/build-id.c | 753 +++++++++++++++++++++++-
+ gdb/build-id.h | 15 +-
+ gdb/coffread.c | 2 +-
+ gdb/corelow.c | 67 +++
+ gdb/doc/gdb.texinfo | 21 +
+ gdb/dwarf2read.c | 2 +-
+ gdb/elfread.c | 7 +-
+ gdb/objfiles.h | 4 +
+ gdb/python/py-objfile.c | 4 +-
+ gdb/solib-svr4.c | 50 +-
+ gdb/symfile.h | 4 +
+ gdb/testsuite/gdb.base/corefile.exp | 30 +
+ gdb/testsuite/gdb.base/new-ui-pending-input.exp | 1 +
+ gdb/testsuite/lib/gdb.exp | 10 +
+ gdb/testsuite/lib/mi-support.exp | 10 +
+ 15 files changed, 940 insertions(+), 40 deletions(-)
-Index: gdb-7.99.90.20170420/gdb/corelow.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/corelow.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/corelow.c 2017-04-20 23:00:43.358629183 +0200
-@@ -45,6 +45,10 @@
- #include "gdb_bfd.h"
- #include "completer.h"
- #include "filestuff.h"
-+#include "auxv.h"
-+#include "elf/common.h"
-+#include "gdbcmd.h"
-+#include "build-id.h"
-
- #ifndef O_LARGEFILE
- #define O_LARGEFILE 0
-@@ -266,6 +270,54 @@
- inferior_ptid = ptid; /* Yes, make it current. */
- }
-
-+static int build_id_core_loads = 1;
-+
-+static void
-+build_id_locate_exec (int from_tty)
-+{
-+ CORE_ADDR at_entry;
-+ struct bfd_build_id *build_id;
-+ char *execfilename, *debug_filename;
-+ char *build_id_filename;
-+ struct cleanup *back_to;
-+
-+ if (exec_bfd != NULL || symfile_objfile != NULL)
-+ return;
-+
-+ if (target_auxv_search (¤t_target, AT_ENTRY, &at_entry) <= 0)
-+ return;
-+
-+ build_id = build_id_addr_get (at_entry);
-+ if (build_id == NULL)
-+ return;
-+ back_to = make_cleanup (xfree, build_id);
-+
-+ /* SYMFILE_OBJFILE should refer to the main executable (not only to its
-+ separate debug info file). gcc44+ keeps .eh_frame only in the main
-+ executable without its duplicate .debug_frame in the separate debug info
-+ file - such .eh_frame would not be found if SYMFILE_OBJFILE would refer
-+ directly to the separate debug info file. */
-+
-+ execfilename = build_id_to_filename (build_id, &build_id_filename);
-+ make_cleanup (xfree, build_id_filename);
-+
-+ if (execfilename != NULL)
-+ {
-+ make_cleanup (xfree, execfilename);
-+ exec_file_attach (execfilename, from_tty);
-+ symbol_file_add_main (execfilename,
-+ symfile_add_flag (!from_tty ? 0 : SYMFILE_VERBOSE));
-+ if (symfile_objfile != NULL)
-+ symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
-+ }
-+ else
-+ debug_print_missing (_("the main executable file"), build_id_filename);
-+
-+ do_cleanups (back_to);
-+
-+ /* No automatic SOLIB_ADD as the libraries would get read twice. */
-+}
-+
- /* This routine opens and sets up the core file bfd. */
-
- static void
-@@ -402,6 +454,14 @@
- switch_to_thread (thread->ptid);
- }
-
-+ /* Find the build_id identifiers. If it gets executed after
-+ POST_CREATE_INFERIOR we would clash with asking to discard the already
-+ loaded VDSO symbols. If it gets executed before bfd_map_over_sections
-+ INFERIOR_PTID is still not set and libthread_db initialization crashes on
-+ PID == 0 in ps_pglobal_lookup. */
-+ if (build_id_core_loads != 0)
-+ build_id_locate_exec (from_tty);
-+
- post_create_inferior (&core_ops, from_tty);
-
- /* Now go through the target stack looking for threads since there
-@@ -1079,4 +1139,11 @@
- init_core_ops ();
-
- add_target_with_completer (&core_ops, filename_completer);
-+
-+ add_setshow_boolean_cmd ("build-id-core-loads", class_files,
-+ &build_id_core_loads, _("\
-+Set whether CORE-FILE loads the build-id associated files automatically."), _("\
-+Show whether CORE-FILE loads the build-id associated files automatically."),
-+ NULL, NULL, NULL,
-+ &setlist, &showlist);
- }
-Index: gdb-7.99.90.20170420/gdb/doc/gdb.texinfo
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/doc/gdb.texinfo 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/doc/gdb.texinfo 2017-04-20 23:00:43.366629228 +0200
-@@ -18987,6 +18987,27 @@
-
- @end table
-
-+You can also adjust the current verbosity of the @dfn{build id} locating.
-+
-+@table @code
-+
-+@kindex set build-id-verbose
-+@item set build-id-verbose 0
-+No additional messages are printed.
-+
-+@item set build-id-verbose 1
-+Missing separate debug filenames are printed.
-+
-+@item set build-id-verbose 2
-+Missing separate debug filenames are printed and also all the parsing of the
-+binaries to find their @dfn{build id} content is printed.
-+
-+@kindex show build-id-verbose
-+@item show build-id-verbose
-+Show the current verbosity value for the @dfn{build id} content locating.
-+
-+@end table
-+
- @cindex @code{.gnu_debuglink} sections
- @cindex debug link sections
- A debug link is a special section of the executable file named
-Index: gdb-7.99.90.20170420/gdb/solib-svr4.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/solib-svr4.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/solib-svr4.c 2017-04-20 23:00:43.367629234 +0200
-@@ -45,6 +45,7 @@
- #include "auxv.h"
- #include "gdb_bfd.h"
- #include "probe.h"
-+#include "build-id.h"
-
- static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
- static int svr4_have_link_map_offsets (void);
-@@ -1420,9 +1421,52 @@
- continue;
- }
-
-- strncpy (newobj->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
-- newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
-- strcpy (newobj->so_original_name, newobj->so_name);
-+ {
-+ struct bfd_build_id *build_id;
-+
-+ strncpy (newobj->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
-+ newobj->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
-+ /* May get overwritten below. */
-+ strcpy (newobj->so_name, newobj->so_original_name);
-+
-+ build_id = build_id_addr_get (newobj->lm_info->l_ld);
-+ if (build_id != NULL)
-+ {
-+ char *name, *build_id_filename;
-+
-+ /* Missing the build-id matching separate debug info file
-+ would be handled while SO_NAME gets loaded. */
-+ name = build_id_to_filename (build_id, &build_id_filename);
-+ if (name != NULL)
-+ {
-+ strncpy (newobj->so_name, name, SO_NAME_MAX_PATH_SIZE - 1);
-+ newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
-+ xfree (name);
-+ }
-+ else
-+ {
-+ debug_print_missing (newobj->so_name, build_id_filename);
-+
-+ /* In the case the main executable was found according to
-+ its build-id (from a core file) prevent loading
-+ a different build of a library with accidentally the
-+ same SO_NAME.
-+
-+ It suppresses bogus backtraces (and prints "??" there
-+ instead) if the on-disk files no longer match the
-+ running program version. */
-+
-+ if (symfile_objfile != NULL
-+ && (symfile_objfile->flags
-+ & OBJF_BUILD_ID_CORE_LOADED) != 0)
-+ newobj->so_name[0] = 0;
-+ }
-+
-+ xfree (build_id_filename);
-+ xfree (build_id);
-+ }
-+ }
-+
- xfree (buffer);
-
- /* If this entry has no name, or its name matches the name
-Index: gdb-7.99.90.20170420/gdb/elfread.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/elfread.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/elfread.c 2017-04-20 23:00:43.367629234 +0200
-@@ -1265,8 +1265,9 @@
- && objfile->separate_debug_objfile == NULL
- && objfile->separate_debug_objfile_backlink == NULL)
- {
-+ gdb::unique_xmalloc_ptr build_id_filename;
- gdb::unique_xmalloc_ptr debugfile
-- (find_separate_debug_file_by_buildid (objfile));
-+ (find_separate_debug_file_by_buildid (objfile, &build_id_filename));
-
- if (debugfile == NULL)
- debugfile.reset (find_separate_debug_file_by_debuglink (objfile));
-@@ -1278,6 +1279,10 @@
- symbol_file_add_separate (abfd.get (), debugfile.get (),
- symfile_flags, objfile);
- }
-+ /* Check if any separate debug info has been extracted out. */
-+ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
-+ != NULL)
-+ debug_print_missing (objfile_name (objfile), build_id_filename.get ());
- }
- }
-
-Index: gdb-7.99.90.20170420/gdb/symfile.h
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/symfile.h 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/symfile.h 2017-04-20 23:00:43.368629240 +0200
-@@ -567,6 +567,10 @@
- void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
- int need_fullname);
-
-+/* build-id support. */
-+extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
-+extern void debug_print_missing (const char *binary, const char *debug);
-+
- /* From dwarf2read.c */
-
- /* Names for a dwarf2 debugging section. The field NORMAL is the normal
-Index: gdb-7.99.90.20170420/gdb/testsuite/lib/gdb.exp
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/testsuite/lib/gdb.exp 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/testsuite/lib/gdb.exp 2017-04-20 23:00:43.369629245 +0200
-@@ -1646,6 +1646,16 @@
- warning "Couldn't set the width to 0."
- }
- }
-+ # Turn off the missing warnings as the testsuite does not expect it.
-+ send_gdb "set build-id-verbose 0\n"
-+ gdb_expect 10 {
-+ -re "$gdb_prompt $" {
-+ verbose "Disabled the missing debug infos warnings." 2
-+ }
-+ timeout {
-+ warning "Could not disable the missing debug infos warnings.."
-+ }
-+ }
- return 0
- }
-
-Index: gdb-7.99.90.20170420/gdb/testsuite/lib/mi-support.exp
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/testsuite/lib/mi-support.exp 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/testsuite/lib/mi-support.exp 2017-04-20 23:00:43.369629245 +0200
-@@ -309,6 +309,16 @@
- warning "Couldn't set the width to 0."
- }
- }
-+ # Turn off the missing warnings as the testsuite does not expect it.
-+ send_gdb "190-gdb-set build-id-verbose 0\n"
-+ gdb_expect 10 {
-+ -re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
-+ verbose "Disabled the missing debug infos warnings." 2
-+ }
-+ timeout {
-+ warning "Could not disable the missing debug infos warnings.."
-+ }
-+ }
-
- if { $separate_inferior_pty } {
- mi_create_inferior_pty
-Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.base/new-ui-pending-input.exp
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.base/new-ui-pending-input.exp 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.base/new-ui-pending-input.exp 2017-04-20 23:00:43.369629245 +0200
-@@ -62,6 +62,7 @@
- set options ""
- append options " -iex \"set height 0\""
- append options " -iex \"set width 0\""
-+ append options " -iex \"set build-id-verbose 0\""
- append options " -iex \"new-ui console $extra_tty_name\""
- append options " -ex \"b $bpline\""
- append options " -ex \"run\""
-Index: gdb-7.99.90.20170420/gdb/objfiles.h
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/objfiles.h 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/objfiles.h 2017-04-20 23:00:43.370629251 +0200
-@@ -444,6 +444,10 @@
- htab_t static_links;
- };
-
-+/* This file was loaded according to the BUILD_ID_CORE_LOADS rules. */
-+
-+#define OBJF_BUILD_ID_CORE_LOADED static_cast(1 << 12)
-+
- /* Declarations for functions defined in objfiles.c */
-
- extern struct objfile *allocate_objfile (bfd *, const char *name,
-Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.base/corefile.exp
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.base/corefile.exp 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.base/corefile.exp 2017-04-20 23:00:43.370629251 +0200
-@@ -293,3 +293,33 @@
- pass $test
- }
- }
-+
-+
-+# Test auto-loading of binary files through build-id from the core file.
-+set buildid [build_id_debug_filename_get $binfile]
-+set wholetest "binfile found by build-id"
-+if {$buildid == ""} {
-+ untested "$wholetest (binary has no build-id)"
-+} else {
-+ gdb_exit
-+ gdb_start
-+
-+ regsub {\.debug$} $buildid {} buildid
-+ set debugdir [standard_output_file ${testfile}-debugdir]
-+ file delete -force -- $debugdir
-+ file mkdir $debugdir/[file dirname $buildid]
-+ file copy $binfile $debugdir/$buildid
-+
-+ set test "show debug-file-directory"
-+ gdb_test_multiple $test $test {
-+ -re "The directory where separate debug symbols are searched for is \"(.*)\"\\.\r\n$gdb_prompt $" {
-+ set debugdir_orig $expect_out(1,string)
-+ pass $test
-+ }
-+ }
-+ gdb_test_no_output "set debug-file-directory $debugdir:$debugdir_orig" "set debug-file-directory"
-+ gdb_test "show build-id-core-loads" {Whether CORE-FILE loads the build-id associated files automatically is on\.}
-+ gdb_test "core-file $corefile" "\r\nProgram terminated with .*" "core-file without executable"
-+ gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
-+ pass $wholetest
-+}
-Index: gdb-7.99.90.20170420/gdb/build-id.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/build-id.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/build-id.c 2017-04-20 23:03:00.060399474 +0200
+diff --git a/gdb/build-id.c b/gdb/build-id.c
+index 4b2b63ecb4..11d3774d9e 100644
+--- a/gdb/build-id.c
++++ b/gdb/build-id.c
@@ -26,11 +26,67 @@
#include "objfiles.h"
#include "filenames.h"
@@ -423,7 +98,7 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
{
if (!bfd_check_format (abfd, bfd_object))
return NULL;
-@@ -42,6 +98,348 @@
+@@ -42,6 +98,348 @@ build_id_bfd_get (bfd *abfd)
return NULL;
}
@@ -772,7 +447,7 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
/* See build-id.h. */
int
-@@ -50,7 +448,7 @@
+@@ -50,7 +448,7 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
const struct bfd_build_id *found;
int retval = 0;
@@ -781,7 +456,7 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
if (found == NULL)
warning (_("File \"%s\" has no build-id, file skipped"),
-@@ -65,23 +463,54 @@
+@@ -65,23 +463,54 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
return retval;
}
@@ -843,7 +518,7 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
cause "/.build-id/..." lookups. */
-@@ -94,9 +523,12 @@
+@@ -94,9 +523,12 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
size_t debugdir_len = strlen (debugdir);
const gdb_byte *data = build_id;
size_t size = build_id_len;
@@ -857,18 +532,22 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
memcpy (link, debugdir, debugdir_len);
s = &link[debugdir_len];
-@@ -110,45 +542,290 @@
+@@ -110,52 +542,299 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
*s++ = '/';
while (size-- > 0)
s += sprintf (s, "%02x", (unsigned) *data++);
- strcpy (s, ".debug");
-+ for (seqno = 0;; seqno++)
-+ {
-+ char *s2;
+
+ if (separate_debug_file_debug)
+ printf_unfiltered (_(" Trying %s\n"), link);
- /* lrealpath() is expensive even for the usually non-existent files. */
- if (access (link, F_OK) == 0)
- filename = lrealpath (link);
++ for (seqno = 0;; seqno++)
++ {
++ char *s2;
++
+ if (seqno)
+ {
+ /* There can be multiple build-id symlinks pointing to real files
@@ -910,25 +589,17 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
+
+ if (abfd == NULL)
+ continue;
-
-- if (filename == NULL)
-- continue;
++
+ if (build_id_verify (abfd.get(), build_id_len, build_id))
+ break;
-
-- /* We expect to be silent on the non-existing files. */
-- inner = make_cleanup (xfree, filename);
-- abfd = gdb_bfd_open (filename, gnutarget, -1);
-- do_cleanups (inner);
++
+ abfd.release ();
-
-- if (abfd == NULL)
-- continue;
++
+ filename = NULL;
+ }
-- if (build_id_verify (abfd.get(), build_id_len, build_id))
-- break;
+- if (filename == NULL)
+- continue;
+ if (filename != NULL)
+ {
+ /* LINK_ALL is not used below in this non-NULL FILENAME case. */
@@ -936,22 +607,30 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
+ break;
+ }
-- abfd.release ();
+- /* We expect to be silent on the non-existing files. */
+- inner = make_cleanup (xfree, filename);
+- abfd = gdb_bfd_open (filename, gnutarget, -1);
+- do_cleanups (inner);
+ /* If the symlink has target request to install the target.
+ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing.
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
+ link0_resolved = link_resolve (link0, 0);
+ xfree (link0);
-+
+
+- if (abfd == NULL)
+- continue;
+ if (link_all == NULL)
+ link_all = link0_resolved;
+ else
+ {
+ size_t len_orig = strlen (link_all);
-+
+
+- if (build_id_verify (abfd.get(), build_id_len, build_id))
+- break;
+ link_all = (char *) xrealloc (link_all,
+ len_orig + 1 + strlen (link0_resolved) + 1);
-+
+
+- abfd.release ();
+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
+ its possible use as an argument for installation command. */
+ link_all[len_orig] = ' ';
@@ -1148,6 +827,10 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
+ build_id = build_id_bfd_shdr_get (objfile->obfd);
if (build_id != NULL)
{
+ if (separate_debug_file_debug)
+ printf_unfiltered (_("\nLooking for separate debug info (build-id) for "
+ "%s\n"), objfile_name (objfile));
+
+ char *build_id_filename_cstr = NULL;
gdb_bfd_ref_ptr abfd (build_id_to_debug_bfd (build_id->size,
- build_id->data));
@@ -1163,10 +846,11 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
+ build_id_filename_cstr = NULL;
+ }
+ }
++
/* Prevent looping on a stripped .debug file. */
if (abfd != NULL
&& filename_cmp (bfd_get_filename (abfd.get ()),
-@@ -160,3 +837,21 @@
+@@ -167,3 +846,21 @@ find_separate_debug_file_by_buildid (struct objfile *objfile)
}
return NULL;
}
@@ -1188,10 +872,10 @@ Index: gdb-7.99.90.20170420/gdb/build-id.c
+
+ observer_attach_executable_changed (debug_print_executable_changed);
+}
-Index: gdb-7.99.90.20170420/gdb/build-id.h
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/build-id.h 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/build-id.h 2017-04-20 23:00:43.371629257 +0200
+diff --git a/gdb/build-id.h b/gdb/build-id.h
+index 137d9e18c5..c90472d63a 100644
+--- a/gdb/build-id.h
++++ b/gdb/build-id.h
@@ -22,9 +22,10 @@
#include "gdb_bfd.h"
@@ -1205,7 +889,7 @@ Index: gdb-7.99.90.20170420/gdb/build-id.h
/* Return true if ABFD has NT_GNU_BUILD_ID matching the CHECK value.
Otherwise, issue a warning and return false. */
-@@ -38,13 +39,19 @@
+@@ -38,13 +39,19 @@ extern int build_id_verify (bfd *abfd,
the caller. */
extern gdb_bfd_ref_ptr build_id_to_debug_bfd (size_t build_id_len,
@@ -1227,46 +911,11 @@ Index: gdb-7.99.90.20170420/gdb/build-id.h
+ gdb::unique_xmalloc_ptr *build_id_filename_return);
#endif /* BUILD_ID_H */
-Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 23:00:43.375629279 +0200
-@@ -2671,7 +2671,7 @@
- }
-
- if (dwz_bfd == NULL)
-- dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid);
-+ dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid, NULL, 1);
-
- if (dwz_bfd == NULL)
- error (_("could not find '.gnu_debugaltlink' file for %s"),
-Index: gdb-7.99.90.20170420/gdb/python/py-objfile.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/python/py-objfile.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/python/py-objfile.c 2017-04-20 23:00:43.375629279 +0200
-@@ -137,7 +137,7 @@
-
- TRY
- {
-- build_id = build_id_bfd_get (objfile->obfd);
-+ build_id = build_id_bfd_shdr_get (objfile->obfd);
- }
- CATCH (except, RETURN_MASK_ALL)
- {
-@@ -544,7 +544,7 @@
- /* Don't return separate debug files. */
- if (objfile->separate_debug_objfile_backlink != NULL)
- continue;
-- obfd_build_id = build_id_bfd_get (objfile->obfd);
-+ obfd_build_id = build_id_bfd_shdr_get (objfile->obfd);
- if (obfd_build_id == NULL)
- continue;
- if (objfpy_build_id_matches (obfd_build_id, build_id))
-Index: gdb-7.99.90.20170420/gdb/coffread.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/coffread.c 2017-04-20 23:00:35.415584426 +0200
-+++ gdb-7.99.90.20170420/gdb/coffread.c 2017-04-20 23:00:43.376629285 +0200
-@@ -734,7 +734,7 @@
+diff --git a/gdb/coffread.c b/gdb/coffread.c
+index 98f6eec820..f22b2b7df1 100644
+--- a/gdb/coffread.c
++++ b/gdb/coffread.c
+@@ -735,7 +735,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
{
char *debugfile;
@@ -1275,3 +924,386 @@ Index: gdb-7.99.90.20170420/gdb/coffread.c
if (debugfile == NULL)
debugfile = find_separate_debug_file_by_debuglink (objfile);
+diff --git a/gdb/corelow.c b/gdb/corelow.c
+index 68009054a0..b6e9ddc652 100644
+--- a/gdb/corelow.c
++++ b/gdb/corelow.c
+@@ -45,6 +45,10 @@
+ #include "gdb_bfd.h"
+ #include "completer.h"
+ #include "filestuff.h"
++#include "auxv.h"
++#include "elf/common.h"
++#include "gdbcmd.h"
++#include "build-id.h"
+
+ #ifndef O_LARGEFILE
+ #define O_LARGEFILE 0
+@@ -264,6 +268,54 @@ add_to_thread_list (bfd *abfd, asection *asect, void *reg_sect_arg)
+ inferior_ptid = ptid; /* Yes, make it current. */
+ }
+
++static int build_id_core_loads = 1;
++
++static void
++build_id_locate_exec (int from_tty)
++{
++ CORE_ADDR at_entry;
++ struct bfd_build_id *build_id;
++ char *execfilename, *debug_filename;
++ char *build_id_filename;
++ struct cleanup *back_to;
++
++ if (exec_bfd != NULL || symfile_objfile != NULL)
++ return;
++
++ if (target_auxv_search (¤t_target, AT_ENTRY, &at_entry) <= 0)
++ return;
++
++ build_id = build_id_addr_get (at_entry);
++ if (build_id == NULL)
++ return;
++ back_to = make_cleanup (xfree, build_id);
++
++ /* SYMFILE_OBJFILE should refer to the main executable (not only to its
++ separate debug info file). gcc44+ keeps .eh_frame only in the main
++ executable without its duplicate .debug_frame in the separate debug info
++ file - such .eh_frame would not be found if SYMFILE_OBJFILE would refer
++ directly to the separate debug info file. */
++
++ execfilename = build_id_to_filename (build_id, &build_id_filename);
++ make_cleanup (xfree, build_id_filename);
++
++ if (execfilename != NULL)
++ {
++ make_cleanup (xfree, execfilename);
++ exec_file_attach (execfilename, from_tty);
++ symbol_file_add_main (execfilename,
++ symfile_add_flag (!from_tty ? 0 : SYMFILE_VERBOSE));
++ if (symfile_objfile != NULL)
++ symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
++ }
++ else
++ debug_print_missing (_("the main executable file"), build_id_filename);
++
++ do_cleanups (back_to);
++
++ /* No automatic SOLIB_ADD as the libraries would get read twice. */
++}
++
+ /* This routine opens and sets up the core file bfd. */
+
+ static void
+@@ -392,6 +444,14 @@ core_open (const char *arg, int from_tty)
+ switch_to_thread (thread->ptid);
+ }
+
++ /* Find the build_id identifiers. If it gets executed after
++ POST_CREATE_INFERIOR we would clash with asking to discard the already
++ loaded VDSO symbols. If it gets executed before bfd_map_over_sections
++ INFERIOR_PTID is still not set and libthread_db initialization crashes on
++ PID == 0 in ps_pglobal_lookup. */
++ if (build_id_core_loads != 0)
++ build_id_locate_exec (from_tty);
++
+ post_create_inferior (&core_ops, from_tty);
+
+ /* Now go through the target stack looking for threads since there
+@@ -1041,4 +1101,11 @@ _initialize_corelow (void)
+ init_core_ops ();
+
+ add_target_with_completer (&core_ops, filename_completer);
++
++ add_setshow_boolean_cmd ("build-id-core-loads", class_files,
++ &build_id_core_loads, _("\
++Set whether CORE-FILE loads the build-id associated files automatically."), _("\
++Show whether CORE-FILE loads the build-id associated files automatically."),
++ NULL, NULL, NULL,
++ &setlist, &showlist);
+ }
+diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
+index 005fed89c5..d181aeb1c0 100644
+--- a/gdb/doc/gdb.texinfo
++++ b/gdb/doc/gdb.texinfo
+@@ -19271,6 +19271,27 @@ information files.
+
+ @end table
+
++You can also adjust the current verbosity of the @dfn{build id} locating.
++
++@table @code
++
++@kindex set build-id-verbose
++@item set build-id-verbose 0
++No additional messages are printed.
++
++@item set build-id-verbose 1
++Missing separate debug filenames are printed.
++
++@item set build-id-verbose 2
++Missing separate debug filenames are printed and also all the parsing of the
++binaries to find their @dfn{build id} content is printed.
++
++@kindex show build-id-verbose
++@item show build-id-verbose
++Show the current verbosity value for the @dfn{build id} content locating.
++
++@end table
++
+ @cindex @code{.gnu_debuglink} sections
+ @cindex debug link sections
+ A debug link is a special section of the executable file named
+diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+index fdd1d9d688..ef624ada33 100644
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -2787,7 +2787,7 @@ dwarf2_get_dwz_file (void)
+ }
+
+ if (dwz_bfd == NULL)
+- dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid);
++ dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid, NULL, 1);
+
+ if (dwz_bfd == NULL)
+ error (_("could not find '.gnu_debugaltlink' file for %s"),
+diff --git a/gdb/elfread.c b/gdb/elfread.c
+index b806ca3b40..9784a44b5a 100644
+--- a/gdb/elfread.c
++++ b/gdb/elfread.c
+@@ -1248,8 +1248,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
+ && objfile->separate_debug_objfile == NULL
+ && objfile->separate_debug_objfile_backlink == NULL)
+ {
++ gdb::unique_xmalloc_ptr build_id_filename;
+ gdb::unique_xmalloc_ptr debugfile
+- (find_separate_debug_file_by_buildid (objfile));
++ (find_separate_debug_file_by_buildid (objfile, &build_id_filename));
+
+ if (debugfile == NULL)
+ debugfile.reset (find_separate_debug_file_by_debuglink (objfile));
+@@ -1261,6 +1262,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
+ symbol_file_add_separate (abfd.get (), debugfile.get (),
+ symfile_flags, objfile);
+ }
++ /* Check if any separate debug info has been extracted out. */
++ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
++ != NULL)
++ debug_print_missing (objfile_name (objfile), build_id_filename.get ());
+ }
+ }
+
+diff --git a/gdb/objfiles.h b/gdb/objfiles.h
+index 62bd45400d..81cf0f542b 100644
+--- a/gdb/objfiles.h
++++ b/gdb/objfiles.h
+@@ -470,6 +470,10 @@ struct objfile
+ htab_t static_links {};
+ };
+
++/* This file was loaded according to the BUILD_ID_CORE_LOADS rules. */
++
++#define OBJF_BUILD_ID_CORE_LOADED static_cast(1 << 12)
++
+ /* Declarations for functions defined in objfiles.c */
+
+ extern struct gdbarch *get_objfile_arch (const struct objfile *);
+diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
+index 52f2e1f792..418086fa8b 100644
+--- a/gdb/python/py-objfile.c
++++ b/gdb/python/py-objfile.c
+@@ -137,7 +137,7 @@ objfpy_get_build_id (PyObject *self, void *closure)
+
+ TRY
+ {
+- build_id = build_id_bfd_get (objfile->obfd);
++ build_id = build_id_bfd_shdr_get (objfile->obfd);
+ }
+ CATCH (except, RETURN_MASK_ALL)
+ {
+@@ -544,7 +544,7 @@ objfpy_lookup_objfile_by_build_id (const char *build_id)
+ /* Don't return separate debug files. */
+ if (objfile->separate_debug_objfile_backlink != NULL)
+ continue;
+- obfd_build_id = build_id_bfd_get (objfile->obfd);
++ obfd_build_id = build_id_bfd_shdr_get (objfile->obfd);
+ if (obfd_build_id == NULL)
+ continue;
+ if (objfpy_build_id_matches (obfd_build_id, build_id))
+diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
+index 6e834fb5d7..08788092dc 100644
+--- a/gdb/solib-svr4.c
++++ b/gdb/solib-svr4.c
+@@ -45,6 +45,7 @@
+ #include "auxv.h"
+ #include "gdb_bfd.h"
+ #include "probe.h"
++#include "build-id.h"
+
+ static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
+ static int svr4_have_link_map_offsets (void);
+@@ -1385,9 +1386,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
+ continue;
+ }
+
+- strncpy (newobj->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
+- newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
+- strcpy (newobj->so_original_name, newobj->so_name);
++ {
++ struct bfd_build_id *build_id;
++
++ strncpy (newobj->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
++ newobj->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
++ /* May get overwritten below. */
++ strcpy (newobj->so_name, newobj->so_original_name);
++
++ build_id = build_id_addr_get (newobj->lm_info->l_ld);
++ if (build_id != NULL)
++ {
++ char *name, *build_id_filename;
++
++ /* Missing the build-id matching separate debug info file
++ would be handled while SO_NAME gets loaded. */
++ name = build_id_to_filename (build_id, &build_id_filename);
++ if (name != NULL)
++ {
++ strncpy (newobj->so_name, name, SO_NAME_MAX_PATH_SIZE - 1);
++ newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
++ xfree (name);
++ }
++ else
++ {
++ debug_print_missing (newobj->so_name, build_id_filename);
++
++ /* In the case the main executable was found according to
++ its build-id (from a core file) prevent loading
++ a different build of a library with accidentally the
++ same SO_NAME.
++
++ It suppresses bogus backtraces (and prints "??" there
++ instead) if the on-disk files no longer match the
++ running program version. */
++
++ if (symfile_objfile != NULL
++ && (symfile_objfile->flags
++ & OBJF_BUILD_ID_CORE_LOADED) != 0)
++ newobj->so_name[0] = 0;
++ }
++
++ xfree (build_id_filename);
++ xfree (build_id);
++ }
++ }
++
+ xfree (buffer);
+
+ /* If this entry has no name, or its name matches the name
+diff --git a/gdb/symfile.h b/gdb/symfile.h
+index fa38abf496..45bbe0a229 100644
+--- a/gdb/symfile.h
++++ b/gdb/symfile.h
+@@ -543,6 +543,10 @@ void expand_symtabs_matching
+ void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
+ int need_fullname);
+
++/* build-id support. */
++extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
++extern void debug_print_missing (const char *binary, const char *debug);
++
+ /* From dwarf2read.c */
+
+ /* Names for a dwarf2 debugging section. The field NORMAL is the normal
+diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefile.exp
+index 9be4aef7f4..54cb5d0d42 100644
+--- a/gdb/testsuite/gdb.base/corefile.exp
++++ b/gdb/testsuite/gdb.base/corefile.exp
+@@ -311,3 +311,33 @@ gdb_test_multiple "core-file $corefile" $test {
+ pass $test
+ }
+ }
++
++
++# Test auto-loading of binary files through build-id from the core file.
++set buildid [build_id_debug_filename_get $binfile]
++set wholetest "binfile found by build-id"
++if {$buildid == ""} {
++ untested "$wholetest (binary has no build-id)"
++} else {
++ gdb_exit
++ gdb_start
++
++ regsub {\.debug$} $buildid {} buildid
++ set debugdir [standard_output_file ${testfile}-debugdir]
++ file delete -force -- $debugdir
++ file mkdir $debugdir/[file dirname $buildid]
++ file copy $binfile $debugdir/$buildid
++
++ set test "show debug-file-directory"
++ gdb_test_multiple $test $test {
++ -re "The directory where separate debug symbols are searched for is \"(.*)\"\\.\r\n$gdb_prompt $" {
++ set debugdir_orig $expect_out(1,string)
++ pass $test
++ }
++ }
++ gdb_test_no_output "set debug-file-directory $debugdir:$debugdir_orig" "set debug-file-directory"
++ gdb_test "show build-id-core-loads" {Whether CORE-FILE loads the build-id associated files automatically is on\.}
++ gdb_test "core-file $corefile" "\r\nProgram terminated with .*" "core-file without executable"
++ gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
++ pass $wholetest
++}
+diff --git a/gdb/testsuite/gdb.base/new-ui-pending-input.exp b/gdb/testsuite/gdb.base/new-ui-pending-input.exp
+index 37d6e4a670..38706ed341 100644
+--- a/gdb/testsuite/gdb.base/new-ui-pending-input.exp
++++ b/gdb/testsuite/gdb.base/new-ui-pending-input.exp
+@@ -62,6 +62,7 @@ proc test_command_line_new_ui_pending_input {} {
+ set options ""
+ append options " -iex \"set height 0\""
+ append options " -iex \"set width 0\""
++ append options " -iex \"set build-id-verbose 0\""
+ append options " -iex \"new-ui console $extra_tty_name\""
+ append options " -ex \"b $bpline\""
+ append options " -ex \"run\""
+diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
+index 018367c161..ff8218bf3d 100644
+--- a/gdb/testsuite/lib/gdb.exp
++++ b/gdb/testsuite/lib/gdb.exp
+@@ -1703,6 +1703,16 @@ proc default_gdb_start { } {
+ warning "Couldn't set the width to 0."
+ }
+ }
++ # Turn off the missing warnings as the testsuite does not expect it.
++ send_gdb "set build-id-verbose 0\n"
++ gdb_expect 10 {
++ -re "$gdb_prompt $" {
++ verbose "Disabled the missing debug infos warnings." 2
++ }
++ timeout {
++ warning "Could not disable the missing debug infos warnings.."
++ }
++ }
+ return 0
+ }
+
+diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
+index 5682b7e2e1..60e4f7db55 100644
+--- a/gdb/testsuite/lib/mi-support.exp
++++ b/gdb/testsuite/lib/mi-support.exp
+@@ -309,6 +309,16 @@ proc default_mi_gdb_start { args } {
+ warning "Couldn't set the width to 0."
+ }
+ }
++ # Turn off the missing warnings as the testsuite does not expect it.
++ send_gdb "190-gdb-set build-id-verbose 0\n"
++ gdb_expect 10 {
++ -re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
++ verbose "Disabled the missing debug infos warnings." 2
++ }
++ timeout {
++ warning "Could not disable the missing debug infos warnings.."
++ }
++ }
+
+ if { $separate_inferior_pty } {
+ mi_create_inferior_pty
+--
+2.14.3
+
diff --git a/gdb-6.6-bz229517-gcore-without-terminal.patch b/gdb-6.6-bz229517-gcore-without-terminal.patch
index c294c41..670bc14 100644
--- a/gdb-6.6-bz229517-gcore-without-terminal.patch
+++ b/gdb-6.6-bz229517-gcore-without-terminal.patch
@@ -1,9 +1,12 @@
+From 8b7dd4ff0fcfb1161143fb39f36355333674f904 Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-bz229517-gcore-without-terminal.patch
FileName: gdb-6.6-bz229517-gcore-without-terminal.patch
+;; Allow running `/usr/bin/gcore' with provided but inaccessible tty (BZ 229517).
+;;=fedoratest
2007-04-22 Jan Kratochvil
@@ -12,12 +15,18 @@ FileName: gdb-6.6-bz229517-gcore-without-terminal.patch
2007-04-22 Jan Kratochvil
* gdb.base/gcorebg.exp, gdb.base/gcorebg.c: New files.
+---
+ gdb/testsuite/gdb.base/gcorebg.c | 49 ++++++++++++++++
+ gdb/testsuite/gdb.base/gcorebg.exp | 113 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 162 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/gcorebg.c
+ create mode 100644 gdb/testsuite/gdb.base/gcorebg.exp
-
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcorebg.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcorebg.c 2016-02-16 10:44:48.998527259 +0100
+diff --git a/gdb/testsuite/gdb.base/gcorebg.c b/gdb/testsuite/gdb.base/gcorebg.c
+new file mode 100644
+index 0000000000..427ebe9b4f
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcorebg.c
@@ -0,0 +1,49 @@
+#include
+#include
@@ -68,10 +77,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcorebg.c
+
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcorebg.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcorebg.exp 2016-02-16 10:44:48.999527265 +0100
+diff --git a/gdb/testsuite/gdb.base/gcorebg.exp b/gdb/testsuite/gdb.base/gcorebg.exp
+new file mode 100644
+index 0000000000..a5471ba5df
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gcorebg.exp
@@ -0,0 +1,113 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -186,3 +196,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/gcorebg.exp
+
+set env(PATH) $oldpath
+remote_file target delete "./gdb"
+--
+2.14.3
+
diff --git a/gdb-6.6-bz230000-power6-disassembly-test.patch b/gdb-6.6-bz230000-power6-disassembly-test.patch
index dc0c101..7a87c0e 100644
--- a/gdb-6.6-bz230000-power6-disassembly-test.patch
+++ b/gdb-6.6-bz230000-power6-disassembly-test.patch
@@ -1,21 +1,30 @@
+From 2027832732bb1dba560e17348c8df2fc09b6c698 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-bz230000-power6-disassembly-test.patch
FileName: gdb-6.6-bz230000-power6-disassembly-test.patch
+;; Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
+;;=fedoratest
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=230000
The original testcase
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=230000#c1
requires too recent GCC.
+---
+ gdb/testsuite/gdb.arch/powerpc-power6.exp | 54 +++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.arch/powerpc-power6.s | 16 +++++++++
+ 2 files changed, 70 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-power6.exp
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-power6.s
-
-Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.exp 2013-02-25 14:31:06.658827177 +0100
+diff --git a/gdb/testsuite/gdb.arch/powerpc-power6.exp b/gdb/testsuite/gdb.arch/powerpc-power6.exp
+new file mode 100644
+index 0000000000..082a4b7802
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/powerpc-power6.exp
@@ -0,0 +1,54 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -71,10 +80,11 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.exp
+gdb_test "disass func" ":\tddivq *f0,f2,f0\r\n.*" "Power6 disassembly ddivq"
+gdb_test "disass func" ":\tdcmpu *cr1,f2,f1\r\n.*" "Power6 disassembly dcmpu"
+gdb_test "disass func" ":\tdcmpuq *cr1,f2,f0\r\n.*" "Power6 disassembly dcmpuq"
-Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.s
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.s 2013-02-25 14:31:06.659827178 +0100
+diff --git a/gdb/testsuite/gdb.arch/powerpc-power6.s b/gdb/testsuite/gdb.arch/powerpc-power6.s
+new file mode 100644
+index 0000000000..6694b237ab
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/powerpc-power6.s
@@ -0,0 +1,16 @@
+ .text
+ .globl func
@@ -92,3 +102,6 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.s
+ .long 0xfc020444 /* ddivq f0,f2,f0 */
+ .long 0xec820d04 /* dcmpu cr1,f2,f1 */
+ .long 0xfc820504 /* dcmpuq cr1,f2,f0 */
+--
+2.14.3
+
diff --git a/gdb-6.6-bz235197-fork-detach-info.patch b/gdb-6.6-bz235197-fork-detach-info.patch
index 40baf00..ae672d2 100644
--- a/gdb-6.6-bz235197-fork-detach-info.patch
+++ b/gdb-6.6-bz235197-fork-detach-info.patch
@@ -1,19 +1,66 @@
+From 57e6b14abc3acde3321011b12a3ba04483119abd Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-bz235197-fork-detach-info.patch
FileName: gdb-6.6-bz235197-fork-detach-info.patch
+;; Notify user of a child forked process being detached (BZ 235197).
+;;=push+jan: This is more about discussion if/what should be printed.
2008-03-01 Jan Kratochvil
Port to GDB-6.8pre.
Remove the `[' character from the GDB-6.8 default message.
+---
+ gdb/infrun.c | 2 +-
+ gdb/testsuite/gdb.base/catch-syscall.exp | 4 +--
+ gdb/testsuite/gdb.base/fork-detach.c | 57 ++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/fork-detach.exp | 36 ++++++++++++++++++++
+ 4 files changed, 96 insertions(+), 3 deletions(-)
+ create mode 100644 gdb/testsuite/gdb.base/fork-detach.c
+ create mode 100644 gdb/testsuite/gdb.base/fork-detach.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/fork-detach.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/fork-detach.c 2016-02-15 23:25:36.686600598 +0100
+diff --git a/gdb/infrun.c b/gdb/infrun.c
+index d7df3c7d57..a8a26fc36d 100644
+--- a/gdb/infrun.c
++++ b/gdb/infrun.c
+@@ -461,7 +461,7 @@ holding the child stopped. Try \"set detach-on-fork\" or \
+ remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
+ }
+
+- if (info_verbose || debug_infrun)
++ if (1 /* Fedora Bug 235197 */ || info_verbose || debug_infrun)
+ {
+ /* Ensure that we have a process ptid. */
+ ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid));
+diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
+index 595ccbeae0..c9dbc3aba2 100644
+--- a/gdb/testsuite/gdb.base/catch-syscall.exp
++++ b/gdb/testsuite/gdb.base/catch-syscall.exp
+@@ -179,7 +179,7 @@ proc check_for_program_end {} {
+ # Deleting the catchpoints
+ delete_breakpoints
+
+- gdb_continue_to_end
++ gdb_continue_to_end "" continue 1
+ }
+
+ proc test_catch_syscall_without_args {} {
+@@ -250,7 +250,7 @@ proc test_catch_syscall_with_wrong_args {} {
+ # If it doesn't, everything is right (since we don't have
+ # a syscall named "mlock" in it). Otherwise, this is a failure.
+ set thistest "catch syscall with unused syscall ($syscall_name)"
+- gdb_continue_to_end $thistest
++ gdb_continue_to_end $thistest continue 1
+ }
+ }
+
+diff --git a/gdb/testsuite/gdb.base/fork-detach.c b/gdb/testsuite/gdb.base/fork-detach.c
+new file mode 100644
+index 0000000000..0ba8f465f3
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/fork-detach.c
@@ -0,0 +1,57 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -72,10 +119,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/fork-detach.c
+ }
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/fork-detach.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/fork-detach.exp 2016-02-15 23:27:55.792588265 +0100
+diff --git a/gdb/testsuite/gdb.base/fork-detach.exp b/gdb/testsuite/gdb.base/fork-detach.exp
+new file mode 100644
+index 0000000000..1f1fcef6c4
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/fork-detach.exp
@@ -0,0 +1,36 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -113,38 +161,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/fork-detach.exp
+gdb_test "" \
+ "Detaching after fork from child process.*\\\[Inferior .* exited normally\\\]" \
+ "Info message caught"
-Index: gdb-7.10.90.20160211/gdb/infrun.c
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/infrun.c 2016-02-15 23:25:01.432350289 +0100
-+++ gdb-7.10.90.20160211/gdb/infrun.c 2016-02-15 23:27:49.274541986 +0100
-@@ -478,7 +478,7 @@
- remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
- }
-
-- if (info_verbose || debug_infrun)
-+ if (1 /* Fedora Bug 235197 */ || info_verbose || debug_infrun)
- {
- /* Ensure that we have a process ptid. */
- ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid));
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/catch-syscall.exp
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/testsuite/gdb.base/catch-syscall.exp 2016-02-15 23:25:01.432350289 +0100
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/catch-syscall.exp 2016-02-15 23:25:36.689600619 +0100
-@@ -165,7 +165,7 @@
- # Deleting the catchpoints
- delete_breakpoints
-
-- gdb_continue_to_end
-+ gdb_continue_to_end "" continue 1
- }
-
- proc test_catch_syscall_without_args {} {
-@@ -236,7 +236,7 @@
- # If it doesn't, everything is right (since we don't have
- # a syscall named "mlock" in it). Otherwise, this is a failure.
- set thistest "catch syscall with unused syscall ($syscall_name)"
-- gdb_continue_to_end $thistest
-+ gdb_continue_to_end $thistest continue 1
- }
- }
-
+--
+2.14.3
+
diff --git a/gdb-6.6-bz237572-ppc-atomic-sequence-test.patch b/gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
index 0c342cf..e1cc690 100644
--- a/gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
+++ b/gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
@@ -1,19 +1,29 @@
+From 7413553bcc803fd6c9ac1d647df2e4f87214a699 Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
FileName: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
+;; Support for stepping over PPC atomic instruction sequences (BZ 237572).
+;;=fedoratest
2007-06-25 Jan Kratochvil
* gdb.threads/atomic-seq-threaded.c,
gdb.threads/atomic-seq-threaded.exp: New files.
+---
+ gdb/testsuite/gdb.threads/atomic-seq-threaded.c | 171 ++++++++++++++++++++++
+ gdb/testsuite/gdb.threads/atomic-seq-threaded.exp | 84 +++++++++++
+ 2 files changed, 255 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.threads/atomic-seq-threaded.c
+ create mode 100644 gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.c 2008-12-08 22:27:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.threads/atomic-seq-threaded.c b/gdb/testsuite/gdb.threads/atomic-seq-threaded.c
+new file mode 100644
+index 0000000000..04f998bfa6
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/atomic-seq-threaded.c
@@ -0,0 +1,171 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -186,10 +196,11 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.c
+
+ return 0; /* _exit_ */
+}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp 2008-12-08 22:31:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp b/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
+new file mode 100644
+index 0000000000..eb49db506e
+--- /dev/null
++++ b/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
@@ -0,0 +1,84 @@
+# atomic-seq-threaded.exp -- Test case for stepping over RISC atomic code seqs.
+# This variant testcases the code for stepping another thread while skipping
@@ -275,3 +286,6 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/atomic-seq-threaded.exp
+gdb_test "c" \
+ ".*Program exited normally\\..*" \
+ "run till program exit"
+--
+2.14.3
+
diff --git a/gdb-6.6-scheduler_locking-step-is-default.patch b/gdb-6.6-scheduler_locking-step-is-default.patch
index d1bb3a1..78e3cd9 100644
--- a/gdb-6.6-scheduler_locking-step-is-default.patch
+++ b/gdb-6.6-scheduler_locking-step-is-default.patch
@@ -1,15 +1,25 @@
+From 0bba7203685fef8c5c19b8c9f548611b78138f1a Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-scheduler_locking-step-is-default.patch
FileName: gdb-6.6-scheduler_locking-step-is-default.patch
+;; Make upstream `set scheduler-locking step' as default.
+;;=push+jan: How much is scheduler-locking relevant after non-stop?
+---
+ gdb/infrun.c | 2 +-
+ gdb/testsuite/gdb.mi/mi-cli.exp | 2 +-
+ gdb/testsuite/gdb.mi/mi-console.exp | 3 +++
+ gdb/testsuite/gdb.mi/mi-logging.exp | 4 ++--
+ gdb/testsuite/gdb.opt/inline-cmds.exp | 2 +-
+ 5 files changed, 8 insertions(+), 5 deletions(-)
-Index: gdb-7.12.50.20170207/gdb/infrun.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/infrun.c 2017-02-07 21:07:40.321202448 +0100
-+++ gdb-7.12.50.20170207/gdb/infrun.c 2017-02-07 21:07:42.680220365 +0100
-@@ -2218,7 +2218,7 @@
+diff --git a/gdb/infrun.c b/gdb/infrun.c
+index a8a26fc36d..db742f7398 100644
+--- a/gdb/infrun.c
++++ b/gdb/infrun.c
+@@ -2202,7 +2202,7 @@ static const char *const scheduler_enums[] = {
schedlock_replay,
NULL
};
@@ -18,11 +28,11 @@ Index: gdb-7.12.50.20170207/gdb/infrun.c
static void
show_scheduler_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-cli.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2017-02-07 21:07:40.322202455 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-cli.exp 2017-02-07 21:07:42.680220365 +0100
-@@ -199,7 +199,7 @@
+diff --git a/gdb/testsuite/gdb.mi/mi-cli.exp b/gdb/testsuite/gdb.mi/mi-cli.exp
+index 3a9e1c354f..0f398276e9 100644
+--- a/gdb/testsuite/gdb.mi/mi-cli.exp
++++ b/gdb/testsuite/gdb.mi/mi-cli.exp
+@@ -199,7 +199,7 @@ mi_expect_stop "breakpoint-hit" "main" "" ".*basics.c" \
# Test that the token is output even for CLI commands
# Also test that *stopped includes frame information.
mi_gdb_test "34 next" \
@@ -31,33 +41,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-cli.exp
"34 next: run"
# Test that the new current source line is output to the console
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-logging.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2017-02-07 21:07:42.681220372 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-logging.exp 2017-02-07 21:09:36.950088269 +0100
-@@ -53,7 +53,7 @@
-
- set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
-
--if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
-+if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
- pass "log file contents"
- } else {
- fail "log file contents"
-@@ -76,7 +76,7 @@
- set logcontent [read $chan]
- close $chan
-
--if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
-+if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
- pass "redirect log file contents"
- } else {
- fail "redirect log file contents"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-console.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.mi/mi-console.exp 2017-02-07 21:07:40.323202463 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-console.exp 2017-02-07 21:07:42.681220372 +0100
-@@ -60,6 +60,9 @@
+diff --git a/gdb/testsuite/gdb.mi/mi-console.exp b/gdb/testsuite/gdb.mi/mi-console.exp
+index ae99c93b8a..378a2749e4 100644
+--- a/gdb/testsuite/gdb.mi/mi-console.exp
++++ b/gdb/testsuite/gdb.mi/mi-console.exp
+@@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
mi_run_to_main
@@ -67,11 +55,33 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi-console.exp
# The output we get from the target depends on how it is hosted. If
# we are semihosted (e.g., the sim or a remote target that supports
# the File I/O remote protocol extension), we see the target I/O
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/inline-cmds.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2017-02-07 21:07:40.323202463 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/inline-cmds.exp 2017-02-07 21:07:42.681220372 +0100
-@@ -331,7 +331,7 @@
+diff --git a/gdb/testsuite/gdb.mi/mi-logging.exp b/gdb/testsuite/gdb.mi/mi-logging.exp
+index 07eaff90d1..ae1a0c1b41 100644
+--- a/gdb/testsuite/gdb.mi/mi-logging.exp
++++ b/gdb/testsuite/gdb.mi/mi-logging.exp
+@@ -53,7 +53,7 @@ close $chan
+
+ set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
+
+-if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
++if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
+ pass "log file contents"
+ } else {
+ fail "log file contents"
+@@ -76,7 +76,7 @@ set chan [open $milogfile]
+ set logcontent [read $chan]
+ close $chan
+
+-if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
++if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"1\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
+ pass "redirect log file contents"
+ } else {
+ fail "redirect log file contents"
+diff --git a/gdb/testsuite/gdb.opt/inline-cmds.exp b/gdb/testsuite/gdb.opt/inline-cmds.exp
+index 8bd92c2d59..e69f3d4bbf 100644
+--- a/gdb/testsuite/gdb.opt/inline-cmds.exp
++++ b/gdb/testsuite/gdb.opt/inline-cmds.exp
+@@ -331,7 +331,7 @@ proc mi_cli_step {cli_output_re message} {
send_gdb "interpreter-exec console \"step\"\n"
gdb_expect {
@@ -80,3 +90,6 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/inline-cmds.exp
pass $message
}
timeout {
+--
+2.14.3
+
diff --git a/gdb-6.6-testsuite-timeouts.patch b/gdb-6.6-testsuite-timeouts.patch
index e36bda5..63924c5 100644
--- a/gdb-6.6-testsuite-timeouts.patch
+++ b/gdb-6.6-testsuite-timeouts.patch
@@ -1,15 +1,22 @@
+From c706d41119b6e8ff8414a56f7528e8ec5317ebe8 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.6-testsuite-timeouts.patch
FileName: gdb-6.6-testsuite-timeouts.patch
+;; Avoid too long timeouts on failing cases of "annota1.exp annota3.exp".
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/annota1.exp | 2 ++
+ gdb/testsuite/gdb.base/annota3.exp | 2 ++
+ 2 files changed, 4 insertions(+)
-Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp
-===================================================================
---- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:26.559936258 +0200
-+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:56.590976418 +0200
-@@ -41,6 +41,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
+diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp
+index bb3dc2ffae..7080f264fc 100644
+--- a/gdb/testsuite/gdb.base/annota1.exp
++++ b/gdb/testsuite/gdb.base/annota1.exp
+@@ -39,6 +39,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
clean_restart ${binfile}
@@ -18,11 +25,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp
# The commands we test here produce many lines of output; disable "press
# to continue" prompts.
gdb_test_no_output "set height 0"
-Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp
-===================================================================
---- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:23:26.560936259 +0200
-+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:24:11.654996267 +0200
-@@ -40,6 +40,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
+diff --git a/gdb/testsuite/gdb.base/annota3.exp b/gdb/testsuite/gdb.base/annota3.exp
+index 5a971f0018..0ee5c355db 100644
+--- a/gdb/testsuite/gdb.base/annota3.exp
++++ b/gdb/testsuite/gdb.base/annota3.exp
+@@ -38,6 +38,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
clean_restart ${binfile}
@@ -31,3 +38,6 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp
# The commands we test here produce many lines of output; disable "press
# to continue" prompts.
gdb_test_no_output "set height 0"
+--
+2.14.3
+
diff --git a/gdb-6.6-threads-static-test.patch b/gdb-6.6-threads-static-test.patch
deleted file mode 100644
index 9de8587..0000000
--- a/gdb-6.6-threads-static-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Fedora GDB patches
-Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: gdb-6.6-threads-static-test.patch
-
-FileName: gdb-6.6-threads-static-test.patch
-
-
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.threads/staticthreads.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.threads/staticthreads.exp 2017-02-26 17:24:48.392316045 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.threads/staticthreads.exp 2017-02-26 17:25:38.649677595 +0100
-@@ -41,6 +41,13 @@
- # See if the static multi-threaded program runs.
-
- runto_main
-+
-+# See if we get excessive LWP there (patched glibc with unpatched GDB):
-+# * 2 Thread 135661664 (LWP 3856) main () at threadloop.c:41
-+# 1 process 3856 main () at threadloop.c:41
-+
-+gdb_test "info threads" "^info threads\r\n\[ \t\]*Id\[ \t\]+Target Id\[ \t\]+Frame\[ \t\]*\r\n\[^\r\n\]* Thread \[^\r\n\]*" "info threads on start"
-+
- gdb_test "break sem_post"
- set test "continue to main's call of sem_post"
- gdb_test_multiple "continue" "$test" {
diff --git a/gdb-6.7-charsign-test.patch b/gdb-6.7-charsign-test.patch
index 09bd923..d787012 100644
--- a/gdb-6.7-charsign-test.patch
+++ b/gdb-6.7-charsign-test.patch
@@ -1,9 +1,13 @@
+From 77814ab46a0b77a45a68f2fefe300ebc897f0323 Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.7-charsign-test.patch
FileName: gdb-6.7-charsign-test.patch
+;; Fix displaying of numeric char arrays as strings (BZ 224128).
+;;=fedoratest: But it is failing anyway, one should check the behavior more.
+
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=224128
2007-01-25 Jan Kratochvil
@@ -15,11 +19,18 @@ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=224128
Port to GDB-6.7 - only the testcase left, patch has been reverted,
char-vectors restricted.
+---
+ gdb/testsuite/gdb.base/charsign.c | 37 ++++++++++++++++++++++
+ gdb/testsuite/gdb.base/charsign.exp | 63 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/charsign.c
+ create mode 100644 gdb/testsuite/gdb.base/charsign.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/charsign.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/charsign.c 2016-02-15 23:26:06.429811778 +0100
+diff --git a/gdb/testsuite/gdb.base/charsign.c b/gdb/testsuite/gdb.base/charsign.c
+new file mode 100644
+index 0000000000..41d175ff9d
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/charsign.c
@@ -0,0 +1,37 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -58,10 +69,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/charsign.c
+char_n n_typed[]="A";
+char_s s_typed[]="A";
+char_u u_typed[]="A";
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/charsign.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/charsign.exp 2016-02-15 23:26:12.409854237 +0100
+diff --git a/gdb/testsuite/gdb.base/charsign.exp b/gdb/testsuite/gdb.base/charsign.exp
+new file mode 100644
+index 0000000000..b5fa580490
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/charsign.exp
@@ -0,0 +1,63 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -126,3 +138,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/charsign.exp
+do_test {}
+do_test {-fsigned-char}
+do_test {-funsigned-char}
+--
+2.14.3
+
diff --git a/gdb-6.7-ppc-clobbered-registers-O2-test.patch b/gdb-6.7-ppc-clobbered-registers-O2-test.patch
index eb36aa4..24c16a8 100644
--- a/gdb-6.7-ppc-clobbered-registers-O2-test.patch
+++ b/gdb-6.7-ppc-clobbered-registers-O2-test.patch
@@ -1,9 +1,12 @@
+From e1940695db0e185ff9e6696aecae57510f93d09a Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.7-ppc-clobbered-registers-O2-test.patch
FileName: gdb-6.7-ppc-clobbered-registers-O2-test.patch
+;; Test PPC hiding of call-volatile parameter register.
+;;=fedoratest
2007-11-04 Jan Kratochvil
@@ -19,9 +22,18 @@ http://sourceware.org/ml/gdb-patches/2007-09/msg00228.html
* rs6000-tdep.c (ppc_dwarf2_frame_init_reg): New function.
* (rs6000_gdbarch_init): Install ppc_dwarf2_frame_init_reg as
default dwarf2_frame_set_init_reg function.
+---
+ .../gdb.arch/ppc-clobbered-registers-O2.c | 21 +++++++++
+ .../gdb.arch/ppc-clobbered-registers-O2.exp | 54 ++++++++++++++++++++++
+ 2 files changed, 75 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.c
+ create mode 100644 gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.exp
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ ./gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.c 3 Nov 2007 22:22:28 -0000
+diff --git a/gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.c b/gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.c
+new file mode 100644
+index 0000000000..698ff8a0b5
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.c
@@ -0,0 +1,21 @@
+
+unsigned * __attribute__((noinline))
@@ -44,8 +56,11 @@ http://sourceware.org/ml/gdb-patches/2007-09/msg00228.html
+ y = 14;
+ return (int)gen_movsd (&x, &y);
+}
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ ./gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.exp 3 Nov 2007 22:22:28 -0000
+diff --git a/gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.exp b/gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.exp
+new file mode 100644
+index 0000000000..c9ebd0e522
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.exp
@@ -0,0 +1,54 @@
+# Copyright 2006 Free Software Foundation, Inc.
+#
@@ -101,3 +116,6 @@ http://sourceware.org/ml/gdb-patches/2007-09/msg00228.html
+
+gdb_test backtrace ".*operand0=.*operand1=.*" \
+ "Check value of call clobbered registers"
+--
+2.14.3
+
diff --git a/gdb-6.7-testsuite-stable-results.patch b/gdb-6.7-testsuite-stable-results.patch
index 904394d..415f59b 100644
--- a/gdb-6.7-testsuite-stable-results.patch
+++ b/gdb-6.7-testsuite-stable-results.patch
@@ -1,9 +1,12 @@
+From 4fbac2039836532b621a1a0aa686186e0db4a0bc Mon Sep 17 00:00:00 2001
From: Jan Kratochvil
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.7-testsuite-stable-results.patch
FileName: gdb-6.7-testsuite-stable-results.patch
+;; Testsuite fixes for more stable/comparable results.
+;;=fedoratest
gdb/testsuite/gdb.base/fileio.c:
gdb/testsuite/gdb.base/fileio.exp:
@@ -15,23 +18,24 @@ gdb/testsuite/gdb.base/fileio.exp:
* gdb.base/fileio.exp: Change the startup and finish cleanup.
Change the test file reference to be into the `fileio.dir' directory.
-
sources/gdb/testsuite/gdb.base/dump.exp:
Found on RHEL-5.s390x.
-
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/auxv.exp:
random FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
-
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp:
frames-invalid can happen asynchronously.
+---
+ gdb/testsuite/gdb.base/fileio.c | 22 ++++++++++++++++++++++
+ gdb/testsuite/gdb.base/fileio.exp | 13 ++++++-------
+ 2 files changed, 28 insertions(+), 7 deletions(-)
-Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.c
-===================================================================
---- gdb-7.12.orig/gdb/testsuite/gdb.base/fileio.c 2016-08-01 17:50:21.000000000 +0200
-+++ gdb-7.12/gdb/testsuite/gdb.base/fileio.c 2016-10-07 22:49:20.689346914 +0200
-@@ -556,6 +556,28 @@
+diff --git a/gdb/testsuite/gdb.base/fileio.c b/gdb/testsuite/gdb.base/fileio.c
+index 7f482a34d3..1caadbae84 100644
+--- a/gdb/testsuite/gdb.base/fileio.c
++++ b/gdb/testsuite/gdb.base/fileio.c
+@@ -560,6 +560,28 @@ strerrno (int err)
int
main ()
{
@@ -60,11 +64,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.c
/* Don't change the order of the calls. They partly depend on each other */
test_open ();
test_write ();
-Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.exp
-===================================================================
---- gdb-7.12.orig/gdb/testsuite/gdb.base/fileio.exp 2016-08-01 17:50:21.000000000 +0200
-+++ gdb-7.12/gdb/testsuite/gdb.base/fileio.exp 2016-10-07 22:54:44.680071906 +0200
-@@ -24,9 +24,9 @@
+diff --git a/gdb/testsuite/gdb.base/fileio.exp b/gdb/testsuite/gdb.base/fileio.exp
+index 99afaffb05..92e9743c79 100644
+--- a/gdb/testsuite/gdb.base/fileio.exp
++++ b/gdb/testsuite/gdb.base/fileio.exp
+@@ -24,9 +24,9 @@ if [target_info exists gdb,nofileio] {
standard_testfile
if {[is_remote host]} {
@@ -76,7 +80,7 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.exp
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
-@@ -47,7 +47,8 @@
+@@ -47,7 +47,8 @@ set dir2 [standard_output_file dir2.fileio.test]
if {[file exists $dir2] && ![file writable $dir2]} {
system "chmod +w $dir2"
}
@@ -86,7 +90,7 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.exp
set oldtimeout $timeout
set timeout [expr "$timeout + 60"]
-@@ -89,7 +90,7 @@
+@@ -89,7 +90,7 @@ gdb_test continue \
gdb_test "continue" ".*" ""
@@ -95,7 +99,7 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.exp
gdb_test continue \
"Continuing\\..*open 5:.*EACCES$stop_msg" \
-@@ -276,9 +277,7 @@
+@@ -276,9 +277,7 @@ gdb_test continue \
gdb_exit
# Make dir2 writable again so rm -rf of a build tree Just Works.
@@ -106,3 +110,6 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.exp
set timeout $oldtimeout
return 0
+--
+2.14.3
+
diff --git a/gdb-6.8-attach-signalled-detach-stopped.patch b/gdb-6.8-attach-signalled-detach-stopped.patch
index 4d77b11..fa88c91 100644
--- a/gdb-6.8-attach-signalled-detach-stopped.patch
+++ b/gdb-6.8-attach-signalled-detach-stopped.patch
@@ -1,14 +1,24 @@
+From 2e4efbbc861186e5f87c7b2619b171b87a94ca9c Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-attach-signalled-detach-stopped.patch
FileName: gdb-6.8-attach-signalled-detach-stopped.patch
-Index: gdb-7.99.90.20170420/gdb/infrun.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/infrun.c 2017-04-20 23:19:16.056434309 +0200
-+++ gdb-7.99.90.20170420/gdb/infrun.c 2017-04-20 23:19:22.932480367 +0200
-@@ -620,6 +620,13 @@
+;; [RHEL5,RHEL6] Fix attaching to stopped processes.
+;; [RHEL5] Workaround kernel for detaching SIGSTOPped processes (BZ 809382).
+;;=fedora
+---
+ gdb/infrun.c | 7 ++++
+ gdb/linux-nat.c | 45 +++++++++++++++++++++
+ gdb/testsuite/gdb.threads/attach-stopped.exp | 60 +++++++++++++++++++++++++++-
+ 3 files changed, 111 insertions(+), 1 deletion(-)
+
+diff --git a/gdb/infrun.c b/gdb/infrun.c
+index c20a02e600..299585f350 100644
+--- a/gdb/infrun.c
++++ b/gdb/infrun.c
+@@ -606,6 +606,13 @@ holding the child stopped. Try \"set detach-on-fork\" or \
target_pid_to_str (process_ptid));
}
@@ -22,11 +32,11 @@ Index: gdb-7.99.90.20170420/gdb/infrun.c
target_detach (NULL, 0);
}
-Index: gdb-7.99.90.20170420/gdb/linux-nat.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/linux-nat.c 2017-04-20 23:19:16.058434322 +0200
-+++ gdb-7.99.90.20170420/gdb/linux-nat.c 2017-04-20 23:19:22.933480373 +0200
-@@ -194,6 +194,11 @@
+diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
+index 6040c1f129..667e61e701 100644
+--- a/gdb/linux-nat.c
++++ b/gdb/linux-nat.c
+@@ -194,6 +194,11 @@ enum tribool have_ptrace_getregset = TRIBOOL_UNKNOWN;
static struct target_ops *linux_ops;
static struct target_ops linux_ops_saved;
@@ -38,7 +48,7 @@ Index: gdb-7.99.90.20170420/gdb/linux-nat.c
/* The method to call, if any, when a new thread is attached. */
static void (*linux_nat_new_thread) (struct lwp_info *);
-@@ -1055,6 +1060,9 @@
+@@ -1065,6 +1070,9 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled)
if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog,
"LNPAW: Attaching to a stopped process\n");
@@ -48,7 +58,7 @@ Index: gdb-7.99.90.20170420/gdb/linux-nat.c
/* The process is definitely stopped. It is in a job control
stop, unless the kernel predates the TASK_STOPPED /
-@@ -1412,6 +1420,25 @@
+@@ -1420,6 +1428,25 @@ get_detach_signal (struct lwp_info *lp)
return gdb_signal_to_host (signo);
}
@@ -74,7 +84,7 @@ Index: gdb-7.99.90.20170420/gdb/linux-nat.c
return 0;
}
-@@ -1570,6 +1597,10 @@
+@@ -1578,6 +1605,10 @@ linux_nat_detach (struct target_ops *ops, const char *args, int from_tty)
detach_one_lwp (main_lwp, &signo);
inf_ptrace_detach_success (ops);
@@ -85,7 +95,7 @@ Index: gdb-7.99.90.20170420/gdb/linux-nat.c
}
}
-@@ -1830,6 +1861,16 @@
+@@ -1838,6 +1869,16 @@ linux_nat_resume (struct target_ops *ops,
return;
}
@@ -102,7 +112,7 @@ Index: gdb-7.99.90.20170420/gdb/linux-nat.c
if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
-@@ -3826,6 +3867,10 @@
+@@ -3830,6 +3871,10 @@ linux_nat_mourn_inferior (struct target_ops *ops)
/* Let the arch-specific native code know this process is gone. */
linux_nat_forget_process (pid);
@@ -113,11 +123,11 @@ Index: gdb-7.99.90.20170420/gdb/linux-nat.c
}
/* Convert a native/host siginfo object, into/from the siginfo in the
-Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.threads/attach-stopped.exp
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2017-04-20 23:19:16.059434329 +0200
-+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.threads/attach-stopped.exp 2017-04-20 23:19:22.933480373 +0200
-@@ -56,7 +56,65 @@
+diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.threads/attach-stopped.exp
+index 15a0352fc7..30dee99893 100644
+--- a/gdb/testsuite/gdb.threads/attach-stopped.exp
++++ b/gdb/testsuite/gdb.threads/attach-stopped.exp
+@@ -56,7 +56,65 @@ proc corefunc { threadtype } {
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
@@ -184,3 +194,6 @@ Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.threads/attach-stopped.exp
set test "$threadtype: attach2 to stopped, after setting file"
gdb_test_multiple "attach $testpid" "$test" {
+--
+2.14.3
+
diff --git a/gdb-6.8-bz436037-reg-no-longer-active.patch b/gdb-6.8-bz436037-reg-no-longer-active.patch
index f89ddca..1af9717 100644
--- a/gdb-6.8-bz436037-reg-no-longer-active.patch
+++ b/gdb-6.8-bz436037-reg-no-longer-active.patch
@@ -1,15 +1,21 @@
+From f3c13cbd2010f906554c84063e3a4a138c2be840 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-bz436037-reg-no-longer-active.patch
FileName: gdb-6.8-bz436037-reg-no-longer-active.patch
+;; Fix register assignments with no GDB stack frames (BZ 436037).
+;;=push+jan: This fix is incorrect.
+---
+ gdb/valops.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
-Index: gdb-7.12.50.20170207/gdb/valops.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/valops.c 2017-02-26 17:26:43.839146565 +0100
-+++ gdb-7.12.50.20170207/gdb/valops.c 2017-02-26 17:28:40.840988272 +0100
-@@ -1112,6 +1112,8 @@
+diff --git a/gdb/valops.c b/gdb/valops.c
+index 4ecfa9fd96..30623efc6e 100644
+--- a/gdb/valops.c
++++ b/gdb/valops.c
+@@ -1103,6 +1103,8 @@ value_assign (struct value *toval, struct value *fromval)
struct gdbarch *gdbarch;
int value_reg;
@@ -18,7 +24,7 @@ Index: gdb-7.12.50.20170207/gdb/valops.c
/* Figure out which frame this is in currently.
We use VALUE_FRAME_ID for obtaining the value's frame id instead of
-@@ -1121,8 +1123,14 @@
+@@ -1112,8 +1114,14 @@ value_assign (struct value *toval, struct value *fromval)
frame. */
frame = frame_find_by_id (VALUE_FRAME_ID (toval));
@@ -35,3 +41,6 @@ Index: gdb-7.12.50.20170207/gdb/valops.c
if (!frame)
error (_("Value being assigned to is no longer active."));
+--
+2.14.3
+
diff --git a/gdb-6.8-bz442765-threaded-exec-test.patch b/gdb-6.8-bz442765-threaded-exec-test.patch
index af6cb38..8be5ad9 100644
--- a/gdb-6.8-bz442765-threaded-exec-test.patch
+++ b/gdb-6.8-bz442765-threaded-exec-test.patch
@@ -1,16 +1,23 @@
+From fbc6158c76d809aaafd43a083011f133f6bc64f6 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-bz442765-threaded-exec-test.patch
FileName: gdb-6.8-bz442765-threaded-exec-test.patch
+;; Test various forms of threads tracking across exec() (BZ 442765).
+;;=fedoratest
Test various forms of threads tracking across exec(2).
+---
+ gdb/testsuite/gdb.threads/threaded-exec.c | 111 ++++++++++++++++++++++++++--
+ gdb/testsuite/gdb.threads/threaded-exec.exp | 13 +++-
+ 2 files changed, 115 insertions(+), 9 deletions(-)
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/testsuite/gdb.threads/threaded-exec.c 2016-02-16 09:54:45.157163049 +0100
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c 2016-02-16 09:54:46.210170175 +0100
+diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threads/threaded-exec.c
+index 522b24671d..7079317d3a 100644
+--- a/gdb/testsuite/gdb.threads/threaded-exec.c
++++ b/gdb/testsuite/gdb.threads/threaded-exec.c
@@ -18,21 +18,95 @@
Boston, MA 02111-1307, USA. */
@@ -110,7 +117,7 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c
pthread_t t1;
int i;
-@@ -40,7 +114,34 @@
+@@ -40,7 +114,34 @@ main (void)
assert (i == 0);
i = pthread_join (t1, NULL);
assert (i == 0);
@@ -147,10 +154,10 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.c
+ execl (cmd, cmd, exec_nothreads, exec_threads, phase_s, NULL);
+ assert (0);
}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp
-===================================================================
---- gdb-7.10.90.20160211.orig/gdb/testsuite/gdb.threads/threaded-exec.exp 2016-02-16 09:54:45.157163049 +0100
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp 2016-02-16 09:55:27.397448879 +0100
+diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.threads/threaded-exec.exp
+index 77c8a7dc85..8c43162b36 100644
+--- a/gdb/testsuite/gdb.threads/threaded-exec.exp
++++ b/gdb/testsuite/gdb.threads/threaded-exec.exp
@@ -20,9 +20,14 @@
set testfile threaded-exec
@@ -168,7 +175,7 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp
return -1
}
-@@ -30,9 +35,9 @@
+@@ -30,9 +35,9 @@ gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
@@ -180,3 +187,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.threads/threaded-exec.exp
gdb_test_multiple {} "Program exited" {
-re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" {
+--
+2.14.3
+
diff --git a/gdb-6.8-bz466901-backtrace-full-prelinked.patch b/gdb-6.8-bz466901-backtrace-full-prelinked.patch
index 43378fd..0137a0a 100644
--- a/gdb-6.8-bz466901-backtrace-full-prelinked.patch
+++ b/gdb-6.8-bz466901-backtrace-full-prelinked.patch
@@ -1,154 +1,28 @@
+From a3c3e2a2711ac0d7ded373597348a1e889b8478a Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-bz466901-backtrace-full-prelinked.patch
FileName: gdb-6.8-bz466901-backtrace-full-prelinked.patch
+;; Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
+;;=fedoratest
Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
+---
+ .../gdb.dwarf2/dw2-loclist-prelinked-func.S | 328 +++++++++++++++++++++
+ .../gdb.dwarf2/dw2-loclist-prelinked-main.c | 26 ++
+ gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp | 102 +++++++
+ 3 files changed, 456 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
-Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp 2009-09-09 20:10:35.000000000 +0200
-@@ -0,0 +1,102 @@
-+# Copyright 2008 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 2 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, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+# Minimal DWARF-2 unit test
-+
-+# This test can only be run on i386/x86_64 targets which support DWARF-2.
-+# For now pick a sampling of likely targets.
-+if {(![istarget *-*-linux*]
-+ && ![istarget *-*-gnu*]
-+ && ![istarget *-*-elf*]
-+ && ![istarget *-*-openbsd*])
-+ || (![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"])} {
-+ return 0
-+}
-+
-+set testfile "dw2-loclist-prelinked"
-+set srcfuncfile ${testfile}-func.S
-+set binsharedfuncfile [standard_output_file ${testfile}.so]
-+set srcmainfile ${testfile}-main.c
-+set binfile [standard_output_file ${testfile}]
-+
-+remote_exec build "rm -f ${binfile}"
-+
-+# get the value of gcc_compiled
-+if [get_compiler_info ${binfile}] {
-+ return -1
-+}
-+
-+# This test can only be run on gcc as we use additional_flags=FIXME
-+if {$gcc_compiled == 0} {
-+ return 0
-+}
-+
-+if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcfuncfile}" "${binsharedfuncfile}" {debug additional_flags=-m32}] != "" } {
-+ untested "Couldn't compile test library"
-+ return -1
-+}
-+
-+# The new separate debug info file will be stored in the .debug subdirectory.
-+
-+if [gdb_gnu_strip_debug ${binsharedfuncfile}] {
-+ # check that you have a recent version of strip and objcopy installed
-+ unsupported "cannot produce separate debug info files"
-+ return -1
-+}
-+
-+if {[catch "system \"/usr/sbin/prelink -qNR --no-exec-shield ${binsharedfuncfile}\""] != 0} {
-+ # Maybe we don't have prelink.
-+ return -1
-+}
-+
-+if { [gdb_compile "${srcdir}/${subdir}/${srcmainfile}" \
-+ "${binfile}" executable [list debug additional_flags=-m32 shlib=${binsharedfuncfile}]] != "" } {
-+ return -1
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+gdb_run_cmd
-+
-+gdb_test "" "Program received signal SIGABRT, Aborted..*" "Enter abort()"
-+
-+# Incorrect:
-+# #0 0x00110430 in __kernel_vsyscall ()
-+# No symbol table info available.
-+# #1 0x003d44c0 in raise () from /lib/libc.so.6
-+# No symbol table info available.
-+# #2 0x003d5e88 in abort () from /lib/libc.so.6
-+# No symbol table info available.
-+# #3 0x44f10437 in func () at dw2-loclist-prelinked.c:8
-+# i = Could not find the frame base for "func".
-+
-+# Correct:
-+# #0 0x00110430 in __kernel_vsyscall ()
-+# No symbol table info available.
-+# #1 0x003d44c0 in raise () from /lib/libc.so.6
-+# No symbol table info available.
-+# #2 0x003d5e88 in abort () from /lib/libc.so.6
-+# No symbol table info available.
-+# #3 0x4ae36437 in func () at dw2-loclist-prelinked.c:8
-+# i = 3827288
-+# #4 0x0804851a in main () at ../../../gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c:24
-+# No locals.
-+
-+# `abort' can get expressed as `*__GI_abort'.
-+gdb_test "bt full" "in \[^ \]*abort \\(.*in func \\(.*\r\n\[\t \]+i = -?\[0-9\].*in main \\(.*" "Backtrace after abort()"
-Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c 2009-09-09 20:10:35.000000000 +0200
-@@ -0,0 +1,26 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2008 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 . */
-+
-+/* dw2-loclist-prelinked-func.S */
-+extern void func (void);
-+
-+int
-+main (void)
-+{
-+ func ();
-+ return 0;
-+}
-Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S 2009-09-09 20:10:35.000000000 +0200
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S b/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
+new file mode 100644
+index 0000000000..442c4d00a1
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
@@ -0,0 +1,328 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -478,3 +352,146 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
+ .string "short int"
+ .ident "GCC: (GNU) 4.3.2 20081007 (Red Hat 4.3.2-6)"
+ .section .note.GNU-stack,"",@progbits
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c b/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
+new file mode 100644
+index 0000000000..57386999ce
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
+@@ -0,0 +1,26 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2008 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 . */
++
++/* dw2-loclist-prelinked-func.S */
++extern void func (void);
++
++int
++main (void)
++{
++ func ();
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp b/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
+new file mode 100644
+index 0000000000..30d0473336
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
+@@ -0,0 +1,102 @@
++# Copyright 2008 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 2 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, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++# Minimal DWARF-2 unit test
++
++# This test can only be run on i386/x86_64 targets which support DWARF-2.
++# For now pick a sampling of likely targets.
++if {(![istarget *-*-linux*]
++ && ![istarget *-*-gnu*]
++ && ![istarget *-*-elf*]
++ && ![istarget *-*-openbsd*])
++ || (![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"])} {
++ return 0
++}
++
++set testfile "dw2-loclist-prelinked"
++set srcfuncfile ${testfile}-func.S
++set binsharedfuncfile [standard_output_file ${testfile}.so]
++set srcmainfile ${testfile}-main.c
++set binfile [standard_output_file ${testfile}]
++
++remote_exec build "rm -f ${binfile}"
++
++# get the value of gcc_compiled
++if [get_compiler_info ${binfile}] {
++ return -1
++}
++
++# This test can only be run on gcc as we use additional_flags=FIXME
++if {$gcc_compiled == 0} {
++ return 0
++}
++
++if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcfuncfile}" "${binsharedfuncfile}" {debug additional_flags=-m32}] != "" } {
++ untested "Couldn't compile test library"
++ return -1
++}
++
++# The new separate debug info file will be stored in the .debug subdirectory.
++
++if [gdb_gnu_strip_debug ${binsharedfuncfile}] {
++ # check that you have a recent version of strip and objcopy installed
++ unsupported "cannot produce separate debug info files"
++ return -1
++}
++
++if {[catch "system \"/usr/sbin/prelink -qNR --no-exec-shield ${binsharedfuncfile}\""] != 0} {
++ # Maybe we don't have prelink.
++ return -1
++}
++
++if { [gdb_compile "${srcdir}/${subdir}/${srcmainfile}" \
++ "${binfile}" executable [list debug additional_flags=-m32 shlib=${binsharedfuncfile}]] != "" } {
++ return -1
++}
++
++gdb_exit
++gdb_start
++gdb_reinitialize_dir $srcdir/$subdir
++gdb_load ${binfile}
++
++gdb_run_cmd
++
++gdb_test "" "Program received signal SIGABRT, Aborted..*" "Enter abort()"
++
++# Incorrect:
++# #0 0x00110430 in __kernel_vsyscall ()
++# No symbol table info available.
++# #1 0x003d44c0 in raise () from /lib/libc.so.6
++# No symbol table info available.
++# #2 0x003d5e88 in abort () from /lib/libc.so.6
++# No symbol table info available.
++# #3 0x44f10437 in func () at dw2-loclist-prelinked.c:8
++# i = Could not find the frame base for "func".
++
++# Correct:
++# #0 0x00110430 in __kernel_vsyscall ()
++# No symbol table info available.
++# #1 0x003d44c0 in raise () from /lib/libc.so.6
++# No symbol table info available.
++# #2 0x003d5e88 in abort () from /lib/libc.so.6
++# No symbol table info available.
++# #3 0x4ae36437 in func () at dw2-loclist-prelinked.c:8
++# i = 3827288
++# #4 0x0804851a in main () at ../../../gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c:24
++# No locals.
++
++# `abort' can get expressed as `*__GI_abort'.
++gdb_test "bt full" "in \[^ \]*abort \\(.*in func \\(.*\r\n\[\t \]+i = -?\[0-9\].*in main \\(.*" "Backtrace after abort()"
+--
+2.14.3
+
diff --git a/gdb-6.8-quit-never-aborts.patch b/gdb-6.8-quit-never-aborts.patch
index e0b8e67..e4d57dd 100644
--- a/gdb-6.8-quit-never-aborts.patch
+++ b/gdb-6.8-quit-never-aborts.patch
@@ -1,21 +1,31 @@
+From 6f9560ad830dbad83429859b2392831463f0fc96 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-quit-never-aborts.patch
FileName: gdb-6.8-quit-never-aborts.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 .
+
We may abort the process of detaching threads with multiple SIGINTs - which are
being sent during a testcase terminating its child GDB.
Some of the threads may not be properly PTRACE_DETACHed which hurts if they
should have been detached with SIGSTOP (as they are accidentally left running
on the debugger termination).
+---
+ gdb/defs.h | 4 ++++
+ gdb/extension.c | 5 +++++
+ gdb/top.c | 6 ++++++
+ gdb/utils.c | 7 +++++++
+ 4 files changed, 22 insertions(+)
-Index: gdb-7.12.50.20170207/gdb/defs.h
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/defs.h 2017-02-26 21:11:35.654350580 +0100
-+++ gdb-7.12.50.20170207/gdb/defs.h 2017-02-26 21:11:52.932473129 +0100
-@@ -169,6 +169,10 @@
+diff --git a/gdb/defs.h b/gdb/defs.h
+index 27f3becab0..95395b41a3 100644
+--- a/gdb/defs.h
++++ b/gdb/defs.h
+@@ -168,6 +168,10 @@ extern void default_quit_handler (void);
/* Flag that function quit should call quit_force. */
extern volatile int sync_quit_force_run;
@@ -26,11 +36,11 @@ Index: gdb-7.12.50.20170207/gdb/defs.h
extern void quit (void);
/* Helper for the QUIT macro. */
-Index: gdb-7.12.50.20170207/gdb/extension.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/extension.c 2017-02-26 21:11:35.655350587 +0100
-+++ gdb-7.12.50.20170207/gdb/extension.c 2017-02-26 21:11:52.933473136 +0100
-@@ -830,6 +830,11 @@
+diff --git a/gdb/extension.c b/gdb/extension.c
+index 4ffad038c9..d029a2f23d 100644
+--- a/gdb/extension.c
++++ b/gdb/extension.c
+@@ -830,6 +830,11 @@ check_quit_flag (void)
int i, result = 0;
const struct extension_language_defn *extlang;
@@ -42,11 +52,11 @@ Index: gdb-7.12.50.20170207/gdb/extension.c
ALL_ENABLED_EXTENSION_LANGUAGES (i, extlang)
{
if (extlang->ops->check_quit_flag != NULL)
-Index: gdb-7.12.50.20170207/gdb/top.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/top.c 2017-02-26 21:11:35.655350587 +0100
-+++ gdb-7.12.50.20170207/gdb/top.c 2017-02-26 21:11:52.933473136 +0100
-@@ -1619,7 +1619,13 @@
+diff --git a/gdb/top.c b/gdb/top.c
+index 8cd7c99346..326c2399b3 100644
+--- a/gdb/top.c
++++ b/gdb/top.c
+@@ -1583,7 +1583,13 @@ quit_force (int *exit_arg, int from_tty)
qt.args = NULL;
qt.from_tty = from_tty;
@@ -60,13 +70,13 @@ Index: gdb-7.12.50.20170207/gdb/top.c
/* Get out of tfind mode, and kill or detach all inferiors. */
TRY
-Index: gdb-7.12.50.20170207/gdb/utils.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/utils.c 2017-02-26 21:11:35.657350601 +0100
-+++ gdb-7.12.50.20170207/gdb/utils.c 2017-02-26 21:11:52.934473143 +0100
-@@ -106,6 +106,13 @@
+diff --git a/gdb/utils.c b/gdb/utils.c
+index f72ddab992..26a923d8b3 100644
+--- a/gdb/utils.c
++++ b/gdb/utils.c
+@@ -107,6 +107,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time;
- int job_control;
+ static int debug_timestamp = 0;
+#ifdef NEED_DETACH_SIGSTOP
+/* Nonzero means we are already processing the quitting cleanups and we should
@@ -78,3 +88,6 @@ Index: gdb-7.12.50.20170207/gdb/utils.c
/* Nonzero means that strings with character values >0x7F should be printed
as octal escapes. Zero means just print the value (e.g. it's an
international character, and the terminal or window can cope.) */
+--
+2.14.3
+
diff --git a/gdb-6.8-sparc64-silence-memcpy-check.patch b/gdb-6.8-sparc64-silence-memcpy-check.patch
index 4cc3454..43f3e62 100644
--- a/gdb-6.8-sparc64-silence-memcpy-check.patch
+++ b/gdb-6.8-sparc64-silence-memcpy-check.patch
@@ -1,15 +1,21 @@
+From 27d2cc537fda7640aa465691cf98b1bfe424f22a Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-sparc64-silence-memcpy-check.patch
FileName: gdb-6.8-sparc64-silence-memcpy-check.patch
+;; Silence memcpy check which returns false positive (sparc64)
+;;=push: But it is just a GCC workaround, look up the existing GCC PR for it.
+---
+ gdb/sparc-tdep.c | 1 +
+ 1 file changed, 1 insertion(+)
-Index: gdb-7.4.50.20111218/gdb/sparc-tdep.c
-===================================================================
---- gdb-7.4.50.20111218.orig/gdb/sparc-tdep.c 2011-09-28 19:59:42.000000000 +0200
-+++ gdb-7.4.50.20111218/gdb/sparc-tdep.c 2011-12-19 01:25:29.294046199 +0100
-@@ -1316,6 +1316,7 @@ sparc32_store_return_value (struct type
+diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
+index 809cb9ac2e..321c9244a9 100644
+--- a/gdb/sparc-tdep.c
++++ b/gdb/sparc-tdep.c
+@@ -1444,6 +1444,7 @@ sparc32_store_return_value (struct type *type, struct regcache *regcache,
if (sparc_floating_p (type) || sparc_complex_floating_p (type))
{
/* Floating return values. */
@@ -17,3 +23,6 @@ Index: gdb-7.4.50.20111218/gdb/sparc-tdep.c
memcpy (buf, valbuf, len);
regcache_cooked_write (regcache, SPARC_F0_REGNUM, buf);
if (len > 4)
+--
+2.14.3
+
diff --git a/gdb-6.8-watchpoint-conditionals-test.patch b/gdb-6.8-watchpoint-conditionals-test.patch
index b2902e0..6d4da71 100644
--- a/gdb-6.8-watchpoint-conditionals-test.patch
+++ b/gdb-6.8-watchpoint-conditionals-test.patch
@@ -1,18 +1,65 @@
+From 8dbd757cb144a95f4c676f561b940adfa9cae95a Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-watchpoint-conditionals-test.patch
FileName: gdb-6.8-watchpoint-conditionals-test.patch
+;; Test the watchpoints conditionals works.
+;;=fedoratest
For:
http://sourceware.org/ml/gdb-patches/2008-04/msg00379.html
http://sourceware.org/ml/gdb-cvs/2008-04/msg00104.html
+---
+ gdb/testsuite/gdb.base/watchpoint-cond.c | 31 +++++++++++++++++++++++++
+ gdb/testsuite/gdb.base/watchpoint-cond.exp | 37 ++++++++++++++++++++++++++++++
+ 2 files changed, 68 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/watchpoint-cond.c
+ create mode 100644 gdb/testsuite/gdb.base/watchpoint-cond.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-cond.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-cond.exp 2016-02-15 23:33:49.519099759 +0100
+diff --git a/gdb/testsuite/gdb.base/watchpoint-cond.c b/gdb/testsuite/gdb.base/watchpoint-cond.c
+new file mode 100644
+index 0000000000..d4ec581946
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/watchpoint-cond.c
+@@ -0,0 +1,31 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2008 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 .
++
++ Please email any bugs, comments, and/or additions to this file to:
++ bug-gdb@prep.ai.mit.edu */
++
++int
++main (int argc, char **argv)
++{
++ static int i = 0; /* `static' to start initialized. */
++ int j = 2;
++
++ for (j = 0; j < 30; j++)
++ i = 30 - j;
++
++ return 0;
++}
+diff --git a/gdb/testsuite/gdb.base/watchpoint-cond.exp b/gdb/testsuite/gdb.base/watchpoint-cond.exp
+new file mode 100644
+index 0000000000..31d5b602aa
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/watchpoint-cond.exp
@@ -0,0 +1,37 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -51,39 +98,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-cond.exp
+
+gdb_test "watch i if i < 20" "atchpoint \[0-9\]+: i"
+gdb_test "cont" "atchpoint \[0-9\]+: i.*Old value = 20.*New value = 19.*"
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-cond.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-cond.c 2016-02-15 23:32:51.974691188 +0100
-@@ -0,0 +1,31 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2008 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 .
-+
-+ Please email any bugs, comments, and/or additions to this file to:
-+ bug-gdb@prep.ai.mit.edu */
-+
-+int
-+main (int argc, char **argv)
-+{
-+ static int i = 0; /* `static' to start initialized. */
-+ int j = 2;
-+
-+ for (j = 0; j < 30; j++)
-+ i = 30 - j;
-+
-+ return 0;
-+}
+--
+2.14.3
+
diff --git a/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch b/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
index d14052f..c6306c8 100644
--- a/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
+++ b/gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
@@ -1,14 +1,30 @@
+From e803da95eb585d32f8c8f793445982827255f6df Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
FileName: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
+;; Toolchain on sparc is slightly broken and debuginfo files are generated
+;; with non 64bit aligned tables/offsets.
+;; See for example readelf -S ../Xvnc.debug.
+;;
+;; As a consenquence calculation of sectp->filepos as used in
+;; dwarf2_read_section (gdb/dwarf2read.c:1525) will return a non aligned buffer
+;; that cannot be used directly as done with MMAP.
+;; Usage will result in a BusError.
+;;
+;; While we figure out what's wrong in the toolchain and do a full archive
+;; rebuild to fix it, we need to be able to use gdb :)
+;;=push
+---
+ gdb/gdb_bfd.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
-Index: gdb-7.9.90.20150709/gdb/gdb_bfd.c
-===================================================================
---- gdb-7.9.90.20150709.orig/gdb/gdb_bfd.c 2015-07-09 18:23:59.344017882 +0200
-+++ gdb-7.9.90.20150709/gdb/gdb_bfd.c 2015-07-09 18:24:06.986083071 +0200
+diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
+index cc02740c1a..24155e7c55 100644
+--- a/gdb/gdb_bfd.c
++++ b/gdb/gdb_bfd.c
@@ -24,12 +24,14 @@
#include "hashtab.h"
#include "filestuff.h"
@@ -24,7 +40,7 @@ Index: gdb-7.9.90.20150709/gdb/gdb_bfd.c
#include "target.h"
#include "gdb/fileio.h"
#include "inferior.h"
-@@ -397,6 +399,7 @@ free_one_bfd_section (bfd *abfd, asectio
+@@ -484,6 +486,7 @@ free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore)
if (sect != NULL && sect->data != NULL)
{
@@ -32,15 +48,15 @@ Index: gdb-7.9.90.20150709/gdb/gdb_bfd.c
#ifdef HAVE_MMAP
if (sect->map_addr != NULL)
{
-@@ -407,6 +410,7 @@ free_one_bfd_section (bfd *abfd, asectio
+@@ -493,6 +496,7 @@ free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore)
+ gdb_assert (res == 0);
}
else
- #endif
+#endif
+ #endif
xfree (sect->data);
}
- }
-@@ -558,6 +562,7 @@ gdb_bfd_map_section (asection *sectp, bf
+@@ -659,6 +663,7 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
if (descriptor->data != NULL)
goto done;
@@ -48,7 +64,7 @@ Index: gdb-7.9.90.20150709/gdb/gdb_bfd.c
#ifdef HAVE_MMAP
if (!bfd_is_section_compressed (abfd, sectp))
{
-@@ -592,6 +597,7 @@ gdb_bfd_map_section (asection *sectp, bf
+@@ -693,6 +698,7 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
}
}
#endif /* HAVE_MMAP */
@@ -56,3 +72,6 @@ Index: gdb-7.9.90.20150709/gdb/gdb_bfd.c
/* Handle compressed sections, or ordinary uncompressed sections in
the no-mmap case. */
+--
+2.14.3
+
diff --git a/gdb-add-index-chmod.patch b/gdb-add-index-chmod.patch
old mode 100755
new mode 100644
index bba85df..e0be641
--- a/gdb-add-index-chmod.patch
+++ b/gdb-add-index-chmod.patch
@@ -1,13 +1,15 @@
+From 0be595f4694536c348c37b0e720cca06513a001d Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [patch] contrib/gdb-add-index.sh: chmod u+w
+Subject: contrib/gdb-add-index.sh: chmod u+w
FileName: gdb-add-index-chmod.patch
+;; Fix gdb-add-index for 444 *.debug files.
+;;=push+jan
+
http://sourceware.org/ml/gdb-patches/2017-01/msg00110.html
-
-
--AhhlLboLdkugWU4S
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
@@ -26,7 +28,6 @@ that time while in Fedora 25 they are apparently no longer w.
OK for check-in?
-
Jan
--AhhlLboLdkugWU4S
@@ -37,12 +38,15 @@ gdb/ChangeLog
2017-01-06 Jan Kratochvil
* contrib/gdb-add-index.sh: Use chmod u+w for $file.
+---
+ gdb/contrib/gdb-add-index.sh | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh
-index 0cd4ce3..5a190a0 100755
+index c34058d1d6..bbec184b5d 100755
--- a/gdb/contrib/gdb-add-index.sh
+++ b/gdb/contrib/gdb-add-index.sh
-@@ -38,10 +38,11 @@ fi
+@@ -43,10 +43,11 @@ fi
dir="${file%/*}"
test "$dir" = "$file" && dir="."
index="${file}.gdb-index"
@@ -56,7 +60,7 @@ index 0cd4ce3..5a190a0 100755
$GDB --batch -nx -iex 'set auto-load no' \
-ex "file $file" -ex "save gdb-index $dir" || {
-@@ -58,8 +59,13 @@ $GDB --batch -nx -iex 'set auto-load no' \
+@@ -63,8 +64,13 @@ $GDB --batch -nx -iex 'set auto-load no' \
status=0
if test -f "$index"; then
@@ -70,6 +74,6 @@ index 0cd4ce3..5a190a0 100755
status=$?
else
echo "$myname: No index was created for $file" 1>&2
-
---AhhlLboLdkugWU4S--
+--
+2.14.3
diff --git a/gdb-archer-next-over-throw-cxx-exec.patch b/gdb-archer-next-over-throw-cxx-exec.patch
index 589e779..de732d2 100644
--- a/gdb-archer-next-over-throw-cxx-exec.patch
+++ b/gdb-archer-next-over-throw-cxx-exec.patch
@@ -1,15 +1,27 @@
+From bd1c31ff283786d7593a36a26273b77d2db2c6fe Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-archer-next-over-throw-cxx-exec.patch
FileName: gdb-archer-next-over-throw-cxx-exec.patch
+;; Fix follow-exec for C++ programs (bugreported by Martin Stransky).
+;;=fedoratest
Archer-upstreamed:
http://sourceware.org/ml/archer/2010-q2/msg00031.html
+---
+ gdb/testsuite/gdb.cp/cxxexec.cc | 25 ++++++++++++++++++++
+ gdb/testsuite/gdb.cp/cxxexec.exp | 51 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 76 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.cp/cxxexec.cc
+ create mode 100644 gdb/testsuite/gdb.cp/cxxexec.exp
---- ./gdb/testsuite/gdb.cp/cxxexec.cc 1970-01-01 01:00:00.000000000 +0100
-+++ ./gdb/testsuite/gdb.cp/cxxexec.cc 2010-05-29 01:18:56.000000000 +0200
+diff --git a/gdb/testsuite/gdb.cp/cxxexec.cc b/gdb/testsuite/gdb.cp/cxxexec.cc
+new file mode 100644
+index 0000000000..48fd63e9d3
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/cxxexec.cc
@@ -0,0 +1,25 @@
+/* This test script is part of GDB, the GNU debugger.
+
@@ -36,8 +48,11 @@ http://sourceware.org/ml/archer/2010-q2/msg00031.html
+ execlp ("true", "true", NULL);
+ return 1;
+}
---- ./gdb/testsuite/gdb.cp/cxxexec.exp 1970-01-01 01:00:00.000000000 +0100
-+++ ./gdb/testsuite/gdb.cp/cxxexec.exp 2010-05-29 01:29:25.000000000 +0200
+diff --git a/gdb/testsuite/gdb.cp/cxxexec.exp b/gdb/testsuite/gdb.cp/cxxexec.exp
+new file mode 100644
+index 0000000000..c85dd0129d
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/cxxexec.exp
@@ -0,0 +1,51 @@
+# Copyright 2010 Free Software Foundation, Inc.
+
@@ -90,3 +105,6 @@ http://sourceware.org/ml/archer/2010-q2/msg00031.html
+
+# `info inferiors' can show on older GDBs.
+gdb_test "info threads" "info threads" "program finished"
+--
+2.14.3
+
diff --git a/gdb-archer-pie-addons-keep-disabled.patch b/gdb-archer-pie-addons-keep-disabled.patch
index 8b1ed2e..dd78766 100644
--- a/gdb-archer-pie-addons-keep-disabled.patch
+++ b/gdb-archer-pie-addons-keep-disabled.patch
@@ -1,18 +1,26 @@
+From caca5647414a2506b084ea0fb1fa067d212c9fa0 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-archer-pie-addons-keep-disabled.patch
FileName: gdb-archer-pie-addons-keep-disabled.patch
+;;=push+jan: Breakpoints disabling matching should not be based on address.
+---
+ gdb/breakpoint.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ gdb/breakpoint.h | 3 +++
+ gdb/objfiles.c | 5 +++++
+ 3 files changed, 52 insertions(+)
-Index: gdb-7.99.90.20170420/gdb/breakpoint.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/breakpoint.c 2017-04-20 23:04:39.627960523 +0200
-+++ gdb-7.99.90.20170420/gdb/breakpoint.c 2017-04-20 23:07:29.854919725 +0200
-@@ -16086,6 +16086,50 @@
+diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
+index d4d095d87e..bc0134db36 100644
+--- a/gdb/breakpoint.c
++++ b/gdb/breakpoint.c
+@@ -15607,6 +15607,50 @@ initialize_breakpoint_ops (void)
+
static struct cmd_list_element *enablebreaklist = NULL;
- void
++void
+breakpoints_relocate (struct objfile *objfile, struct section_offsets *delta)
+{
+ struct bp_location *bl, **blp_tmp;
@@ -56,27 +64,28 @@ Index: gdb-7.99.90.20170420/gdb/breakpoint.c
+ bp_locations_compare);
+}
+
-+void
+ void
_initialize_breakpoint (void)
{
- struct cmd_list_element *c;
-Index: gdb-7.99.90.20170420/gdb/breakpoint.h
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/breakpoint.h 2017-04-20 23:04:39.627960523 +0200
-+++ gdb-7.99.90.20170420/gdb/breakpoint.h 2017-04-20 23:04:48.331009563 +0200
-@@ -1646,4 +1646,7 @@
+diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
+index 6406a1d32b..eed2c968f2 100644
+--- a/gdb/breakpoint.h
++++ b/gdb/breakpoint.h
+@@ -1656,6 +1656,9 @@ extern const char *ep_parse_optional_if_clause (const char **arg);
UIOUT iff debugging multiple threads. */
extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout);
+extern void breakpoints_relocate (struct objfile *objfile,
+ struct section_offsets *delta);
+
- #endif /* !defined (BREAKPOINT_H) */
-Index: gdb-7.99.90.20170420/gdb/objfiles.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/objfiles.c 2017-04-20 23:04:39.627960523 +0200
-+++ gdb-7.99.90.20170420/gdb/objfiles.c 2017-04-20 23:04:48.332009569 +0200
-@@ -909,6 +909,11 @@
+ /* Print the specified breakpoint. */
+ extern void print_breakpoint (breakpoint *bp);
+
+diff --git a/gdb/objfiles.c b/gdb/objfiles.c
+index edde399802..1d24fa95ba 100644
+--- a/gdb/objfiles.c
++++ b/gdb/objfiles.c
+@@ -879,6 +879,11 @@ objfile_relocate1 (struct objfile *objfile,
obj_section_addr (s));
}
@@ -88,3 +97,6 @@ Index: gdb-7.99.90.20170420/gdb/objfiles.c
/* Data changed. */
return 1;
}
+--
+2.14.3
+
diff --git a/gdb-archer-pie-addons.patch b/gdb-archer-pie-addons.patch
index 3f6aa3a..b67ecd8 100644
--- a/gdb-archer-pie-addons.patch
+++ b/gdb-archer-pie-addons.patch
@@ -1,15 +1,21 @@
+From 5756a6d385cfb451b752c6a77252f2befd43493f Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-archer-pie-addons.patch
FileName: gdb-archer-pie-addons.patch
+;;=push+jan: May get obsoleted by Tom's unrelocated objfiles patch.
+---
+ gdb/gdbtypes.h | 5 +++++
+ gdb/value.c | 3 ++-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
-Index: gdb-7.9.50.20150520/gdb/gdbtypes.h
-===================================================================
---- gdb-7.9.50.20150520.orig/gdb/gdbtypes.h 2015-05-31 16:55:29.723475485 +0200
-+++ gdb-7.9.50.20150520/gdb/gdbtypes.h 2015-05-31 16:55:49.716601669 +0200
-@@ -462,6 +462,7 @@ enum field_loc_kind
+diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
+index e26a09b456..d92ffc228b 100644
+--- a/gdb/gdbtypes.h
++++ b/gdb/gdbtypes.h
+@@ -440,6 +440,7 @@ enum field_loc_kind
{
FIELD_LOC_KIND_BITPOS, /**< bitpos */
FIELD_LOC_KIND_ENUMVAL, /**< enumval */
@@ -17,7 +23,7 @@ Index: gdb-7.9.50.20150520/gdb/gdbtypes.h
FIELD_LOC_KIND_PHYSADDR, /**< physaddr */
FIELD_LOC_KIND_PHYSNAME, /**< physname */
FIELD_LOC_KIND_DWARF_BLOCK /**< dwarf_block */
-@@ -513,6 +514,7 @@ union field_location
+@@ -491,6 +492,7 @@ union field_location
field. Otherwise, physname is the mangled label of the
static field. */
@@ -25,7 +31,7 @@ Index: gdb-7.9.50.20150520/gdb/gdbtypes.h
CORE_ADDR physaddr;
const char *physname;
-@@ -1386,6 +1388,7 @@ extern void set_type_vptr_basetype (stru
+@@ -1332,6 +1334,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
@@ -33,7 +39,7 @@ Index: gdb-7.9.50.20150520/gdb/gdbtypes.h
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
#define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
#define SET_FIELD_BITPOS(thisfld, bitpos) \
-@@ -1397,6 +1400,7 @@ extern void set_type_vptr_basetype (stru
+@@ -1343,6 +1346,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define SET_FIELD_PHYSNAME(thisfld, name) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
FIELD_STATIC_PHYSNAME (thisfld) = (name))
@@ -41,7 +47,7 @@ Index: gdb-7.9.50.20150520/gdb/gdbtypes.h
#define SET_FIELD_PHYSADDR(thisfld, addr) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
FIELD_STATIC_PHYSADDR (thisfld) = (addr))
-@@ -1413,6 +1417,7 @@ extern void set_type_vptr_basetype (stru
+@@ -1359,6 +1363,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
@@ -49,11 +55,11 @@ Index: gdb-7.9.50.20150520/gdb/gdbtypes.h
#define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n))
-Index: gdb-7.9.50.20150520/gdb/value.c
-===================================================================
---- gdb-7.9.50.20150520.orig/gdb/value.c 2015-05-31 16:55:29.725475497 +0200
-+++ gdb-7.9.50.20150520/gdb/value.c 2015-05-31 16:55:30.821482415 +0200
-@@ -2951,7 +2951,8 @@ value_static_field (struct type *type, i
+diff --git a/gdb/value.c b/gdb/value.c
+index 3e0ca25fa7..a61f728550 100644
+--- a/gdb/value.c
++++ b/gdb/value.c
+@@ -2966,7 +2966,8 @@ value_static_field (struct type *type, int fieldno)
{
case FIELD_LOC_KIND_PHYSADDR:
retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),
@@ -63,3 +69,6 @@ Index: gdb-7.9.50.20150520/gdb/value.c
break;
case FIELD_LOC_KIND_PHYSNAME:
{
+--
+2.14.3
+
diff --git a/gdb-archer-vla-tests.patch b/gdb-archer-vla-tests.patch
index 5ef0639..a260ab5 100644
--- a/gdb-archer-vla-tests.patch
+++ b/gdb-archer-vla-tests.patch
@@ -1,14 +1,106 @@
+From d4725aa3b3cec43052702127ca7ccdd3f380add7 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-archer-vla-tests.patch
FileName: gdb-archer-vla-tests.patch
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.ada/packed_array.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.ada/packed_array.exp 2017-02-26 19:15:28.552824751 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.ada/packed_array.exp 2017-02-26 19:15:36.597882316 +0100
-@@ -56,5 +56,11 @@
+;;=fedoratest
+---
+ gdb/testsuite/gdb.ada/packed_array.exp | 6 +
+ gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S | 358 ++++++++++++++++
+ gdb/testsuite/gdb.arch/x86_64-vla-pointer.c | 45 ++
+ gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp | 65 +++
+ gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S | 455 +++++++++++++++++++++
+ gdb/testsuite/gdb.arch/x86_64-vla-typedef.c | 45 ++
+ gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp | 64 +++
+ gdb/testsuite/gdb.base/arrayidx.c | 7 +
+ gdb/testsuite/gdb.base/arrayidx.exp | 10 +-
+ .../gdb.base/internal-var-field-address.c | 20 +
+ .../gdb.base/internal-var-field-address.exp | 26 ++
+ gdb/testsuite/gdb.base/vla-frame.c | 31 ++
+ gdb/testsuite/gdb.base/vla-frame.exp | 38 ++
+ gdb/testsuite/gdb.base/vla-overflow.c | 30 ++
+ gdb/testsuite/gdb.base/vla-overflow.exp | 109 +++++
+ gdb/testsuite/gdb.base/vla.c | 55 +++
+ gdb/testsuite/gdb.base/vla.exp | 62 +++
+ gdb/testsuite/gdb.cp/gdb9593.cc | 180 ++++++++
+ gdb/testsuite/gdb.cp/gdb9593.exp | 182 +++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S | 246 +++++++++++
+ gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp | 66 +++
+ gdb/testsuite/gdb.dwarf2/dw2-stripped.c | 42 ++
+ gdb/testsuite/gdb.dwarf2/dw2-stripped.exp | 79 ++++
+ .../gdb.dwarf2/dw2-struct-member-data-location.S | 83 ++++
+ .../gdb.dwarf2/dw2-struct-member-data-location.exp | 37 ++
+ gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S | 121 ++++++
+ gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp | 39 ++
+ gdb/testsuite/gdb.fortran/dwarf-stride.exp | 42 ++
+ gdb/testsuite/gdb.fortran/dwarf-stride.f90 | 40 ++
+ gdb/testsuite/gdb.fortran/dynamic.exp | 154 +++++++
+ gdb/testsuite/gdb.fortran/dynamic.f90 | 98 +++++
+ gdb/testsuite/gdb.fortran/string.exp | 59 +++
+ gdb/testsuite/gdb.fortran/string.f90 | 37 ++
+ gdb/testsuite/gdb.fortran/subrange.exp | 72 ++++
+ gdb/testsuite/gdb.fortran/subrange.f90 | 28 ++
+ gdb/testsuite/gdb.mi/mi2-var-stale-type.c | 26 ++
+ gdb/testsuite/gdb.mi/mi2-var-stale-type.exp | 57 +++
+ gdb/testsuite/gdb.opt/array-from-register-func.c | 22 +
+ gdb/testsuite/gdb.opt/array-from-register.c | 28 ++
+ gdb/testsuite/gdb.opt/array-from-register.exp | 33 ++
+ gdb/testsuite/gdb.opt/fortran-string.exp | 39 ++
+ gdb/testsuite/gdb.opt/fortran-string.f90 | 28 ++
+ gdb/testsuite/gdb.pascal/arrays.exp | 104 +++++
+ gdb/testsuite/gdb.pascal/arrays.pas | 82 ++++
+ gdb/testsuite/lib/gdb.exp | 5 +
+ gdb/testsuite/lib/pascal.exp | 17 +
+ 46 files changed, 3471 insertions(+), 1 deletion(-)
+ create mode 100644 gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
+ create mode 100644 gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
+ create mode 100644 gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
+ create mode 100644 gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
+ create mode 100644 gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
+ create mode 100644 gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
+ create mode 100644 gdb/testsuite/gdb.base/internal-var-field-address.c
+ create mode 100644 gdb/testsuite/gdb.base/internal-var-field-address.exp
+ create mode 100644 gdb/testsuite/gdb.base/vla-frame.c
+ create mode 100644 gdb/testsuite/gdb.base/vla-frame.exp
+ create mode 100644 gdb/testsuite/gdb.base/vla-overflow.c
+ create mode 100644 gdb/testsuite/gdb.base/vla-overflow.exp
+ create mode 100644 gdb/testsuite/gdb.base/vla.c
+ create mode 100644 gdb/testsuite/gdb.base/vla.exp
+ create mode 100644 gdb/testsuite/gdb.cp/gdb9593.cc
+ create mode 100644 gdb/testsuite/gdb.cp/gdb9593.exp
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-stripped.c
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
+ create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/dwarf-stride.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/dwarf-stride.f90
+ create mode 100644 gdb/testsuite/gdb.fortran/dynamic.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/dynamic.f90
+ create mode 100644 gdb/testsuite/gdb.fortran/string.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/string.f90
+ create mode 100644 gdb/testsuite/gdb.fortran/subrange.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/subrange.f90
+ create mode 100644 gdb/testsuite/gdb.mi/mi2-var-stale-type.c
+ create mode 100644 gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
+ create mode 100644 gdb/testsuite/gdb.opt/array-from-register-func.c
+ create mode 100644 gdb/testsuite/gdb.opt/array-from-register.c
+ create mode 100644 gdb/testsuite/gdb.opt/array-from-register.exp
+ create mode 100644 gdb/testsuite/gdb.opt/fortran-string.exp
+ create mode 100644 gdb/testsuite/gdb.opt/fortran-string.f90
+ create mode 100644 gdb/testsuite/gdb.pascal/arrays.exp
+ create mode 100644 gdb/testsuite/gdb.pascal/arrays.pas
+
+diff --git a/gdb/testsuite/gdb.ada/packed_array.exp b/gdb/testsuite/gdb.ada/packed_array.exp
+index 3222a95faa..8dafb65cf9 100644
+--- a/gdb/testsuite/gdb.ada/packed_array.exp
++++ b/gdb/testsuite/gdb.ada/packed_array.exp
+@@ -56,5 +56,11 @@ gdb_test_multiple "$test" "$test" {
# are. Observed with (FSF GNU Ada 4.5.3 20110124).
xfail $test
}
@@ -20,10 +112,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.ada/packed_array.exp
+ }
}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S 2017-02-26 19:15:36.598882323 +0100
+diff --git a/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S b/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
+new file mode 100644
+index 0000000000..3a983e6b22
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
@@ -0,0 +1,358 @@
+ .file "x86_64-vla-pointer.c"
+ .text
@@ -383,10 +476,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer-foo.S
+ .string "array"
+ .ident "GCC: (GNU) 6.2.1 20160916 (Red Hat 6.2.1-2)"
+ .section .note.GNU-stack,"",@progbits
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c 2017-02-26 19:15:36.598882323 +0100
+diff --git a/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c b/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
+new file mode 100644
+index 0000000000..98ee43bbf2
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
@@ -0,0 +1,45 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -433,10 +527,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.c
+}
+
+#endif
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp 2017-02-26 19:15:36.598882323 +0100
+diff --git a/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp b/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
+new file mode 100644
+index 0000000000..3e2e64a6ab
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
@@ -0,0 +1,65 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -503,10 +598,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-pointer.exp
+gdb_test "whatis array" "type = array_t" "second: whatis array"
+gdb_test "whatis array_t" "type = char \\\[variable length\\\]" "second: whatis array_t"
+gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S 2017-02-26 19:15:36.598882323 +0100
+diff --git a/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S b/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
+new file mode 100644
+index 0000000000..66f7a399bf
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
@@ -0,0 +1,455 @@
+ .file "x86_64-vla-typedef.c"
+ .section .debug_abbrev,"",@progbits
@@ -963,10 +1059,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef-foo.S
+ .string "GNU C 4.3.2 20081105 (Red Hat 4.3.2-7)"
+ .ident "GCC: (GNU) 4.3.2 20081105 (Red Hat 4.3.2-7)"
+ .section .note.GNU-stack,"",@progbits
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c 2017-02-26 19:15:36.599882330 +0100
+diff --git a/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c b/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
+new file mode 100644
+index 0000000000..40099e9d39
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
@@ -0,0 +1,45 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -1013,10 +1110,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.c
+}
+
+#endif
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp 2017-02-26 19:15:36.599882330 +0100
+diff --git a/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp b/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
+new file mode 100644
+index 0000000000..4ef6214629
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
@@ -0,0 +1,64 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -1082,10 +1180,10 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.arch/x86_64-vla-typedef.exp
+gdb_test "whatis array" "type = array_t" "second: whatis array"
+
+gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.c
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.base/arrayidx.c 2017-02-26 19:15:28.555824772 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.c 2017-02-26 19:15:36.599882330 +0100
+diff --git a/gdb/testsuite/gdb.base/arrayidx.c b/gdb/testsuite/gdb.base/arrayidx.c
+index 511b86b728..e111479bb3 100644
+--- a/gdb/testsuite/gdb.base/arrayidx.c
++++ b/gdb/testsuite/gdb.base/arrayidx.c
@@ -17,6 +17,13 @@
int array[] = {1, 2, 3, 4};
@@ -1100,11 +1198,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.c
int
main (void)
{
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/gdb.base/arrayidx.exp 2017-02-26 19:15:28.555824772 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.exp 2017-02-26 19:15:36.599882330 +0100
-@@ -49,4 +49,12 @@
+diff --git a/gdb/testsuite/gdb.base/arrayidx.exp b/gdb/testsuite/gdb.base/arrayidx.exp
+index c2d4fd958d..69ed450ae3 100644
+--- a/gdb/testsuite/gdb.base/arrayidx.exp
++++ b/gdb/testsuite/gdb.base/arrayidx.exp
+@@ -49,4 +49,12 @@ gdb_test "print array" \
"\\{\\\[0\\\] = 1, \\\[1\\\] = 2, \\\[2\\\] = 3, \\\[3\\\] = 4\\}" \
"print array with array-indexes on"
@@ -1118,10 +1216,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/arrayidx.exp
+ unsupported "$test (no GCC)"
+ }
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.c 2017-02-26 19:15:36.599882330 +0100
+diff --git a/gdb/testsuite/gdb.base/internal-var-field-address.c b/gdb/testsuite/gdb.base/internal-var-field-address.c
+new file mode 100644
+index 0000000000..eeb7b8501c
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/internal-var-field-address.c
@@ -0,0 +1,20 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -1143,10 +1242,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.c
+struct {
+ int field;
+} staticstruct = { 1 };
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.exp 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/internal-var-field-address.exp b/gdb/testsuite/gdb.base/internal-var-field-address.exp
+new file mode 100644
+index 0000000000..33c9e94eee
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/internal-var-field-address.exp
@@ -0,0 +1,26 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -1174,10 +1274,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/internal-var-field-address.ex
+
+gdb_test {set $varstruct = staticstruct}
+gdb_test {p $varstruct.field} " = 1"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.c 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/vla-frame.c b/gdb/testsuite/gdb.base/vla-frame.c
+new file mode 100644
+index 0000000000..5750f68b3d
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/vla-frame.c
@@ -0,0 +1,31 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -1210,10 +1311,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.c
+ f (s);
+ return 0;
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.exp 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/vla-frame.exp b/gdb/testsuite/gdb.base/vla-frame.exp
+new file mode 100644
+index 0000000000..47736c7625
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/vla-frame.exp
@@ -0,0 +1,38 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
@@ -1253,10 +1355,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-frame.exp
+}
+
+gdb_test "bt full" "\r\n +s = \"X\\\\000\"\r\n.*"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.c 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/vla-overflow.c b/gdb/testsuite/gdb.base/vla-overflow.c
+new file mode 100644
+index 0000000000..c5d5ee0bb9
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/vla-overflow.c
@@ -0,0 +1,30 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -1288,10 +1391,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.c
+
+ return 0;
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.exp 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/vla-overflow.exp b/gdb/testsuite/gdb.base/vla-overflow.exp
+new file mode 100644
+index 0000000000..43a5825979
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/vla-overflow.exp
@@ -0,0 +1,109 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -1402,10 +1506,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla-overflow.exp
+gdb_test "bt" "in \[^ \]*abort \\(.* in main \\(.*" "Backtrace after abort()"
+
+verbose -log "kb_found in bt after abort() = [expr [memory_v_pages_get] * $pagesize / 1024]"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.c 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/vla.c b/gdb/testsuite/gdb.base/vla.c
+new file mode 100644
+index 0000000000..e1f3ed1780
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/vla.c
@@ -0,0 +1,55 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -1462,10 +1567,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.c
+ foo (78);
+ return 0;
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.exp 2017-02-26 19:15:36.600882337 +0100
+diff --git a/gdb/testsuite/gdb.base/vla.exp b/gdb/testsuite/gdb.base/vla.exp
+new file mode 100644
+index 0000000000..71fe637272
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/vla.exp
@@ -0,0 +1,62 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -1529,10 +1635,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.base/vla.exp
+gdb_test "p temp1" " = '1' " "second: print temp1"
+gdb_test "p temp2" " = '2' " "second: print temp2"
+gdb_test "p temp3" " = '3' " "second: print temp3"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.cc 2017-02-26 19:15:36.601882344 +0100
+diff --git a/gdb/testsuite/gdb.cp/gdb9593.cc b/gdb/testsuite/gdb.cp/gdb9593.cc
+new file mode 100644
+index 0000000000..783c9622a8
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/gdb9593.cc
@@ -0,0 +1,180 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -1714,10 +1821,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.cc
+ }
+}
+
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.exp 2017-02-26 19:15:36.601882344 +0100
+diff --git a/gdb/testsuite/gdb.cp/gdb9593.exp b/gdb/testsuite/gdb.cp/gdb9593.exp
+new file mode 100644
+index 0000000000..ef40424402
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/gdb9593.exp
@@ -0,0 +1,182 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc.
+
@@ -1901,10 +2009,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.cp/gdb9593.exp
+gdb_test "advance $line" \
+ ".*catch (...).*" \
+ "advance-over-throw"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S 2017-02-26 19:15:36.601882344 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
+new file mode 100644
+index 0000000000..aac3baad8a
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
@@ -0,0 +1,246 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -2152,10 +2261,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
+ .string "char"
+.Luint_str:
+ .string "unsigned int"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp 2017-02-26 19:15:36.602882352 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
+new file mode 100644
+index 0000000000..39e69b470f
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
@@ -0,0 +1,66 @@
+# Copyright 2010 Free Software Foundation, Inc.
+
@@ -2223,10 +2333,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
+
+# The register contains unpredictable value - the array size.
+gdb_test "ptype reg_string" {type = char \[-?[0-9]+\]}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.c 2017-02-26 19:15:36.602882352 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stripped.c b/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
+new file mode 100644
+index 0000000000..1f02d90eeb
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
@@ -0,0 +1,42 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -2270,10 +2381,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
+ func1 (1, 2);
+ return 0;
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp 2017-02-26 19:15:36.602882352 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp b/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
+new file mode 100644
+index 0000000000..9336e03157
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
@@ -0,0 +1,79 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
@@ -2354,10 +2466,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
+gdb_test "step" \
+ "func.* \\(.*\\) at .*" \
+ "step"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S 2017-02-26 19:15:36.602882352 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S b/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
+new file mode 100644
+index 0000000000..5fcdd84986
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.S
@@ -0,0 +1,83 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -2442,10 +2555,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-loca
+
+ .byte 0x0 /* Terminator */
+ .byte 0x0 /* Terminator */
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp 2017-02-26 19:15:36.602882352 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp b/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
+new file mode 100644
+index 0000000000..bc35209fe5
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp
@@ -0,0 +1,37 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -2484,10 +2598,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-struct-member-data-loca
+clean_restart $binfile
+
+gdb_test "ptype struct some_struct" "type = struct some_struct {\[\r\n \t\]*void field;\[\r\n \t\]*}"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S 2017-02-26 19:15:36.602882352 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S b/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
+new file mode 100644
+index 0000000000..9dbbf3c3e1
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
@@ -0,0 +1,121 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -2610,10 +2725,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.S
+ .byte 0x0 /* Terminator */
+
+ .byte 0x0 /* Terminator */
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp 2017-02-26 19:15:36.603882359 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
+new file mode 100644
+index 0000000000..cec673cd39
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
@@ -0,0 +1,39 @@
+# Copyright 2012 Free Software Foundation, Inc.
+
@@ -2654,10 +2770,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.dwarf2/dw2-subrange-no-type.exp
+
+gdb_test "ptype notype_string" {type = char \[129\]}
+gdb_test "p notype_string" " = 'x' "
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2017-02-26 19:15:36.603882359 +0100
+diff --git a/gdb/testsuite/gdb.fortran/dwarf-stride.exp b/gdb/testsuite/gdb.fortran/dwarf-stride.exp
+new file mode 100644
+index 0000000000..d7b8bea8db
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/dwarf-stride.exp
@@ -0,0 +1,42 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -2701,10 +2818,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.exp
+gdb_continue_to_breakpoint "break-here" ".*break-here.*"
+gdb_test "p c40pt(1)" " = '0-hello.*"
+gdb_test "p c40pt(2)" " = '1-hello.*"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.f90
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.f90 2017-02-26 19:15:36.603882359 +0100
+diff --git a/gdb/testsuite/gdb.fortran/dwarf-stride.f90 b/gdb/testsuite/gdb.fortran/dwarf-stride.f90
+new file mode 100644
+index 0000000000..e492b3af42
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/dwarf-stride.f90
@@ -0,0 +1,40 @@
+! Copyright 2009 Free Software Foundation, Inc.
+!
@@ -2746,10 +2864,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dwarf-stride.f90
+ print *, c40pt ! break-here
+
+end program repro
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.exp 2017-02-26 19:15:36.603882359 +0100
+diff --git a/gdb/testsuite/gdb.fortran/dynamic.exp b/gdb/testsuite/gdb.fortran/dynamic.exp
+new file mode 100644
+index 0000000000..37d435f799
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/dynamic.exp
@@ -0,0 +1,154 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
@@ -2905,10 +3024,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.exp
+gdb_test "p vart(3,8)" "\\$\[0-9\]* = 9"
+# maps to foo::vary(1,3)
+gdb_test "p vart(2,9)" "\\$\[0-9\]* = 10"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.f90
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.f90 2017-02-26 19:15:36.603882359 +0100
+diff --git a/gdb/testsuite/gdb.fortran/dynamic.f90 b/gdb/testsuite/gdb.fortran/dynamic.f90
+new file mode 100644
+index 0000000000..0f43564378
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/dynamic.f90
@@ -0,0 +1,98 @@
+! Copyright 2007 Free Software Foundation, Inc.
+!
@@ -3008,10 +3128,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/dynamic.f90
+ if (x (1, 1) .ne. 8 .or. x (2, 2) .ne. 9 .or. x (1, 2) .ne. 4) call abort
+ if (x (3, 1) .ne. 10) call abort
+end
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.exp 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.fortran/string.exp b/gdb/testsuite/gdb.fortran/string.exp
+new file mode 100644
+index 0000000000..1b7c0dbf73
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/string.exp
@@ -0,0 +1,59 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@@ -3072,10 +3193,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.exp
+gdb_continue_to_breakpoint "var-finish"
+gdb_test "p e" "\\$\[0-9\]* = 'e '" "p e re-set"
+gdb_test "p f" "\\$\[0-9\]* = \\(\\( 'f ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\( 'f2 ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\( 'f ', 'f ', 'f ', 'f ', 'f ', 'f ', 'f '\\) \\)" "p *f re-set"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.f90
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.f90 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.fortran/string.f90 b/gdb/testsuite/gdb.fortran/string.f90
+new file mode 100644
+index 0000000000..226dc5d0ff
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/string.f90
@@ -0,0 +1,37 @@
+! Copyright 2008 Free Software Foundation, Inc.
+!
@@ -3114,10 +3236,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/string.f90
+ h = 'h'
+ call foo (g, h)
+end
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.exp 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.fortran/subrange.exp b/gdb/testsuite/gdb.fortran/subrange.exp
+new file mode 100644
+index 0000000000..c121ab9751
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/subrange.exp
@@ -0,0 +1,72 @@
+# Copyright 2011 Free Software Foundation, Inc.
+
@@ -3191,10 +3314,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.exp
+gdb_unload
+setup_kfail "*-*-*" "vlaregression/9999"
+gdb_test {p $a (3, 2:2)} { = \(23\)}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.f90
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.f90 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.fortran/subrange.f90 b/gdb/testsuite/gdb.fortran/subrange.f90
+new file mode 100644
+index 0000000000..4747ea9746
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/subrange.f90
@@ -0,0 +1,28 @@
+! Copyright 2011 Free Software Foundation, Inc.
+!
@@ -3224,10 +3348,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.fortran/subrange.f90
+ ptr => a
+ write (*,*) a ! break-static
+end
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.c 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.mi/mi2-var-stale-type.c b/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
+new file mode 100644
+index 0000000000..ebced3c042
+--- /dev/null
++++ b/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
@@ -0,0 +1,26 @@
+/* Copyright 2011 Free Software Foundation, Inc.
+
@@ -3255,10 +3380,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.c
+
+ return 0;
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp b/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
+new file mode 100644
+index 0000000000..88326c0390
+--- /dev/null
++++ b/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
@@ -0,0 +1,57 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
@@ -3317,10 +3443,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
+mi_create_varobj "vla" "vla" "create local variable vla"
+
+mi_gdb_test "-var-update *" "\\^done,changelist=.*" "-var-update *"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register-func.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register-func.c 2017-02-26 19:15:36.604882366 +0100
+diff --git a/gdb/testsuite/gdb.opt/array-from-register-func.c b/gdb/testsuite/gdb.opt/array-from-register-func.c
+new file mode 100644
+index 0000000000..729f457c82
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/array-from-register-func.c
@@ -0,0 +1,22 @@
+/* This file is part of GDB, the GNU debugger.
+
@@ -3344,10 +3471,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register-func.c
+{
+ return arr[0];
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.c 2017-02-26 19:15:36.605882373 +0100
+diff --git a/gdb/testsuite/gdb.opt/array-from-register.c b/gdb/testsuite/gdb.opt/array-from-register.c
+new file mode 100644
+index 0000000000..3090e7e631
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/array-from-register.c
@@ -0,0 +1,28 @@
+/* This file is part of GDB, the GNU debugger.
+
@@ -3377,10 +3505,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.c
+
+ return 0;
+}
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.exp 2017-02-26 19:15:36.605882373 +0100
+diff --git a/gdb/testsuite/gdb.opt/array-from-register.exp b/gdb/testsuite/gdb.opt/array-from-register.exp
+new file mode 100644
+index 0000000000..f2de718bc3
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/array-from-register.exp
@@ -0,0 +1,33 @@
+# Copyright 2009 Free Software Foundation, Inc.
+#
@@ -3415,10 +3544,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/array-from-register.exp
+# Seen regression:
+# Address requested for identifier "arr" which is in register $rdi
+gdb_test "p arr\[0\]" "\\$\[0-9\]+ = 42"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.exp 2017-02-26 19:15:36.605882373 +0100
+diff --git a/gdb/testsuite/gdb.opt/fortran-string.exp b/gdb/testsuite/gdb.opt/fortran-string.exp
+new file mode 100644
+index 0000000000..90a2bdf212
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/fortran-string.exp
@@ -0,0 +1,39 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -3459,10 +3589,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.exp
+gdb_test "frame" ".*s='foo'.*"
+gdb_test "ptype s" "type = character\\*3"
+gdb_test "p s" "\\$\[0-9\]* = 'foo'"
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.f90
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.f90 2017-02-26 19:15:36.605882373 +0100
+diff --git a/gdb/testsuite/gdb.opt/fortran-string.f90 b/gdb/testsuite/gdb.opt/fortran-string.f90
+new file mode 100644
+index 0000000000..e48d520085
+--- /dev/null
++++ b/gdb/testsuite/gdb.opt/fortran-string.f90
@@ -0,0 +1,28 @@
+! Copyright 2009 Free Software Foundation, Inc.
+!
@@ -3492,10 +3623,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.opt/fortran-string.f90
+ program main
+ call f ('foo')
+ end
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.exp 2017-02-26 19:15:36.605882373 +0100
+diff --git a/gdb/testsuite/gdb.pascal/arrays.exp b/gdb/testsuite/gdb.pascal/arrays.exp
+new file mode 100644
+index 0000000000..22acdb86d8
+--- /dev/null
++++ b/gdb/testsuite/gdb.pascal/arrays.exp
@@ -0,0 +1,104 @@
+# Copyright 2008, 2009 Free Software Foundation, Inc.
+#
@@ -3601,10 +3733,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.exp
+}
+gdb_test "print DynArrChar" ".* = 'abcdefghijklm'" "Print dynamic array of char"
+
-Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.pas
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.pas 2017-02-26 19:15:36.605882373 +0100
+diff --git a/gdb/testsuite/gdb.pascal/arrays.pas b/gdb/testsuite/gdb.pascal/arrays.pas
+new file mode 100644
+index 0000000000..295602d68c
+--- /dev/null
++++ b/gdb/testsuite/gdb.pascal/arrays.pas
@@ -0,0 +1,82 @@
+{
+ Copyright 2008, 2009 Free Software Foundation, Inc.
@@ -3688,11 +3821,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/gdb.pascal/arrays.pas
+ s := 'test'#0'string';
+ writeln(s); { set breakpoint 2 here }
+end.
-Index: gdb-7.12.50.20170207/gdb/testsuite/lib/gdb.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/lib/gdb.exp 2017-02-26 19:15:28.564824836 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/lib/gdb.exp 2017-02-26 19:15:36.607882387 +0100
-@@ -178,6 +178,11 @@
+diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
+index ff8218bf3d..c5924f97af 100644
+--- a/gdb/testsuite/lib/gdb.exp
++++ b/gdb/testsuite/lib/gdb.exp
+@@ -178,6 +178,11 @@ proc gdb_unload {} {
send_gdb "y\n"
exp_continue
}
@@ -3704,11 +3837,11 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/lib/gdb.exp
-re "Discard symbol table from .*y or n.*$" {
send_gdb "y\n"
exp_continue
-Index: gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/testsuite/lib/pascal.exp 2017-02-26 19:15:28.565824844 +0100
-+++ gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp 2017-02-26 19:15:36.607882387 +0100
-@@ -37,6 +37,9 @@
+diff --git a/gdb/testsuite/lib/pascal.exp b/gdb/testsuite/lib/pascal.exp
+index a0562c3fe5..8f0257196f 100644
+--- a/gdb/testsuite/lib/pascal.exp
++++ b/gdb/testsuite/lib/pascal.exp
+@@ -37,6 +37,9 @@ proc pascal_init {} {
global pascal_compiler_is_fpc
global gpc_compiler
global fpc_compiler
@@ -3718,7 +3851,7 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp
global env
if { $pascal_init_done == 1 } {
-@@ -64,6 +67,20 @@
+@@ -64,6 +67,20 @@ proc pascal_init {} {
set pascal_compiler_is_fpc 1
verbose -log "Free Pascal compiler found"
}
@@ -3739,3 +3872,6 @@ Index: gdb-7.12.50.20170207/gdb/testsuite/lib/pascal.exp
}
set pascal_init_done 1
}
+--
+2.14.3
+
diff --git a/gdb-archer.patch b/gdb-archer.patch
index c3c8da6..145c46d 100644
--- a/gdb-archer.patch
+++ b/gdb-archer.patch
@@ -1,3 +1,13 @@
+From a33be5ba95917ec49fc015387bfc9176fc78180c Mon Sep 17 00:00:00 2001
+From: Fedora GDB patches
+Date: Fri, 27 Oct 2017 21:07:50 +0200
+Subject: gdb-archer.patch
+
+FileName: gdb-archer.patch
+
+;; Python patches of: http://sourceware.org/gdb/wiki/ProjectArcher
+;;=push
+
http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement
@@ -5,21 +15,33 @@ GIT snapshot:
commit 718a1618b2f691a7f407213bb50f100ac59f91c3
tromey/python
+---
+ gdb/Makefile.in | 6 ++
+ gdb/data-directory/Makefile.in | 4 +
+ gdb/doc/gdb.texinfo | 10 +++
+ gdb/doc/python.texi | 2 -
+ gdb/gdb-gdb.gdb.in | 10 +++
+ gdb/main.c | 93 ++++++++++++++++++-----
+ gdb/python/lib/gdb/command/ignore_errors.py | 37 +++++++++
+ gdb/python/lib/gdb/command/pahole.py | 81 ++++++++++++++++++++
+ gdb/python/lib/gdb/function/in_scope.py | 47 ++++++++++++
+ gdb/python/python-internal.h | 3 +
+ gdb/python/python.c | 113 ++++++++++++++++++++++++++++
+ gdb/python/python.h | 2 +
+ gdb/testsuite/gdb.python/py-frame.exp | 2 +
+ gdb/testsuite/gdb.python/py-value.exp | 10 +++
+ gdb/varobj.c | 8 ++
+ gdb/varobj.h | 2 +
+ 16 files changed, 411 insertions(+), 19 deletions(-)
+ create mode 100644 gdb/python/lib/gdb/command/ignore_errors.py
+ create mode 100644 gdb/python/lib/gdb/command/pahole.py
+ create mode 100644 gdb/python/lib/gdb/function/in_scope.py
-
-diff --git a/README.archer b/README.archer
-new file mode 100644
-index 0000000..173b8ea
---- /dev/null
-+++ b/README.archer
-@@ -0,0 +1,2 @@
-+This branch originally held the Python code for gdb. It still exists
-+because a small amount of code here has not yet been merged upstream.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index 291b1a0..150a8ef 100644
+index edd0b239d4..0c3f89aa7e 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
-@@ -2350,6 +2350,12 @@ stamp-h: $(srcdir)/config.in config.status
+@@ -2113,6 +2113,12 @@ stamp-h: $(srcdir)/config.in config.status
CONFIG_LINKS= \
$(SHELL) config.status
@@ -33,22 +55,19 @@ index 291b1a0..150a8ef 100644
$(SHELL) config.status --recheck
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
-index 304d4b0..d2007a4 100644
+index dadde8895a..19e436d725 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
-@@ -77,7 +77,11 @@ PYTHON_FILE_LIST = \
- gdb/types.py \
+@@ -80,6 +80,8 @@ PYTHON_FILE_LIST = \
gdb/unwinder.py \
gdb/xmethod.py \
-+ gdb/types.py \
gdb/command/__init__.py \
+ gdb/command/ignore_errors.py \
+ gdb/command/pahole.py \
-+ gdb/command/xmethods.py \
gdb/command/explore.py \
+ gdb/command/backtrace.py \
gdb/command/frame_filters.py \
- gdb/command/pretty_printers.py \
-@@ -89,6 +93,8 @@ PYTHON_FILE_LIST = \
+@@ -92,6 +94,8 @@ PYTHON_FILE_LIST = \
gdb/function/as_string.py \
gdb/function/caller_is.py \
gdb/function/strfns.py \
@@ -58,10 +77,10 @@ index 304d4b0..d2007a4 100644
gdb/printer/bound_registers.py
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
-index 300d78e..699f2cb 100644
+index a79c686f0b..d13d4dd945 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
-@@ -1230,6 +1230,16 @@ for remote debugging.
+@@ -1240,6 +1240,16 @@ for remote debugging.
Run using @var{device} for your program's standard input and output.
@c FIXME: kingdon thinks there is more to -tty. Investigate.
@@ -79,7 +98,7 @@ index 300d78e..699f2cb 100644
@item -tui
@cindex @code{--tui}
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
-index ce5810e..4ceb108 100644
+index 01243c7c7d..eb7bf3ca05 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -88,8 +88,6 @@ containing @code{end}. For example:
@@ -92,7 +111,7 @@ index ce5810e..4ceb108 100644
>end
23
diff --git a/gdb/gdb-gdb.gdb.in b/gdb/gdb-gdb.gdb.in
-index 05a38b2..9801fdf 100644
+index 05a38b2670..9801fdff67 100644
--- a/gdb/gdb-gdb.gdb.in
+++ b/gdb/gdb-gdb.gdb.in
@@ -1,5 +1,15 @@
@@ -112,7 +131,7 @@ index 05a38b2..9801fdf 100644
set variable $gdb_init_done = 1
diff --git a/gdb/main.c b/gdb/main.c
-index df4b111..6aca8b0 100644
+index df1f12bd79..a530a632bf 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -33,6 +33,7 @@
@@ -123,8 +142,8 @@ index df4b111..6aca8b0 100644
#include "source.h"
#include "cli/cli-cmds.h"
#include "objfiles.h"
-@@ -459,7 +460,7 @@ struct cmdarg
- };
+@@ -478,7 +479,7 @@ exec_or_core_file_attach (const char *filename, int from_tty)
+ }
static void
-captured_main_1 (struct captured_main_args *context)
@@ -132,7 +151,7 @@ index df4b111..6aca8b0 100644
{
int argc = context->argc;
char **argv = context->argv;
-@@ -676,10 +677,14 @@ captured_main_1 (struct captured_main_args *context)
+@@ -695,10 +696,14 @@ captured_main_1 (struct captured_main_args *context)
{"args", no_argument, &set_args, 1},
{"l", required_argument, 0, 'l'},
{"return-child-result", no_argument, &return_child_result, 1},
@@ -148,7 +167,7 @@ index df4b111..6aca8b0 100644
{
int option_index;
-@@ -697,6 +702,9 @@ captured_main_1 (struct captured_main_args *context)
+@@ -716,6 +721,9 @@ captured_main_1 (struct captured_main_args *context)
case 0:
/* Long option that just sets a flag. */
break;
@@ -158,7 +177,7 @@ index df4b111..6aca8b0 100644
case OPT_SE:
symarg = optarg;
execarg = optarg;
-@@ -855,7 +863,31 @@ captured_main_1 (struct captured_main_args *context)
+@@ -888,7 +896,31 @@ captured_main_1 (struct captured_main_args *context)
/* Now that gdb_init has created the initial inferior, we're in
position to set args for that inferior. */
@@ -191,7 +210,7 @@ index df4b111..6aca8b0 100644
{
/* The remaining options are the command-line options for the
inferior. The first one is the sym/exec file, and the rest
-@@ -1125,7 +1157,8 @@ captured_main_1 (struct captured_main_args *context)
+@@ -1178,7 +1210,8 @@ captured_main_1 (struct captured_main_args *context)
/* Read in the old history after all the command files have been
read. */
@@ -201,7 +220,7 @@ index df4b111..6aca8b0 100644
if (batch_flag)
{
-@@ -1138,16 +1171,29 @@ static void
+@@ -1191,24 +1224,37 @@ static void
captured_main (void *data)
{
struct captured_main_args *context = (struct captured_main_args *) data;
@@ -217,7 +236,12 @@ index df4b111..6aca8b0 100644
- while (1)
+#if HAVE_PYTHON
+ if (python_script)
-+ {
+ {
+- TRY
+- {
+- captured_command_loop ();
+- }
+- CATCH (ex, RETURN_MASK_ALL)
+ extern int pagination_enabled;
+ pagination_enabled = 0;
+ run_python_script (context->argc - optind, &context->argv[optind]);
@@ -225,20 +249,29 @@ index df4b111..6aca8b0 100644
+ }
+ else
+#endif
- {
-- catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
++ {
+ /* NOTE: cagney/1999-11-07: There is probably no reason for not
+ moving this loop and the code found in captured_command_loop()
+ into the command_loop() proper. The main thing holding back that
+ change - SET_TOP_LEVEL() - has been eliminated. */
+ while (1)
-+ {
-+ catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
-+ }
+ {
+- exception_print (gdb_stderr, ex);
++ TRY
++ {
++ captured_command_loop ();
++ }
++ CATCH (ex, RETURN_MASK_ALL)
++ {
++ exception_print (gdb_stderr, ex);
++ }
++ END_CATCH
+ }
+- END_CATCH
}
/* No exit -- exit is through quit_command. */
}
-@@ -1190,6 +1236,12 @@ print_gdb_help (struct ui_file *stream)
+@@ -1251,6 +1297,12 @@ print_gdb_help (struct ui_file *stream)
fputs_unfiltered (_("\
This is the GNU debugger. Usage:\n\n\
gdb [options] [executable-file [core-file or process-id]]\n\
@@ -251,7 +284,7 @@ index df4b111..6aca8b0 100644
gdb [options] --args executable-file [inferior-arguments ...]\n\n\
"), stream);
fputs_unfiltered (_("\
-@@ -1234,6 +1286,13 @@ Output and user interface control:\n\n\
+@@ -1296,6 +1348,13 @@ Output and user interface control:\n\n\
#endif
fputs_unfiltered (_("\
--dbx DBX compatibility mode.\n\
@@ -267,7 +300,7 @@ index df4b111..6aca8b0 100644
"), stream);
diff --git a/gdb/python/lib/gdb/command/ignore_errors.py b/gdb/python/lib/gdb/command/ignore_errors.py
new file mode 100644
-index 0000000..6fa48ff
+index 0000000000..6fa48ff081
--- /dev/null
+++ b/gdb/python/lib/gdb/command/ignore_errors.py
@@ -0,0 +1,37 @@
@@ -310,7 +343,7 @@ index 0000000..6fa48ff
+IgnoreErrorsCommand ()
diff --git a/gdb/python/lib/gdb/command/pahole.py b/gdb/python/lib/gdb/command/pahole.py
new file mode 100644
-index 0000000..e08eaf5
+index 0000000000..e08eaf5ca8
--- /dev/null
+++ b/gdb/python/lib/gdb/command/pahole.py
@@ -0,0 +1,81 @@
@@ -397,7 +430,7 @@ index 0000000..e08eaf5
+Pahole()
diff --git a/gdb/python/lib/gdb/function/in_scope.py b/gdb/python/lib/gdb/function/in_scope.py
new file mode 100644
-index 0000000..8742680
+index 0000000000..8742680614
--- /dev/null
+++ b/gdb/python/lib/gdb/function/in_scope.py
@@ -0,0 +1,47 @@
@@ -449,10 +482,10 @@ index 0000000..8742680
+
+InScope ()
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
-index e84c8d2..69305b4 100644
+index f099ae437f..468b0ebd92 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
-@@ -672,6 +672,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
+@@ -651,6 +651,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
};
@@ -463,7 +496,7 @@ index e84c8d2..69305b4 100644
extern const struct language_defn *python_language;
diff --git a/gdb/python/python.c b/gdb/python/python.c
-index 7e0c507..a67fbc3 100644
+index 0f71a4335e..03f6c55d40 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -95,6 +95,8 @@ const struct extension_language_defn extension_language_python =
@@ -505,7 +538,7 @@ index 7e0c507..a67fbc3 100644
/* Set the quit flag. */
static void
-@@ -1187,6 +1212,92 @@ gdbpy_print_stack (void)
+@@ -1356,6 +1381,92 @@ gdbpy_print_stack (void)
/* Return the current Progspace.
There always is one. */
@@ -598,7 +631,7 @@ index 7e0c507..a67fbc3 100644
static PyObject *
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
-@@ -1881,6 +1992,8 @@ PyMethodDef python_GdbMethods[] =
+@@ -2035,6 +2146,8 @@ PyMethodDef python_GdbMethods[] =
Evaluate command, a string, as a gdb CLI command. Optionally returns\n\
a Python String containing the output of the command if to_string is\n\
set to True." },
@@ -608,7 +641,7 @@ index 7e0c507..a67fbc3 100644
"Return a gdb parameter's value" },
diff --git a/gdb/python/python.h b/gdb/python/python.h
-index e407faa..fc1c632 100644
+index e407faabfd..fc1c6326a2 100644
--- a/gdb/python/python.h
+++ b/gdb/python/python.h
@@ -25,4 +25,6 @@
@@ -619,7 +652,7 @@ index e407faa..fc1c632 100644
+
#endif /* GDB_PYTHON_H */
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
-index f5d4a3c..3546f7b 100644
+index f5d4a3cc12..3546f7ba2a 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -95,6 +95,8 @@ gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.r
@@ -632,7 +665,7 @@ index f5d4a3c..3546f7b 100644
gdb_test "python print ('result = %s' % (gdb.selected_frame ().read_register ('sp') == gdb.parse_and_eval ('\$sp')))" \
" = True" \
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
-index 1781887..8a2ddd6 100644
+index 1781887c4a..8a2ddd6fae 100644
--- a/gdb/testsuite/gdb.python/py-value.exp
+++ b/gdb/testsuite/gdb.python/py-value.exp
@@ -384,6 +384,15 @@ proc test_value_after_death {} {
@@ -660,10 +693,10 @@ index 1781887..8a2ddd6 100644
# Test either C or C++ values.
diff --git a/gdb/varobj.c b/gdb/varobj.c
-index 5f21d84..18506f1 100644
+index 93b97f6f70..753c6596b3 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
-@@ -226,6 +226,14 @@ is_root_p (const struct varobj *var)
+@@ -217,6 +217,14 @@ is_root_p (const struct varobj *var)
}
#ifdef HAVE_PYTHON
@@ -679,15 +712,18 @@ index 5f21d84..18506f1 100644
/* See python-internal.h. */
gdbpy_enter_varobj::gdbpy_enter_varobj (const struct varobj *var)
diff --git a/gdb/varobj.h b/gdb/varobj.h
-index e35c1b8..12339d1 100644
+index 9163a34fd0..ed51b6ad34 100644
--- a/gdb/varobj.h
+++ b/gdb/varobj.h
-@@ -320,6 +320,8 @@ extern int varobj_has_more (const struct varobj *var, int to);
+@@ -327,6 +327,8 @@ extern bool varobj_has_more (const struct varobj *var, int to);
- extern int varobj_is_dynamic_p (const struct varobj *var);
+ extern bool varobj_is_dynamic_p (const struct varobj *var);
+extern struct cleanup *varobj_ensure_python_env (const struct varobj *var);
+
- extern int varobj_default_value_is_changeable_p (const struct varobj *var);
- extern int varobj_value_is_changeable_p (const struct varobj *var);
+ extern bool varobj_default_value_is_changeable_p (const struct varobj *var);
+ extern bool varobj_value_is_changeable_p (const struct varobj *var);
+--
+2.14.3
+
diff --git a/gdb-attach-fail-reasons-5of5.patch b/gdb-attach-fail-reasons-5of5.patch
index be6c9c8..933455e 100644
--- a/gdb-attach-fail-reasons-5of5.patch
+++ b/gdb-attach-fail-reasons-5of5.patch
@@ -1,13 +1,15 @@
+From 2f8f9053a5b2630408c2a32ff6ba04a5067ab8f7 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [patch 3/3] attach-fail-reasons: SELinux deny_ptrace
+Subject: attach-fail-reasons: SELinux deny_ptrace
FileName: gdb-attach-fail-reasons-5of5.patch
+;; Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878).
+;;=push+jan
http://sourceware.org/ml/gdb-patches/2012-03/msg00171.html
-
Hi,
and here is the last bit for new SELinux 'deny_ptrace':
@@ -16,11 +18,9 @@ and here is the last bit for new SELinux 'deny_ptrace':
As even PTRACE_TRACEME fails in such case it needs to install hook for even
that event.
-
Thanks,
Jan
-
gdb/
2012-03-06 Jan Kratochvil
@@ -43,185 +43,23 @@ gdb/gdbserver/
* linux-low.c (linux_traceme): New function.
(linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace.
+---
+ gdb/config.in | 6 +++++
+ gdb/configure | 58 ++++++++++++++++++++++++++++++++++++++++++++++
+ gdb/configure.ac | 4 ++++
+ gdb/gdbserver/config.in | 6 +++++
+ gdb/gdbserver/configure | 58 ++++++++++++++++++++++++++++++++++++++++++++++
+ gdb/gdbserver/configure.ac | 4 ++++
+ gdb/gdbserver/linux-low.c | 16 ++++++++++++-
+ gdb/linux-nat.c | 24 ++++++++++++++++++-
+ gdb/nat/linux-ptrace.c | 22 ++++++++++++++++++
+ gdb/nat/linux-ptrace.h | 1 +
+ 10 files changed, 197 insertions(+), 2 deletions(-)
-Index: gdb-7.12.50.20170226/gdb/nat/linux-ptrace.c
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/nat/linux-ptrace.c 2017-02-26 21:27:14.780009449 +0100
-+++ gdb-7.12.50.20170226/gdb/nat/linux-ptrace.c 2017-02-26 21:27:18.838038193 +0100
-@@ -27,6 +27,10 @@
- #include
- #endif
-
-+#ifdef HAVE_SELINUX_SELINUX_H
-+# include
-+#endif /* HAVE_SELINUX_SELINUX_H */
-+
- /* Stores the ptrace options supported by the running kernel.
- A value of -1 means we did not check for features yet. A value
- of 0 means there are no supported features. */
-@@ -51,6 +55,8 @@
- buffer_xml_printf (buffer, _("process %d is a zombie "
- "- the process has already terminated"),
- (int) pid);
-+
-+ linux_ptrace_create_warnings (buffer);
- }
-
- /* See linux-ptrace.h. */
-@@ -594,6 +600,22 @@
- linux_ptrace_test_ret_to_nx ();
- }
-
-+/* Print all possible reasons we could fail to create a traced process. */
-+
-+void
-+linux_ptrace_create_warnings (struct buffer *buffer)
-+{
-+#ifdef HAVE_LIBSELINUX
-+ /* -1 is returned for errors, 0 if it has no effect, 1 if PTRACE_ATTACH is
-+ forbidden. */
-+ if (security_get_boolean_active ("deny_ptrace") == 1)
-+ buffer_xml_printf (buffer,
-+ _("the SELinux boolean 'deny_ptrace' is enabled, "
-+ "you can disable this process attach protection by: "
-+ "(gdb) shell sudo setsebool deny_ptrace=0"));
-+#endif /* HAVE_LIBSELINUX */
-+}
-+
- /* Extract extended ptrace event from wait status. */
-
- int
-Index: gdb-7.12.50.20170226/gdb/nat/linux-ptrace.h
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/nat/linux-ptrace.h 2017-02-26 21:27:14.780009449 +0100
-+++ gdb-7.12.50.20170226/gdb/nat/linux-ptrace.h 2017-02-26 21:27:18.838038193 +0100
-@@ -185,6 +185,7 @@
- extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
-
- extern void linux_ptrace_init_warnings (void);
-+extern void linux_ptrace_create_warnings (struct buffer *buffer);
- extern void linux_check_ptrace_features (void);
- extern void linux_enable_event_reporting (pid_t pid, int attached);
- extern void linux_disable_event_reporting (pid_t pid);
-Index: gdb-7.12.50.20170226/gdb/configure.ac
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/configure.ac 2017-02-26 21:27:14.781009456 +0100
-+++ gdb-7.12.50.20170226/gdb/configure.ac 2017-02-26 21:27:18.839038200 +0100
-@@ -2092,6 +2092,10 @@
- esac
- AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
-
-+dnl Check security_get_boolean_active availability.
-+AC_CHECK_HEADERS(selinux/selinux.h)
-+AC_CHECK_LIB(selinux, security_get_boolean_active)
-+
- dnl Handle optional features that can be enabled.
-
- # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
-Index: gdb-7.12.50.20170226/gdb/gdbserver/configure.ac
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/gdbserver/configure.ac 2017-02-26 21:27:14.781009456 +0100
-+++ gdb-7.12.50.20170226/gdb/gdbserver/configure.ac 2017-02-26 21:27:18.839038200 +0100
-@@ -469,6 +469,10 @@
- fi
- fi
-
-+dnl Check security_get_boolean_active availability.
-+AC_CHECK_HEADERS(selinux/selinux.h)
-+AC_CHECK_LIB(selinux, security_get_boolean_active)
-+
- AC_SUBST(GDBSERVER_DEPFILES)
- AC_SUBST(GDBSERVER_LIBS)
- AC_SUBST(srv_xmlbuiltin)
-Index: gdb-7.12.50.20170226/gdb/gdbserver/linux-low.c
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/gdbserver/linux-low.c 2017-02-26 21:27:14.783009470 +0100
-+++ gdb-7.12.50.20170226/gdb/gdbserver/linux-low.c 2017-02-26 21:27:18.841038214 +0100
-@@ -946,6 +946,29 @@
- return lwp;
- }
-
-+/* Execute PTRACE_TRACEME with error checking. */
-+
-+static void
-+linux_traceme (const char *program)
-+{
-+ int save_errno;
-+ struct buffer buffer;
-+
-+ errno = 0;
-+ if (ptrace (PTRACE_TRACEME, 0,
-+ (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0) == 0)
-+ return;
-+
-+ save_errno = errno;
-+ buffer_init (&buffer);
-+ linux_ptrace_create_warnings (&buffer);
-+ buffer_grow_str0 (&buffer, "");
-+ fprintf (stderr, _("%sCannot trace created process %s: %s.\n"),
-+ buffer_finish (&buffer), program, strerror (save_errno));
-+ fflush (stderr);
-+ _exit (0177);
-+}
-+
- /* Start an inferior process and returns its pid.
- ALLARGS is a vector of program-name and args. */
-
-@@ -969,7 +992,7 @@
- if (pid == 0)
- {
- close_most_fds ();
-- ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0);
-+ linux_traceme (program);
-
- setpgid (0, 0);
-
-Index: gdb-7.12.50.20170226/gdb/linux-nat.c
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/linux-nat.c 2017-02-26 21:27:14.785009484 +0100
-+++ gdb-7.12.50.20170226/gdb/linux-nat.c 2017-02-26 21:27:18.842038221 +0100
-@@ -1110,6 +1110,7 @@
- {
- struct cleanup *restore_personality
- = maybe_disable_address_space_randomization (disable_randomization);
-+ volatile struct gdb_exception ex;
-
- /* The fork_child mechanism is synchronous and calls target_wait, so
- we have to mask the async mode. */
-@@ -1117,7 +1118,28 @@
- /* Make sure we report all signals during startup. */
- linux_nat_pass_signals (ops, 0, NULL);
-
-- linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
-+ TRY
-+ {
-+ linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
-+ }
-+ CATCH (ex, RETURN_MASK_ERROR)
-+ {
-+ struct buffer buffer;
-+ char *message, *buffer_s;
-+
-+ message = xstrdup (ex.message);
-+ make_cleanup (xfree, message);
-+
-+ buffer_init (&buffer);
-+ linux_ptrace_create_warnings (&buffer);
-+
-+ buffer_grow_str0 (&buffer, "");
-+ buffer_s = buffer_finish (&buffer);
-+ make_cleanup (xfree, buffer_s);
-+
-+ throw_error (ex.error, "%s%s", buffer_s, message);
-+ }
-+ END_CATCH
-
- do_cleanups (restore_personality);
- }
-Index: gdb-7.12.50.20170226/gdb/config.in
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/config.in 2017-02-26 21:27:14.786009491 +0100
-+++ gdb-7.12.50.20170226/gdb/config.in 2017-02-26 21:27:18.842038221 +0100
+diff --git a/gdb/config.in b/gdb/config.in
+index edd7028f76..4de3e842d1 100644
+--- a/gdb/config.in
++++ b/gdb/config.in
@@ -270,6 +270,9 @@
/* Define if librpm library is being used. */
#undef HAVE_LIBRPM
@@ -232,7 +70,7 @@ Index: gdb-7.12.50.20170226/gdb/config.in
/* Define to 1 if you have the header file. */
#undef HAVE_LIBUNWIND_IA64_H
-@@ -402,6 +405,9 @@
+@@ -393,6 +396,9 @@
/* Define to 1 if you have the `scm_new_smob' function. */
#undef HAVE_SCM_NEW_SMOB
@@ -242,11 +80,11 @@ Index: gdb-7.12.50.20170226/gdb/config.in
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
-Index: gdb-7.12.50.20170226/gdb/configure
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/configure 2017-02-26 21:27:14.790009519 +0100
-+++ gdb-7.12.50.20170226/gdb/configure 2017-02-26 21:27:18.846038249 +0100
-@@ -15492,6 +15492,64 @@
+diff --git a/gdb/configure b/gdb/configure
+index e314e28ff3..d99f28b9f2 100755
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -15679,6 +15679,64 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
@@ -311,11 +149,26 @@ Index: gdb-7.12.50.20170226/gdb/configure
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional.
-Index: gdb-7.12.50.20170226/gdb/gdbserver/config.in
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/gdbserver/config.in 2017-02-26 21:27:14.791009527 +0100
-+++ gdb-7.12.50.20170226/gdb/gdbserver/config.in 2017-02-26 21:27:18.846038249 +0100
-@@ -123,6 +123,9 @@
+diff --git a/gdb/configure.ac b/gdb/configure.ac
+index 9de441fe79..830618dbe5 100644
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -2042,6 +2042,10 @@ case $host_os in
+ esac
+ AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
+
++dnl Check security_get_boolean_active availability.
++AC_CHECK_HEADERS(selinux/selinux.h)
++AC_CHECK_LIB(selinux, security_get_boolean_active)
++
+ dnl Handle optional features that can be enabled.
+
+ # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
+diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in
+index dda7c1f150..b2a34b92ce 100644
+--- a/gdb/gdbserver/config.in
++++ b/gdb/gdbserver/config.in
+@@ -126,6 +126,9 @@
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
#undef HAVE_LIBMCHECK
@@ -325,7 +178,7 @@ Index: gdb-7.12.50.20170226/gdb/gdbserver/config.in
/* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE
-@@ -199,6 +202,9 @@
+@@ -202,6 +205,9 @@
/* Define to 1 if you have the `pwrite' function. */
#undef HAVE_PWRITE
@@ -335,11 +188,11 @@ Index: gdb-7.12.50.20170226/gdb/gdbserver/config.in
/* Define to 1 if you have the `setns' function. */
#undef HAVE_SETNS
-Index: gdb-7.12.50.20170226/gdb/gdbserver/configure
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/gdbserver/configure 2017-02-26 21:27:14.793009541 +0100
-+++ gdb-7.12.50.20170226/gdb/gdbserver/configure 2017-02-26 21:27:18.848038263 +0100
-@@ -8429,6 +8429,64 @@
+diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
+index 835dcca314..9028c82b01 100755
+--- a/gdb/gdbserver/configure
++++ b/gdb/gdbserver/configure
+@@ -8452,6 +8452,64 @@ if $want_ipa ; then
fi
fi
@@ -404,3 +257,142 @@ Index: gdb-7.12.50.20170226/gdb/gdbserver/configure
+diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
+index 456d3b360a..0074c437f1 100644
+--- a/gdb/gdbserver/configure.ac
++++ b/gdb/gdbserver/configure.ac
+@@ -486,6 +486,10 @@ if $want_ipa ; then
+ fi
+ fi
+
++dnl Check security_get_boolean_active availability.
++AC_CHECK_HEADERS(selinux/selinux.h)
++AC_CHECK_LIB(selinux, security_get_boolean_active)
++
+ AC_SUBST(GDBSERVER_DEPFILES)
+ AC_SUBST(GDBSERVER_LIBS)
+ AC_SUBST(srv_xmlbuiltin)
+diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
+index f6a52d5859..ab3be27142 100644
+--- a/gdb/gdbserver/linux-low.c
++++ b/gdb/gdbserver/linux-low.c
+@@ -963,7 +963,21 @@ linux_ptrace_fun ()
+ {
+ if (ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0,
+ (PTRACE_TYPE_ARG4) 0) < 0)
+- trace_start_error_with_name ("ptrace");
++ {
++ int save_errno = errno;
++ struct buffer buffer;
++
++ buffer_init (&buffer);
++ linux_ptrace_create_warnings (&buffer);
++ buffer_grow_str0 (&buffer, "");
++
++ std::string msg
++ = string_printf (_("%sCannot trace created process"),
++ buffer_finish (&buffer));
++
++ errno = save_errno;
++ trace_start_error_with_name (msg.c_str ());
++ }
+
+ if (setpgid (0, 0) < 0)
+ trace_start_error_with_name ("setpgid");
+diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
+index 96cb21a2cf..6040c1f129 100644
+--- a/gdb/linux-nat.c
++++ b/gdb/linux-nat.c
+@@ -1127,7 +1127,29 @@ linux_nat_create_inferior (struct target_ops *ops,
+ /* Make sure we report all signals during startup. */
+ linux_nat_pass_signals (ops, 0, NULL);
+
+- linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
++ volatile struct gdb_exception ex;
++ TRY
++ {
++ linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
++ }
++ CATCH (ex, RETURN_MASK_ERROR)
++ {
++ struct buffer buffer;
++ char *message, *buffer_s;
++
++ message = xstrdup (ex.message);
++ make_cleanup (xfree, message);
++
++ buffer_init (&buffer);
++ linux_ptrace_create_warnings (&buffer);
++
++ buffer_grow_str0 (&buffer, "");
++ buffer_s = buffer_finish (&buffer);
++ make_cleanup (xfree, buffer_s);
++
++ throw_error (ex.error, "%s%s", buffer_s, message);
++ }
++ END_CATCH
+ }
+
+ /* Callback for linux_proc_attach_tgid_threads. Attach to PTID if not
+diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c
+index 438177fa76..ab6ae86400 100644
+--- a/gdb/nat/linux-ptrace.c
++++ b/gdb/nat/linux-ptrace.c
+@@ -27,6 +27,10 @@
+ #include
+ #endif
+
++#ifdef HAVE_SELINUX_SELINUX_H
++# include
++#endif /* HAVE_SELINUX_SELINUX_H */
++
+ /* Stores the ptrace options supported by the running kernel.
+ A value of -1 means we did not check for features yet. A value
+ of 0 means there are no supported features. */
+@@ -51,6 +55,8 @@ linux_ptrace_attach_fail_reason (pid_t pid, struct buffer *buffer)
+ buffer_xml_printf (buffer, _("process %d is a zombie "
+ "- the process has already terminated"),
+ (int) pid);
++
++ linux_ptrace_create_warnings (buffer);
+ }
+
+ /* See linux-ptrace.h. */
+@@ -594,6 +600,22 @@ linux_ptrace_init_warnings (void)
+ linux_ptrace_test_ret_to_nx ();
+ }
+
++/* Print all possible reasons we could fail to create a traced process. */
++
++void
++linux_ptrace_create_warnings (struct buffer *buffer)
++{
++#ifdef HAVE_LIBSELINUX
++ /* -1 is returned for errors, 0 if it has no effect, 1 if PTRACE_ATTACH is
++ forbidden. */
++ if (security_get_boolean_active ("deny_ptrace") == 1)
++ buffer_xml_printf (buffer,
++ _("the SELinux boolean 'deny_ptrace' is enabled, "
++ "you can disable this process attach protection by: "
++ "(gdb) shell sudo setsebool deny_ptrace=0"));
++#endif /* HAVE_LIBSELINUX */
++}
++
+ /* Extract extended ptrace event from wait status. */
+
+ int
+diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h
+index 59549452c0..b951492102 100644
+--- a/gdb/nat/linux-ptrace.h
++++ b/gdb/nat/linux-ptrace.h
+@@ -185,6 +185,7 @@ extern void linux_ptrace_attach_fail_reason (pid_t pid, struct buffer *buffer);
+ extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
+
+ extern void linux_ptrace_init_warnings (void);
++extern void linux_ptrace_create_warnings (struct buffer *buffer);
+ extern void linux_check_ptrace_features (void);
+ extern void linux_enable_event_reporting (pid_t pid, int attached);
+ extern void linux_disable_event_reporting (pid_t pid);
+--
+2.14.3
+
diff --git a/gdb-btrobust.patch b/gdb-btrobust.patch
index c39fe5c..dfaf336 100644
--- a/gdb-btrobust.patch
+++ b/gdb-btrobust.patch
@@ -1,19 +1,26 @@
+From a02022ce4c7a1841518e9cf17d1d9b7cade13483 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-btrobust.patch
FileName: gdb-btrobust.patch
+;; Continue backtrace even if a frame filter throws an exception (Phil Muldoon).
+;;=push
+
This should fix the error with glib. An error message will still be
printed, but a default backtrace will occur in this case.
--
+---
+ gdb/python/py-framefilter.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
-Index: gdb-7.12.50.20170226/gdb/python/py-framefilter.c
-===================================================================
---- gdb-7.12.50.20170226.orig/gdb/python/py-framefilter.c 2017-02-26 21:33:23.150618708 +0100
-+++ gdb-7.12.50.20170226/gdb/python/py-framefilter.c 2017-02-26 21:33:29.993667179 +0100
-@@ -1388,6 +1388,7 @@
+diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
+index 75b055c98c..9f33a7aab9 100644
+--- a/gdb/python/py-framefilter.c
++++ b/gdb/python/py-framefilter.c
+@@ -1388,6 +1388,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
htab_eq_pointer,
NULL));
@@ -21,7 +28,7 @@ Index: gdb-7.12.50.20170226/gdb/python/py-framefilter.c
while (true)
{
gdbpy_ref<> item (PyIter_Next (iterable.get ()));
-@@ -1397,7 +1398,7 @@
+@@ -1397,7 +1398,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
if (PyErr_Occurred ())
{
gdbpy_print_stack ();
@@ -30,7 +37,7 @@ Index: gdb-7.12.50.20170226/gdb/python/py-framefilter.c
}
break;
}
-@@ -1409,6 +1410,7 @@
+@@ -1409,6 +1410,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
error and continue with other frames. */
if (success == EXT_LANG_BT_ERROR)
gdbpy_print_stack ();
@@ -38,3 +45,6 @@ Index: gdb-7.12.50.20170226/gdb/python/py-framefilter.c
}
return success;
+--
+2.14.3
+
diff --git a/gdb-bz1219747-attach-kills.patch b/gdb-bz1219747-attach-kills.patch
index a697bff..e9b0deb 100644
--- a/gdb-bz1219747-attach-kills.patch
+++ b/gdb-bz1219747-attach-kills.patch
@@ -1,11 +1,14 @@
+From 3dd3bcfbbff9caefd394385aac0d82e4fca0f422 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [PATCH 1/3] Never kill PID on: gdb exec PID
+Subject: Never kill PID on: gdb exec PID
FileName: gdb-bz1219747-attach-kills.patch
-http://sourceware.org/ml/gdb-patches/2015-10/msg00301.html
+;; Never kill PID on: gdb exec PID (Jan Kratochvil, RH BZ 1219747).
+;;=push+jan
+http://sourceware.org/ml/gdb-patches/2015-10/msg00301.html
Hi,
@@ -22,25 +25,13 @@ A program is being debugged already. Kill it? (y or n) _
The first attachment of "/tmp/sleep" commandline argument errors at:
-#0 throw_error (error=GENERIC_ERROR, fmt=0x116d135 "%s.") at ./common/common-exceptions.c:371
-#1 in throw_perror_with_name (errcode=GENERIC_ERROR, string=0x7fffffffdb96 "/dfsfds") at utils.c:974
-#2 in perror_with_name (string=0x7fffffffdb96 "/dfsfds") at utils.c:982
-#3 in exec_file_attach (filename=0x7fffffffdb96 "/dfsfds", from_tty=1) at exec.c:268
267 if (scratch_chan < 0)
268 perror_with_name (filename);
-#4 in catch_command_errors_const (command=0x80f59f , arg=0x7fffffffdb96 "/dfsfds", from_tty=1) at main.c:395
-#5 in captured_main (data=0x7fffffffd6f0) at main.c:1051
1051 if (catch_command_errors_const (exec_file_attach, execarg,
1052 !batch_flag))
Then GDB tries to attach to the process $p:
-#0 inferior_appeared (inf=0x240e0b0, pid=29210) at inferior.c:305
-#1 in inf_ptrace_attach (ops=0x2339540, args=0x21dcdc0 "29210", from_tty=1) at inf-ptrace.c:206
-#2 in linux_nat_attach (ops=0x2339540, args=0x21dcdc0 "29210", from_tty=1) at linux-nat.c:1278
-#3 in attach_command (args=0x21dcdc0 "29210", from_tty=1) at infcmd.c:2748
-#4 in catch_command_errors (command=0x79d7e5 , arg=0x7fffffffdb9e "29210", from_tty=1) at main.c:368
-#5 in captured_main (data=0x7fffffffd6f0) at main.c:1082
1082 if (catch_command_errors (attach_command, pid_or_core_arg,
1083 !batch_flag) == 0)
@@ -51,37 +42,14 @@ the lines
still fail because consequently attach_command() fails to find the associated
executable file:
-#0 throw_error (error=GENERIC_ERROR, fmt=0x116d135 "%s.") at ./common/common-exceptions.c:371
-#1 in throw_perror_with_name (errcode=GENERIC_ERROR, string=0x2477860 "/tmp/sleep (deleted)") at utils.c:974
-#2 in perror_with_name (string=0x2477860 "/tmp/sleep (deleted)") at utils.c:982
-#3 in exec_file_attach (filename=0x2477860 "/tmp/sleep (deleted)", from_tty=1) at exec.c:268
267 if (scratch_chan < 0)
268 perror_with_name (filename);
-#4 in exec_file_locate_attach (pid=29210, from_tty=1) at exec.c:173
-#5 in attach_command_post_wait (args=0x24739b0 "29210", from_tty=1, async_exec=0) at infcmd.c:2628
-#6 in attach_command_continuation (args=0x2473590, err=0) at infcmd.c:2700
-#7 in do_my_continuations_1 (pmy_chain=0x7fffffffd190, err=0) at continuations.c:59
-#8 in do_my_continuations (list=0x240e130, err=0) at continuations.c:83
-#9 in do_all_inferior_continuations (err=0) at continuations.c:125
-#10 in inferior_event_handler (event_type=INF_EXEC_COMPLETE, client_data=0x0) at inf-loop.c:60
-#11 in fetch_inferior_event (client_data=0x0) at infrun.c:3929
-#12 in inferior_event_handler (event_type=INF_REG_EVENT, client_data=0x0) at inf-loop.c:44
-#13 in handle_target_event (error=0, client_data=0x0) at linux-nat.c:4681
-#14 in handle_file_event (file_ptr=0x21e4170, ready_mask=1) at event-loop.c:708
-#15 in gdb_wait_for_event (block=0) at event-loop.c:834
-#16 in gdb_do_one_event () at event-loop.c:298
-#17 in wait_sync_command_done () at top.c:373
-#18 in maybe_wait_sync_command_done (was_sync=0) at top.c:388
-#19 in catch_command_errors (command=0x79d7e5 , arg=0x7fffffffdb9e "29210", from_tty=1) at main.c:370
-#20 in captured_main (data=0x7fffffffd6f0) at main.c:1082
1082 if (catch_command_errors (attach_command, pid_or_core_arg,
1083 !batch_flag) == 0)
and therefore GDB executes the following:
(gdb) bt
-#5 in query (ctlstr=0x1141ae8 "A program is being debugged already. Kill it? ") at utils.c:1371
-#6 in target_preopen (from_tty=1) at target.c:2183
2179 if (have_inferiors ())
2180 {
2181 if (!from_tty
@@ -91,20 +59,14 @@ and therefore GDB executes the following:
2185 else
2186 error (_("Program not killed."));
2187 }
-#7 in core_open (arg=0x7fffffffdb9f "9694", from_tty=1) at corelow.c:283
-#8 in core_file_command (filename=0x7fffffffdb9f "9694", from_tty=1) at corefile.c:77
-#9 in catch_command_errors (command=0x86ca16 , arg=0x7fffffffdb9f "9694", from_tty=1) at main.c:368
-#10 in captured_main (data=0x7fffffffd6f0) at main.c:1084
1084 catch_command_errors (core_file_command, pid_or_core_arg,
1085 !batch_flag);
No regressions on {x86_64,x86_64-m32,i686}-fedora24pre-linux-gnu.
-
Thanks,
Jan
-
gdb/ChangeLog
2015-10-16 Jan Kratochvil
@@ -117,17 +79,18 @@ gdb/testsuite/ChangeLog
* gdb.base/attach-kills.c: New.
* gdb.base/attach-kills.exp: New.
---
- gdb/testsuite/gdb.base/attach-kills.c | 25 ++++++++++++++++
- gdb/testsuite/gdb.base/attach-kills.exp | 49 +++++++++++++++++++++++++++++++
- 2 files changed, 74 insertions(+)
+ gdb/main.c | 5 +++-
+ gdb/testsuite/gdb.base/attach-kills.c | 25 +++++++++++++++++
+ gdb/testsuite/gdb.base/attach-kills.exp | 49 +++++++++++++++++++++++++++++++++
+ 3 files changed, 78 insertions(+), 1 deletion(-)
create mode 100644 gdb/testsuite/gdb.base/attach-kills.c
create mode 100644 gdb/testsuite/gdb.base/attach-kills.exp
diff --git a/gdb/main.c b/gdb/main.c
-index 49c9b68..bc19699 100644
+index d5b4c3adb9..df1f12bd79 100644
--- a/gdb/main.c
+++ b/gdb/main.c
-@@ -1080,7 +1080,10 @@ captured_main (void *data)
+@@ -1113,7 +1113,10 @@ captured_main_1 (struct captured_main_args *context)
if (isdigit (pid_or_core_arg[0]))
{
if (catch_command_errors (attach_command, pid_or_core_arg,
@@ -141,7 +104,7 @@ index 49c9b68..bc19699 100644
}
diff --git a/gdb/testsuite/gdb.base/attach-kills.c b/gdb/testsuite/gdb.base/attach-kills.c
new file mode 100644
-index 0000000..2398f00
+index 0000000000..2398f00442
--- /dev/null
+++ b/gdb/testsuite/gdb.base/attach-kills.c
@@ -0,0 +1,25 @@
@@ -172,7 +135,7 @@ index 0000000..2398f00
+}
diff --git a/gdb/testsuite/gdb.base/attach-kills.exp b/gdb/testsuite/gdb.base/attach-kills.exp
new file mode 100644
-index 0000000..9a93cb7
+index 0000000000..9a93cb7584
--- /dev/null
+++ b/gdb/testsuite/gdb.base/attach-kills.exp
@@ -0,0 +1,49 @@
@@ -225,4 +188,6 @@ index 0000000..9a93cb7
+}
+
+kill_wait_spawned_process $test_spawn_id
+--
+2.14.3
diff --git a/gdb-bz533176-fortran-omp-step.patch b/gdb-bz533176-fortran-omp-step.patch
index 32d60b9..01b90d8 100644
--- a/gdb-bz533176-fortran-omp-step.patch
+++ b/gdb-bz533176-fortran-omp-step.patch
@@ -1,9 +1,12 @@
+From 02e52bff09dbf734e16f57c0c75720af272023c4 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-bz533176-fortran-omp-step.patch
FileName: gdb-bz533176-fortran-omp-step.patch
+;; Fix stepping with OMP parallel Fortran sections (BZ 533176).
+;;=push+jan: It requires some better DWARF annotations.
https://bugzilla.redhat.com/show_bug.cgi?id=533176#c4
@@ -25,14 +28,19 @@ upstream) or "step" (default in F/RHEL) the simultaneous execution of the
threads is inconvenient. Setting it to "on" will lockup the debugging as the
threads need to get synchronized at some point. This is a more general
debugging problem of GOMP outside of the scope of this Bug.
+---
+ gdb/infrun.c | 11 +++++++++++
+ gdb/testsuite/gdb.fortran/omp-step.exp | 31 +++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.fortran/omp-step.f90 | 32 ++++++++++++++++++++++++++++++++
+ 3 files changed, 74 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.fortran/omp-step.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/omp-step.f90
-
-
-Index: gdb-7.7.90.20140613/gdb/infrun.c
-===================================================================
---- gdb-7.7.90.20140613.orig/gdb/infrun.c 2014-06-13 21:59:10.835805512 +0200
-+++ gdb-7.7.90.20140613/gdb/infrun.c 2014-06-13 21:59:31.064829121 +0200
-@@ -4820,6 +4820,16 @@ process_event_stop_test (struct executio
+diff --git a/gdb/infrun.c b/gdb/infrun.c
+index db742f7398..8c2c424883 100644
+--- a/gdb/infrun.c
++++ b/gdb/infrun.c
+@@ -6663,6 +6663,16 @@ process_event_stop_test (struct execution_control_state *ecs)
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
{
@@ -49,7 +57,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
/* We're doing a "next".
Normal (forward) execution: set a breakpoint at the
-@@ -4855,6 +4865,7 @@ process_event_stop_test (struct executio
+@@ -6696,6 +6706,7 @@ process_event_stop_test (struct execution_control_state *ecs)
keep_going (ecs);
return;
@@ -57,10 +65,11 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
}
/* If we are in a function call trampoline (a stub between the
-Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.exp 2014-06-13 21:59:22.801819481 +0200
+diff --git a/gdb/testsuite/gdb.fortran/omp-step.exp b/gdb/testsuite/gdb.fortran/omp-step.exp
+new file mode 100644
+index 0000000000..66440a7507
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/omp-step.exp
@@ -0,0 +1,31 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -93,10 +102,11 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.exp
+
+gdb_breakpoint [gdb_get_line_number "success"]
+gdb_continue_to_breakpoint "success" ".*success.*"
-Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.f90
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.f90 2014-06-13 21:59:22.801819481 +0200
+diff --git a/gdb/testsuite/gdb.fortran/omp-step.f90 b/gdb/testsuite/gdb.fortran/omp-step.f90
+new file mode 100644
+index 0000000000..a0cfb37014
+--- /dev/null
++++ b/gdb/testsuite/gdb.fortran/omp-step.f90
@@ -0,0 +1,32 @@
+! Copyright 2009 Free Software Foundation, Inc.
+
@@ -130,3 +140,6 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.fortran/omp-step.f90
+ end do
+ print *, "success"
+ end
+--
+2.14.3
+
diff --git a/gdb-bz541866-rwatch-before-run.patch b/gdb-bz541866-rwatch-before-run.patch
index 038bd14..8b03de4 100644
--- a/gdb-bz541866-rwatch-before-run.patch
+++ b/gdb-bz541866-rwatch-before-run.patch
@@ -1,39 +1,52 @@
+From 5846627ef662223a3a23f29e2e8da1c96b0f43c8 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-bz541866-rwatch-before-run.patch
FileName: gdb-bz541866-rwatch-before-run.patch
+;; Fix i386+x86_64 rwatch+awatch before run, regression against 6.8 (BZ 541866).
+;; Fix i386 rwatch+awatch before run (BZ 688788, on top of BZ 541866).
+;;=push+jan: It should be fixed properly instead.
+---
+ gdb/breakpoint.c | 4 +--
+ gdb/config/i386/nm-linux.h | 28 +++++++++++++++
+ gdb/config/i386/nm-linux64.h | 28 +++++++++++++++
+ gdb/configure.nat | 2 ++
+ gdb/target.h | 2 ++
+ .../gdb.base/watchpoint-hw-before-run.exp | 40 ++++++++++++++++++++++
+ 6 files changed, 102 insertions(+), 2 deletions(-)
+ create mode 100644 gdb/config/i386/nm-linux.h
+ create mode 100644 gdb/config/i386/nm-linux64.h
+ create mode 100644 gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
-Index: gdb-7.11.90.20160807/gdb/config/i386/linux64.mh
-===================================================================
---- gdb-7.11.90.20160807.orig/gdb/config/i386/linux64.mh 2016-08-07 22:27:13.889285274 +0200
-+++ gdb-7.11.90.20160807/gdb/config/i386/linux64.mh 2016-08-07 22:29:20.451311124 +0200
-@@ -7,7 +7,7 @@
- linux-procfs.o linux-ptrace.o linux-btrace.o \
- linux-waitpid.o linux-personality.o x86-linux.o \
- x86-linux-dregs.o amd64-linux-siginfo.o linux-namespaces.o
--NAT_FILE= config/nm-linux.h
-+NAT_FILE= nm-linux64.h
- NAT_CDEPS = $(srcdir)/proc-service.list
+diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
+index bc0134db36..269928a794 100644
+--- a/gdb/breakpoint.c
++++ b/gdb/breakpoint.c
+@@ -8879,7 +8879,7 @@ init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch,
+ int enabled, int internal, unsigned flags,
+ int display_canonical)
+ {
+- int i;
++ int i ATTRIBUTE_UNUSED;
- # The dynamically loaded libthread_db needs access to symbols in the
-Index: gdb-7.11.90.20160807/gdb/config/i386/linux.mh
-===================================================================
---- gdb-7.11.90.20160807.orig/gdb/config/i386/linux.mh 2016-08-07 22:27:13.889285274 +0200
-+++ gdb-7.11.90.20160807/gdb/config/i386/linux.mh 2016-08-07 22:29:20.451311124 +0200
-@@ -1,6 +1,6 @@
- # Host: Intel 386 running GNU/Linux.
+ if (type == bp_hardware_breakpoint)
+ {
+@@ -14442,7 +14442,7 @@ enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition,
--NAT_FILE= config/nm-linux.h
-+NAT_FILE= nm-linux.h
- NATDEPFILES= inf-ptrace.o fork-child.o \
- x86-nat.o x86-dregs.o i386-linux-nat.o x86-linux-nat.o \
- proc-service.o linux-thread-db.o \
-Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h 2016-08-07 22:29:20.451311124 +0200
+ if (bpt->type == bp_hardware_breakpoint)
+ {
+- int i;
++ int i ATTRIBUTE_UNUSED;
+ i = hw_breakpoint_used_count ();
+ target_resources_ok =
+ target_can_use_hardware_watchpoint (bp_hardware_breakpoint,
+diff --git a/gdb/config/i386/nm-linux.h b/gdb/config/i386/nm-linux.h
+new file mode 100644
+index 0000000000..38e94baab1
+--- /dev/null
++++ b/gdb/config/i386/nm-linux.h
@@ -0,0 +1,28 @@
+/* Native support for GNU/Linux i386.
+
@@ -63,10 +76,11 @@ Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+
+#endif /* NM_LINUX64_H */
-Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h 2016-08-07 22:29:20.451311124 +0200
+diff --git a/gdb/config/i386/nm-linux64.h b/gdb/config/i386/nm-linux64.h
+new file mode 100644
+index 0000000000..212daba477
+--- /dev/null
++++ b/gdb/config/i386/nm-linux64.h
@@ -0,0 +1,28 @@
+/* Native support for GNU/Linux amd64.
+
@@ -96,11 +110,31 @@ Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+
+#endif /* NM_LINUX64_H */
-Index: gdb-7.11.90.20160807/gdb/target.h
-===================================================================
---- gdb-7.11.90.20160807.orig/gdb/target.h 2016-08-07 22:27:13.889285274 +0200
-+++ gdb-7.11.90.20160807/gdb/target.h 2016-08-07 22:29:20.452311132 +0200
-@@ -1939,9 +1939,11 @@
+diff --git a/gdb/configure.nat b/gdb/configure.nat
+index 962abd6edf..404b6c8deb 100644
+--- a/gdb/configure.nat
++++ b/gdb/configure.nat
+@@ -237,6 +237,7 @@ case ${gdb_host} in
+ ;;
+ i386)
+ # Host: Intel 386 running GNU/Linux.
++ NAT_FILE="${srcdir}/config/${gdb_host_cpu}/nm-linux.h"
+ NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+ i386-linux-nat.o x86-linux-nat.o linux-btrace.o \
+ x86-linux.o x86-linux-dregs.o"
+@@ -289,6 +290,7 @@ case ${gdb_host} in
+ case ${gdb_host_cpu} in
+ i386)
+ # Host: GNU/Linux x86-64
++ NAT_FILE="${srcdir}/config/${gdb_host_cpu}/nm-linux64.h"
+ NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+ amd64-nat.o amd64-linux-nat.o x86-linux-nat.o linux-btrace.o \
+ x86-linux.o x86-linux-dregs.o amd64-linux-siginfo.o"
+diff --git a/gdb/target.h b/gdb/target.h
+index 638e2f06e6..999541d5d2 100644
+--- a/gdb/target.h
++++ b/gdb/target.h
+@@ -1927,9 +1927,11 @@ extern struct thread_info *target_thread_handle_to_thread_info
one. OTHERTYPE is the number of watchpoints of other types than
this one used so far. */
@@ -112,10 +146,11 @@ Index: gdb-7.11.90.20160807/gdb/target.h
/* Returns the number of debug registers needed to watch the given
memory region, or zero if not supported. */
-Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2016-08-07 22:29:20.452311132 +0200
+diff --git a/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp b/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
+new file mode 100644
+index 0000000000..4ce9997e4a
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
@@ -0,0 +1,40 @@
+# Copyright 2009, 2010 Free Software Foundation, Inc.
+
@@ -157,16 +192,6 @@ Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
+gdb_test "" "main .* at .*" "start"
+
+gdb_test "continue" "Continuing.\r\n\r\nHardware read watchpoint \[0-9\]+: watchee\r\n\r\nValue = 0\r\n.*"
-Index: gdb-7.11.90.20160807/gdb/breakpoint.c
-===================================================================
---- gdb-7.11.90.20160807.orig/gdb/breakpoint.c 2016-08-07 22:33:38.835405458 +0200
-+++ gdb-7.11.90.20160807/gdb/breakpoint.c 2016-08-07 22:34:45.023941950 +0200
-@@ -14953,7 +14953,7 @@
-
- if (bpt->type == bp_hardware_breakpoint)
- {
-- int i;
-+ int i ATTRIBUTE_UNUSED;
- i = hw_breakpoint_used_count ();
- target_resources_ok =
- target_can_use_hardware_watchpoint (bp_hardware_breakpoint,
+--
+2.14.3
+
diff --git a/gdb-bz568248-oom-is-error.patch b/gdb-bz568248-oom-is-error.patch
index 2adbcef..1448a85 100644
--- a/gdb-bz568248-oom-is-error.patch
+++ b/gdb-bz568248-oom-is-error.patch
@@ -1,9 +1,12 @@
+From 54052819687336d9ac4f728e49ed7ae1e5e847e3 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [rfc patch] nomem: internal_error -> error
+Subject: nomem: internal_error -> error
FileName: gdb-bz568248-oom-is-error.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.
http://sourceware.org/ml/gdb-patches/2010-06/msg00005.html
@@ -30,7 +33,6 @@ It is apparently because boundary for the variable `a' is not initialized
there. Users notice it due to Eclipse-CDT trying to automatically display all
the local variables on each step.
-
Apparentl no regressions on {x86_64,x86_64-m32,i686}-fedora13-linux-gnu.
But is anone aware of the reasons to use internal_error there?
I find simple error as a perfectly reasonable there.
@@ -41,22 +43,23 @@ IIRC this idea has been discussed with Tom Tromey, not sure of its origin.
I understand it may be offtopic for FSF GDB but from some GDB crashes I am not
sure if it can happen only due to the VLA variables.
-
Thanks,
Jan
-
gdb/
2010-06-01 Jan Kratochvil
Tom Tromey
* utils.c (nomem): Change internal_error to error.
+---
+ gdb/utils.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
-Index: gdb-7.3.50.20110722/gdb/utils.c
-===================================================================
---- gdb-7.3.50.20110722.orig/gdb/utils.c 2011-07-22 19:28:58.000000000 +0200
-+++ gdb-7.3.50.20110722/gdb/utils.c 2011-07-22 19:34:25.000000000 +0200
-@@ -1219,13 +1219,11 @@ malloc_failure (long size)
+diff --git a/gdb/utils.c b/gdb/utils.c
+index 98ef6ac457..5e99a4d501 100644
+--- a/gdb/utils.c
++++ b/gdb/utils.c
+@@ -776,13 +776,11 @@ malloc_failure (long size)
{
if (size > 0)
{
@@ -72,3 +75,6 @@ Index: gdb-7.3.50.20110722/gdb/utils.c
}
}
+--
+2.14.3
+
diff --git a/gdb-bz601887-dwarf4-rh-test.patch b/gdb-bz601887-dwarf4-rh-test.patch
index 002f55f..8e627fd 100644
--- a/gdb-bz601887-dwarf4-rh-test.patch
+++ b/gdb-bz601887-dwarf4-rh-test.patch
@@ -1,14 +1,26 @@
+From b3e6a7a7ec792086722d832aa37a485d8e74c9e4 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-bz601887-dwarf4-rh-test.patch
FileName: gdb-bz601887-dwarf4-rh-test.patch
+;; Backport DWARF-4 support (BZ 601887, Tom Tromey).
+;;=fedoratest
+---
+ gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S | 167 ++++++++++++++++++++++++++
+ gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c | 22 ++++
+ gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp | 42 +++++++
+ 3 files changed, 231 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
+ create mode 100644 gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
+ create mode 100644 gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
-Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S 2014-02-06 22:02:21.981449555 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S b/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
+new file mode 100644
+index 0000000000..48b1bbf3e1
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
@@ -0,0 +1,167 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -177,10 +189,11 @@ Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
+ .string "main"
+ .ident "GCC: (GNU) 4.4.4 20100503 (Red Hat 4.4.4-2)"
+ .section .note.GNU-stack,"",@progbits
-Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c 2014-02-06 22:02:21.981449555 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c b/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
+new file mode 100644
+index 0000000000..46fcd120f4
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -204,10 +217,11 @@ Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
+{
+ return 0;
+}
-Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp 2014-02-06 22:12:10.788032417 +0100
+diff --git a/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp b/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
+new file mode 100644
+index 0000000000..a728f9c5ed
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
@@ -0,0 +1,42 @@
+# Copyright 2010 Free Software Foundation, Inc.
+
@@ -251,3 +265,6 @@ Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
+clean_restart $executable
+
+gdb_test "ptype main" {type = int \(void\)}
+--
+2.14.3
+
diff --git a/gdb-bz634108-solib_address.patch b/gdb-bz634108-solib_address.patch
index 22c4dd2..d3563f6 100644
--- a/gdb-bz634108-solib_address.patch
+++ b/gdb-bz634108-solib_address.patch
@@ -1,14 +1,24 @@
+From c5a976481a50928fbc6387adbea8b3bc86f75958 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-bz634108-solib_address.patch
FileName: gdb-bz634108-solib_address.patch
+;; Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
+;;=fedoratest
Fix gdb.solib_address (fix by Phil Muldoon).
s/solib_address/solib_name/ during upstreaming.
+---
+ .../gdb.python/rh634108-solib_address.exp | 24 ++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.python/rh634108-solib_address.exp
+diff --git a/gdb/testsuite/gdb.python/rh634108-solib_address.exp b/gdb/testsuite/gdb.python/rh634108-solib_address.exp
+new file mode 100644
+index 0000000000..c0451cf09e
--- /dev/null
+++ b/gdb/testsuite/gdb.python/rh634108-solib_address.exp
@@ -0,0 +1,24 @@
@@ -36,3 +46,6 @@ s/solib_address/solib_name/ during upstreaming.
+if { [skip_python_tests] } { continue }
+
+gdb_test "python print gdb.solib_name(-1)" "None" "gdb.solib_name exists"
+--
+2.14.3
+
diff --git a/gdb-ccache-workaround.patch b/gdb-ccache-workaround.patch
index 14119a2..da3f20c 100644
--- a/gdb-ccache-workaround.patch
+++ b/gdb-ccache-workaround.patch
@@ -1,13 +1,21 @@
+From 30e67da41176f7613c720b5474dec4c4bc38d767 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-ccache-workaround.patch
FileName: gdb-ccache-workaround.patch
+;; Workaround ccache making lineno non-zero for command-line definitions.
+;;=fedoratest: ccache is rarely used and it is even fixed now.
+---
+ gdb/testsuite/gdb.base/macscp.exp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+diff --git a/gdb/testsuite/gdb.base/macscp.exp b/gdb/testsuite/gdb.base/macscp.exp
+index d4242cceb1..6602bc591a 100644
--- a/gdb/testsuite/gdb.base/macscp.exp
+++ b/gdb/testsuite/gdb.base/macscp.exp
-@@ -33,6 +33,14 @@ if [test_compiler_info gcc*] {
+@@ -25,6 +25,14 @@ if { [test_compiler_info "gcc-*"] || [test_compiler_info "clang-*"] } {
lappend options additional_flags=-g3
}
@@ -22,3 +30,6 @@ FileName: gdb-ccache-workaround.patch
# Generate the intermediate object file. This is required by Darwin to
# have access to the .debug_macinfo section.
if {[gdb_compile "${srcdir}/${subdir}/macscp1.c" "${objfile}" \
+--
+2.14.3
+
diff --git a/gdb-container-rh-pkg.patch b/gdb-container-rh-pkg.patch
index a1bfe21..00e1a71 100644
--- a/gdb-container-rh-pkg.patch
+++ b/gdb-container-rh-pkg.patch
@@ -1,12 +1,21 @@
+From 1a6d40bc0da17671c8259ee44f77a64a442a82fe Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-container-rh-pkg.patch
FileName: gdb-container-rh-pkg.patch
---- gdb-7.11/gdb/remote.c-orig 2016-04-06 17:46:52.428921496 +0200
-+++ gdb-7.11/gdb/remote.c 2016-04-06 18:28:26.781923516 +0200
-@@ -13002,7 +13002,17 @@ remote_pid_to_exec_file (struct target_o
+;; Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
+;;=fedora
+---
+ gdb/remote.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/gdb/remote.c b/gdb/remote.c
+index 303fcddd8a..6f824e532b 100644
+--- a/gdb/remote.c
++++ b/gdb/remote.c
+@@ -13432,7 +13432,17 @@ remote_pid_to_exec_file (struct target_ops *self, int pid)
char *annex = NULL;
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)
@@ -23,5 +32,8 @@ FileName: gdb-container-rh-pkg.patch
+ return NULL;
+ }
- if (filename != NULL)
- xfree (filename);
+ inf = find_inferior_pid (pid);
+ if (inf == NULL)
+--
+2.14.3
+
diff --git a/gdb-core-open-vdso-warning.patch b/gdb-core-open-vdso-warning.patch
index 1ab8fe3..57b30c8 100644
--- a/gdb-core-open-vdso-warning.patch
+++ b/gdb-core-open-vdso-warning.patch
@@ -1,9 +1,13 @@
+From 7c7912da14d128d31170165874a0f23e1a53db48 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-core-open-vdso-warning.patch
FileName: gdb-core-open-vdso-warning.patch
+;; Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
+;; Fix regression of undisplayed missing shared libraries caused by a fix for.
+;;=fedoratest: It should be in glibc: libc-alpha: <20091004161706.GA27450@.*>
http://sourceware.org/ml/gdb-patches/2009-10/msg00142.html
Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
@@ -13,11 +17,14 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
commit 7d760051ffb8a23cdc51342d4e6243fbc462f73f
Author: Ulrich Weigand
Date: Wed Sep 25 11:52:50 2013 +0000
+---
+ gdb/testsuite/gdb.base/solib-symbol.exp | 23 +++++++++++++++++++++--
+ 1 file changed, 21 insertions(+), 2 deletions(-)
-Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp
-===================================================================
---- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:27:28.833259471 +0200
-+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:28:22.549330973 +0200
+diff --git a/gdb/testsuite/gdb.base/solib-symbol.exp b/gdb/testsuite/gdb.base/solib-symbol.exp
+index dd2f6c77d4..53824f8142 100644
+--- a/gdb/testsuite/gdb.base/solib-symbol.exp
++++ b/gdb/testsuite/gdb.base/solib-symbol.exp
@@ -29,6 +29,7 @@ set testfile "solib-symbol-main"
set srcfile ${srcdir}/${subdir}/${testfile}.c
set binfile [standard_output_file ${testfile}]
@@ -55,3 +62,6 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp
+gdb_run_cmd
+gdb_test "" "warning: Could not load shared library symbols for \[0-9\]+ libraries,.*\r\nBreakpoint \[0-9\]+, main .*" \
+ "warning for missing libraries"
+--
+2.14.3
+
diff --git a/gdb-dts-rhel6-python-compat.patch b/gdb-dts-rhel6-python-compat.patch
index fdfd9aa..7b9cdc9 100644
--- a/gdb-dts-rhel6-python-compat.patch
+++ b/gdb-dts-rhel6-python-compat.patch
@@ -1,16 +1,29 @@
+From 8647aabb864dd18c51bb9b3006fdb0294ce94231 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-dts-rhel6-python-compat.patch
FileName: gdb-dts-rhel6-python-compat.patch
-https://bugzilla.redhat.com/show_bug.cgi?id=1020004
+;; [rhel6] DTS backward Python compatibility API (BZ 1020004, Phil Muldoon).
+;;=fedora
-Index: gdb-7.12.50.20170207/gdb/data-directory/Makefile.in
-===================================================================
---- gdb-7.12.50.20170207.orig/gdb/data-directory/Makefile.in 2017-02-26 21:10:31.418894975 +0100
-+++ gdb-7.12.50.20170207/gdb/data-directory/Makefile.in 2017-02-26 21:11:07.083147930 +0100
-@@ -71,6 +71,8 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=1020004
+---
+ gdb/data-directory/Makefile.in | 3 +
+ gdb/python/lib/gdb/FrameWrapper.py | 122 ++++++++++++++++++++++++++++++++
+ gdb/python/lib/gdb/backtrace.py | 42 +++++++++++
+ gdb/python/lib/gdb/command/backtrace.py | 106 +++++++++++++++++++++++++++
+ 4 files changed, 273 insertions(+)
+ create mode 100644 gdb/python/lib/gdb/FrameWrapper.py
+ create mode 100644 gdb/python/lib/gdb/backtrace.py
+ create mode 100644 gdb/python/lib/gdb/command/backtrace.py
+
+diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
+index 304d4b05c0..dadde8895a 100644
+--- a/gdb/data-directory/Makefile.in
++++ b/gdb/data-directory/Makefile.in
+@@ -71,6 +71,8 @@ PYTHON_FILE_LIST = \
gdb/__init__.py \
gdb/FrameDecorator.py \
gdb/FrameIterator.py \
@@ -19,18 +32,19 @@ Index: gdb-7.12.50.20170207/gdb/data-directory/Makefile.in
gdb/frames.py \
gdb/printing.py \
gdb/prompt.py \
-@@ -83,6 +85,7 @@
- gdb/command/pahole.py \
- gdb/command/xmethods.py \
+@@ -79,6 +81,7 @@ PYTHON_FILE_LIST = \
+ gdb/xmethod.py \
+ gdb/command/__init__.py \
gdb/command/explore.py \
+ gdb/command/backtrace.py \
gdb/command/frame_filters.py \
gdb/command/pretty_printers.py \
gdb/command/prompt.py \
-Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/FrameWrapper.py
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/python/lib/gdb/FrameWrapper.py 2017-02-26 21:10:31.419894983 +0100
+diff --git a/gdb/python/lib/gdb/FrameWrapper.py b/gdb/python/lib/gdb/FrameWrapper.py
+new file mode 100644
+index 0000000000..34ba4a2a12
+--- /dev/null
++++ b/gdb/python/lib/gdb/FrameWrapper.py
@@ -0,0 +1,122 @@
+# Wrapper API for frames.
+
@@ -154,10 +168,11 @@ Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/FrameWrapper.py
+
+ def __getattr__ (self, name):
+ return getattr (self.frame, name)
-Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/backtrace.py
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/python/lib/gdb/backtrace.py 2017-02-26 21:10:31.419894983 +0100
+diff --git a/gdb/python/lib/gdb/backtrace.py b/gdb/python/lib/gdb/backtrace.py
+new file mode 100644
+index 0000000000..06c893f239
+--- /dev/null
++++ b/gdb/python/lib/gdb/backtrace.py
@@ -0,0 +1,42 @@
+# Filtering backtrace.
+
@@ -201,10 +216,11 @@ Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/backtrace.py
+ return iter
+ return old_frame_filter (iter)
+
-Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/command/backtrace.py
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12.50.20170207/gdb/python/lib/gdb/command/backtrace.py 2017-02-26 21:10:31.419894983 +0100
+diff --git a/gdb/python/lib/gdb/command/backtrace.py b/gdb/python/lib/gdb/command/backtrace.py
+new file mode 100644
+index 0000000000..eeea9093e8
+--- /dev/null
++++ b/gdb/python/lib/gdb/command/backtrace.py
@@ -0,0 +1,106 @@
+# New backtrace command.
+
@@ -312,3 +328,6 @@ Index: gdb-7.12.50.20170207/gdb/python/lib/gdb/command/backtrace.py
+ pair[1].describe (sys.stdout, full)
+
+FilteringBacktrace()
+--
+2.14.3
+
diff --git a/gdb-fedora-libncursesw.patch b/gdb-fedora-libncursesw.patch
index 290bc6f..f582423 100644
--- a/gdb-fedora-libncursesw.patch
+++ b/gdb-fedora-libncursesw.patch
@@ -1,16 +1,25 @@
+From 076c0ad2e25b452e1b98b1c94e0f113d6221556a Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-fedora-libncursesw.patch
FileName: gdb-fedora-libncursesw.patch
+;; Force libncursesw over libncurses to match the includes (RH BZ 1270534).
+;;=push+jan
+
Fedora: Force libncursesw over libncurses to match the includes.
https://bugzilla.redhat.com/show_bug.cgi?id=1270534
+---
+ gdb/configure | 6 ++++--
+ gdb/configure.ac | 6 ++++--
+ 2 files changed, 8 insertions(+), 4 deletions(-)
-diff -dup -rup gdb-7.10.50.20151113-orig/gdb/configure gdb-7.10.50.20151113/gdb/configure
---- gdb-7.10.50.20151113-orig/gdb/configure 2015-11-14 16:14:04.404118312 +0100
-+++ gdb-7.10.50.20151113/gdb/configure 2015-11-14 16:17:59.074566047 +0100
-@@ -8463,6 +8463,7 @@ if test x"$prefer_curses" = xyes; then
+diff --git a/gdb/configure b/gdb/configure
+index 01210afccc..c1186fd294 100755
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -9238,6 +9238,7 @@ if test x"$prefer_curses" = xyes; then
# search /usr/local/include, if ncurses is installed in /usr/local. A
# default installation of ncurses on alpha*-dec-osf* will lead to such
# a situation.
@@ -18,16 +27,16 @@ diff -dup -rup gdb-7.10.50.20151113-orig/gdb/configure gdb-7.10.50.20151113/gdb/
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing waddstr" >&5
$as_echo_n "checking for library containing waddstr... " >&6; }
if test "${ac_cv_search_waddstr+set}" = set; then :
-@@ -8487,7 +8488,7 @@ return waddstr ();
+@@ -9262,7 +9263,7 @@ return waddstr ();
return 0;
}
_ACEOF
--for ac_lib in '' ncurses cursesX curses; do
+-for ac_lib in '' ncursesw ncurses cursesX curses; do
+for ac_lib in '' ncursesw; do
if test -z "$ac_lib"; then
ac_res="none required"
else
-@@ -8561,6 +8562,7 @@ case $host_os in
+@@ -9336,6 +9337,7 @@ case $host_os in
esac
# These are the libraries checked by Readline.
@@ -35,35 +44,39 @@ diff -dup -rup gdb-7.10.50.20151113-orig/gdb/configure gdb-7.10.50.20151113/gdb/
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5
$as_echo_n "checking for library containing tgetent... " >&6; }
if test "${ac_cv_search_tgetent+set}" = set; then :
-@@ -8585,7 +8587,7 @@ return tgetent ();
+@@ -9360,7 +9362,7 @@ return tgetent ();
return 0;
}
_ACEOF
--for ac_lib in '' termcap tinfo curses ncurses; do
+-for ac_lib in '' termcap tinfo curses ncursesw ncurses; do
+for ac_lib in '' termcap tinfo ncursesw; do
if test -z "$ac_lib"; then
ac_res="none required"
else
-diff -dup -rup gdb-7.10.50.20151113-orig/gdb/configure.ac gdb-7.10.50.20151113/gdb/configure.ac
---- gdb-7.10.50.20151113-orig/gdb/configure.ac 2015-11-14 16:14:04.404118312 +0100
-+++ gdb-7.10.50.20151113/gdb/configure.ac 2015-11-14 16:17:54.898540284 +0100
-@@ -771,7 +771,8 @@ if test x"$prefer_curses" = xyes; then
+diff --git a/gdb/configure.ac b/gdb/configure.ac
+index 8c6a5f7d1e..c7d5f2de99 100644
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -755,7 +755,8 @@ if test x"$prefer_curses" = xyes; then
# search /usr/local/include, if ncurses is installed in /usr/local. A
# default installation of ncurses on alpha*-dec-osf* will lead to such
# a situation.
-- AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
+- AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses])
+ # Fedora: Force libncursesw over libncurses to match the includes.
+ AC_SEARCH_LIBS(waddstr, [ncursesw])
if test "$ac_cv_search_waddstr" != no; then
curses_found=yes
-@@ -813,7 +814,8 @@ case $host_os in
+@@ -797,7 +798,8 @@ case $host_os in
esac
# These are the libraries checked by Readline.
--AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
+-AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncursesw ncurses])
+# Fedora: Force libncursesw over libncurses to match the includes.
+AC_SEARCH_LIBS(tgetent, [termcap tinfo ncursesw])
if test "$ac_cv_search_tgetent" = no; then
CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
+--
+2.14.3
+
diff --git a/gdb-follow-child-stale-parent.patch b/gdb-follow-child-stale-parent.patch
index e7a0235..44927fc 100644
--- a/gdb-follow-child-stale-parent.patch
+++ b/gdb-follow-child-stale-parent.patch
@@ -1,9 +1,12 @@
+From 37503cd77a1aba329b10bb9ccd34fb01e7449e39 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-follow-child-stale-parent.patch
FileName: gdb-follow-child-stale-parent.patch
+;; Fix regression by python on ia64 due to stale current frame.
+;;=push+jan
Problem occurs with python and its get_current_arch () as it selects
selected_frame and current_frame while still inferior_ptid is valid for the
@@ -19,10 +22,15 @@ unwinders try to access it, breaking:
+FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the second fork
+FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the second fork
+FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: finish
+---
+ gdb/infrun.c | 3 +++
+ 1 file changed, 3 insertions(+)
---- ./gdb/infrun.c 2009-12-21 20:26:30.000000000 +0100
-+++ ./gdb/infrun.c 2009-12-21 20:26:11.000000000 +0100
-@@ -375,6 +375,9 @@ follow_fork (void)
+diff --git a/gdb/infrun.c b/gdb/infrun.c
+index 8c2c424883..c20a02e600 100644
+--- a/gdb/infrun.c
++++ b/gdb/infrun.c
+@@ -749,6 +749,9 @@ follow_fork (void)
}
else
{
@@ -32,3 +40,6 @@ unwinders try to access it, breaking:
/* This pending follow fork event is now handled, one way
or another. The previous selected thread may be gone
from the lists by now, but if it is still around, need
+--
+2.14.3
+
diff --git a/gdb-fortran-frame-string.patch b/gdb-fortran-frame-string.patch
index 2c7ee97..97102d8 100644
--- a/gdb-fortran-frame-string.patch
+++ b/gdb-fortran-frame-string.patch
@@ -1,21 +1,21 @@
+From e3cb070a2a3ff147d09947bee6f668bd86ade4f7 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [patch] Display Fortran strings in backtraces
+Subject: Display Fortran strings in backtraces
FileName: gdb-fortran-frame-string.patch
+;; Display Fortran strings in backtraces.
+;;=fedoratest
+
http://sourceware.org/ml/gdb-patches/2014-07/msg00709.html
-
-
Hi,
for Fortran it fixes displaying normal strings also in frames/backtraces:
(gdb) frame
-#0 f (s=..., _s=3) at ./gdb.fortran/fortran-frame-string.f90:24
->
-#0 f (s='foo', _s=3) at ./gdb.fortran/fortran-frame-string.f90:24
The patch is simple and I do not see why it should not be this way.
@@ -27,14 +27,18 @@ the Intel VLA patchset as it in fact is completely unrelated to "VLA".
No regressions on {x86_64,x86_64-m32,i686}-fedora22pre-linux-gnu.
-
Thanks,
Jan
-
+---
+ gdb/testsuite/gdb.fortran/fortran-frame-string.exp | 36 ++++++++++++++++++++++
+ gdb/testsuite/gdb.fortran/fortran-frame-string.f90 | 28 +++++++++++++++++
+ 2 files changed, 64 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.fortran/fortran-frame-string.exp
+ create mode 100644 gdb/testsuite/gdb.fortran/fortran-frame-string.f90
diff --git a/gdb/testsuite/gdb.fortran/fortran-frame-string.exp b/gdb/testsuite/gdb.fortran/fortran-frame-string.exp
new file mode 100644
-index 0000000..4b78266
+index 0000000000..7114afd440
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/fortran-frame-string.exp
@@ -0,0 +1,36 @@
@@ -76,7 +80,7 @@ index 0000000..4b78266
+gdb_test "frame" { \(s='foo', .*}
diff --git a/gdb/testsuite/gdb.fortran/fortran-frame-string.f90 b/gdb/testsuite/gdb.fortran/fortran-frame-string.f90
new file mode 100644
-index 0000000..3d1576f
+index 0000000000..3d1576fb1f
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/fortran-frame-string.f90
@@ -0,0 +1,28 @@
@@ -108,3 +112,6 @@ index 0000000..3d1576f
+ program main
+ call f ('foo')
+ end
+--
+2.14.3
+
diff --git a/gdb-gdb-add-index-script.patch b/gdb-gdb-add-index-script.patch
index fb9e3ea..62a40a6 100644
--- a/gdb-gdb-add-index-script.patch
+++ b/gdb-gdb-add-index-script.patch
@@ -1,11 +1,14 @@
+From f2c3f8c02ab0a1c4c02f6d954141266bd5890f23 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: Re: [0/4] RFC: add DWARF index support
+Subject: RFC: add DWARF index support
FileName: gdb-gdb-add-index-script.patch
-http://sourceware.org/ml/gdb-patches/2010-07/msg00184.html
+;; Provide /usr/bin/gdb-add-index for rpm-build (Tom Tromey).
+;;=push: Re-check against the upstream version.
+http://sourceware.org/ml/gdb-patches/2010-07/msg00184.html
Jan Kratochvil: Fixed $d -> $dir.
Jan Kratochvil: Remove /dev/null redirection.
@@ -36,21 +39,17 @@ From: Tom Tromey
Date: Fri, 9 Jul 2010 11:17:54 -0600
Subject: [PATCH 4/4] add gdb-add-index
Subject: [PATCH 4/4] add gdb-add-index
-
---
- gdb/ChangeLog | 5 +++++
- gdb/Makefile.in | 11 ++++++++++-
- gdb/doc/ChangeLog | 4 ++++
- gdb/doc/gdb.texinfo | 8 ++++++++
- gdb/gdb-add-index | 30 ++++++++++++++++++++++++++++++
- 5 files changed, 57 insertions(+), 1 deletions(-)
- create mode 100755 gdb/gdb-add-index
+ gdb/Makefile.in | 9 +++++++++
+ gdb/doc/Makefile.in | 9 ++++++++-
+ gdb/doc/gdb.texinfo | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 74 insertions(+), 1 deletion(-)
-Index: gdb-7.6.90.20140127/gdb/Makefile.in
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/Makefile.in 2014-02-06 17:37:54.555975958 +0100
-+++ gdb-7.6.90.20140127/gdb/Makefile.in 2014-02-06 17:38:52.110038415 +0100
-@@ -1093,6 +1093,15 @@ install-only: install-gstack $(CONFIG_IN
+diff --git a/gdb/Makefile.in b/gdb/Makefile.in
+index f95505ea21..edd0b239d4 100644
+--- a/gdb/Makefile.in
++++ b/gdb/Makefile.in
+@@ -1773,6 +1773,15 @@ install-only: install-gstack $(CONFIG_INSTALL)
$(INSTALL_SCRIPT) gcore \
$(DESTDIR)$(bindir)/$$transformed_name; \
fi
@@ -66,11 +65,38 @@ Index: gdb-7.6.90.20140127/gdb/Makefile.in
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
install-strip:
-Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo 2014-02-06 17:37:50.822971940 +0100
-+++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-02-06 17:37:54.565975968 +0100
-@@ -17749,6 +17749,14 @@ There are currently some limitation on i
+diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
+index e0e50c166e..3cdcbbd567 100644
+--- a/gdb/doc/Makefile.in
++++ b/gdb/doc/Makefile.in
+@@ -174,7 +174,7 @@ POD2MAN5 = pod2man --center="GNU Development Tools" \
+ --release="gdb-`sed q version.subst`" --section=5
+
+ # List of man pages generated from gdb.texi
+-MAN1S = gdb.1 gdbserver.1 gcore.1
++MAN1S = gdb.1 gdbserver.1 gcore.1 gdb-add-index.1
+ MAN5S = gdbinit.5
+ MANS = $(MAN1S) $(MAN5S)
+
+@@ -633,6 +633,13 @@ gcore.1: $(GDB_DOC_FILES)
+ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+ rm -f gcore.pod
+
++gdb-add-index.1: $(GDB_DOC_FILES)
++ touch $@
++ -$(TEXI2POD) $(MANCONF) -Dgdb-add-index < $(srcdir)/gdb.texinfo > gdb-add-index.pod
++ -($(POD2MAN1) gdb-add-index.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
++ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
++ rm -f gdb-add-index.pod
++
+ gdbinit.5: $(GDB_DOC_FILES)
+ touch $@
+ -$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod
+diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
+index d181aeb1c0..a79c686f0b 100644
+--- a/gdb/doc/gdb.texinfo
++++ b/gdb/doc/gdb.texinfo
+@@ -19606,6 +19606,14 @@ There are currently some limitation on indices. They only work when
for DWARF debugging information, not stabs. And, they do not
currently work for programs using Ada.
@@ -85,7 +111,7 @@ Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
@node Symbol Errors
@section Errors Reading Symbol Files
-@@ -43878,6 +43886,7 @@ switch (die->tag)
+@@ -42524,6 +42532,7 @@ switch (die->tag)
* gdbserver man:: Remote Server for the GNU Debugger man page
* gcore man:: Generate a core file of a running program
* gdbinit man:: gdbinit scripts
@@ -93,22 +119,10 @@ Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
@end menu
@node gdb man
-@@ -44530,6 +44539,54 @@ gdb(1), @code{info -f gdb -n Startup}
- The full documentation for @value{GDBN} is maintained as a Texinfo manual.
- If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
- documentation are properly installed at your site, the command
-+
-+@smallexample
-+info gdb
-+@end smallexample
-+
-+should give you access to the complete manual.
-+
-+@cite{Using GDB: A Guide to the GNU Source-Level Debugger},
-+Richard M. Stallman and Roland H. Pesch, July 1991.
-+@end ifset
-+@c man end
-+
+@@ -43193,6 +43202,54 @@ Richard M. Stallman and Roland H. Pesch, July 1991.
+ @end ifset
+ @c man end
+
+@node gdb-add-index man
+@heading gdb-add-index
+
@@ -145,33 +159,21 @@ Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
+The full documentation for @value{GDBN} is maintained as a Texinfo manual.
+If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
+documentation are properly installed at your site, the command
-
- @smallexample
- info gdb
-Index: gdb-7.6.90.20140127/gdb/doc/Makefile.in
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/doc/Makefile.in 2014-02-06 17:37:50.824971942 +0100
-+++ gdb-7.6.90.20140127/gdb/doc/Makefile.in 2014-02-06 17:37:54.565975968 +0100
-@@ -165,7 +165,7 @@ POD2MAN5 = pod2man --center="GNU Develop
- --release="gdb-`sed q version.subst`" --section=5
-
- # List of man pages generated from gdb.texi
--MAN1S = gdb.1 gdbserver.1 gcore.1
-+MAN1S = gdb.1 gdbserver.1 gcore.1 gdb-add-index.1
- MAN5S = gdbinit.5
- MANS = $(MAN1S) $(MAN5S)
-
-@@ -590,6 +590,13 @@ gcore.1: $(GDB_DOC_FILES)
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f gcore.pod
-
-+gdb-add-index.1: $(GDB_DOC_FILES)
-+ touch $@
-+ -$(TEXI2POD) $(MANCONF) -Dgdb-add-index < $(srcdir)/gdb.texinfo > gdb-add-index.pod
-+ -($(POD2MAN1) gdb-add-index.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-+ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-+ rm -f gdb-add-index.pod
+
- gdbinit.5: $(GDB_DOC_FILES)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod
++@smallexample
++info gdb
++@end smallexample
++
++should give you access to the complete manual.
++
++@cite{Using GDB: A Guide to the GNU Source-Level Debugger},
++Richard M. Stallman and Roland H. Pesch, July 1991.
++@end ifset
++@c man end
++
+ @include gpl.texi
+
+ @node GNU Free Documentation License
+--
+2.14.3
+
diff --git a/gdb-glibc-strstr-workaround.patch b/gdb-glibc-strstr-workaround.patch
index 440c8df..591f01e 100644
--- a/gdb-glibc-strstr-workaround.patch
+++ b/gdb-glibc-strstr-workaround.patch
@@ -1,15 +1,23 @@
+From 07fe0dc264430166eb380d3bd0f635f57e8cdcc3 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-glibc-strstr-workaround.patch
FileName: gdb-glibc-strstr-workaround.patch
+;; Workaround PR libc/14166 for inferior calls of strstr.
+;;=fedora: Compatibility with RHELs (unchecked which ones).
+---
+ gdb/dwarf2read.c | 20 ++++
+ .../gdb.base/gnu-ifunc-strstr-workaround.exp | 108 +++++++++++++++++++++
+ 2 files changed, 128 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
-Index: gdb-7.7.90.20140613/gdb/dwarf2read.c
-===================================================================
---- gdb-7.7.90.20140613.orig/gdb/dwarf2read.c 2014-06-13 21:56:54.744653443 +0200
-+++ gdb-7.7.90.20140613/gdb/dwarf2read.c 2014-06-13 22:01:51.529990684 +0200
-@@ -17695,6 +17695,26 @@ new_symbol_full (struct die_info *die, s
+diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+index ef624ada33..72d15a94d8 100644
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -20082,6 +20082,26 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
linkagename = dwarf2_physname (name, die, cu);
@@ -36,10 +44,11 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2read.c
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
/* Fortran does not have mangling standard and the mangling does differ
-Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2014-06-13 21:59:41.174840871 +0200
+diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
+new file mode 100644
+index 0000000000..5469cd7354
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
@@ -0,0 +1,108 @@
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
@@ -149,3 +158,6 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.ex
+
+gdb_test {print strstr("abc","b")} { = 0x[0-9a-f]+ "bc"}
+gdb_test {print strstr("def","e")} { = 0x[0-9a-f]+ "ef"}
+--
+2.14.3
+
diff --git a/gdb-glibc-vdso-workaround.patch b/gdb-glibc-vdso-workaround.patch
index b0031ec..f3a68ca 100644
--- a/gdb-glibc-vdso-workaround.patch
+++ b/gdb-glibc-vdso-workaround.patch
@@ -1,13 +1,15 @@
+From c1d744fe54aa2c83e0037a1d2a72fdc57163225f Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [RFC] Work around PR libc/13097 "linux-vdso.so.1" #2
+Subject: Work around PR libc/13097 "linux-vdso.so.1" #2
FileName: gdb-glibc-vdso-workaround.patch
+;; Work around PR libc/13097 "linux-vdso.so.1" warning message.
+;;=push+jan
http://sourceware.org/ml/gdb-patches/2011-08/msg00331.html
-
Hi,
missed the x86_64-m32 case:
@@ -17,12 +19,15 @@ gdb/
Work around PR libc/13097.
* solib.c (update_solib_list): Ignore "linux-vdso.so.1".
+---
+ gdb/solib.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
-Index: gdb-7.9.50.20150520/gdb/solib.c
-===================================================================
---- gdb-7.9.50.20150520.orig/gdb/solib.c 2015-05-31 17:04:16.870802493 +0200
-+++ gdb-7.9.50.20150520/gdb/solib.c 2015-05-31 17:04:38.824941054 +0200
-@@ -893,8 +893,11 @@ update_solib_list (int from_tty, struct
+diff --git a/gdb/solib.c b/gdb/solib.c
+index cb7a5c0b51..511671ea9d 100644
+--- a/gdb/solib.c
++++ b/gdb/solib.c
+@@ -884,8 +884,11 @@ update_solib_list (int from_tty)
TRY
{
@@ -36,3 +41,6 @@ Index: gdb-7.9.50.20150520/gdb/solib.c
{
not_found++;
if (not_found_filename == NULL)
+--
+2.14.3
+
diff --git a/gdb-gnat-dwarf-crash-3of3.patch b/gdb-gnat-dwarf-crash-3of3.patch
index d1a78bc..ad8c648 100644
--- a/gdb-gnat-dwarf-crash-3of3.patch
+++ b/gdb-gnat-dwarf-crash-3of3.patch
@@ -1,13 +1,15 @@
+From caf1c14f0fd0a4e097265703c6ff47d95902a890 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: [patch] gdb_assert -> complaint for weird DWARF
+Subject: gdb_assert -> complaint for weird DWARF
FileName: gdb-gnat-dwarf-crash-3of3.patch
+;; Fix crash of -readnow /usr/lib/debug/usr/bin/gnatbind.debug (BZ 1069211).
+;;=push+jan
+
http://sourceware.org/ml/gdb-patches/2014-02/msg00731.html
-
-
--6TrnltStXW4iwmi0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
@@ -27,7 +29,6 @@ Fedora GCC build, not in FSF GCC build, more info at:
https://bugzilla.redhat.com/show_bug.cgi?id=1069382
http://people.redhat.com/jkratoch/gcc-debuginfo-4.8.2-7.fc20.x86_64-gnatbind.debug
-
Thanks,
Jan
@@ -39,16 +40,18 @@ gdb/
2014-02-24 Jan Kratochvil
* dwarf2read.c (process_die): Change gdb_assert to complaint.
+---
+ gdb/dwarf2read.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
-Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/dwarf2read.c 2017-04-20 23:15:26.578897210 +0200
-+++ gdb-7.99.90.20170420/gdb/dwarf2read.c 2017-04-20 23:15:57.805106371 +0200
-@@ -8426,7 +8426,13 @@
- struct cleanup *in_process;
-
- /* We should only be processing those not already in process. */
-- gdb_assert (!die->in_process);
+diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+index f14f5b563a..49b2658ade 100644
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -9424,6 +9424,14 @@ private:
+ static void
+ process_die (struct die_info *die, struct dwarf2_cu *cu)
+ {
+ if (die->in_process)
+ {
+ complaint (&symfile_complaints,
@@ -56,6 +59,10 @@ Index: gdb-7.99.90.20170420/gdb/dwarf2read.c
+ to_underlying (die->sect_off));
+ return;
+ }
++
+ process_die_scope scope (die, cu);
- die->in_process = 1;
- in_process = make_cleanup (reset_die_in_process,die);
+ switch (die->tag)
+--
+2.14.3
+
diff --git a/gdb-jit-reader-multilib.patch b/gdb-jit-reader-multilib.patch
index 4ed017b..a9344d4 100644
--- a/gdb-jit-reader-multilib.patch
+++ b/gdb-jit-reader-multilib.patch
@@ -1,14 +1,22 @@
+From 7f5262c329f8109429a4b373ed4ca991c44a2705 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-jit-reader-multilib.patch
FileName: gdb-jit-reader-multilib.patch
+;; Fix jit-reader.h for multi-lib.
+;;=push+jan
+---
+ gdb/configure | 8 +++++---
+ gdb/configure.ac | 8 +++++---
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
diff --git a/gdb/configure b/gdb/configure
-index 7ff74ba..00a5b5b 100755
+index d99f28b9f2..01210afccc 100755
--- a/gdb/configure
+++ b/gdb/configure
-@@ -7382,10 +7382,12 @@ _ACEOF
+@@ -9528,10 +9528,12 @@ _ACEOF
@@ -25,10 +33,10 @@ index 7ff74ba..00a5b5b 100755
TARGET_PTR="unsigned __int128"
else
diff --git a/gdb/configure.ac b/gdb/configure.ac
-index ec776d7..c02ace9 100644
+index 830618dbe5..8c6a5f7d1e 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
-@@ -648,10 +648,12 @@ AC_CHECK_SIZEOF(unsigned long long)
+@@ -832,10 +832,12 @@ AC_CHECK_SIZEOF(unsigned long long)
AC_CHECK_SIZEOF(unsigned long)
AC_CHECK_SIZEOF(unsigned __int128)
@@ -44,3 +52,6 @@ index ec776d7..c02ace9 100644
elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
TARGET_PTR="unsigned __int128"
else
+--
+2.14.3
+
diff --git a/gdb-libexec-add-index.patch b/gdb-libexec-add-index.patch
index 304410a..640a179 100644
--- a/gdb-libexec-add-index.patch
+++ b/gdb-libexec-add-index.patch
@@ -1,11 +1,18 @@
+From 65eeeb0ebc2b0fdd57cf80cf4d361859988fa902 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-libexec-add-index.patch
FileName: gdb-libexec-add-index.patch
+;; Fix gdb-headless /usr/bin/ executables (BZ 1390251).
+;;=fedora
+---
+ gdb/contrib/gdb-add-index.sh | 5 +++++
+ 1 file changed, 5 insertions(+)
+
diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh
-index cca7153..73181ec 100755
+index 0cd4ce3c9d..c34058d1d6 100755
--- a/gdb/contrib/gdb-add-index.sh
+++ b/gdb/contrib/gdb-add-index.sh
@@ -21,6 +21,11 @@
@@ -20,3 +27,6 @@ index cca7153..73181ec 100755
myname="${0##*/}"
if test $# != 1; then
+--
+2.14.3
+
diff --git a/gdb-lineno-makeup-test.patch b/gdb-lineno-makeup-test.patch
index a8be6e1..87b4374 100644
--- a/gdb-lineno-makeup-test.patch
+++ b/gdb-lineno-makeup-test.patch
@@ -1,9 +1,12 @@
+From efa504a63f3e9ec2fa0ec3f38e525122030e4111 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-lineno-makeup-test.patch
FileName: gdb-lineno-makeup-test.patch
+;; Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
+;;=fedoratest
New testcase for:
https://bugzilla.redhat.com/show_bug.cgi?id=466222
@@ -12,11 +15,20 @@ and the upstream fix:
http://sourceware.org/ml/gdb-patches/2006-11/msg00253.html
[rfc] Do not make up line information
http://sourceware.org/ml/gdb-cvs/2006-11/msg00127.html
+---
+ gdb/testsuite/gdb.base/lineno-makeup-func.c | 21 ++++++++
+ gdb/testsuite/gdb.base/lineno-makeup.c | 35 +++++++++++++
+ gdb/testsuite/gdb.base/lineno-makeup.exp | 78 +++++++++++++++++++++++++++++
+ 3 files changed, 134 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/lineno-makeup-func.c
+ create mode 100644 gdb/testsuite/gdb.base/lineno-makeup.c
+ create mode 100644 gdb/testsuite/gdb.base/lineno-makeup.exp
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup-func.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup-func.c 2016-02-15 23:29:16.595161971 +0100
+diff --git a/gdb/testsuite/gdb.base/lineno-makeup-func.c b/gdb/testsuite/gdb.base/lineno-makeup-func.c
+new file mode 100644
+index 0000000000..1a0220ea52
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/lineno-makeup-func.c
@@ -0,0 +1,21 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -39,10 +51,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup-func.c
+func (void)
+{
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup.c 2016-02-15 23:29:23.873213646 +0100
+diff --git a/gdb/testsuite/gdb.base/lineno-makeup.c b/gdb/testsuite/gdb.base/lineno-makeup.c
+new file mode 100644
+index 0000000000..5d4be90999
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/lineno-makeup.c
@@ -0,0 +1,35 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -79,10 +92,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup.c
+ func ();
+ return 0;
+}
-Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup.exp 2016-02-15 23:29:23.873213646 +0100
+diff --git a/gdb/testsuite/gdb.base/lineno-makeup.exp b/gdb/testsuite/gdb.base/lineno-makeup.exp
+new file mode 100644
+index 0000000000..9e11d78bf9
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/lineno-makeup.exp
@@ -0,0 +1,78 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
@@ -162,3 +176,6 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/lineno-makeup.exp
+ fail $test
+ }
+}
+--
+2.14.3
+
diff --git a/gdb-linux_perf-bundle.patch b/gdb-linux_perf-bundle.patch
index f79a7a4..91b469f 100644
--- a/gdb-linux_perf-bundle.patch
+++ b/gdb-linux_perf-bundle.patch
@@ -1,13 +1,73 @@
+From 3ab88d9e69b2c75a3cbbe9a7bfcb148a0f0b2729 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-linux_perf-bundle.patch
FileName: gdb-linux_perf-bundle.patch
-Index: gdb-7.11.90.20160904/gdb/nat/linux-btrace.h
-===================================================================
---- gdb-7.11.90.20160904.orig/gdb/nat/linux-btrace.h 2016-09-04 04:02:13.000000000 +0200
-+++ gdb-7.11.90.20160904/gdb/nat/linux-btrace.h 2016-09-04 20:11:47.375275492 +0200
+;; [dts+el7] [x86*] Bundle linux_perf.h for libipt (RH BZ 1256513).
+;;=fedora
+---
+ gdb/configure | 2 +-
+ gdb/configure.ac | 2 +-
+ gdb/gdb.c | 8 +++
+ gdb/nat/linux-btrace.h | 171 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 181 insertions(+), 2 deletions(-)
+
+diff --git a/gdb/configure b/gdb/configure
+index c1186fd294..1cc220d281 100755
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -11907,7 +11907,7 @@ else
+
+ #include
+ #ifndef PERF_ATTR_SIZE_VER5
+-# error
++// error // PERF_ATTR_SIZE_VER5_BUNDLE is not available here - Fedora+RHEL
+ #endif
+
+ _ACEOF
+diff --git a/gdb/configure.ac b/gdb/configure.ac
+index c7d5f2de99..0bd9fcace9 100644
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -1466,7 +1466,7 @@ else
+ AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
+ #include
+ #ifndef PERF_ATTR_SIZE_VER5
+-# error
++// error // PERF_ATTR_SIZE_VER5_BUNDLE is not available here - Fedora+RHEL
+ #endif
+ ]]), [perf_event=yes], [perf_event=no])
+ if test "$perf_event" != yes; then
+diff --git a/gdb/gdb.c b/gdb/gdb.c
+index fbf6711203..8dcde4e6d8 100644
+--- a/gdb/gdb.c
++++ b/gdb/gdb.c
+@@ -20,11 +20,19 @@
+ #include "main.h"
+ #include "interps.h"
+
++#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
++extern "C" void __libipt_init(void);
++#endif
++
+ int
+ main (int argc, char **argv)
+ {
+ struct captured_main_args args;
+
++#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
++ __libipt_init();
++#endif
++
+ memset (&args, 0, sizeof args);
+ args.argc = argc;
+ args.argv = argv;
+diff --git a/gdb/nat/linux-btrace.h b/gdb/nat/linux-btrace.h
+index c08b2eb9ae..4b4f22f5ec 100644
+--- a/gdb/nat/linux-btrace.h
++++ b/gdb/nat/linux-btrace.h
@@ -28,6 +28,177 @@
# include
#endif
@@ -186,53 +246,6 @@ Index: gdb-7.11.90.20160904/gdb/nat/linux-btrace.h
struct target_ops;
#if HAVE_LINUX_PERF_EVENT_H
-Index: gdb-7.11.90.20160904/gdb/configure
-===================================================================
---- gdb-7.11.90.20160904.orig/gdb/configure 2016-09-04 20:11:47.238274285 +0200
-+++ gdb-7.11.90.20160904/gdb/configure 2016-09-04 20:11:47.378275519 +0200
-@@ -10601,7 +10601,7 @@
-
- #include
- #ifndef PERF_ATTR_SIZE_VER5
--# error
-+// error // PERF_ATTR_SIZE_VER5_BUNDLE is not available here - Fedora+RHEL
- #endif
-
- _ACEOF
-Index: gdb-7.11.90.20160904/gdb/configure.ac
-===================================================================
---- gdb-7.11.90.20160904.orig/gdb/configure.ac 2016-09-04 20:11:47.238274285 +0200
-+++ gdb-7.11.90.20160904/gdb/configure.ac 2016-09-04 20:11:47.379275528 +0200
-@@ -1461,7 +1461,7 @@
- AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
- #include
- #ifndef PERF_ATTR_SIZE_VER5
--# error
-+// error // PERF_ATTR_SIZE_VER5_BUNDLE is not available here - Fedora+RHEL
- #endif
- ]]), [perf_event=yes], [perf_event=no])
- if test "$perf_event" != yes; then
-Index: gdb-7.11.90.20160904/gdb/gdb.c
-===================================================================
---- gdb-7.11.90.20160904.orig/gdb/gdb.c 2016-09-04 04:02:13.000000000 +0200
-+++ gdb-7.11.90.20160904/gdb/gdb.c 2016-09-04 20:12:28.018633552 +0200
-@@ -20,11 +20,19 @@
- #include "main.h"
- #include "interps.h"
-
-+#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
-+extern "C" void __libipt_init(void);
-+#endif
-+
- int
- main (int argc, char **argv)
- {
- struct captured_main_args args;
-
-+#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
-+ __libipt_init();
-+#endif
-+
- memset (&args, 0, sizeof args);
- args.argc = argc;
- args.argv = argv;
+--
+2.14.3
+
diff --git a/gdb-moribund-utrace-workaround.patch b/gdb-moribund-utrace-workaround.patch
index f75f129..031684f 100644
--- a/gdb-moribund-utrace-workaround.patch
+++ b/gdb-moribund-utrace-workaround.patch
@@ -1,18 +1,26 @@
+From 53e7056c653cd49e558e008e3a0cd77cb91979df Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-moribund-utrace-workaround.patch
FileName: gdb-moribund-utrace-workaround.patch
+;; Workaround non-stop moribund locations exploited by kernel utrace (BZ 590623).
+;;=push+jan: Currently it is still not fully safe.
https://bugzilla.redhat.com/show_bug.cgi?id=590623
http://sources.redhat.com/bugzilla/show_bug.cgi?id=11593
Bug in FSF GDB exploited by the ptrace-on-utrace interaction.
+---
+ gdb/breakpoint.c | 2 ++
+ 1 file changed, 2 insertions(+)
+diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
+index 269928a794..fb129bf38a 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
-@@ -9084,6 +9084,8 @@ update_global_location_list (int should_insert)
+@@ -12105,6 +12105,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
traps we can no longer explain. */
old_loc->events_till_retirement = 3 * (thread_count () + 1);
@@ -21,3 +29,6 @@ Bug in FSF GDB exploited by the ptrace-on-utrace interaction.
old_loc->owner = NULL;
VEC_safe_push (bp_location_p, moribund_locations, old_loc);
+--
+2.14.3
+
diff --git a/gdb-opcodes-clflushopt-test.patch b/gdb-opcodes-clflushopt-test.patch
index eea5048..18b0554 100644
--- a/gdb-opcodes-clflushopt-test.patch
+++ b/gdb-opcodes-clflushopt-test.patch
@@ -1,11 +1,49 @@
+From 894719f8a3979afa082ce377ce7d9536db552b5c Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-opcodes-clflushopt-test.patch
FileName: gdb-opcodes-clflushopt-test.patch
---- /dev/null 2016-01-16 21:50:55.732812229 +0100
-+++ gdb-7.6.1/gdb/testsuite/gdb.arch/amd64-clflushopt.exp 2016-01-16 22:49:19.950683918 +0100
+;; Test clflushopt instruction decode (for RH BZ 1262471).
+;;=fedoratest
+---
+ gdb/testsuite/gdb.arch/amd64-clflushopt.S | 19 +++++++++++++++++++
+ gdb/testsuite/gdb.arch/amd64-clflushopt.exp | 25 +++++++++++++++++++++++++
+ 2 files changed, 44 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.arch/amd64-clflushopt.S
+ create mode 100644 gdb/testsuite/gdb.arch/amd64-clflushopt.exp
+
+diff --git a/gdb/testsuite/gdb.arch/amd64-clflushopt.S b/gdb/testsuite/gdb.arch/amd64-clflushopt.S
+new file mode 100644
+index 0000000000..dee4f006dc
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/amd64-clflushopt.S
+@@ -0,0 +1,19 @@
++/* Copyright 2016 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 .
++
++ This file is part of the gdb testsuite. */
++
++_start: .globl _start
++ clflushopt (%edi)
+diff --git a/gdb/testsuite/gdb.arch/amd64-clflushopt.exp b/gdb/testsuite/gdb.arch/amd64-clflushopt.exp
+new file mode 100644
+index 0000000000..22a9decee2
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/amd64-clflushopt.exp
@@ -0,0 +1,25 @@
+# Copyright 2016 Free Software Foundation, Inc.
+
@@ -32,25 +70,6 @@ FileName: gdb-opcodes-clflushopt-test.patch
+}
+
+gdb_test "disas _start" "Dump of assembler code for function _start:\r\n *0x\[0-9a-f\]+ <\[+\]0>:\tclflushopt \\(%edi\\)\r\nEnd of assembler dump\\." "clflushopt"
---- /dev/null 2016-01-16 21:50:55.732812229 +0100
-+++ gdb-7.6.1/gdb/testsuite/gdb.arch/amd64-clflushopt.S 2016-01-16 22:49:26.398725209 +0100
-@@ -0,0 +1,19 @@
-+/* Copyright 2016 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 .
-+
-+ This file is part of the gdb testsuite. */
-+
-+_start: .globl _start
-+ clflushopt (%edi)
+--
+2.14.3
+
diff --git a/gdb-physname-pr11734-test.patch b/gdb-physname-pr11734-test.patch
index 9869998..8f95693 100644
--- a/gdb-physname-pr11734-test.patch
+++ b/gdb-physname-pr11734-test.patch
@@ -1,16 +1,34 @@
+From 99a10c8c5b41de19d0f19b8eb639419545f4a080 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-physname-pr11734-test.patch
FileName: gdb-physname-pr11734-test.patch
+;; Fix regressions on C++ names resolving (PR 11734, PR 12273, Keith Seitz).
+;;=fedoratest
http://sourceware.org/ml/gdb-patches/2010-12/msg00263.html
+---
+ gdb/testsuite/gdb.cp/pr11734-1.cc | 30 +++++++++++++++++++++
+ gdb/testsuite/gdb.cp/pr11734-2.cc | 27 +++++++++++++++++++
+ gdb/testsuite/gdb.cp/pr11734-3.cc | 27 +++++++++++++++++++
+ gdb/testsuite/gdb.cp/pr11734-4.cc | 27 +++++++++++++++++++
+ gdb/testsuite/gdb.cp/pr11734.exp | 55 +++++++++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.cp/pr11734.h | 28 ++++++++++++++++++++
+ 6 files changed, 194 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.cp/pr11734-1.cc
+ create mode 100644 gdb/testsuite/gdb.cp/pr11734-2.cc
+ create mode 100644 gdb/testsuite/gdb.cp/pr11734-3.cc
+ create mode 100644 gdb/testsuite/gdb.cp/pr11734-4.cc
+ create mode 100644 gdb/testsuite/gdb.cp/pr11734.exp
+ create mode 100644 gdb/testsuite/gdb.cp/pr11734.h
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-1.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-1.cc 2011-02-03 22:28:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr11734-1.cc b/gdb/testsuite/gdb.cp/pr11734-1.cc
+new file mode 100644
+index 0000000000..f3480ce977
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr11734-1.cc
@@ -0,0 +1,30 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -42,10 +60,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-1.cc
+ return 0;
+}
+
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-2.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-2.cc 2011-02-03 22:28:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr11734-2.cc b/gdb/testsuite/gdb.cp/pr11734-2.cc
+new file mode 100644
+index 0000000000..dbebe8281a
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr11734-2.cc
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -74,10 +93,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-2.cc
+{
+}
+
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-3.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-3.cc 2011-02-03 22:28:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr11734-3.cc b/gdb/testsuite/gdb.cp/pr11734-3.cc
+new file mode 100644
+index 0000000000..faaeffc9dd
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr11734-3.cc
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -106,10 +126,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-3.cc
+{
+}
+
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-4.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-4.cc 2011-02-03 22:28:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr11734-4.cc b/gdb/testsuite/gdb.cp/pr11734-4.cc
+new file mode 100644
+index 0000000000..6edf8110f1
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr11734-4.cc
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -138,10 +159,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-4.cc
+{
+}
+
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734.exp 2011-02-03 22:28:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr11734.exp b/gdb/testsuite/gdb.cp/pr11734.exp
+new file mode 100644
+index 0000000000..e731d422f6
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr11734.exp
@@ -0,0 +1,55 @@
+# Copyright 2010 Free Software Foundation, Inc.
+#
@@ -198,10 +220,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734.exp
+
+gdb_exit
+return 0
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734.h 2011-02-03 22:28:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr11734.h b/gdb/testsuite/gdb.cp/pr11734.h
+new file mode 100644
+index 0000000000..7f6e72a685
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr11734.h
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -231,3 +254,6 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734.h
+ void foo (char *);
+};
+
+--
+2.14.3
+
diff --git a/gdb-physname-pr12273-test.patch b/gdb-physname-pr12273-test.patch
index 4c95c79..c0e71c8 100644
--- a/gdb-physname-pr12273-test.patch
+++ b/gdb-physname-pr12273-test.patch
@@ -1,16 +1,26 @@
+From be5736d56f84d924bd4dd82bf2cfbc7f0c07bc70 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-physname-pr12273-test.patch
FileName: gdb-physname-pr12273-test.patch
+;; Fix regressions on C++ names resolving (PR 11734, PR 12273, Keith Seitz).
+;;=fedoratest
http://sourceware.org/ml/gdb-patches/2010-12/msg00264.html
+---
+ gdb/testsuite/gdb.cp/pr12273.cc | 37 ++++++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.cp/pr12273.exp | 46 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 83 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.cp/pr12273.cc
+ create mode 100644 gdb/testsuite/gdb.cp/pr12273.exp
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr12273.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr12273.cc 2011-02-03 22:31:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr12273.cc b/gdb/testsuite/gdb.cp/pr12273.cc
+new file mode 100644
+index 0000000000..79dd7bad74
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr12273.cc
@@ -0,0 +1,37 @@
+/* This test case is part of GDB, the GNU debugger.
+
@@ -49,10 +59,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr12273.cc
+ + GDB::even_harder ('a');
+ return GDB::simple ();
+}
-Index: gdb-7.2/gdb/testsuite/gdb.cp/pr12273.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.2/gdb/testsuite/gdb.cp/pr12273.exp 2011-02-03 22:31:01.000000000 +0100
+diff --git a/gdb/testsuite/gdb.cp/pr12273.exp b/gdb/testsuite/gdb.cp/pr12273.exp
+new file mode 100644
+index 0000000000..9d71482742
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/pr12273.exp
@@ -0,0 +1,46 @@
+# Copyright 2010 Free Software Foundation, Inc.
+#
@@ -100,3 +111,6 @@ Index: gdb-7.2/gdb/testsuite/gdb.cp/pr12273.exp
+}
+
+gdb_exit
+--
+2.14.3
+
diff --git a/gdb-ppc-power7-test.patch b/gdb-ppc-power7-test.patch
index d7e26b5..3e66368 100644
--- a/gdb-ppc-power7-test.patch
+++ b/gdb-ppc-power7-test.patch
@@ -1,10 +1,22 @@
+From 64acd14a4531db2271ea2aba924fea90d52ccb02 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-ppc-power7-test.patch
FileName: gdb-ppc-power7-test.patch
+;; Test power7 ppc disassembly.
+;;=fedoratest
+---
+ gdb/testsuite/gdb.arch/powerpc-power7rh.exp | 178 ++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.arch/powerpc-power7rh.s | 107 +++++++++++++++++
+ 2 files changed, 285 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-power7rh.exp
+ create mode 100644 gdb/testsuite/gdb.arch/powerpc-power7rh.s
+diff --git a/gdb/testsuite/gdb.arch/powerpc-power7rh.exp b/gdb/testsuite/gdb.arch/powerpc-power7rh.exp
+new file mode 100644
+index 0000000000..0c2bbdaede
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.exp
@@ -0,0 +1,178 @@
@@ -186,6 +198,9 @@ FileName: gdb-ppc-power7-test.patch
+func_check 0x194 "frsqrtes f14,f15"
+func_check 0x198 "frsqrtes. f14,f15"
+func_check 0x19c "isel r2,r3,r4,28"
+diff --git a/gdb/testsuite/gdb.arch/powerpc-power7rh.s b/gdb/testsuite/gdb.arch/powerpc-power7rh.s
+new file mode 100644
+index 0000000000..98b2e797e7
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/powerpc-power7rh.s
@@ -0,0 +1,107 @@
@@ -296,3 +311,6 @@ FileName: gdb-ppc-power7-test.patch
+ .long 0xedc07834 /* 194: frsqrtes f14,f15 */
+ .long 0xedc07835 /* 198: frsqrtes. f14,f15 */
+ .long 0x7c43271e /* 19c: isel r2,r3,r4,28 */
+--
+2.14.3
+
diff --git a/gdb-python-gil.patch b/gdb-python-gil.patch
index 1538a14..abb91cc 100644
--- a/gdb-python-gil.patch
+++ b/gdb-python-gil.patch
@@ -1,14 +1,29 @@
+From 8c40408dadd86bcbb319173bab665b9fc6d12f72 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-python-gil.patch
FileName: gdb-python-gil.patch
-Index: gdb-7.99.90.20170420/gdb/doc/python.texi
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/doc/python.texi 2017-04-20 23:16:30.895328018 +0200
-+++ gdb-7.99.90.20170420/gdb/doc/python.texi 2017-04-20 23:16:35.690360136 +0200
-@@ -230,6 +230,14 @@
+;; Fix Python GIL with gdb.execute("continue") (Phil Muldoon, BZ 1116957).
+;;=push
+---
+ gdb/doc/python.texi | 8 ++++
+ gdb/python/python-internal.h | 2 +
+ gdb/python/python.c | 42 +++++++++++++++---
+ gdb/testsuite/gdb.python/py-gil-mthread.c | 13 ++++++
+ gdb/testsuite/gdb.python/py-gil-mthread.exp | 69 +++++++++++++++++++++++++++++
+ gdb/testsuite/gdb.python/py-gil-mthread.py | 28 ++++++++++++
+ 6 files changed, 157 insertions(+), 5 deletions(-)
+ create mode 100644 gdb/testsuite/gdb.python/py-gil-mthread.c
+ create mode 100644 gdb/testsuite/gdb.python/py-gil-mthread.exp
+ create mode 100644 gdb/testsuite/gdb.python/py-gil-mthread.py
+
+diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
+index f411f60d7e..01243c7c7d 100644
+--- a/gdb/doc/python.texi
++++ b/gdb/doc/python.texi
+@@ -232,6 +232,14 @@ returned as a string. The default is @code{False}, in which case the
return value is @code{None}. If @var{to_string} is @code{True}, the
@value{GDBN} virtual terminal will be temporarily set to unlimited width
and height, and its pagination will be disabled; @pxref{Screen Size}.
@@ -23,11 +38,11 @@ Index: gdb-7.99.90.20170420/gdb/doc/python.texi
@end defun
@findex gdb.breakpoints
-Index: gdb-7.99.90.20170420/gdb/python/python-internal.h
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/python/python-internal.h 2017-04-20 23:16:30.896328024 +0200
-+++ gdb-7.99.90.20170420/gdb/python/python-internal.h 2017-04-20 23:16:35.690360136 +0200
-@@ -142,6 +142,8 @@
+diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
+index 8fc8cc5a5d..f099ae437f 100644
+--- a/gdb/python/python-internal.h
++++ b/gdb/python/python-internal.h
+@@ -142,6 +142,8 @@ typedef int Py_ssize_t;
#define PyGILState_Release(ARG) ((void)(ARG))
#define PyEval_InitThreads()
#define PyThreadState_Swap(ARG) ((void)(ARG))
@@ -36,11 +51,11 @@ Index: gdb-7.99.90.20170420/gdb/python/python-internal.h
#define PyEval_ReleaseLock()
#endif
-Index: gdb-7.99.90.20170420/gdb/python/python.c
-===================================================================
---- gdb-7.99.90.20170420.orig/gdb/python/python.c 2017-04-20 23:16:30.897328031 +0200
-+++ gdb-7.99.90.20170420/gdb/python/python.c 2017-04-20 23:18:11.377001070 +0200
-@@ -594,12 +594,16 @@
+diff --git a/gdb/python/python.c b/gdb/python/python.c
+index c29a46b448..0f71a4335e 100644
+--- a/gdb/python/python.c
++++ b/gdb/python/python.c
+@@ -554,12 +554,16 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
{
const char *arg;
PyObject *from_tty_obj = NULL, *to_string_obj = NULL;
@@ -61,7 +76,7 @@ Index: gdb-7.99.90.20170420/gdb/python/python.c
return NULL;
from_tty = 0;
-@@ -620,6 +624,15 @@
+@@ -580,12 +584,28 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
to_string = cmp;
}
@@ -77,8 +92,7 @@ Index: gdb-7.99.90.20170420/gdb/python/python.c
std::string to_string_res;
TRY
-@@ -628,6 +641,13 @@
- std::string copy (arg);
+ {
struct interp *interp;
+ /* In the case of long running GDB commands, allow the user to
@@ -91,10 +105,10 @@ Index: gdb-7.99.90.20170420/gdb/python/python.c
scoped_restore save_async = make_scoped_restore (¤t_ui->async, 0);
scoped_restore save_uiout = make_scoped_restore (¤t_uiout);
-@@ -642,10 +662,22 @@
- to_string_res = execute_command_to_string (©[0], from_tty);
+@@ -600,10 +620,22 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
+ to_string_res = execute_command_to_string (arg, from_tty);
else
- execute_command (©[0], from_tty);
+ execute_command (arg, from_tty);
+
+ /* Reacquire the GIL if it was released earlier. */
+ if (release_gil)
@@ -115,10 +129,11 @@ Index: gdb-7.99.90.20170420/gdb/python/python.c
}
END_CATCH
-Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.c 2017-04-20 23:16:35.691360143 +0200
+diff --git a/gdb/testsuite/gdb.python/py-gil-mthread.c b/gdb/testsuite/gdb.python/py-gil-mthread.c
+new file mode 100644
+index 0000000000..1a12fc9c6d
+--- /dev/null
++++ b/gdb/testsuite/gdb.python/py-gil-mthread.c
@@ -0,0 +1,13 @@
+#include
+#include
@@ -133,10 +148,11 @@ Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.c
+ printf ("Sleeping %d\n", i);
+ }
+}
-Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.exp 2017-04-20 23:16:35.691360143 +0200
+diff --git a/gdb/testsuite/gdb.python/py-gil-mthread.exp b/gdb/testsuite/gdb.python/py-gil-mthread.exp
+new file mode 100644
+index 0000000000..a89c16a45b
+--- /dev/null
++++ b/gdb/testsuite/gdb.python/py-gil-mthread.exp
@@ -0,0 +1,69 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
@@ -207,10 +223,11 @@ Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.exp
+ }
+ }
+}
-Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.py
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.py 2017-04-20 23:16:35.692360149 +0200
+diff --git a/gdb/testsuite/gdb.python/py-gil-mthread.py b/gdb/testsuite/gdb.python/py-gil-mthread.py
+new file mode 100644
+index 0000000000..6a89964139
+--- /dev/null
++++ b/gdb/testsuite/gdb.python/py-gil-mthread.py
@@ -0,0 +1,28 @@
+try:
+ import thread
@@ -240,3 +257,6 @@ Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.python/py-gil-mthread.py
+
+while 1:
+ pass
+--
+2.14.3
+
diff --git a/gdb-readline62-ask-more-rh.patch b/gdb-readline62-ask-more-rh.patch
index d7cf154..ac8dbb9 100644
--- a/gdb-readline62-ask-more-rh.patch
+++ b/gdb-readline62-ask-more-rh.patch
@@ -1,14 +1,21 @@
+From d41f92047a8f2c1e1f31ff8939b2215862bce183 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-readline62-ask-more-rh.patch
FileName: gdb-readline62-ask-more-rh.patch
-Index: gdb-7.11.50.20160630/gdb/event-top.c
-===================================================================
---- gdb-7.11.50.20160630.orig/gdb/event-top.c 2016-07-03 16:32:36.108342159 +0200
-+++ gdb-7.11.50.20160630/gdb/event-top.c 2016-07-03 16:32:59.787523733 +0200
-@@ -1252,6 +1252,13 @@
+;; Work around readline-6.2 incompatibility not asking for --more-- (BZ 701131).
+;;=fedora
+---
+ gdb/event-top.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/gdb/event-top.c b/gdb/event-top.c
+index a1866f0c88..e7d3c1fc20 100644
+--- a/gdb/event-top.c
++++ b/gdb/event-top.c
+@@ -1182,6 +1182,13 @@ gdb_setup_readline (int editing)
{
struct ui *ui = current_ui;
@@ -22,3 +29,6 @@ Index: gdb-7.11.50.20160630/gdb/event-top.c
/* This function is a noop for the sync case. The assumption is
that the sync setup is ALL done in gdb_init, and we would only
mess it up here. The sync stuff should really go away over
+--
+2.14.3
+
diff --git a/gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch b/gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
index e6ee120..521977e 100644
--- a/gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
+++ b/gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
@@ -1,14 +1,24 @@
+From c2ad117a09b02ba7ec04f6f3e100969f4323fe8f Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
FileName: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
+;; Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343).
+;;=fedoratest
+---
+ gdb/testsuite/gdb.base/set-solib-absolute-prefix.c | 26 +++++++++++++++
+ .../gdb.base/set-solib-absolute-prefix.exp | 39 ++++++++++++++++++++++
+ 2 files changed, 65 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/set-solib-absolute-prefix.c
+ create mode 100644 gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp
-Index: gdb-7.0.1/gdb/testsuite/gdb.base/set-solib-absolute-prefix.c
-===================================================================
+diff --git a/gdb/testsuite/gdb.base/set-solib-absolute-prefix.c b/gdb/testsuite/gdb.base/set-solib-absolute-prefix.c
+new file mode 100644
+index 0000000000..2675a34f1a
--- /dev/null
-+++ gdb-7.0.1/gdb/testsuite/gdb.base/set-solib-absolute-prefix.c
++++ b/gdb/testsuite/gdb.base/set-solib-absolute-prefix.c
@@ -0,0 +1,26 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+
@@ -36,10 +46,11 @@ Index: gdb-7.0.1/gdb/testsuite/gdb.base/set-solib-absolute-prefix.c
+ printf ("Hello, World.\n");
+ abort ();
+}
-Index: gdb-7.0.1/gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp
-===================================================================
+diff --git a/gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp b/gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp
+new file mode 100644
+index 0000000000..bb4c8b962b
--- /dev/null
-+++ gdb-7.0.1/gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp
++++ b/gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp
@@ -0,0 +1,39 @@
+# Copyright 2012 Free Software Foundation, Inc.
+
@@ -80,3 +91,6 @@ Index: gdb-7.0.1/gdb/testsuite/gdb.base/set-solib-absolute-prefix.exp
+ ".*warning: Unable to find dynamic linker breakpoint function.*" \
+ "set solib-absolute-prefix"
+gdb_test "bt" "__kernel_vsyscall.*" "backtrace with __kernel_vsyscall"
+--
+2.14.3
+
diff --git a/gdb-rhbz1007614-memleak-infpy_read_memory-test.patch b/gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
index d188be4..a31fd1e 100644
--- a/gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
+++ b/gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
@@ -1,9 +1,13 @@
+From 53f60cee25b8e3307ebebdaa826b299db6e4d8d5 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
FileName: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
+;; Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614)
+;;=fedoratest
+
Original message by Tom Tromey:
@@ -25,11 +29,20 @@ Date: Wed Mar 28 17:38:08 2012 +0000
* python/py-inferior.c (infpy_read_memory): Remove cleanups and
explicitly free 'buffer' on exit paths. Decref 'membuf_object'
before returning.
+---
+ .../py-gdb-rhbz1007614-memleak-infpy_read_memory.c | 27 +++++++++
+ ...y-gdb-rhbz1007614-memleak-infpy_read_memory.exp | 68 ++++++++++++++++++++++
+ ...py-gdb-rhbz1007614-memleak-infpy_read_memory.py | 30 ++++++++++
+ 3 files changed, 125 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
+ create mode 100644 gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
+ create mode 100644 gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
-Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
-===================================================================
+diff --git a/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c b/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
+new file mode 100644
+index 0000000000..f2697efa9a
--- /dev/null
-+++ gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
++++ b/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -58,10 +71,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_me
+{
+ return 0;
+}
-Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
-===================================================================
+diff --git a/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp b/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
+new file mode 100644
+index 0000000000..2e6786d499
--- /dev/null
-+++ gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
++++ b/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
@@ -0,0 +1,68 @@
+# Copyright 2014 Free Software Foundation, Inc.
+
@@ -131,10 +145,11 @@ Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_me
+} else {
+ pass "there is not a memory leak on GDB (RHBZ 1007614)"
+}
-Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
-===================================================================
+diff --git a/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py b/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
+new file mode 100644
+index 0000000000..e807728047
--- /dev/null
-+++ gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
++++ b/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
@@ -166,3 +181,6 @@ Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_me
+ print "Hello, World!"
+
+HelloWorld ()
+--
+2.14.3
+
diff --git a/gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch b/gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
index c8ec849..56df5b7 100644
--- a/gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
+++ b/gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
@@ -1,125 +1,33 @@
+From faadc471aba29e9dbf5f134d0bf1d53ed1d488b5 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
FileName: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
+;; Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan
+;; Kratochvil, RH BZ 1084404).
+;;=fedoratest
+
These testcases have been created by compiling glibc-2.17-78 on
RHEL-7.1 s390x/ppc64 boxes, and then taking the "select.o" file
present at $builddir/misc/select.o.
+---
+ gdb/testsuite/gdb.arch/ppc64-prologue-skip.exp | 34 ++++++++++++
+ gdb/testsuite/gdb.arch/ppc64-prologue-skip.o.uu | 70 +++++++++++++++++++++++++
+ gdb/testsuite/gdb.arch/s390x-prologue-skip.exp | 34 ++++++++++++
+ gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu | 64 ++++++++++++++++++++++
+ 4 files changed, 202 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.arch/ppc64-prologue-skip.exp
+ create mode 100644 gdb/testsuite/gdb.arch/ppc64-prologue-skip.o.uu
+ create mode 100644 gdb/testsuite/gdb.arch/s390x-prologue-skip.exp
+ create mode 100644 gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
-Index: gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.exp
-===================================================================
+diff --git a/gdb/testsuite/gdb.arch/ppc64-prologue-skip.exp b/gdb/testsuite/gdb.arch/ppc64-prologue-skip.exp
+new file mode 100644
+index 0000000000..2f54c1f981
--- /dev/null
-+++ gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.exp
-@@ -0,0 +1,34 @@
-+# 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 .
-+
-+if { ![istarget s390x-*linux-*] || ![is_lp64_target] } {
-+ verbose "Skipping s390x-prologue-skip.exp"
-+ return
-+}
-+
-+set testfile "s390x-prologue-skip"
-+set uufile "${srcdir}/${subdir}/${testfile}.o.uu"
-+set ofile "${srcdir}/${subdir}/${testfile}.o"
-+
-+if { [catch "system \"uudecode -o ${ofile} ${uufile}\"" ] != 0 } {
-+ untested "failed uudecode"
-+ return -1
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_load $ofile
-+
-+gdb_test "break select" "Breakpoint $decimal at 0x48: file ../sysdeps/unix/syscall-template.S, line 81." "breakpoint on select"
-Index: gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
-===================================================================
---- /dev/null
-+++ gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
-@@ -0,0 +1,64 @@
-+begin 644 s390x-prologue-skip.o.uu
-+M?T5,1@("`0`````````````!`!8````!````````````````````````````
-+M``+```````!```````!``!(`#^LE\!``).O?\&@`)+D$`.^G^_]@X^#P```D
-+MP.4`````N00``NLE\+``!`J.N00`TKD$`"#`Y0````"Y!``MZ]_Q"``$I_0`
-+M"L`0`````+\/$`"G=/_7"HZG2?`!N2$`),"T``````?^````5@`"````.0$!
-+M^PX-``$!`0$````!```!+BXO7-C86QL+71E;7!L
-+M871E+E,``0`````)`@```````````]```0)F$P("``$!````CP`"``````@!
-+M```````````````````````````N+B]S>7-D97!S+W5N:7@OE(``7@.
-+M`1L,#Z`!````````&````!P`````````1`!,CP6.!HT'2`[``@```!`````X
-+M`````````"```````"YS>6UT86(`+G-T``````````&````!`````&``````````@`````````
-+M&````%<````!``````````````````````````````$"`````````),`````
-+M```````````````!``````````````!2````!```````````````````````
-+M```````)^`````````!@````$`````@`````````"``````````8````8P``
-+M``$``````````````````````````````94`````````%```````````````
-+M``````$``````````````'8````!``````````````````````````````&P
-+M`````````#`````````````````````0``````````````!Q````!```````
-+M```````````````````````*6``````````P````$`````L`````````"```
-+M```````8````B@````$``````````@```````````````````>``````````
-+M2`````````````````````@``````````````(4````$````````````````
-+M``````````````J(`````````#`````0````#0`````````(`````````!@`
-+M```1`````P`````````````````````````````"*`````````"4````````
-+M`````````````0```````````````0````(`````````````````````````
-+M````!T`````````!L````!$````*``````````@`````````&`````D````#
-+M``````````````````````````````CP`````````(X`````````````````
-+M```!`````````````````````````````````````````````````P```0``
-+M`````````````````````````P```P```````````````````````````P``
-+M!````````````````````````````P``"```````````````````````````
-+M`P``"@```````````````````````````P``!@``````````````````````
-+M`````P``"P```````````````````````````P``#0``````````````````
-+M`````````P``!0`````````````````````````!$```````````````````
-+M```````````;$``````````````````````````````V$@```0````````!(
-+M`````````"`````_$`````````````````````````````!7$@```0``````
-+M``!6`````````!````!I$`````````````````````````````!Y(@```0``
-+M``````!(`````````"````"'(@```0````````!(`````````"``7U]L:6)C
-+M7V5N86)L95]A.
++
++if { ![istarget s390x-*linux-*] || ![is_lp64_target] } {
++ verbose "Skipping s390x-prologue-skip.exp"
++ return
++}
++
++set testfile "s390x-prologue-skip"
++set uufile "${srcdir}/${subdir}/${testfile}.o.uu"
++set ofile "${srcdir}/${subdir}/${testfile}.o"
++
++if { [catch "system \"uudecode -o ${ofile} ${uufile}\"" ] != 0 } {
++ untested "failed uudecode"
++ return -1
++}
++
++gdb_exit
++gdb_start
++gdb_load $ofile
++
++gdb_test "break select" "Breakpoint $decimal at 0x48: file ../sysdeps/unix/syscall-template.S, line 81." "breakpoint on select"
+diff --git a/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu b/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
+new file mode 100644
+index 0000000000..6442e6048d
+--- /dev/null
++++ b/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
+@@ -0,0 +1,64 @@
++begin 644 s390x-prologue-skip.o.uu
++M?T5,1@("`0`````````````!`!8````!````````````````````````````
++M``+```````!```````!``!(`#^LE\!``).O?\&@`)+D$`.^G^_]@X^#P```D
++MP.4`````N00``NLE\+``!`J.N00`TKD$`"#`Y0````"Y!``MZ]_Q"``$I_0`
++M"L`0`````+\/$`"G=/_7"HZG2?`!N2$`),"T``````?^````5@`"````.0$!
++M^PX-``$!`0$````!```!+BXO7-C86QL+71E;7!L
++M871E+E,``0`````)`@```````````]```0)F$P("``$!````CP`"``````@!
++M```````````````````````````N+B]S>7-D97!S+W5N:7@OE(``7@.
++M`1L,#Z`!````````&````!P`````````1`!,CP6.!HT'2`[``@```!`````X
++M`````````"```````"YS>6UT86(`+G-T``````````&````!`````&``````````@`````````
++M&````%<````!``````````````````````````````$"`````````),`````
++M```````````````!``````````````!2````!```````````````````````
++M```````)^`````````!@````$`````@`````````"``````````8````8P``
++M``$``````````````````````````````94`````````%```````````````
++M``````$``````````````'8````!``````````````````````````````&P
++M`````````#`````````````````````0``````````````!Q````!```````
++M```````````````````````*6``````````P````$`````L`````````"```
++M```````8````B@````$``````````@```````````````````>``````````
++M2`````````````````````@``````````````(4````$````````````````
++M``````````````J(`````````#`````0````#0`````````(`````````!@`
++M```1`````P`````````````````````````````"*`````````"4````````
++M`````````````0```````````````0````(`````````````````````````
++M````!T`````````!L````!$````*``````````@`````````&`````D````#
++M``````````````````````````````CP`````````(X`````````````````
++M```!`````````````````````````````````````````````````P```0``
++M`````````````````````````P```P```````````````````````````P``
++M!````````````````````````````P``"```````````````````````````
++M`P``"@```````````````````````````P``!@``````````````````````
++M`````P``"P```````````````````````````P``#0``````````````````
++M`````````P``!0`````````````````````````!$```````````````````
++M```````````;$``````````````````````````````V$@```0````````!(
++M`````````"`````_$`````````````````````````````!7$@```0``````
++M``!6`````````!````!I$`````````````````````````````!Y(@```0``
++M``````!(`````````"````"'(@```0````````!(`````````"``7U]L:6)C
++M7V5N86)L95]A
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
FileName: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
+;; Fix '`catch syscall' doesn't work for parent after `fork' is called'
+;; (Philippe Waroquiers, RH BZ 1149205).
+;;=fedoratest
+
URL:
Message-ID: <1368136582.30058.7.camel@soleil>
@@ -38,11 +43,18 @@ Author: Philippe Waroquiers
Date: Tue May 21 18:47:05 2013 +0000
Fix internal error caused by interaction between catch signal and fork
+---
+ .../gdb.base/gdb-rhbz1149205-catch-syscall-fork.c | 11 ++++
+ .../gdb-rhbz1149205-catch-syscall-fork.exp | 58 ++++++++++++++++++++++
+ 2 files changed, 69 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c
+ create mode 100644 gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp
-Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c 2016-10-20 21:03:09.584272695 +0200
+diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c b/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c
+new file mode 100644
+index 0000000000..947258e22f
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c
@@ -0,0 +1,11 @@
+#include
+#include
@@ -55,10 +67,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c
+ chdir (".");
+ return 0;
+}
-Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp 2016-10-20 21:04:13.337771174 +0200
+diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp b/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp
+new file mode 100644
+index 0000000000..96d31d7018
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp
@@ -0,0 +1,58 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
@@ -118,3 +131,6 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp
+gdb_test "continue" \
+ "Continuing\.\r\n.*\r\nCatchpoint $decimal \\\(call to syscall .?chdir.?.*" \
+ "continue from catch syscall after fork"
+--
+2.14.3
+
diff --git a/gdb-rhbz1156192-recursive-dlopen-test.patch b/gdb-rhbz1156192-recursive-dlopen-test.patch
index 3497b67..9d93588 100644
--- a/gdb-rhbz1156192-recursive-dlopen-test.patch
+++ b/gdb-rhbz1156192-recursive-dlopen-test.patch
@@ -1,13 +1,29 @@
+From 4a9709d745aea900c19554f51cf526800db020df Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-rhbz1156192-recursive-dlopen-test.patch
FileName: gdb-rhbz1156192-recursive-dlopen-test.patch
-Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c 2016-10-22 22:10:13.262634144 +0200
+;; Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to
+;; crash.' (RH BZ 1156192).
+;;=fedoratest
+---
+ .../gdb-rhbz1156192-recursive-dlopen-libbar.c | 30 +++++
+ .../gdb-rhbz1156192-recursive-dlopen-libfoo.c | 30 +++++
+ .../gdb.base/gdb-rhbz1156192-recursive-dlopen.c | 124 +++++++++++++++++++
+ .../gdb.base/gdb-rhbz1156192-recursive-dlopen.exp | 137 +++++++++++++++++++++
+ 4 files changed, 321 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c
+ create mode 100644 gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c
+ create mode 100644 gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
+ create mode 100644 gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
+
+diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c
+new file mode 100644
+index 0000000000..6ecf50d2ad
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c
@@ -0,0 +1,30 @@
+/* Testcase for recursive dlopen calls.
+
@@ -39,10 +55,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c
+{
+ printf ("Called bar.\n");
+}
-Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c 2016-10-22 22:10:13.262634144 +0200
+diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c
+new file mode 100644
+index 0000000000..e4523933db
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c
@@ -0,0 +1,30 @@
+/* Testcase for recursive dlopen calls.
+
@@ -74,10 +91,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c
+{
+ printf ("Called foo.\n");
+}
-Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c 2016-10-22 22:10:13.262634144 +0200
+diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
+new file mode 100644
+index 0000000000..17b29904ef
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
@@ -0,0 +1,124 @@
+/* Testcase for recursive dlopen calls.
+
@@ -203,10 +221,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
+
+ return 0;
+}
-Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp 2016-10-24 23:21:58.043064177 +0200
+diff --git a/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
+new file mode 100644
+index 0000000000..2c32676e50
+--- /dev/null
++++ b/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
@@ -0,0 +1,137 @@
+# Copyright 2014 Free Software Foundation, Inc.
+#
@@ -345,3 +364,6 @@ Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
+}
+
+test_stop_on_solib_events
+--
+2.14.3
+
diff --git a/gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch b/gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
index db093c6..5d7c890 100644
--- a/gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
+++ b/gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
@@ -1,9 +1,15 @@
+From 8a169d5fbe05765decefd7f33691d57fec963211 Mon Sep 17 00:00:00 2001
From: Fedora GDB patches
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
FileName: gdb-rhbz1186476-internal-error-unqualified-name-re-set-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
+
Comments from Sergio Durigan Junior:
The "proper" fix for this whole problem would be to backport the
@@ -14,11 +20,20 @@ Comments from Sergio Durigan Junior:
allows the user to continue the debugging session), and tell the
user that, although more than one location was found for his/her
breakpoint, only one will be used.
+---
+ ...-internal-error-unqualified-name-re-set-main.cc | 22 ++++++++++
+ ...86476-internal-error-unqualified-name-re-set.cc | 26 +++++++++++
+ ...6476-internal-error-unqualified-name-re-set.exp | 51 ++++++++++++++++++++++
+ 3 files changed, 99 insertions(+)
+ create mode 100644 gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc
+ create mode 100644 gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc
+ create mode 100644 gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp
-Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc 2016-10-20 21:06:31.849854180 +0200
+diff --git a/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc b/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc
+new file mode 100644
+index 0000000000..1c9f8eabc1
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -42,10 +57,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-
+{
+ return 0;
+}
-Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc 2016-10-20 21:06:31.850854188 +0200
+diff --git a/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc b/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc
+new file mode 100644
+index 0000000000..007854b0c4
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@@ -73,10 +89,11 @@ Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-
+
+C a;
+C b (1);
-Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp 2016-10-20 21:09:33.408270526 +0200
+diff --git a/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp b/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp
+new file mode 100644
+index 0000000000..19b2530969
+--- /dev/null
++++ b/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp
@@ -0,0 +1,51 @@
+# Copyright 2015 Free Software Foundation, Inc.
+
@@ -129,3 +146,6 @@ Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-
+gdb_test "run"
+
+gdb_test "info break" " in C::C\\(\\) at .* in C::C\\(int\\) at .*"
+--
+2.14.3
+
diff --git a/gdb-rhbz1228556-bpt-inlined-func-name-1of2.patch b/gdb-rhbz1228556-bpt-inlined-func-name-1of2.patch
deleted file mode 100644
index 66b5f91..0000000
--- a/gdb-rhbz1228556-bpt-inlined-func-name-1of2.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From: Fedora GDB patches
-Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: gdb-rhbz1228556-bpt-inlined-func-name-1of2.patch
-
-FileName: gdb-rhbz1228556-bpt-inlined-func-name-1of2.patch
-
-commit 06871ae84096ed1672eb76f44cea4d5dbe79ae24
-Author: Pedro Alves
-Date: Wed Sep 20 16:12:54 2017 +0100
-
- Make "list ambiguous" show symbol names too
-
- Currently, with an ambiguous "list first,last", we get:
-
- (gdb) list bar,main
- Specified first line 'bar' is ambiguous:
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 97
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 98
-
- This commit makes gdb's output above a bit clearer by printing the
- symbol name as well:
-
- (gdb) list bar,main
- Specified first line 'bar' is ambiguous:
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 97, symbol: "bar(A)"
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 98, symbol: "bar(B)"
-
- And while at it, makes gdb print the symbol name when actually listing
- multiple locations too. I.e., before (with "set listsize 2"):
-
- (gdb) list bar
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 97
- 96
- 97 int bar (A) { return 11; }
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 98
- 97 int bar (A) { return 11; }
- 98 int bar (B) { return 22; }
-
- After:
-
- (gdb) list bar
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 97, symbol: "bar(A)"
- 96
- 97 int bar (A) { return 11; }
- file: "src/gdb/testsuite/gdb.cp/overload.cc", line number: 98, symbol: "bar(B)"
- 97 int bar (A) { return 11; }
- 98 int bar (B) { return 22; }
-
- Currently, the result of decoding a linespec loses information about
- the original symbol that was found. All we end up with is an address.
- This makes it difficult to find the original symbol again to get at
- its print name. Fix that by storing a pointer to the symbol in the
- sal. We already store the symtab and obj_section, so it feels like a
- natural progression to me. This avoids having to do any extra symbol
- lookup too.
-
- gdb/ChangeLog:
- 2017-09-20 Pedro Alves
-
- * cli/cli-cmds.c (list_command): Use print_sal_location.
- (print_sal_location): New function.
- (ambiguous_line_spec): Use print_sal_location.
- * linespec.c (symbol_to_sal): Record the symbol in the sal.
- * symtab.c (find_function_start_sal): Likewise.
- * symtab.h (symtab_and_line::symbol): New field.
-
- gdb/testsuite/ChangeLog:
- 2017-09-20 Pedro Alves
-
- * gdb.base/list-ambiguous.exp (test_list_ambiguous_symbol): Expect
- symbol names in gdb's output.
- * gdb.cp/overload.exp ("list all overloads"): Likewise.
-
-### a/gdb/ChangeLog
-### b/gdb/ChangeLog
-## -1,5 +1,14 @@
- 2017-09-20 Pedro Alves
-
-+ * cli/cli-cmds.c (list_command): Use print_sal_location.
-+ (print_sal_location): New function.
-+ (ambiguous_line_spec): Use print_sal_location.
-+ * linespec.c (symbol_to_sal): Record the symbol in the sal.
-+ * symtab.c (find_function_start_sal): Likewise.
-+ * symtab.h (symtab_and_line::symbol): New field.
-+
-+2017-09-20 Pedro Alves
-+
- * linespec.c (minsym_found): Handle non-text minsyms.
- (symbol_to_sal): Record a sal.pc for non-block, non-label symbols.
-
-Index: gdb-8.0.1/gdb/linespec.c
-===================================================================
---- gdb-8.0.1.orig/gdb/linespec.c 2017-10-20 21:28:18.444609776 +0200
-+++ gdb-8.0.1/gdb/linespec.c 2017-10-20 21:29:12.382094104 +0200
-@@ -3864,6 +3864,7 @@
- {
- init_sal (result);
- result->symtab = symbol_symtab (sym);
-+ result->symbol = sym;
- result->line = SYMBOL_LINE (sym);
- result->pc = SYMBOL_VALUE_ADDRESS (sym);
- result->pspace = SYMTAB_PSPACE (result->symtab);
-@@ -3879,6 +3880,7 @@
- /* We know its line number. */
- init_sal (result);
- result->symtab = symbol_symtab (sym);
-+ result->symbol = sym;
- result->line = SYMBOL_LINE (sym);
- result->pspace = SYMTAB_PSPACE (result->symtab);
- return 1;
-Index: gdb-8.0.1/gdb/symtab.c
-===================================================================
---- gdb-8.0.1.orig/gdb/symtab.c 2017-10-20 21:28:18.446609794 +0200
-+++ gdb-8.0.1/gdb/symtab.c 2017-10-20 21:29:51.390444377 +0200
-@@ -3478,6 +3478,7 @@
- fixup_symbol_section (sym, NULL);
- section = SYMBOL_OBJ_SECTION (symbol_objfile (sym), sym);
- sal = find_pc_sect_line (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)), section, 0);
-+ sal.symbol = sym;
-
- if (funfirstline && sal.symtab != NULL
- && (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab))
-@@ -3501,6 +3502,7 @@
- sal.pspace = current_program_space;
- sal.pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
- sal.section = section;
-+ sal.symbol = sym;
- }
-
- if (funfirstline)
-Index: gdb-8.0.1/gdb/symtab.h
-===================================================================
---- gdb-8.0.1.orig/gdb/symtab.h 2017-10-20 21:28:21.205634569 +0200
-+++ gdb-8.0.1/gdb/symtab.h 2017-10-20 21:28:40.933811716 +0200
-@@ -1420,6 +1420,7 @@
- struct program_space *pspace;
-
- struct symtab *symtab;
-+ struct symbol *symbol = NULL;
- struct obj_section *section;
- /* Line number. Line numbers start at 1 and proceed through symtab->nlines.
- 0 is never a valid line number; it is used to indicate that line number
diff --git a/gdb-rhbz1228556-bpt-inlined-func-name-2of2.patch b/gdb-rhbz1228556-bpt-inlined-func-name-2of2.patch
deleted file mode 100644
index e3402ed..0000000
--- a/gdb-rhbz1228556-bpt-inlined-func-name-2of2.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From: Fedora GDB patches
-Date: Fri, 27 Oct 2017 21:07:50 +0200
-Subject: gdb-rhbz1228556-bpt-inlined-func-name-2of2.patch
-
-FileName: gdb-rhbz1228556-bpt-inlined-func-name-2of2.patch
-
-commit 4a27f119f59a44395e0a34b1526cee709e1d3fce
-Author: Keith Seitz
-Date: Fri Oct 27 10:57:23 2017 -0700
-
- Use SaL symbol name when reporting breakpoint locations
-
- Currently, "info break" can show some (perhaps) unexpected results when
- setting a breakpoint on an inlined function:
-
- (gdb) list
- 1 #include