Remove gdb-6.3-bz202689-exec-from-pthread-test.patch

Remove gdb-6.3-bz202689-exec-from-pthread-test.patch.  The test
included in this patch is covered by the already upstream test
gdb/testsuite/gdb.threads/execl.exp which was added with this commit:

  commit 49fd4a422bb6152043b2b41a1f734694056dbf3b
  Date:   Thu Jun 5 21:03:59 2008 +0000

Unfortunately, the situation is not as simple as just removing this
patch file.  The later patch gdb-6.8-bz442765-threaded-exec-test.patch
builds on the earlier test to cover additional cases.

So, what I've actually done is remove the first patch, but merged the
test entirely into the second patch.  I think this is a better
reflection of the current situation; the first patch is
redundant (it's test is already covered upstream), while the second
patch has not yet been reviewed, so it _might_ contain a useful test.

To confirm that the upstream test quoted above actually covers this
test case I did the following:

  - Setup a Fedora 3 virtual machine,

  - Built the test from the first patch and confirmed that it failed
    as described in bug bz202689,

  - Copied the upstream execl.exp sources to the virtual machine, and
    built the test binary,

  - Manually ran the test binary just as the .exp script does, and
    confirmed that it failed in the same way as the test from the
    original patch.
This commit is contained in:
Andrew Burgess 2023-02-10 12:33:43 +00:00
parent ad65e1854b
commit 89f20beb5e
5 changed files with 141 additions and 224 deletions

View File

@ -40,202 +40,198 @@ Patch009: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
#=fedoratest #=fedoratest
Patch010: gdb-6.3-bz140532-ppc-unwinding-test.patch Patch010: gdb-6.3-bz140532-ppc-unwinding-test.patch
# Testcase for exec() from threaded program (BZ 202689).
#=fedoratest
Patch011: gdb-6.3-bz202689-exec-from-pthread-test.patch
# Allow running `/usr/bin/gcore' with provided but inaccessible tty (BZ 229517). # Allow running `/usr/bin/gcore' with provided but inaccessible tty (BZ 229517).
#=fedoratest #=fedoratest
Patch012: gdb-6.6-bz229517-gcore-without-terminal.patch Patch011: gdb-6.6-bz229517-gcore-without-terminal.patch
# Avoid too long timeouts on failing cases of "annota1.exp annota3.exp". # Avoid too long timeouts on failing cases of "annota1.exp annota3.exp".
#=fedoratest #=fedoratest
Patch013: gdb-6.6-testsuite-timeouts.patch Patch012: gdb-6.6-testsuite-timeouts.patch
# Support for stepping over PPC atomic instruction sequences (BZ 237572). # Support for stepping over PPC atomic instruction sequences (BZ 237572).
#=fedoratest #=fedoratest
Patch014: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch Patch013: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
# Test kernel VDSO decoding while attaching to an i386 process. # Test kernel VDSO decoding while attaching to an i386 process.
#=fedoratest #=fedoratest
Patch015: gdb-6.3-attach-see-vdso-test.patch Patch014: gdb-6.3-attach-see-vdso-test.patch
# Test leftover zombie process (BZ 243845). # Test leftover zombie process (BZ 243845).
#=fedoratest #=fedoratest
Patch016: gdb-6.5-bz243845-stale-testing-zombie-test.patch Patch015: gdb-6.5-bz243845-stale-testing-zombie-test.patch
# New locating of the matching binaries from the pure core file (build-id). # New locating of the matching binaries from the pure core file (build-id).
#=push+jan #=push+jan
Patch017: gdb-6.6-buildid-locate.patch Patch016: gdb-6.6-buildid-locate.patch
# Fix loading of core files without build-ids but with build-ids in executables. # 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 # Load strictly build-id-checked core files only if no executable is specified
# (Jan Kratochvil, RH BZ 1339862). # (Jan Kratochvil, RH BZ 1339862).
#=push+jan #=push+jan
Patch018: gdb-6.6-buildid-locate-solib-missing-ids.patch Patch017: gdb-6.6-buildid-locate-solib-missing-ids.patch
#=push+jan #=push+jan
Patch019: gdb-6.6-buildid-locate-rpm.patch Patch018: gdb-6.6-buildid-locate-rpm.patch
# Fix displaying of numeric char arrays as strings (BZ 224128). # Fix displaying of numeric char arrays as strings (BZ 224128).
#=fedoratest: But it is failing anyway, one should check the behavior more. #=fedoratest: But it is failing anyway, one should check the behavior more.
Patch020: gdb-6.7-charsign-test.patch Patch019: gdb-6.7-charsign-test.patch
# Test PPC hiding of call-volatile parameter register. # Test PPC hiding of call-volatile parameter register.
#=fedoratest #=fedoratest
Patch021: gdb-6.7-ppc-clobbered-registers-O2-test.patch Patch020: gdb-6.7-ppc-clobbered-registers-O2-test.patch
# Testsuite fixes for more stable/comparable results. # Testsuite fixes for more stable/comparable results.
#=fedoratest #=fedoratest
Patch022: gdb-6.7-testsuite-stable-results.patch Patch021: gdb-6.7-testsuite-stable-results.patch
# Test ia64 memory leaks of the code using libunwind. # Test ia64 memory leaks of the code using libunwind.
#=fedoratest #=fedoratest
Patch023: gdb-6.5-ia64-libunwind-leak-test.patch Patch022: gdb-6.5-ia64-libunwind-leak-test.patch
# Test hiding unexpected breakpoints on intentional step commands. # Test hiding unexpected breakpoints on intentional step commands.
#=fedoratest #=fedoratest
Patch024: gdb-6.5-missed-trap-on-step-test.patch Patch023: gdb-6.5-missed-trap-on-step-test.patch
# Test gcore memory and time requirements for large inferiors. # Test gcore memory and time requirements for large inferiors.
#=fedoratest #=fedoratest
Patch025: gdb-6.5-gcore-buffer-limit-test.patch Patch024: gdb-6.5-gcore-buffer-limit-test.patch
# Test GCORE for shmid 0 shared memory mappings. # Test GCORE for shmid 0 shared memory mappings.
#=fedoratest: But it is broken anyway, sometimes the case being tested is not reproducible. #=fedoratest: But it is broken anyway, sometimes the case being tested is not reproducible.
Patch026: gdb-6.3-mapping-zero-inode-test.patch Patch025: gdb-6.3-mapping-zero-inode-test.patch
# Test various forms of threads tracking across exec() (BZ 442765). # Test various forms of threads tracking across exec() (BZ 442765).
#=fedoratest #=fedoratest
Patch027: gdb-6.8-bz442765-threaded-exec-test.patch Patch026: gdb-6.8-bz442765-threaded-exec-test.patch
# Test a crash on libraries missing the .text section. # Test a crash on libraries missing the .text section.
#=fedoratest #=fedoratest
Patch028: gdb-6.5-section-num-fixup-test.patch Patch027: gdb-6.5-section-num-fixup-test.patch
# Fix resolving of variables at locations lists in prelinked libs (BZ 466901). # Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
#=fedoratest #=fedoratest
Patch029: gdb-6.8-bz466901-backtrace-full-prelinked.patch Patch028: gdb-6.8-bz466901-backtrace-full-prelinked.patch
# New test for step-resume breakpoint placed in multiple threads at once. # New test for step-resume breakpoint placed in multiple threads at once.
#=fedoratest #=fedoratest
Patch030: gdb-simultaneous-step-resume-breakpoint-test.patch Patch029: gdb-simultaneous-step-resume-breakpoint-test.patch
# Fix GNU/Linux core open: Can't read pathname for load map: Input/output error. # 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. # Fix regression of undisplayed missing shared libraries caused by a fix for.
#=fedoratest: It should be in glibc: libc-alpha: <20091004161706.GA27450@.*> #=fedoratest: It should be in glibc: libc-alpha: <20091004161706.GA27450@.*>
Patch031: gdb-core-open-vdso-warning.patch Patch030: gdb-core-open-vdso-warning.patch
# Workaround ccache making lineno non-zero for command-line definitions. # Workaround ccache making lineno non-zero for command-line definitions.
#=fedoratest: ccache is rarely used and it is even fixed now. #=fedoratest: ccache is rarely used and it is even fixed now.
Patch032: gdb-ccache-workaround.patch Patch031: gdb-ccache-workaround.patch
# Testcase for "Do not make up line information" fix by Daniel Jacobowitz. # Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
#=fedoratest #=fedoratest
Patch033: gdb-lineno-makeup-test.patch Patch032: gdb-lineno-makeup-test.patch
# Test power7 ppc disassembly. # Test power7 ppc disassembly.
#=fedoratest #=fedoratest
Patch034: gdb-ppc-power7-test.patch Patch033: gdb-ppc-power7-test.patch
# Fix follow-exec for C++ programs (bugreported by Martin Stransky). # Fix follow-exec for C++ programs (bugreported by Martin Stransky).
#=fedoratest #=fedoratest
Patch035: gdb-archer-next-over-throw-cxx-exec.patch Patch034: gdb-archer-next-over-throw-cxx-exec.patch
# Workaround librpm BZ 643031 due to its unexpected exit() calls (BZ 642879). # Workaround librpm BZ 643031 due to its unexpected exit() calls (BZ 642879).
#=push+jan #=push+jan
Patch036: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch Patch035: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
# [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604). # [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
#=fedoratest #=fedoratest
Patch037: gdb-test-bt-cfi-without-die.patch Patch036: gdb-test-bt-cfi-without-die.patch
# Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108). # Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
#=fedoratest #=fedoratest
Patch038: gdb-bz634108-solib_address.patch Patch037: gdb-bz634108-solib_address.patch
# New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435). # New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435).
#=fedoratest #=fedoratest
Patch039: gdb-test-pid0-core.patch Patch038: gdb-test-pid0-core.patch
# [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp. # [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp.
#=fedoratest #=fedoratest
Patch040: gdb-test-dw2-aranges.patch Patch039: gdb-test-dw2-aranges.patch
# Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890). # Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890).
#=fedoratest #=fedoratest
Patch041: gdb-test-ivy-bridge.patch Patch040: gdb-test-ivy-bridge.patch
# Workaround PR libc/14166 for inferior calls of strstr. # Workaround PR libc/14166 for inferior calls of strstr.
#=fedoratest: Compatibility with RHELs (unchecked which ones). #=fedoratest: Compatibility with RHELs (unchecked which ones).
Patch042: gdb-glibc-strstr-workaround.patch Patch041: gdb-glibc-strstr-workaround.patch
# Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789). # Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789).
#=fedoratest #=fedoratest
Patch043: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch Patch042: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
# Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343). # Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343).
#=fedoratest #=fedoratest
Patch044: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch Patch043: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
# Import regression test for `gdb/findvar.c:417: internal-error: # Import regression test for `gdb/findvar.c:417: internal-error:
# read_var_value: Assertion `frame' failed.' (RH BZ 947564) from RHEL 6.5. # read_var_value: Assertion `frame' failed.' (RH BZ 947564) from RHEL 6.5.
#=fedoratest #=fedoratest
Patch045: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch Patch044: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
# Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614) # Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614)
#=fedoratest #=fedoratest
Patch046: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch Patch045: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
# Fix 'gdb gives highly misleading error when debuginfo pkg is present, # Fix 'gdb gives highly misleading error when debuginfo pkg is present,
# but not corresponding binary pkg' (RH BZ 981154). # but not corresponding binary pkg' (RH BZ 981154).
#=push+jan #=push+jan
Patch047: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch Patch046: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
# Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to # Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to
# crash.' (RH BZ 1156192). # crash.' (RH BZ 1156192).
#=fedoratest #=fedoratest
Patch048: gdb-rhbz1156192-recursive-dlopen-test.patch Patch047: gdb-rhbz1156192-recursive-dlopen-test.patch
# Fix '`catch syscall' doesn't work for parent after `fork' is called' # Fix '`catch syscall' doesn't work for parent after `fork' is called'
# (Philippe Waroquiers, RH BZ 1149205). # (Philippe Waroquiers, RH BZ 1149205).
#=fedoratest #=fedoratest
Patch049: gdb-rhbz1149205-catch-syscall-after-fork-test.patch Patch048: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
# Fix 'backport GDB 7.4 fix to RHEL 6.6 GDB' [Original Sourceware bug # Fix 'backport GDB 7.4 fix to RHEL 6.6 GDB' [Original Sourceware bug
# description: 'C++ (and objc): Internal error on unqualified name # description: 'C++ (and objc): Internal error on unqualified name
# re-set', PR 11657] (RH BZ 1186476). # re-set', PR 11657] (RH BZ 1186476).
#=fedoratest #=fedoratest
Patch050: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch Patch049: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
# Test 'info type-printers' Python error (RH BZ 1350436). # Test 'info type-printers' Python error (RH BZ 1350436).
#=fedoratest #=fedoratest
Patch051: gdb-rhbz1350436-type-printers-error.patch Patch050: gdb-rhbz1350436-type-printers-error.patch
# Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan # Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan
# Kratochvil, RH BZ 1084404). # Kratochvil, RH BZ 1084404).
#=fedoratest #=fedoratest
Patch052: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch Patch051: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
# Force libncursesw over libncurses to match the includes (RH BZ 1270534). # Force libncursesw over libncurses to match the includes (RH BZ 1270534).
#=push+jan #=push+jan
Patch053: gdb-fedora-libncursesw.patch Patch052: gdb-fedora-libncursesw.patch
# Test clflushopt instruction decode (for RH BZ 1262471). # Test clflushopt instruction decode (for RH BZ 1262471).
#=fedoratest #=fedoratest
Patch054: gdb-opcodes-clflushopt-test.patch Patch053: gdb-opcodes-clflushopt-test.patch
# [aarch64] Fix hardware watchpoints (RH BZ 1261564). # [aarch64] Fix hardware watchpoints (RH BZ 1261564).
#=fedoratest #=fedoratest
Patch055: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch Patch054: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
# Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114). # Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
#=fedora #=fedora
Patch056: gdb-container-rh-pkg.patch Patch055: gdb-container-rh-pkg.patch
# [dts+el7] [x86*] Bundle linux_perf.h for libipt (RH BZ 1256513). # [dts+el7] [x86*] Bundle linux_perf.h for libipt (RH BZ 1256513).
#=fedora #=fedora
Patch057: gdb-linux_perf-bundle.patch Patch056: gdb-linux_perf-bundle.patch
# Fix gdb-headless /usr/bin/ executables (BZ 1390251). # Fix gdb-headless /usr/bin/ executables (BZ 1390251).
# #
@ -244,39 +240,39 @@ Patch057: gdb-linux_perf-bundle.patch
# #
# https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot # https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
#=fedora #=fedora
Patch058: gdb-libexec-add-index.patch Patch057: gdb-libexec-add-index.patch
# [s390x] Backport arch12 instructions decoding (RH BZ 1553104). # [s390x] Backport arch12 instructions decoding (RH BZ 1553104).
# =fedoratest # =fedoratest
Patch059: gdb-rhbz1553104-s390x-arch12-test.patch Patch058: gdb-rhbz1553104-s390x-arch12-test.patch
Patch060: gdb-backport-readline_support.patch Patch059: gdb-backport-readline_support.patch
# [gdb/testsuite] Use prototype to call libc functions # [gdb/testsuite] Use prototype to call libc functions
# (Tom de Vries) # (Tom de Vries)
Patch061: gdb-backport-fix-break-main-file-remove-fail.patch Patch060: gdb-backport-fix-break-main-file-remove-fail.patch
# Constify target_desc to fix PPC ODR violations. # Constify target_desc to fix PPC ODR violations.
# (Keith Seitz, build/22395) # (Keith Seitz, build/22395)
Patch062: gdb-sw22395-constify-target_desc.patch Patch061: gdb-sw22395-constify-target_desc.patch
# libiberty: Fix C89-isms in configure tests # libiberty: Fix C89-isms in configure tests
# (Florian Weimer, RHBZ 2143992) # (Florian Weimer, RHBZ 2143992)
Patch063: gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch Patch062: gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch
Patch064: gdb-rhbz2152431-label-symbol-value.patch Patch063: gdb-rhbz2152431-label-symbol-value.patch
#Backport replace deprecated distutils.sysconfig in #Backport replace deprecated distutils.sysconfig in
#python-config (Lancelot SIX) #python-config (Lancelot SIX)
Patch065: gdb-backport-python-config-replace-deprecated-distutils.patch Patch064: gdb-backport-python-config-replace-deprecated-distutils.patch
# gcc 13 fallout: Backport Jan-Benedict Glaw's fix for the self-move # gcc 13 fallout: Backport Jan-Benedict Glaw's fix for the self-move
# warning check # warning check
Patch066: gdb-gcc-13-backport-self-move-diagnostic-fix Patch065: gdb-gcc-13-backport-self-move-diagnostic-fix
# Backport "call check_typedef at beginning of dwarf_expr_context::fetch_result" # Backport "call check_typedef at beginning of dwarf_expr_context::fetch_result"
# (Simon Marchi, backtrace/29374) # (Simon Marchi, backtrace/29374)
Patch067: gdb-backport-call-check_typedef-at-beginning-of-dwarf_expr_context.patch Patch066: gdb-backport-call-check_typedef-at-beginning-of-dwarf_expr_context.patch

View File

@ -64,4 +64,3 @@
%patch064 -p1 %patch064 -p1
%patch065 -p1 %patch065 -p1
%patch066 -p1 %patch066 -p1
%patch067 -p1

View File

@ -8,7 +8,6 @@ gdb-6.5-readline-long-line-crash-test.patch
gdb-6.5-bz218379-ppc-solib-trampoline-test.patch gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
gdb-6.5-bz109921-DW_AT_decl_file-test.patch gdb-6.5-bz109921-DW_AT_decl_file-test.patch
gdb-6.3-bz140532-ppc-unwinding-test.patch gdb-6.3-bz140532-ppc-unwinding-test.patch
gdb-6.3-bz202689-exec-from-pthread-test.patch
gdb-6.6-bz229517-gcore-without-terminal.patch gdb-6.6-bz229517-gcore-without-terminal.patch
gdb-6.6-testsuite-timeouts.patch gdb-6.6-testsuite-timeouts.patch
gdb-6.6-bz237572-ppc-atomic-sequence-test.patch gdb-6.6-bz237572-ppc-atomic-sequence-test.patch

View File

@ -1,109 +0,0 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.3-bz202689-exec-from-pthread-test.patch
;; Testcase for exec() from threaded program (BZ 202689).
;;=fedoratest
2007-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.threads/threaded-exec.exp, gdb.threads/threaded-exec.c: New files.
diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threads/threaded-exec.c
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/threaded-exec.c
@@ -0,0 +1,46 @@
+/* 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. */
+
+#include <stddef.h>
+#include <pthread.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static void *
+threader (void *arg)
+{
+ return NULL;
+}
+
+int
+main (void)
+{
+ pthread_t t1;
+ int i;
+
+ i = pthread_create (&t1, NULL, threader, (void *) NULL);
+ assert (i == 0);
+ i = pthread_join (t1, NULL);
+ assert (i == 0);
+
+ execl ("/bin/true", "/bin/true", NULL);
+ abort ();
+}
diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.threads/threaded-exec.exp
new file mode 100644
--- /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.
+
+# 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
+
+set testfile threaded-exec
+set srcfile ${testfile}.c
+set binfile [standard_output_file ${testfile}]
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable []] != "" } {
+ return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+gdb_load ${binfile}
+
+gdb_run_cmd
+
+gdb_test_multiple {} "Program exited" {
+ -re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" {
+ pass "Program exited"
+ }
+}

View File

@ -1,5 +1,5 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Fedora GDB patches <invalid@email.com> From: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri, 27 Oct 2017 21:07:50 +0200 Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-bz442765-threaded-exec-test.patch Subject: gdb-6.8-bz442765-threaded-exec-test.patch
@ -9,35 +9,50 @@ Subject: gdb-6.8-bz442765-threaded-exec-test.patch
Test various forms of threads tracking across exec(2). Test various forms of threads tracking across exec(2).
diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threads/threaded-exec.c diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threads/threaded-exec.c
--- a/gdb/testsuite/gdb.threads/threaded-exec.c new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/threaded-exec.c +++ b/gdb/testsuite/gdb.threads/threaded-exec.c
@@ -18,21 +18,95 @@ @@ -0,0 +1,147 @@
Boston, MA 02111-1307, USA. */ +/* This testcase is part of GDB, the GNU debugger.
+
#include <stddef.h> + Copyright 2007 Free Software Foundation, Inc.
-#include <pthread.h> +
#include <assert.h> + This program is free software; you can redistribute it and/or modify
#include <stdlib.h> + it under the terms of the GNU General Public License as published by
#include <unistd.h> + 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. */
+
+#include <stddef.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h> +#include <stdio.h>
+
+#ifdef THREADS +#ifdef THREADS
+ +
+# include <pthread.h> +# include <pthread.h>
+
static void * +static void *
threader (void *arg) +threader (void *arg)
{ +{
- return NULL;
+ return NULL; + return NULL;
} +}
+
+#endif +#endif
+ +
int +int
-main (void)
+main (int argc, char **argv) +main (int argc, char **argv)
{ +{
+ char *exec_nothreads, *exec_threads, *cmd; + char *exec_nothreads, *exec_threads, *cmd;
+ int phase; + int phase;
+ char phase_s[8]; + char phase_s[8];
@ -107,13 +122,13 @@ diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threa
+ case 2: + case 2:
+ cmd = exec_threads; + cmd = exec_threads;
+ { + {
pthread_t t1; + pthread_t t1;
int i; + int i;
+
@@ -40,7 +114,34 @@ main (void) + i = pthread_create (&t1, NULL, threader, (void *) NULL);
assert (i == 0); + assert (i == 0);
i = pthread_join (t1, NULL); + i = pthread_join (t1, NULL);
assert (i == 0); + assert (i == 0);
+ } + }
+ break; + break;
+ case 3: + case 3:
@ -141,41 +156,58 @@ diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threa
+ +
+ phase++; + phase++;
+ snprintf (phase_s, sizeof phase_s, "%d", phase); + snprintf (phase_s, sizeof phase_s, "%d", phase);
+
- execl ("/bin/true", "/bin/true", NULL);
- abort ();
+ execl (cmd, cmd, exec_nothreads, exec_threads, phase_s, NULL); + execl (cmd, cmd, exec_nothreads, exec_threads, phase_s, NULL);
+ assert (0); + assert (0);
} +}
diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.threads/threaded-exec.exp diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.threads/threaded-exec.exp
--- a/gdb/testsuite/gdb.threads/threaded-exec.exp new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/threaded-exec.exp +++ b/gdb/testsuite/gdb.threads/threaded-exec.exp
@@ -20,9 +20,14 @@ @@ -0,0 +1,46 @@
+# threaded-exec.exp -- Check reset of the tracked threads on exec*(2)
set testfile threaded-exec +# Copyright (C) 2007 Free Software Foundation, Inc.
set srcfile ${testfile}.c +
-set binfile [standard_output_file ${testfile}] +# 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
+
+set testfile threaded-exec
+set srcfile ${testfile}.c
+set binfile_nothreads [standard_output_file ${testfile}N] +set binfile_nothreads [standard_output_file ${testfile}N]
+set binfile_threads [standard_output_file ${testfile}Y] +set binfile_threads [standard_output_file ${testfile}Y]
+
-if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable []] != "" } {
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile_nothreads}" executable {additional_flags=-UTHREADS}] != "" } { +if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile_nothreads}" executable {additional_flags=-UTHREADS}] != "" } {
+ return -1 + return -1
+} +}
+ +
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile_threads}" executable {additional_flags=-DTHREADS}] != "" } { +if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile_threads}" executable {additional_flags=-DTHREADS}] != "" } {
return -1 + return -1
} +}
+
@@ -30,9 +35,9 @@ gdb_exit +gdb_exit
gdb_start +gdb_start
gdb_reinitialize_dir $srcdir/$subdir +gdb_reinitialize_dir $srcdir/$subdir
+
-gdb_load ${binfile}
+gdb_load ${binfile_nothreads} +gdb_load ${binfile_nothreads}
+
-gdb_run_cmd
+gdb_run_cmd [list ${binfile_nothreads} ${binfile_threads} 0] +gdb_run_cmd [list ${binfile_nothreads} ${binfile_threads} 0]
+
gdb_test_multiple {} "Program exited" { +gdb_test_multiple {} "Program exited" {
-re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" { + -re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" {
+ pass "Program exited"
+ }
+}