From 92913c305e6e21165e96ef4533698e8eeb0a9a4c Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Jan 31 2016 18:50:48 +0000 Subject: Rebase to FSF GDB 7.10.50.20160131 (trunk snapshot). --- diff --git a/.gitignore b/.gitignore index 4ec7e9e..eedab49 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /gdb-libstdc++-v3-python-r225521.tar.xz -/gdb-7.10.50.20160121.tar.xz +/gdb-7.10.50.20160131.tar.xz diff --git a/gdb-testsuite-guile.patch b/gdb-testsuite-guile.patch deleted file mode 100644 index 65b7fbe..0000000 --- a/gdb-testsuite-guile.patch +++ /dev/null @@ -1,125 +0,0 @@ -http://sourceware.org/ml/gdb-patches/2016-01/msg00580.html -Subject: [testsuite patch]#3 Fix PR threads/19422 regression + Guile regression [Re: [PATCH+doc] Fix PR threads/19422 - show which thread caused stop] - - ---r5Pyd7+fXNt84Ff3 -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline - -[ now moved the new test a bit lower ] -# "signal SIGINT" could also switch the current thread. -On Fri, 22 Jan 2016 18:31:00 +0100, Jan Kratochvil wrote: - -[ now with the patch] -On Fri, 22 Jan 2016 18:30:20 +0100, Jan Kratochvil wrote: - -On Thu, 14 Jan 2016 15:08:40 +0100, Pedro Alves wrote: -> gdb/ChangeLog: -> 2016-01-14 Pedro Alves -> -> * NEWS: Mention that GDB now displays the ID and name of the -> thread that hit a breakpoint or received a signal. -> * break-catch-sig.c (signal_catchpoint_print_it): Use -> maybe_print_thread_hit_breakpoint. -> * break-catch-syscall.c (print_it_catch_syscall): Likewise. -> * break-catch-throw.c (print_it_exception_catchpoint): Likewise. -> * breakpoint.c (maybe_print_thread_hit_breakpoint): New function. -> (print_it_catch_fork, print_it_catch_vfork, print_it_catch_solib) -> (print_it_catch_exec, print_it_ranged_breakpoint) -> (print_it_watchpoint, print_it_masked_watchpoint, bkpt_print_it): -> Use maybe_print_thread_hit_breakpoint. -> * breakpoint.h (maybe_print_thread_hit_breakpoint): Declare. -> * gdbthread.h (show_thread_that_caused_stop): Declare. -> * infrun.c (print_signal_received_reason): Print which thread -> received signal. -> * thread.c (show_thread_that_caused_stop): New function. - -There was already before a regression if --with-guile (which is default if -Guile is found) was used: - -backtrace^M -#0 0x00007ffff6078da0 in __sigprocmask (how=2, set=0x7fffffffcc40, oset=0x0) at ../sysdeps/unix/sysv/linux/x86_64/sigprocmask.c:39^M -#1 0x0000000000966ce9 in _rl_handle_signal (sig=2) at signals.c:228^M -#2 0x0000000000966c05 in rl_signal_handler (sig=2) at signals.c:149^M -#3 ^M -#4 0x00007ffff613afc0 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84^M -#5 0x00000000007d9a88 in gdb_wait_for_event (block=1) at event-loop.c:746^M -#6 0x00000000007d8e87 in gdb_do_one_event () at event-loop.c:323^M -#7 0x00000000007d8ed8 in start_event_loop () at event-loop.c:347^M -#8 0x00000000007da9dc in cli_command_loop (data=0x0) at event-top.c:186^M -#9 0x00000000007d0b4c in current_interp_command_loop () at interps.c:317^M -#10 0x00000000007d1f56 in captured_command_loop (data=0x0) at main.c:318^M -#11 0x00000000007cd6c9 in catch_errors (func=0x7d1f3b , func_args=0x0, errstring=0x1167f75 "", mask=RETURN_MASK_ALL) at exceptions.c:240^M -#12 0x00000000007d3514 in captured_main (data=0x7fffffffd600) at main.c:1157^M -#13 0x00000000007cd6c9 in catch_errors (func=0x7d23d5 , func_args=0x7fffffffd600, errstring=0x1167f75 "", mask=RETURN_MASK_ALL) at exceptions.c:240^M -#14 0x00000000007d353d in gdb_main (args=0x7fffffffd600) at main.c:1165^M -#15 0x000000000049ae8c in main (argc=5, argv=0x7fffffffd708) at gdb.c:32^M -(gdb) PASS: gdb.gdb/selftest.exp: backtrace through signal handler --> -backtrace^M -#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185^M -#1 0x00007ffff6db32b7 in GC_wait_marker () at pthread_support.c:2036^M -#2 0x00007ffff6da92ba in GC_help_marker (my_mark_no=my_mark_no@entry=4) at mark.c:1168^M -#3 0x00007ffff6db15ef in GC_mark_thread (id=) at pthread_support.c:389^M -#4 0x00007ffff6b8360a in start_thread (arg=0x7ffff337e700) at pthread_create.c:334^M -#5 0x00007ffff5847a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109^M -(gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler - - -Additionally this patchset added a new regression: - -Program received signal SIGINT, Interrupt.^M -0x00007ffff613afc0 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84^M -84 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)^M -(gdb) PASS: gdb.gdb/selftest.exp: send ^C to child process --> -Thread 1 "xgdb" received signal SIGINT, Interrupt.^M -0x00007ffff583bfdd in poll () at ../sysdeps/unix/syscall-template.S:84^M -84 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)^M -(gdb) FAIL: gdb.gdb/selftest.exp: send ^C to child process - - -OK to check-in the fix for both of these problems? - -Tested on x86_64-fedora23-linux-gnu. - - -Thanks, -Jan - ---r5Pyd7+fXNt84Ff3 -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline; filename=1 - -gdb/testsuite/ChangeLog -2016-01-22 Jan Kratochvil - - Fix testsuite compatibility with Guile. - * gdb.gdb/selftest.exp (send ^C to child process): Accept also Thread. - (thread 1): New test for backtrace through signal handler. - -diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp -index 4d55cb5..da7a80b 100644 ---- a/gdb/testsuite/gdb.gdb/selftest.exp -+++ b/gdb/testsuite/gdb.gdb/selftest.exp -@@ -436,8 +436,9 @@ proc test_with_self { executable } { - if ![target_info exists gdb,nointerrupts] { - set description "send ^C to child process" - send_gdb "\003" -+ # "Thread 1" is displayed iff Guile support is linked in. - gdb_expect { -- -re "Program received signal SIGINT.*$gdb_prompt $" { -+ -re "(Thread 1 \"xgdb\"|Program) received signal SIGINT.*$gdb_prompt $" { - pass "$description" - } - -re ".*$gdb_prompt $" { -@@ -477,6 +478,9 @@ proc test_with_self { executable } { - } - } - -+ # Switch back to the GDB thread if Guile support is linked in. -+ # "signal SIGINT" could also switch the current thread. -+ gdb_test "thread 1" {\[Switching to thread 1 .*\].*} - - # get a stack trace - # diff --git a/gdb-testsuite-readline63-sigint.patch b/gdb-testsuite-readline63-sigint.patch index 4ca4716..f51503c 100644 --- a/gdb-testsuite-readline63-sigint.patch +++ b/gdb-testsuite-readline63-sigint.patch @@ -4,11 +4,11 @@ https://sourceware.org/ml/gdb-patches/2015-07/msg00422.html Message-Id: <1436927724-4059-1-git-send-email-patrick@parcs.ath.cx> https://bugzilla.redhat.com/show_bug.cgi?id=1301175 -diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp -index 9f25a48..5deae7d 100644 ---- a/gdb/testsuite/gdb.gdb/selftest.exp -+++ b/gdb/testsuite/gdb.gdb/selftest.exp -@@ -444,9 +444,26 @@ proc test_with_self { executable } { +Index: gdb-7.10.50.20160131/gdb/testsuite/gdb.gdb/selftest.exp +=================================================================== +--- gdb-7.10.50.20160131.orig/gdb/testsuite/gdb.gdb/selftest.exp 2016-01-31 19:44:47.156963419 +0100 ++++ gdb-7.10.50.20160131/gdb/testsuite/gdb.gdb/selftest.exp 2016-01-31 19:45:11.245135173 +0100 +@@ -458,9 +458,25 @@ } set description "send SIGINT signal to child process" @@ -34,7 +34,6 @@ index 9f25a48..5deae7d 100644 + fail "$description (timeout)" + } + } -+ - - # get a stack trace - # + + # Switch back to the GDB thread if Guile support is linked in. + # "signal SIGINT" could also switch the current thread. diff --git a/gdb-upstream.patch b/gdb-upstream.patch deleted file mode 100644 index 39bc0d0..0000000 --- a/gdb-upstream.patch +++ /dev/null @@ -1,168 +0,0 @@ -[PATCH] Fix GCC6 -Wmisleading-indentation issues. -https://sourceware.org/ml/gdb-patches/2016-01/msg00632.html - -commit a579cd9aa8c57c8a54833f26452a1afef38e5d20 -Author: Mark Wielaard -Date: Mon Jan 25 20:29:54 2016 +0100 - - Fix GCC6 -Wmisleading-indentation issues. - - GCC6 will warn about misleading indentation issues like: - - gdb/ada-lang.c: In function ‘ada_evaluate_subexp’: - ada-lang.c:11423:9: error: statement is indented as if it were guarded by... - arg1 = unwrap_value (arg1); - ^~~~ - - gdb/ada-lang.c:11421:7: note: ...this ‘else’ clause, but it is not - else - ^~~~ - - In this case it would be a bug except for the fact the if clause already - returned early. So this misindented statement really only got executed - for the else case. But it could easily mislead a reader, so adding a - proper else block is the correct solution. - - In case of c-typeprint.c (c_type_print_base) the if statement is indeed - misleadingly indented, but not a bug. Just indent correctly. The inflow.c - (terminal_ours_1) misindented block comes from the removal of an if clause - in commit d9d2d8b which looks correct. Just introduce an else to fixup the - indentation of the block. The linux-record.c misleadingly indented return - statements are just that. Misleading to the reader, but not actual bugs. - Just unindent them so they don't look like they fall under the wrong if - clause. - -### a/gdb/ChangeLog -### b/gdb/ChangeLog -## -1,3 +1,14 @@ -+2016-01-25 Mark Wielaard -+ -+ * ada-lang.c (ada_evaluate_subexp): Add proper else block. -+ * c-typeprint.c (c_type_print_base): Fix misleading indentation of -+ if statement. -+ * inflow.c (child_terminal_ours_1): Fix misleading indentation of -+ statement block by introducing an else. -+ * linux-record.c (record_linux_sockaddr): Fix misleading indentation -+ of return statements. -+ (record_linux_msghdr): Likewise. -+ - 2016-01-25 Pedro Alves - - PR threads/19461 ---- a/gdb/ada-lang.c -+++ b/gdb/ada-lang.c -@@ -11419,9 +11419,11 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp, - return value_zero (ada_aligned_type (type), lval_memory); - } - else -- arg1 = ada_value_struct_elt (arg1, &exp->elts[pc + 2].string, 0); -- arg1 = unwrap_value (arg1); -- return ada_to_fixed_value (arg1); -+ { -+ arg1 = ada_value_struct_elt (arg1, &exp->elts[pc + 2].string, 0); -+ arg1 = unwrap_value (arg1); -+ return ada_to_fixed_value (arg1); -+ } - - case OP_TYPE: - /* The value is not supposed to be used. This is here to make it ---- a/gdb/c-typeprint.c -+++ b/gdb/c-typeprint.c -@@ -1305,27 +1305,27 @@ c_type_print_base (struct type *type, struct ui_file *stream, - if (TYPE_NFIELDS (type) != 0 || TYPE_NFN_FIELDS (type) != 0) - fprintf_filtered (stream, "\n"); - -- for (i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); i++) -- { -- struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i); -- -- /* Dereference the typedef declaration itself. */ -- gdb_assert (TYPE_CODE (target) == TYPE_CODE_TYPEDEF); -- target = TYPE_TARGET_TYPE (target); -- -- print_spaces_filtered (level + 4, stream); -- fprintf_filtered (stream, "typedef "); -- -- /* We want to print typedefs with substitutions -- from the template parameters or globally-known -- typedefs but not local typedefs. */ -- c_print_type (target, -- TYPE_TYPEDEF_FIELD_NAME (type, i), -- stream, show - 1, level + 4, -- &semi_local_flags); -- fprintf_filtered (stream, ";\n"); -- } -- } -+ for (i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); i++) -+ { -+ struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i); -+ -+ /* Dereference the typedef declaration itself. */ -+ gdb_assert (TYPE_CODE (target) == TYPE_CODE_TYPEDEF); -+ target = TYPE_TARGET_TYPE (target); -+ -+ print_spaces_filtered (level + 4, stream); -+ fprintf_filtered (stream, "typedef "); -+ -+ /* We want to print typedefs with substitutions -+ from the template parameters or globally-known -+ typedefs but not local typedefs. */ -+ c_print_type (target, -+ TYPE_TYPEDEF_FIELD_NAME (type, i), -+ stream, show - 1, level + 4, -+ &semi_local_flags); -+ fprintf_filtered (stream, ";\n"); -+ } -+ } - - fprintfi_filtered (level, stream, "}"); - } ---- a/gdb/inflow.c -+++ b/gdb/inflow.c -@@ -412,7 +412,7 @@ child_terminal_ours_1 (int output_only) - - if (tinfo->run_terminal != NULL || gdb_has_a_terminal () == 0) - return; -- -+ else - { - #ifdef SIGTTOU - /* Ignore this signal since it will happen when we try to set the ---- a/gdb/linux-record.c -+++ b/gdb/linux-record.c -@@ -112,7 +112,7 @@ record_linux_sockaddr (struct regcache *regcache, - "memory at addr = 0x%s len = %d.\n", - phex_nz (len, tdep->size_pointer), - tdep->size_int); -- return -1; -+ return -1; - } - addrlen = (int) extract_unsigned_integer (a, tdep->size_int, byte_order); - if (addrlen <= 0 || addrlen > tdep->size_sockaddr) -@@ -150,7 +150,7 @@ record_linux_msghdr (struct regcache *regcache, - "len = %d.\n", - phex_nz (addr, tdep->size_pointer), - tdep->size_msghdr); -- return -1; -+ return -1; - } - - /* msg_name msg_namelen */ -@@ -188,7 +188,7 @@ record_linux_msghdr (struct regcache *regcache, - "len = %d.\n", - phex_nz (addr,tdep->size_pointer), - tdep->size_iovec); -- return -1; -+ return -1; - } - tmpaddr = (CORE_ADDR) extract_unsigned_integer (iov, - tdep->size_pointer, -@@ -983,7 +983,7 @@ Do you want to stop the program?"), - "memory at addr = 0x%s len = %d.\n", - OUTPUT_REG (tmpulongest, tdep->arg2), - tdep->size_ulong); -- return -1; -+ return -1; - } - tmpulongest = extract_unsigned_integer (a, tdep->size_ulong, - byte_order); diff --git a/gdb.spec b/gdb.spec index 5e1be32..9368d05 100644 --- a/gdb.spec +++ b/gdb.spec @@ -19,7 +19,7 @@ Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages Name: %{?scl_prefix}gdb # Freeze it when GDB gets branched -%global snapsrc 20160121 +%global snapsrc 20160131 # See timestamp of source gnulib installed into gdb/gnulib/ . %global snapgnulib 20150822 %global tarname gdb-%{version} @@ -27,7 +27,7 @@ Version: 7.10.50.%{snapsrc} # The release always contains a leading reserved number, start it at 1. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. -Release: 49%{?dist} +Release: 50%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL Group: Development/Debuggers @@ -245,7 +245,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch # Backported fixups post the source tarball. #Xdrop: Just backports. -Patch232: gdb-upstream.patch +#Patch232: gdb-upstream.patch # Testcase for PPC Power6/DFP instructions disassembly (BZ 230000). #=fedoratest+ppc @@ -552,9 +552,6 @@ Patch1056: gdb-fedora-libncursesw.patch # Test clflushopt instruction decode (for RH BZ 1262471). Patch1073: gdb-opcodes-clflushopt-test.patch -# Fix testsuite regression with Guile. -Patch1074: gdb-testsuite-guile.patch - # [testsuite] Fix false selftest.exp FAIL from system readline-6.3+ (Patrick Palka). Patch1075: gdb-testsuite-readline63-sigint.patch @@ -755,7 +752,7 @@ find -name "*.info*"|xargs rm -f # Match the Fedora's version info. %patch2 -p1 -%patch232 -p1 +#patch232 -p1 %patch349 -p1 %patch1058 -p1 %patch1059 -p1 @@ -874,7 +871,6 @@ find -name "*.info*"|xargs rm -f %patch337 -p1 %patch331 -p1 %patch1075 -p1 -%patch1074 -p1 %patch1076 -p1 %if 0%{?rhel:1} && 0%{?rhel} <= 7 @@ -1393,6 +1389,9 @@ then fi %changelog +* Sun Jan 31 2016 Jan Kratochvil - 7.10.50.20160131-50.fc24 +- Rebase to FSF GDB 7.10.50.20160131 (trunk snapshot). + * Sun Jan 31 2016 Jan Kratochvil - 7.10.50.20160121-49.fc24 - Fix another false gcc6 compilation warning (Mark Wielaard). diff --git a/sources b/sources index f3e603e..7856176 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 7ad32d3894aaf90d00a4343a735c3e1c gdb-libstdc++-v3-python-r225521.tar.xz -aa8ae54df5543678a7ce6420342a4914 gdb-7.10.50.20160121.tar.xz +f82c87837ba288102ea43330b4a1fd3a gdb-7.10.50.20160131.tar.xz