7ca61ebe91
The test added by this patch from 2005 is a tweaked verion of the upstream test gdb.threads/watchthreads.exp from 2004. (The current version of gdb.threads/watchthreads.exp has changed somewhat since 2004.) The tweaks added to the circa 2004 upstream test consist of setting a breakpoint on thread_function and then continuing to it. At that point, initial / runtime values of args[2] and args[3] are fetched and saved in some TCL variables (which are renamed versions of args_0 and args_1 in watchthreads.exp). The rest of the changes to the tweaked script are mostly related to the renaming related to args_0 and args_1. The other major difference is that watchthreads.exp places hardware watchpoints on args[0] and args[1] whereas the tweaked test instead watches args[2] and args[3]. However, all of these initialized to 0. In the tweaked test, fetching the initial values when the thread function is first hit should result in zero values being fetched for args[2] and args[3]. So, in conclusion, the tweaked version of the test doesn't actually test anything new. I took a look at old posts / threads from the gdb-patches mailing list, but I couldn't find a post where Jeff Johnston included this patch (and an explanation of what it does over the other patch.) Since this test doesn't offer anything new/better over what's already upstream, I'm deleting it. |
||
---|---|---|
.fmf | ||
plans | ||
tests | ||
_gdb.spec.patch.include | ||
_gdb.spec.Patch.include | ||
_git_upstream_commit | ||
_patch_order | ||
.gitignore | ||
gating.yaml | ||
gdb-6.3-attach-see-vdso-test.patch | ||
gdb-6.3-bz140532-ppc-unwinding-test.patch | ||
gdb-6.3-bz202689-exec-from-pthread-test.patch | ||
gdb-6.3-focus-cmd-prev-test.patch | ||
gdb-6.3-gstack-20050411.patch | ||
gdb-6.3-mapping-zero-inode-test.patch | ||
gdb-6.3-rh-testversion-20041202.patch | ||
gdb-6.5-BEA-testsuite.patch | ||
gdb-6.5-bz109921-DW_AT_decl_file-test.patch | ||
gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch | ||
gdb-6.5-bz218379-ppc-solib-trampoline-test.patch | ||
gdb-6.5-bz243845-stale-testing-zombie-test.patch | ||
gdb-6.5-gcore-buffer-limit-test.patch | ||
gdb-6.5-ia64-libunwind-leak-test.patch | ||
gdb-6.5-last-address-space-byte-test.patch | ||
gdb-6.5-missed-trap-on-step-test.patch | ||
gdb-6.5-readline-long-line-crash-test.patch | ||
gdb-6.5-section-num-fixup-test.patch | ||
gdb-6.5-sharedlibrary-path.patch | ||
gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch | ||
gdb-6.6-buildid-locate-rpm-librpm-workaround.patch | ||
gdb-6.6-buildid-locate-rpm-scl.patch | ||
gdb-6.6-buildid-locate-rpm.patch | ||
gdb-6.6-buildid-locate-solib-missing-ids.patch | ||
gdb-6.6-buildid-locate.patch | ||
gdb-6.6-bz229517-gcore-without-terminal.patch | ||
gdb-6.6-bz230000-power6-disassembly-test.patch | ||
gdb-6.6-bz237572-ppc-atomic-sequence-test.patch | ||
gdb-6.6-testsuite-timeouts.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.8-bz442765-threaded-exec-test.patch | ||
gdb-6.8-bz466901-backtrace-full-prelinked.patch | ||
gdb-archer-next-over-throw-cxx-exec.patch | ||
gdb-backport-fix-break-main-file-remove-fail.patch | ||
gdb-backport-readline_support.patch | ||
gdb-bfd-aliasing.patch | ||
gdb-bz601887-dwarf4-rh-test.patch | ||
gdb-bz634108-solib_address.patch | ||
gdb-ccache-workaround.patch | ||
gdb-container-rh-pkg.patch | ||
gdb-core-open-vdso-warning.patch | ||
gdb-entryval-crash-1of3.patch | ||
gdb-entryval-crash-2of3.patch | ||
gdb-entryval-crash-3of3.patch | ||
gdb-fedora-libncursesw.patch | ||
gdb-fortran-frame-string.patch | ||
gdb-glibc-strstr-workaround.patch | ||
gdb-gstack.man | ||
gdb-libexec-add-index.patch | ||
gdb-lineno-makeup-test.patch | ||
gdb-linux_perf-bundle.patch | ||
gdb-opcodes-clflushopt-test.patch | ||
gdb-orphanripper.c | ||
gdb-physname-pr11734-test.patch | ||
gdb-physname-pr12273-test.patch | ||
gdb-ppc-power7-test.patch | ||
gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch | ||
gdb-rhbz1007614-memleak-infpy_read_memory-test.patch | ||
gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch | ||
gdb-rhbz1149205-catch-syscall-after-fork-test.patch | ||
gdb-rhbz1156192-recursive-dlopen-test.patch | ||
gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch | ||
gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch | ||
gdb-rhbz1350436-type-printers-error.patch | ||
gdb-rhbz1398387-tab-crash-test.patch | ||
gdb-rhbz1553104-s390x-arch12-test.patch | ||
gdb-rhbz2042664-fix-sect_index_data-internal-error | ||
gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch | ||
gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch | ||
gdb-rhel5.9-testcase-xlf-var-inside-mod.patch | ||
gdb-runtest-pie-override.patch | ||
gdb-simultaneous-step-resume-breakpoint-test.patch | ||
gdb-sw22395-constify-target_desc.patch | ||
gdb-test-bt-cfi-without-die.patch | ||
gdb-test-dw2-aranges.patch | ||
gdb-test-expr-cumulative-archer.patch | ||
gdb-test-ivy-bridge.patch | ||
gdb-test-pid0-core.patch | ||
gdb-testsuite-readline63-sigint-revert.patch | ||
gdb.spec | ||
gdbinit | ||
gdbtui | ||
generate-git-repo-from-patches.sh | ||
generate-patches-from-git-repo.sh | ||
README.local-patches.md | ||
sources | ||
v1.5-libipt-static.patch |
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
- 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.
- 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 <REPOSITORY_DIR>
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
- 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 <REVISION>
. git will do the rest, and you will be able to perform conflict resolution by git's algorithm, which is smarter.
Creating new patches
-
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. -
When writing the commit log, you must obey a few rules. The subject line must be the filename of the 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.
-
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:
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
- 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 <REPOSITORY_DIR>
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 thePatch:
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.
NOTE: If you did a rebase against a newer upstream version, you need to specify the commit/tag/branch against which you rebased:
$ sh generate-patches-from-git-repo.sh <REPOSITORY_DIR> <COMMIT_OR_TAG_OR_BRANCH>
For example, if you rebased against gdb-8.1-release
:
$ sh generate-patches-from-git-repo.sh <REPOSITORY_DIR> gdb-8.1-release