rpms/gdb/devel gdb-6.3-mapping-zero-inode-test.patch, 1.2, 1.3 gdb-6.8.50.20090302-upstream.patch, 1.1, 1.2 gdb.spec, 1.361, 1.362 gdb-bz471819-lwp-dead.patch, 1.1, NONE
Jan Kratochvil
jkratoch at fedoraproject.org
Mon Jun 29 20:21:12 UTC 2009
- Previous message (by thread): rpms/gdb/F-11 gdb-6.3-mapping-zero-inode-test.patch, 1.2, 1.3 gdb-6.8.50.20090302-upstream.patch, 1.1, 1.2 gdb.spec, 1.355, 1.356 gdb-bz471819-lwp-dead.patch, 1.1, NONE
- Next message (by thread): rpms/audex/F-11 sources,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jkratoch
Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30155
Modified Files:
gdb-6.3-mapping-zero-inode-test.patch
gdb-6.8.50.20090302-upstream.patch gdb.spec
Removed Files:
gdb-bz471819-lwp-dead.patch
Log Message:
* Mon Jun 29 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-37
- Replace the fix of cloned-TIDs with no pthread from upstream (BZ 471819).
- Fix a parallel testsuite runs incompatibility in gdb.base/gcore-shmid0.exp.
gdb-6.3-mapping-zero-inode-test.patch:
Index: gdb-6.3-mapping-zero-inode-test.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-mapping-zero-inode-test.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- gdb-6.3-mapping-zero-inode-test.patch 3 May 2008 20:41:55 -0000 1.2
+++ gdb-6.3-mapping-zero-inode-test.patch 29 Jun 2009 20:21:12 -0000 1.3
@@ -1,7 +1,9 @@
---- /dev/null 2008-05-02 23:36:22.370004160 +0200
-+++ gdb-6.8/gdb/testsuite/gdb.base/gcore-shmid0.exp 2008-05-03 22:36:56.000000000 +0200
-@@ -0,0 +1,120 @@
-+# Copyright 2007 Free Software Foundation, Inc.
+Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp 2009-06-29 16:24:36.000000000 +0200
+@@ -0,0 +1,96 @@
++# 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
@@ -17,43 +19,22 @@
+# 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 at prep.ai.mit.edu
-+
+# Test GDB's handling of gcore for mapping with a name but zero inode.
+
-+set testfile "gcore-shmid0"
-+set srcfile ${testfile}.c
-+set binfile ${objdir}/${subdir}/${testfile}
-+
-+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
-+ untested gcore.exp
-+ return -1
++if { [prepare_for_testing gcore-shmid0.exp gcore-shmid0] } {
++ return -1
+}
+
-+# Start with a fresh gdb.
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
+# Does this gdb support gcore?
-+send_gdb "help gcore\n"
-+gdb_expect {
++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 "help gcore"
-+ }
-+ -re ".*$gdb_prompt $" {
-+ fail "help gcore"
-+ }
-+ timeout {
-+ fail "help gcore (timeout)"
++ pass $test
+ }
+}
+
@@ -86,9 +67,6 @@
+ -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
+ unsupported $test
+ }
-+ eof {
-+ fail $test
-+ }
+}
+
+# Be sure to remove the handle first.
@@ -121,10 +99,12 @@
+ fail $test
+ }
+}
---- /dev/null 2008-05-02 23:36:22.370004160 +0200
-+++ gdb-6.8/gdb/testsuite/gdb.base/gcore-shmid0.c 2008-05-03 22:39:10.000000000 +0200
-@@ -0,0 +1,95 @@
-+/* Copyright 2007 Free Software Foundation, Inc.
+Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c 2009-06-29 16:22:49.000000000 +0200
+@@ -0,0 +1,123 @@
++/* Copyright 2007, 2009 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
@@ -155,7 +135,10 @@
+#include <unistd.h>
+#include <assert.h>
+
-+/* We need a backtrace through the stack. */
++/* The same test running in a parallel testsuite may steal us the zero SID,
++ even if we never get any EEXIST. Just try a while. */
++
++#define TIMEOUT_SEC 10
+
+static void
+initialized (void)
@@ -172,19 +155,41 @@
+{
+ int sid;
+ unsigned int *addr = (void *) -1L;
-+ int try;
++ int attempt, round = 0;
++ time_t ts_start, ts;
+
-+ /* The generated SID will cycle with an increment of 32768, try until it
++ if (time (&ts_start) == (time_t) -1)
++ {
++ printf ("time (): %m\n");
++ exit (1);
++ }
++
++ /* The generated SID will cycle with an increment of 32768, attempt until it
+ * wraps to 0. */
+
-+ for (try = 0; addr == (void *) -1L; try++)
++ for (attempt = 0; addr == (void *) -1L; attempt++)
+ {
-+ /* At least kernel-2.6.25-8.fc9.x86_64 just never returns the value 0 by
-+ shmget(2). */
-+ if (try > 0x10000)
++ /* kernel-2.6.25-8.fc9.x86_64 just never returns the value 0 by
++ shmget(2). shmget returns SID range 0..1<<31 in steps of 32768,
++ 0x1000 should be enough but wrap the range it to be sure. */
++
++ if (attempt > 0x21000)
+ {
-+ printf ("Problem no longer reproducible on this kernel (try %d)\n",
-+ try);
++ if (time (&ts) == (time_t) -1)
++ {
++ printf ("time (): %m\n");
++ exit (1);
++ }
++
++ if (ts >= ts_start && ts < ts_start + TIMEOUT_SEC)
++ {
++ attempt = 0;
++ round++;
++ continue;
++ }
++
++ printf ("Problem is not reproducible on this kernel (attempt %d, "
++ "round %d))\n", attempt, round);
+ unresolved ();
+ exit (1);
+ }
@@ -192,6 +197,9 @@
+ sid = shmget ((key_t) rand (), 0x1000, IPC_CREAT | IPC_EXCL | 0777);
+ if (sid == -1)
+ {
++ if (errno == EEXIST)
++ continue;
++
+ printf ("shmget (%d, 0x1000, IPC_CREAT): errno %d\n", 0, errno);
+ exit (1);
+ }
gdb-6.8.50.20090302-upstream.patch:
Index: gdb-6.8.50.20090302-upstream.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8.50.20090302-upstream.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- gdb-6.8.50.20090302-upstream.patch 16 Jun 2009 14:36:09 -0000 1.1
+++ gdb-6.8.50.20090302-upstream.patch 29 Jun 2009 20:21:12 -0000 1.2
@@ -469,3 +469,148 @@ gdb/testsuite/
all info install-info dvi install uninstall installcheck check:
@echo "Nothing to be done for $@..."
+
+
+
+https://bugzilla.redhat.com/show_bug.cgi?id=471819
+
+http://sourceware.org/ml/gdb-patches/2009-06/msg00837.html
+http://sourceware.org/ml/gdb-cvs/2009-06/msg00194.html
+
+gdb/
+2009-06-29 Pedro Alves <pedro at codesourcery.com>
+
+ * infrun.c (handle_inferior_event): Context switch to the new
+ thread when resuming for a new_thread_event.
+
+http://sourceware.org/ml/gdb-patches/2009-06/msg00841.html
+http://sourceware.org/ml/gdb-cvs/2009-06/msg00195.html
+
+gdb/testsuite/
+2009-06-29 Jan Kratochvil <jan.kratochvil at redhat.com>
+
+ * gdb.threads/current-lwp-dead.exp, gdb.threads/current-lwp-dead.c: New.
+
+--- src/gdb/infrun.c 2009/06/28 00:20:22 1.396
++++ src/gdb/infrun.c 2009/06/29 18:27:23 1.397
+@@ -2746,6 +2746,8 @@
+ in either the OS or the native code). Therefore we need to
+ continue all threads in order to make progress. */
+
++ if (!ptid_equal (ecs->ptid, inferior_ptid))
++ context_switch (ecs->ptid);
+ target_resume (RESUME_ALL, 0, TARGET_SIGNAL_0);
+ prepare_to_wait (ecs);
+ return;
+--- src/gdb/testsuite/gdb.threads/current-lwp-dead.c
++++ src/gdb/testsuite/gdb.threads/current-lwp-dead.c 2009-06-29 18:59:59.860807000 +0000
+@@ -0,0 +1,75 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 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 <http://www.gnu.org/licenses/>.
++
++ Do not use threads as we need to exploit a bug in LWP code masked by the
++ threads code otherwise.
++
++ INFERIOR_PTID must point to exited LWP. Here we use the initial LWP as it
++ is automatically INFERIOR_PTID for GDB.
++
++ Finally we need to call target_resume (RESUME_ALL, ...) which we invoke by
++ NEW_THREAD_EVENT (called from the new LWP as initial LWP is exited now). */
++
++#define _GNU_SOURCE
++#include <sched.h>
++#include <assert.h>
++#include <unistd.h>
++#include <stdlib.h>
++
++#define STACK_SIZE 0x1000
++
++static int
++fn_return (void *unused)
++{
++ return 0; /* at-fn_return */
++}
++
++static int
++fn (void *unused)
++{
++ int i;
++ unsigned char *stack;
++ int new_pid;
++
++ i = sleep (1);
++ assert (i == 0);
++
++ stack = malloc (STACK_SIZE);
++ assert (stack != NULL);
++
++ new_pid = clone (fn_return, stack + STACK_SIZE, CLONE_FILES | CLONE_VM, NULL,
++ NULL, NULL, NULL);
++ assert (new_pid > 0);
++
++ return 0;
++}
++
++int
++main (int argc, char **argv)
++{
++ unsigned char *stack;
++ int new_pid;
++
++ stack = malloc (STACK_SIZE);
++ assert (stack != NULL);
++
++ new_pid = clone (fn, stack + STACK_SIZE, CLONE_FILES | CLONE_VM, NULL, NULL,
++ NULL, NULL);
++ assert (new_pid > 0);
++
++ return 0;
++}
+--- src/gdb/testsuite/gdb.threads/current-lwp-dead.exp
++++ src/gdb/testsuite/gdb.threads/current-lwp-dead.exp 2009-06-29 19:00:01.014652000 +0000
+@@ -0,0 +1,31 @@
++# This testcase is part of GDB, the GNU debugger.
++
++# Copyright 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 <http://www.gnu.org/licenses/>.
++
++# Please email any bugs, comments, and/or additions to this file to:
++# bug-gdb at gnu.org
++
++if { [prepare_for_testing current-lwp-dead.exp current-lwp-dead] } {
++ return -1
++}
++
++if {[runto_main] <= 0} {
++ untested current-lwp-dead.exp
++ return -1
++}
++
++gdb_breakpoint "fn_return"
++gdb_continue_to_breakpoint "fn_return" ".*at-fn_return.*"
Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.361
retrieving revision 1.362
diff -u -p -r1.361 -r1.362
--- gdb.spec 29 Jun 2009 10:00:22 -0000 1.361
+++ gdb.spec 29 Jun 2009 20:21:12 -0000 1.362
@@ -15,7 +15,7 @@ Version: 6.8.50.20090302
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 36%{?_with_upstream:.upstream}%{?dist}
+Release: 37%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+
Group: Development/Debuggers
@@ -393,9 +393,6 @@ Patch373: gdb-DW_OP_call_frame_cfa.patch
# Accelerate sorting blocks on reading a file (found on WebKit) (BZ 507267).
patch374: gdb-bz507267-block-sort-fast.patch
-# Fix GDB crash on cloned-TIDs with no associated pthread (BZ 471819).
-patch375: gdb-bz471819-lwp-dead.patch
-
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
Requires: readline
BuildRequires: readline-devel
@@ -598,7 +595,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
%patch370 -p1
%patch373 -p1
%patch374 -p1
-%patch375 -p1
%patch124 -p1
find -name "*.orig" | xargs rm -f
@@ -899,6 +895,10 @@ fi
%endif
%changelog
+* Mon Jun 29 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-37
+- Replace the fix of cloned-TIDs with no pthread from upstream (BZ 471819).
+- Fix a parallel testsuite runs incompatibility in gdb.base/gcore-shmid0.exp.
+
* Mon Jun 29 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-36
- Fix GDB crash on cloned-TIDs with no associated pthread (BZ 471819).
- Workaround rpm.org#76 rpm-devel requirement for debuginfo names (BZ 508193).
--- gdb-bz471819-lwp-dead.patch DELETED ---
- Previous message (by thread): rpms/gdb/F-11 gdb-6.3-mapping-zero-inode-test.patch, 1.2, 1.3 gdb-6.8.50.20090302-upstream.patch, 1.1, 1.2 gdb.spec, 1.355, 1.356 gdb-bz471819-lwp-dead.patch, 1.1, NONE
- Next message (by thread): rpms/audex/F-11 sources,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list