Rebase to 7.9-branch snapshot 7.8.90.20150202.

- Temporarily disable dg-extract-results.py to fix gdb.sum sorting.
This commit is contained in:
Jan Kratochvil 2015-02-02 23:09:42 +01:00
parent 2f7f533ae7
commit 072837144c
14 changed files with 1054 additions and 1033 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/gdb-libstdc++-v3-python-r155978.tar.bz2 /gdb-libstdc++-v3-python-r155978.tar.bz2
/gdb-7.8.50.20150108.tar.xz /gdb-7.8.90.20150202.tar.xz

View File

@ -474,7 +474,7 @@ Index: gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.sh
+ local FAILURES=0 + local FAILURES=0
+ +
+ mustNotHave '??' || ((FAILURES++)) + mustNotHave '??' || ((FAILURES++))
+ mustHaveCorrectAmount 12 threadcrash.c: || ((FAILURES++)) + mustHaveCorrectAmount 11 threadcrash.c: || ((FAILURES++))
+ +
+ mustHaveSevenThreads || ((FAILURES++)) + mustHaveSevenThreads || ((FAILURES++))
+ mustHaveSequence sleep "makeSyscall (ignored=" || ((FAILURES++)) + mustHaveSequence sleep "makeSyscall (ignored=" || ((FAILURES++))

View File

@ -21,10 +21,10 @@
Port to GDB-6.8pre. Port to GDB-6.8pre.
Index: gdb-7.8.50.20141228/gdb/infrun.c Index: gdb-7.8.90.20150125/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/infrun.c 2014-12-28 21:33:41.301547880 +0100 --- gdb-7.8.90.20150125.orig/gdb/infrun.c 2015-01-25 08:36:16.651716159 +0100
+++ gdb-7.8.50.20141228/gdb/infrun.c 2015-01-01 17:00:08.212920690 +0100 +++ gdb-7.8.90.20150125/gdb/infrun.c 2015-01-25 08:36:26.491758571 +0100
@@ -86,7 +86,7 @@ static void follow_inferior_reset_breakp @@ -86,7 +86,7 @@ static void follow_inferior_reset_breakp
static void set_schedlock_func (char *args, int from_tty, static void set_schedlock_func (char *args, int from_tty,
struct cmd_list_element *c); struct cmd_list_element *c);
@ -120,7 +120,7 @@ Index: gdb-7.8.50.20141228/gdb/infrun.c
/* Wait for it to stop (if not standalone) /* Wait for it to stop (if not standalone)
and in any case decode why it stopped, and act accordingly. */ and in any case decode why it stopped, and act accordingly. */
@@ -5674,14 +5690,16 @@ switch_back_to_stepped_thread (struct ex @@ -5684,14 +5700,16 @@ switch_back_to_stepped_thread (struct ex
/* Is thread TP in the middle of single-stepping? */ /* Is thread TP in the middle of single-stepping? */
@ -142,11 +142,11 @@ Index: gdb-7.8.50.20141228/gdb/infrun.c
} }
/* Inferior has stepped into a subroutine call with source code that /* Inferior has stepped into a subroutine call with source code that
Index: gdb-7.8.50.20141228/gdb/linux-nat.c Index: gdb-7.8.90.20150125/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/linux-nat.c 2014-12-28 21:33:41.303547882 +0100 --- gdb-7.8.90.20150125.orig/gdb/linux-nat.c 2015-01-25 08:36:16.653716168 +0100
+++ gdb-7.8.50.20141228/gdb/linux-nat.c 2014-12-28 21:33:45.827551687 +0100 +++ gdb-7.8.90.20150125/gdb/linux-nat.c 2015-01-25 08:36:26.492758576 +0100
@@ -2519,7 +2519,11 @@ static int @@ -2648,7 +2648,11 @@ static int
select_singlestep_lwp_callback (struct lwp_info *lp, void *data) select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
{ {
if (lp->last_resume_kind == resume_step if (lp->last_resume_kind == resume_step
@ -159,10 +159,10 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
return 1; return 1;
else else
return 0; return 0;
Index: gdb-7.8.50.20141228/gdb/linux-nat.h Index: gdb-7.8.90.20150125/gdb/linux-nat.h
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/linux-nat.h 2014-12-28 21:33:41.304547882 +0100 --- gdb-7.8.90.20150125.orig/gdb/linux-nat.h 2015-01-25 08:36:16.653716168 +0100
+++ gdb-7.8.50.20141228/gdb/linux-nat.h 2014-12-28 21:33:45.827551687 +0100 +++ gdb-7.8.90.20150125/gdb/linux-nat.h 2015-01-25 08:36:44.948838126 +0100
@@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */ along with this program. If not, see <http://www.gnu.org/licenses/>. */
@ -171,21 +171,21 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.h
#include <signal.h> #include <signal.h>
@@ -59,8 +60,8 @@ struct lwp_info @@ -88,8 +89,8 @@ struct lwp_info
/* If non-zero, a pending wait status. */ running and not stepping, this is 0. */
int status; CORE_ADDR stop_pc;
- /* Non-zero if we were stepping this LWP. */ - /* Non-zero if we were stepping this LWP. */
- int step; - int step;
+ /* The kind of stepping of this LWP. */ + /* The kind of stepping of this LWP. */
+ enum resume_step step; + enum resume_step step;
/* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data /* The reason the LWP last stopped, if we need to track it
watchpoint trap. */ (breakpoint, watchpoint, etc.) */
Index: gdb-7.8.50.20141228/gdb/infrun.h Index: gdb-7.8.90.20150125/gdb/infrun.h
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/infrun.h 2014-12-28 21:33:45.827551687 +0100 --- gdb-7.8.90.20150125.orig/gdb/infrun.h 2015-01-25 08:36:16.654716172 +0100
+++ gdb-7.8.50.20141228/gdb/infrun.h 2014-12-28 21:34:13.516574981 +0100 +++ gdb-7.8.90.20150125/gdb/infrun.h 2015-01-25 08:36:26.493758580 +0100
@@ -92,7 +92,14 @@ extern void proceed (CORE_ADDR, enum gdb @@ -92,7 +92,14 @@ extern void proceed (CORE_ADDR, enum gdb
/* The `resume' routine should only be called in special circumstances. /* The `resume' routine should only be called in special circumstances.
@ -202,10 +202,10 @@ Index: gdb-7.8.50.20141228/gdb/infrun.h
/* Return a ptid representing the set of threads that we will proceed, /* Return a ptid representing the set of threads that we will proceed,
in the perspective of the user/frontend. */ in the perspective of the user/frontend. */
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp Index: gdb-7.8.90.20150125/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp 2014-12-28 21:33:41.304547882 +0100 --- gdb-7.8.90.20150125.orig/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp 2015-01-25 08:36:16.654716172 +0100
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp 2014-12-28 21:33:45.827551687 +0100 +++ gdb-7.8.90.20150125/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp 2015-01-25 08:36:26.493758580 +0100
@@ -97,7 +97,7 @@ gdb_test "set debug infrun 1" @@ -97,7 +97,7 @@ gdb_test "set debug infrun 1"
gdb_test \ gdb_test \

View File

@ -1,7 +1,7 @@
Index: gdb-7.8.50.20141228/gdb/linux-nat.c Index: gdb-7.8.90.20150125/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/linux-nat.c 2015-01-05 22:52:01.115978026 +0100 --- gdb-7.8.90.20150125.orig/gdb/linux-nat.c 2015-01-25 08:42:49.381408899 +0100
+++ gdb-7.8.50.20141228/gdb/linux-nat.c 2015-01-05 22:52:23.147074710 +0100 +++ gdb-7.8.90.20150125/gdb/linux-nat.c 2015-01-25 08:43:16.378525322 +0100
@@ -174,6 +174,9 @@ blocked. */ @@ -174,6 +174,9 @@ blocked. */
static struct target_ops *linux_ops; static struct target_ops *linux_ops;
static struct target_ops linux_ops_saved; static struct target_ops linux_ops_saved;
@ -12,7 +12,7 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
/* The method to call, if any, when a new thread is attached. */ /* The method to call, if any, when a new thread is attached. */
static void (*linux_nat_new_thread) (struct lwp_info *); static void (*linux_nat_new_thread) (struct lwp_info *);
@@ -915,6 +918,7 @@ linux_nat_post_attach_wait (ptid_t ptid, @@ -924,6 +927,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
if (debug_linux_nat) if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"LNPAW: Attaching to a stopped process\n"); "LNPAW: Attaching to a stopped process\n");
@ -20,7 +20,7 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
/* The process is definitely stopped. It is in a job control /* The process is definitely stopped. It is in a job control
stop, unless the kernel predates the TASK_STOPPED / stop, unless the kernel predates the TASK_STOPPED /
@@ -1337,6 +1341,9 @@ get_pending_status (struct lwp_info *lp, @@ -1424,6 +1428,9 @@ get_pending_status (struct lwp_info *lp,
gdb_signal_to_string (signo)); gdb_signal_to_string (signo));
} }
@ -30,7 +30,7 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
return 0; return 0;
} }
@@ -1450,6 +1457,8 @@ linux_nat_detach (struct target_ops *ops @@ -1537,6 +1544,8 @@ linux_nat_detach (struct target_ops *ops
} }
else else
linux_ops->to_detach (ops, args, from_tty); linux_ops->to_detach (ops, args, from_tty);
@ -38,8 +38,8 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
+ pid_was_stopped = 0; + pid_was_stopped = 0;
} }
/* Resume LP. */ /* Resume execution of the inferior process. If STEP is nonzero,
@@ -1631,6 +1640,14 @@ linux_nat_resume (struct target_ops *ops @@ -1741,6 +1750,14 @@ linux_nat_resume (struct target_ops *ops
return; return;
} }
@ -54,7 +54,7 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
if (resume_many) if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, lp); iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
@@ -3696,6 +3713,8 @@ linux_nat_mourn_inferior (struct target_ @@ -3723,6 +3740,8 @@ linux_nat_mourn_inferior (struct target_
/* Let the arch-specific native code know this process is gone. */ /* Let the arch-specific native code know this process is gone. */
linux_nat_forget_process (pid); linux_nat_forget_process (pid);
@ -63,10 +63,10 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
} }
/* Convert a native/host siginfo object, into/from the siginfo in the /* Convert a native/host siginfo object, into/from the siginfo in the
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/attach-stopped.exp Index: gdb-7.8.90.20150125/gdb/testsuite/gdb.threads/attach-stopped.exp
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2015-01-05 22:52:01.115978026 +0100 --- gdb-7.8.90.20150125.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2015-01-25 08:42:49.382408903 +0100
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/attach-stopped.exp 2015-01-05 22:52:23.148074714 +0100 +++ gdb-7.8.90.20150125/gdb/testsuite/gdb.threads/attach-stopped.exp 2015-01-25 08:43:16.379525327 +0100
@@ -61,7 +61,65 @@ proc corefunc { threadtype } { @@ -61,7 +61,65 @@ proc corefunc { threadtype } {
gdb_reinitialize_dir $srcdir/$subdir gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} gdb_load ${binfile}
@ -134,10 +134,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/attach-stopped.exp
set test "$threadtype: attach2 to stopped, after setting file" set test "$threadtype: attach2 to stopped, after setting file"
gdb_test_multiple "attach $testpid" "$test" { gdb_test_multiple "attach $testpid" "$test" {
Index: gdb-7.8.50.20141228/gdb/infrun.c Index: gdb-7.8.90.20150125/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/infrun.c 2015-01-05 22:42:48.773501429 +0100 --- gdb-7.8.90.20150125.orig/gdb/infrun.c 2015-01-25 08:42:49.385408916 +0100
+++ gdb-7.8.50.20141228/gdb/infrun.c 2015-01-05 22:53:47.274443903 +0100 +++ gdb-7.8.90.20150125/gdb/infrun.c 2015-01-25 08:43:16.381525335 +0100
@@ -600,6 +600,11 @@ holding the child stopped. Try \"set de @@ -600,6 +600,11 @@ holding the child stopped. Try \"set de
child_pid); child_pid);
} }

View File

@ -37,10 +37,10 @@ gdb/gdbserver/
(linux_create_inferior, linux_tracefork_child): Call it instead of (linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace. direct ptrace.
Index: gdb-7.8.50.20141228/gdb/nat/linux-ptrace.c Index: gdb-7.8.90.20150125/gdb/nat/linux-ptrace.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/nat/linux-ptrace.c 2015-01-01 21:38:14.691209094 +0100 --- gdb-7.8.90.20150125.orig/gdb/nat/linux-ptrace.c 2015-01-25 08:36:55.710884511 +0100
+++ gdb-7.8.50.20141228/gdb/nat/linux-ptrace.c 2015-01-01 21:39:34.670157506 +0100 +++ gdb-7.8.90.20150125/gdb/nat/linux-ptrace.c 2015-01-25 08:38:43.157347627 +0100
@@ -25,6 +25,10 @@ @@ -25,6 +25,10 @@
#include <stdint.h> #include <stdint.h>
@ -60,8 +60,8 @@ Index: gdb-7.8.50.20141228/gdb/nat/linux-ptrace.c
+ linux_ptrace_create_warnings (buffer); + linux_ptrace_create_warnings (buffer);
} }
#if defined __i386__ || defined __x86_64__ /* See linux-ptrace.h. */
@@ -568,6 +574,22 @@ linux_ptrace_init_warnings (void) @@ -595,6 +601,22 @@ linux_ptrace_init_warnings (void)
linux_ptrace_test_ret_to_nx (); linux_ptrace_test_ret_to_nx ();
} }
@ -84,23 +84,23 @@ Index: gdb-7.8.50.20141228/gdb/nat/linux-ptrace.c
/* Set additional ptrace flags to use. Some such flags may be checked /* Set additional ptrace flags to use. Some such flags may be checked
by the implementation above. This function must be called before by the implementation above. This function must be called before
any other function in this file; otherwise the flags may not take any other function in this file; otherwise the flags may not take
Index: gdb-7.8.50.20141228/gdb/nat/linux-ptrace.h Index: gdb-7.8.90.20150125/gdb/nat/linux-ptrace.h
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/nat/linux-ptrace.h 2015-01-01 21:38:21.280204844 +0100 --- gdb-7.8.90.20150125.orig/gdb/nat/linux-ptrace.h 2015-01-25 08:37:02.800915071 +0100
+++ gdb-7.8.50.20141228/gdb/nat/linux-ptrace.h 2015-01-01 21:39:00.542179519 +0100 +++ gdb-7.8.90.20150125/gdb/nat/linux-ptrace.h 2015-01-25 08:38:16.565233009 +0100
@@ -90,6 +90,7 @@ struct buffer; @@ -98,6 +98,7 @@ extern void linux_ptrace_attach_fail_rea
extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
extern void linux_ptrace_attach_fail_reason (pid_t pid, struct buffer *buffer);
extern void linux_ptrace_init_warnings (void); extern void linux_ptrace_init_warnings (void);
+extern void linux_ptrace_create_warnings (struct buffer *buffer); +extern void linux_ptrace_create_warnings (struct buffer *buffer);
extern void linux_enable_event_reporting (pid_t pid, int attached); extern void linux_enable_event_reporting (pid_t pid, int attached);
extern void linux_disable_event_reporting (pid_t pid); extern void linux_disable_event_reporting (pid_t pid);
extern int linux_supports_tracefork (void); extern int linux_supports_tracefork (void);
Index: gdb-7.8.50.20141228/gdb/configure.ac Index: gdb-7.8.90.20150125/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/configure.ac 2015-01-01 21:38:14.692209094 +0100 --- gdb-7.8.90.20150125.orig/gdb/configure.ac 2015-01-25 08:36:55.712884520 +0100
+++ gdb-7.8.50.20141228/gdb/configure.ac 2015-01-01 21:38:21.281204843 +0100 +++ gdb-7.8.90.20150125/gdb/configure.ac 2015-01-25 08:37:02.801915075 +0100
@@ -2116,6 +2116,10 @@ case $host_os in @@ -2117,6 +2117,10 @@ case $host_os in
esac esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
@ -111,10 +111,10 @@ Index: gdb-7.8.50.20141228/gdb/configure.ac
dnl Handle optional features that can be enabled. dnl Handle optional features that can be enabled.
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
Index: gdb-7.8.50.20141228/gdb/gdbserver/configure.ac Index: gdb-7.8.90.20150125/gdb/gdbserver/configure.ac
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/gdbserver/configure.ac 2015-01-01 21:38:14.693209093 +0100 --- gdb-7.8.90.20150125.orig/gdb/gdbserver/configure.ac 2015-01-25 08:36:55.712884520 +0100
+++ gdb-7.8.50.20141228/gdb/gdbserver/configure.ac 2015-01-01 21:38:21.281204843 +0100 +++ gdb-7.8.90.20150125/gdb/gdbserver/configure.ac 2015-01-25 08:37:02.801915075 +0100
@@ -461,6 +461,10 @@ if $want_ipa ; then @@ -461,6 +461,10 @@ if $want_ipa ; then
fi fi
fi fi
@ -126,11 +126,11 @@ Index: gdb-7.8.50.20141228/gdb/gdbserver/configure.ac
AC_SUBST(GDBSERVER_DEPFILES) AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS) AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(srv_xmlbuiltin) AC_SUBST(srv_xmlbuiltin)
Index: gdb-7.8.50.20141228/gdb/gdbserver/linux-low.c Index: gdb-7.8.90.20150125/gdb/gdbserver/linux-low.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/gdbserver/linux-low.c 2015-01-01 21:38:14.695209091 +0100 --- gdb-7.8.90.20150125.orig/gdb/gdbserver/linux-low.c 2015-01-25 08:36:55.714884529 +0100
+++ gdb-7.8.50.20141228/gdb/gdbserver/linux-low.c 2015-01-01 21:38:21.282204843 +0100 +++ gdb-7.8.90.20150125/gdb/gdbserver/linux-low.c 2015-01-25 08:37:02.803915084 +0100
@@ -537,6 +537,29 @@ add_lwp (ptid_t ptid) @@ -591,6 +591,29 @@ add_lwp (ptid_t ptid)
return lwp; return lwp;
} }
@ -160,7 +160,7 @@ Index: gdb-7.8.50.20141228/gdb/gdbserver/linux-low.c
/* Start an inferior process and returns its pid. /* Start an inferior process and returns its pid.
ALLARGS is a vector of program-name and args. */ ALLARGS is a vector of program-name and args. */
@@ -578,7 +601,7 @@ linux_create_inferior (char *program, ch @@ -632,7 +655,7 @@ linux_create_inferior (char *program, ch
if (pid == 0) if (pid == 0)
{ {
close_most_fds (); close_most_fds ();
@ -169,11 +169,11 @@ Index: gdb-7.8.50.20141228/gdb/gdbserver/linux-low.c
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */ #ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
signal (__SIGRTMIN + 1, SIG_DFL); signal (__SIGRTMIN + 1, SIG_DFL);
Index: gdb-7.8.50.20141228/gdb/inf-ptrace.c Index: gdb-7.8.90.20150125/gdb/inf-ptrace.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/inf-ptrace.c 2015-01-01 21:38:14.695209091 +0100 --- gdb-7.8.90.20150125.orig/gdb/inf-ptrace.c 2015-01-25 08:36:55.715884533 +0100
+++ gdb-7.8.50.20141228/gdb/inf-ptrace.c 2015-01-01 21:38:21.282204843 +0100 +++ gdb-7.8.90.20150125/gdb/inf-ptrace.c 2015-01-25 08:37:02.803915084 +0100
@@ -66,7 +66,15 @@ static void @@ -67,7 +67,15 @@ static void
inf_ptrace_me (void) inf_ptrace_me (void)
{ {
/* "Trace me, Dr. Memory!" */ /* "Trace me, Dr. Memory!" */
@ -189,11 +189,11 @@ Index: gdb-7.8.50.20141228/gdb/inf-ptrace.c
} }
/* Start a new inferior Unix child process. EXEC_FILE is the file to /* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.8.50.20141228/gdb/linux-nat.c Index: gdb-7.8.90.20150125/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/linux-nat.c 2015-01-01 21:38:14.697209090 +0100 --- gdb-7.8.90.20150125.orig/gdb/linux-nat.c 2015-01-25 08:36:55.717884541 +0100
+++ gdb-7.8.50.20141228/gdb/linux-nat.c 2015-01-01 21:38:21.283204842 +0100 +++ gdb-7.8.90.20150125/gdb/linux-nat.c 2015-01-25 08:37:52.054127362 +0100
@@ -1099,6 +1099,7 @@ linux_nat_create_inferior (struct target @@ -1109,6 +1109,7 @@ linux_nat_create_inferior (struct target
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
int personality_orig = 0, personality_set = 0; int personality_orig = 0, personality_set = 0;
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -201,7 +201,7 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
/* The fork_child mechanism is synchronous and calls target_wait, so /* The fork_child mechanism is synchronous and calls target_wait, so
we have to mask the async mode. */ we have to mask the async mode. */
@@ -1123,7 +1124,10 @@ linux_nat_create_inferior (struct target @@ -1133,7 +1134,10 @@ linux_nat_create_inferior (struct target
/* Make sure we report all signals during startup. */ /* Make sure we report all signals during startup. */
linux_nat_pass_signals (ops, 0, NULL); linux_nat_pass_signals (ops, 0, NULL);
@ -213,7 +213,7 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
if (personality_set) if (personality_set)
@@ -1135,6 +1139,24 @@ linux_nat_create_inferior (struct target @@ -1145,6 +1149,24 @@ linux_nat_create_inferior (struct target
safe_strerror (errno)); safe_strerror (errno));
} }
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -237,11 +237,11 @@ Index: gdb-7.8.50.20141228/gdb/linux-nat.c
+ } + }
} }
static void /* Callback for linux_proc_attach_tgid_threads. Attach to PTID if not
Index: gdb-7.8.50.20141228/gdb/config.in Index: gdb-7.8.90.20150125/gdb/config.in
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/config.in 2015-01-01 21:38:14.697209090 +0100 --- gdb-7.8.90.20150125.orig/gdb/config.in 2015-01-25 08:36:55.718884546 +0100
+++ gdb-7.8.50.20141228/gdb/config.in 2015-01-01 21:38:21.284204842 +0100 +++ gdb-7.8.90.20150125/gdb/config.in 2015-01-25 08:37:02.805915092 +0100
@@ -213,6 +213,9 @@ @@ -213,6 +213,9 @@
/* Define if librpm library is being used. */ /* Define if librpm library is being used. */
#undef HAVE_LIBRPM #undef HAVE_LIBRPM
@ -262,11 +262,11 @@ Index: gdb-7.8.50.20141228/gdb/config.in
/* Define to 1 if you have the `setlocale' function. */ /* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE #undef HAVE_SETLOCALE
Index: gdb-7.8.50.20141228/gdb/configure Index: gdb-7.8.90.20150125/gdb/configure
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/configure 2015-01-01 21:38:14.701209087 +0100 --- gdb-7.8.90.20150125.orig/gdb/configure 2015-01-25 08:36:55.722884563 +0100
+++ gdb-7.8.50.20141228/gdb/configure 2015-01-01 21:38:21.286204840 +0100 +++ gdb-7.8.90.20150125/gdb/configure 2015-01-25 08:37:02.809915110 +0100
@@ -13269,6 +13269,64 @@ cat >>confdefs.h <<_ACEOF @@ -13270,6 +13270,64 @@ cat >>confdefs.h <<_ACEOF
_ACEOF _ACEOF
@ -331,10 +331,10 @@ Index: gdb-7.8.50.20141228/gdb/configure
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional. # except that the argument to --with-sysroot is optional.
Index: gdb-7.8.50.20141228/gdb/gdbserver/config.in Index: gdb-7.8.90.20150125/gdb/gdbserver/config.in
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/gdbserver/config.in 2015-01-01 21:38:14.702209087 +0100 --- gdb-7.8.90.20150125.orig/gdb/gdbserver/config.in 2015-01-25 08:36:55.724884572 +0100
+++ gdb-7.8.50.20141228/gdb/gdbserver/config.in 2015-01-01 21:38:39.365193179 +0100 +++ gdb-7.8.90.20150125/gdb/gdbserver/config.in 2015-01-25 08:37:02.809915110 +0100
@@ -75,6 +75,9 @@ @@ -75,6 +75,9 @@
/* Define to 1 if you have the `mcheck' library (-lmcheck). */ /* Define to 1 if you have the `mcheck' library (-lmcheck). */
#undef HAVE_LIBMCHECK #undef HAVE_LIBMCHECK
@ -355,10 +355,10 @@ Index: gdb-7.8.50.20141228/gdb/gdbserver/config.in
/* Define to 1 if you have the <sgtty.h> header file. */ /* Define to 1 if you have the <sgtty.h> header file. */
#undef HAVE_SGTTY_H #undef HAVE_SGTTY_H
Index: gdb-7.8.50.20141228/gdb/gdbserver/configure Index: gdb-7.8.90.20150125/gdb/gdbserver/configure
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/gdbserver/configure 2015-01-01 21:38:14.704209086 +0100 --- gdb-7.8.90.20150125.orig/gdb/gdbserver/configure 2015-01-25 08:36:55.726884580 +0100
+++ gdb-7.8.50.20141228/gdb/gdbserver/configure 2015-01-01 21:38:21.288204839 +0100 +++ gdb-7.8.90.20150125/gdb/gdbserver/configure 2015-01-25 08:37:02.811915118 +0100
@@ -6199,6 +6199,64 @@ if $want_ipa ; then @@ -6199,6 +6199,64 @@ if $want_ipa ; then
fi fi
fi fi

View File

@ -1,11 +0,0 @@
--- gdb-7.8.50.20141228/gdb/compile/compile.c-orig 2014-12-28 02:48:43.000000000 +0100
+++ gdb-7.8.50.20141228/gdb/compile/compile.c 2015-01-05 23:03:33.383016039 +0100
@@ -172,7 +172,7 @@ do_rmdir (void *arg)
gdb_assert (strncmp (dir, TMP_PREFIX, strlen (TMP_PREFIX)) == 0);
zap = concat ("rm -rf ", dir, (char *) NULL);
- system (zap);
+ if (system (zap)) {}
}
/* Return the name of the temporary directory to use for .o files, and

View File

@ -0,0 +1,589 @@
diff -dup -ruNp gdb-7.8.90.20150202-orig/gdb/testsuite/dg-extract-results.py gdb-7.8.90.20150202/gdb/testsuite/dg-extract-results.py
--- gdb-7.8.90.20150202-orig/gdb/testsuite/dg-extract-results.py 2015-02-02 02:58:29.000000000 +0100
+++ gdb-7.8.90.20150202/gdb/testsuite/dg-extract-results.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,585 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (C) 2014-2015 Free Software Foundation, Inc.
-#
-# This script 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, or (at your option)
-# any later version.
-
-import sys
-import getopt
-import re
-import io
-from datetime import datetime
-from operator import attrgetter
-
-# True if unrecognised lines should cause a fatal error. Might want to turn
-# this on by default later.
-strict = False
-
-# True if the order of .log segments should match the .sum file, false if
-# they should keep the original order.
-sort_logs = True
-
-# A version of open() that is safe against whatever binary output
-# might be added to the log.
-def safe_open (filename):
- if sys.version_info >= (3, 0):
- return open (filename, 'r', errors = 'surrogateescape')
- return open (filename, 'r')
-
-# Force stdout to handle escape sequences from a safe_open file.
-if sys.version_info >= (3, 0):
- sys.stdout = io.TextIOWrapper (sys.stdout.buffer,
- errors = 'surrogateescape')
-
-class Named:
- def __init__ (self, name):
- self.name = name
-
-class ToolRun (Named):
- def __init__ (self, name):
- Named.__init__ (self, name)
- # The variations run for this tool, mapped by --target_board name.
- self.variations = dict()
-
- # Return the VariationRun for variation NAME.
- def get_variation (self, name):
- if name not in self.variations:
- self.variations[name] = VariationRun (name)
- return self.variations[name]
-
-class VariationRun (Named):
- def __init__ (self, name):
- Named.__init__ (self, name)
- # A segment of text before the harness runs start, describing which
- # baseboard files were loaded for the target.
- self.header = None
- # The harnesses run for this variation, mapped by filename.
- self.harnesses = dict()
- # A list giving the number of times each type of result has
- # been seen.
- self.counts = []
-
- # Return the HarnessRun for harness NAME.
- def get_harness (self, name):
- if name not in self.harnesses:
- self.harnesses[name] = HarnessRun (name)
- return self.harnesses[name]
-
-class HarnessRun (Named):
- def __init__ (self, name):
- Named.__init__ (self, name)
- # Segments of text that make up the harness run, mapped by a test-based
- # key that can be used to order them.
- self.segments = dict()
- # Segments of text that make up the harness run but which have
- # no recognized test results. These are typically harnesses that
- # are completely skipped for the target.
- self.empty = []
- # A list of results. Each entry is a pair in which the first element
- # is a unique sorting key and in which the second is the full
- # PASS/FAIL line.
- self.results = []
-
- # Add a segment of text to the harness run. If the segment includes
- # test results, KEY is an example of one of them, and can be used to
- # combine the individual segments in order. If the segment has no
- # test results (e.g. because the harness doesn't do anything for the
- # current configuration) then KEY is None instead. In that case
- # just collect the segments in the order that we see them.
- def add_segment (self, key, segment):
- if key:
- assert key not in self.segments
- self.segments[key] = segment
- else:
- self.empty.append (segment)
-
-class Segment:
- def __init__ (self, filename, start):
- self.filename = filename
- self.start = start
- self.lines = 0
-
-class Prog:
- def __init__ (self):
- # The variations specified on the command line.
- self.variations = []
- # The variations seen in the input files.
- self.known_variations = set()
- # The tools specified on the command line.
- self.tools = []
- # Whether to create .sum rather than .log output.
- self.do_sum = True
- # Regexps used while parsing.
- self.test_run_re = re.compile (r'^Test Run By (\S+) on (.*)$')
- self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$')
- self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED'
- r'|WARNING|ERROR|UNSUPPORTED|UNTESTED'
- r'|KFAIL):\s*(.+)')
- self.completed_re = re.compile (r'.* completed at (.*)')
- # Pieces of text to write at the head of the output.
- # start_line is a pair in which the first element is a datetime
- # and in which the second is the associated 'Test Run By' line.
- self.start_line = None
- self.native_line = ''
- self.target_line = ''
- self.host_line = ''
- self.acats_premable = ''
- # Pieces of text to write at the end of the output.
- # end_line is like start_line but for the 'runtest completed' line.
- self.acats_failures = []
- self.version_output = ''
- self.end_line = None
- # Known summary types.
- self.count_names = [
- '# of expected passes\t\t',
- '# of unexpected failures\t',
- '# of unexpected successes\t',
- '# of expected failures\t\t',
- '# of unknown successes\t\t',
- '# of known failures\t\t',
- '# of untested testcases\t\t',
- '# of unresolved testcases\t',
- '# of unsupported tests\t\t'
- ]
- self.runs = dict()
-
- def usage (self):
- name = sys.argv[0]
- sys.stderr.write ('Usage: ' + name
- + ''' [-t tool] [-l variant-list] [-L] log-or-sum-file ...
-
- tool The tool (e.g. g++, libffi) for which to create a
- new test summary file. If not specified then output
- is created for all tools.
- variant-list One or more test variant names. If the list is
- not specified then one is constructed from all
- variants in the files for <tool>.
- sum-file A test summary file with the format of those
- created by runtest from DejaGnu.
- If -L is used, merge *.log files instead of *.sum. In this
- mode the exact order of lines may not be preserved, just different
- Running *.exp chunks should be in correct order.
-''')
- sys.exit (1)
-
- def fatal (self, what, string):
- if not what:
- what = sys.argv[0]
- sys.stderr.write (what + ': ' + string + '\n')
- sys.exit (1)
-
- # Parse the command-line arguments.
- def parse_cmdline (self):
- try:
- (options, self.files) = getopt.getopt (sys.argv[1:], 'l:t:L')
- if len (self.files) == 0:
- self.usage()
- for (option, value) in options:
- if option == '-l':
- self.variations.append (value)
- elif option == '-t':
- self.tools.append (value)
- else:
- self.do_sum = False
- except getopt.GetoptError as e:
- self.fatal (None, e.msg)
-
- # Try to parse time string TIME, returning an arbitrary time on failure.
- # Getting this right is just a nice-to-have so failures should be silent.
- def parse_time (self, time):
- try:
- return datetime.strptime (time, '%c')
- except ValueError:
- return datetime.now()
-
- # Parse an integer and abort on failure.
- def parse_int (self, filename, value):
- try:
- return int (value)
- except ValueError:
- self.fatal (filename, 'expected an integer, got: ' + value)
-
- # Return a list that represents no test results.
- def zero_counts (self):
- return [0 for x in self.count_names]
-
- # Return the ToolRun for tool NAME.
- def get_tool (self, name):
- if name not in self.runs:
- self.runs[name] = ToolRun (name)
- return self.runs[name]
-
- # Add the result counts in list FROMC to TOC.
- def accumulate_counts (self, toc, fromc):
- for i in range (len (self.count_names)):
- toc[i] += fromc[i]
-
- # Parse the list of variations after 'Schedule of variations:'.
- # Return the number seen.
- def parse_variations (self, filename, file):
- num_variations = 0
- while True:
- line = file.readline()
- if line == '':
- self.fatal (filename, 'could not parse variation list')
- if line == '\n':
- break
- self.known_variations.add (line.strip())
- num_variations += 1
- return num_variations
-
- # Parse from the first line after 'Running target ...' to the end
- # of the run's summary.
- def parse_run (self, filename, file, tool, variation, num_variations):
- header = None
- harness = None
- segment = None
- final_using = 0
-
- # If this is the first run for this variation, add any text before
- # the first harness to the header.
- if not variation.header:
- segment = Segment (filename, file.tell())
- variation.header = segment
-
- # Parse up until the first line of the summary.
- if num_variations == 1:
- end = '\t\t=== ' + tool.name + ' Summary ===\n'
- else:
- end = ('\t\t=== ' + tool.name + ' Summary for '
- + variation.name + ' ===\n')
- while True:
- line = file.readline()
- if line == '':
- self.fatal (filename, 'no recognised summary line')
- if line == end:
- break
-
- # Look for the start of a new harness.
- if line.startswith ('Running ') and line.endswith (' ...\n'):
- # Close off the current harness segment, if any.
- if harness:
- segment.lines -= final_using
- harness.add_segment (first_key, segment)
- name = line[len ('Running '):-len(' ...\n')]
- harness = variation.get_harness (name)
- segment = Segment (filename, file.tell())
- first_key = None
- final_using = 0
- continue
-
- # Record test results. Associate the first test result with
- # the harness segment, so that if a run for a particular harness
- # has been split up, we can reassemble the individual segments
- # in a sensible order.
- #
- # dejagnu sometimes issues warnings about the testing environment
- # before running any tests. Treat them as part of the header
- # rather than as a test result.
- match = self.result_re.match (line)
- if match and (harness or not line.startswith ('WARNING:')):
- if not harness:
- self.fatal (filename, 'saw test result before harness name')
- name = match.group (2)
- # Ugly hack to get the right order for gfortran.
- if name.startswith ('gfortran.dg/g77/'):
- name = 'h' + name
- key = (name, len (harness.results))
- harness.results.append ((key, line))
- if not first_key and sort_logs:
- first_key = key
-
- # 'Using ...' lines are only interesting in a header. Splitting
- # the test up into parallel runs leads to more 'Using ...' lines
- # than there would be in a single log.
- if line.startswith ('Using '):
- final_using += 1
- else:
- final_using = 0
-
- # Add other text to the current segment, if any.
- if segment:
- segment.lines += 1
-
- # Close off the final harness segment, if any.
- if harness:
- segment.lines -= final_using
- harness.add_segment (first_key, segment)
-
- # Parse the rest of the summary (the '# of ' lines).
- if len (variation.counts) == 0:
- variation.counts = self.zero_counts()
- while True:
- before = file.tell()
- line = file.readline()
- if line == '':
- break
- if line == '\n':
- continue
- if not line.startswith ('# '):
- file.seek (before)
- break
- found = False
- for i in range (len (self.count_names)):
- if line.startswith (self.count_names[i]):
- count = line[len (self.count_names[i]):-1].strip()
- variation.counts[i] += self.parse_int (filename, count)
- found = True
- break
- if not found:
- self.fatal (filename, 'unknown test result: ' + line[:-1])
-
- # Parse an acats run, which uses a different format from dejagnu.
- # We have just skipped over '=== acats configuration ==='.
- def parse_acats_run (self, filename, file):
- # Parse the preamble, which describes the configuration and logs
- # the creation of support files.
- record = (self.acats_premable == '')
- if record:
- self.acats_premable = '\t\t=== acats configuration ===\n'
- while True:
- line = file.readline()
- if line == '':
- self.fatal (filename, 'could not parse acats preamble')
- if line == '\t\t=== acats tests ===\n':
- break
- if record:
- self.acats_premable += line
-
- # Parse the test results themselves, using a dummy variation name.
- tool = self.get_tool ('acats')
- variation = tool.get_variation ('none')
- self.parse_run (filename, file, tool, variation, 1)
-
- # Parse the failure list.
- while True:
- before = file.tell()
- line = file.readline()
- if line.startswith ('*** FAILURES: '):
- self.acats_failures.append (line[len ('*** FAILURES: '):-1])
- continue
- file.seek (before)
- break
-
- # Parse the final summary at the end of a log in order to capture
- # the version output that follows it.
- def parse_final_summary (self, filename, file):
- record = (self.version_output == '')
- while True:
- line = file.readline()
- if line == '':
- break
- if line.startswith ('# of '):
- continue
- if record:
- self.version_output += line
- if line == '\n':
- break
-
- # Parse a .log or .sum file.
- def parse_file (self, filename, file):
- tool = None
- target = None
- num_variations = 1
- while True:
- line = file.readline()
- if line == '':
- return
-
- # Parse the list of variations, which comes before the test
- # runs themselves.
- if line.startswith ('Schedule of variations:'):
- num_variations = self.parse_variations (filename, file)
- continue
-
- # Parse a testsuite run for one tool/variation combination.
- if line.startswith ('Running target '):
- name = line[len ('Running target '):-1]
- if not tool:
- self.fatal (filename, 'could not parse tool name')
- if name not in self.known_variations:
- self.fatal (filename, 'unknown target: ' + name)
- self.parse_run (filename, file, tool,
- tool.get_variation (name),
- num_variations)
- # If there is only one variation then there is no separate
- # summary for it. Record any following version output.
- if num_variations == 1:
- self.parse_final_summary (filename, file)
- continue
-
- # Parse the start line. In the case where several files are being
- # parsed, pick the one with the earliest time.
- match = self.test_run_re.match (line)
- if match:
- time = self.parse_time (match.group (2))
- if not self.start_line or self.start_line[0] > time:
- self.start_line = (time, line)
- continue
-
- # Parse the form used for native testing.
- if line.startswith ('Native configuration is '):
- self.native_line = line
- continue
-
- # Parse the target triplet.
- if line.startswith ('Target is '):
- self.target_line = line
- continue
-
- # Parse the host triplet.
- if line.startswith ('Host is '):
- self.host_line = line
- continue
-
- # Parse the acats premable.
- if line == '\t\t=== acats configuration ===\n':
- self.parse_acats_run (filename, file)
- continue
-
- # Parse the tool name.
- match = self.tool_re.match (line)
- if match:
- tool = self.get_tool (match.group (1))
- continue
-
- # Skip over the final summary (which we instead create from
- # individual runs) and parse the version output.
- if tool and line == '\t\t=== ' + tool.name + ' Summary ===\n':
- if file.readline() != '\n':
- self.fatal (filename, 'expected blank line after summary')
- self.parse_final_summary (filename, file)
- continue
-
- # Parse the completion line. In the case where several files
- # are being parsed, pick the one with the latest time.
- match = self.completed_re.match (line)
- if match:
- time = self.parse_time (match.group (1))
- if not self.end_line or self.end_line[0] < time:
- self.end_line = (time, line)
- continue
-
- # Sanity check to make sure that important text doesn't get
- # dropped accidentally.
- if strict and line.strip() != '':
- self.fatal (filename, 'unrecognised line: ' + line[:-1])
-
- # Output a segment of text.
- def output_segment (self, segment):
- with safe_open (segment.filename) as file:
- file.seek (segment.start)
- for i in range (segment.lines):
- sys.stdout.write (file.readline())
-
- # Output a summary giving the number of times each type of result has
- # been seen.
- def output_summary (self, tool, counts):
- for i in range (len (self.count_names)):
- name = self.count_names[i]
- # dejagnu only prints result types that were seen at least once,
- # but acats always prints a number of unexpected failures.
- if (counts[i] > 0
- or (tool.name == 'acats'
- and name.startswith ('# of unexpected failures'))):
- sys.stdout.write ('%s%d\n' % (name, counts[i]))
-
- # Output unified .log or .sum information for a particular variation,
- # with a summary at the end.
- def output_variation (self, tool, variation):
- self.output_segment (variation.header)
- for harness in sorted (variation.harnesses.values(),
- key = attrgetter ('name')):
- sys.stdout.write ('Running ' + harness.name + ' ...\n')
- if self.do_sum:
- harness.results.sort()
- for (key, line) in harness.results:
- sys.stdout.write (line)
- else:
- # Rearrange the log segments into test order (but without
- # rearranging text within those segments).
- for key in sorted (harness.segments.keys()):
- self.output_segment (harness.segments[key])
- for segment in harness.empty:
- self.output_segment (segment)
- if len (self.variations) > 1:
- sys.stdout.write ('\t\t=== ' + tool.name + ' Summary for '
- + variation.name + ' ===\n\n')
- self.output_summary (tool, variation.counts)
-
- # Output unified .log or .sum information for a particular tool,
- # with a summary at the end.
- def output_tool (self, tool):
- counts = self.zero_counts()
- if tool.name == 'acats':
- # acats doesn't use variations, so just output everything.
- # It also has a different approach to whitespace.
- sys.stdout.write ('\t\t=== ' + tool.name + ' tests ===\n')
- for variation in tool.variations.values():
- self.output_variation (tool, variation)
- self.accumulate_counts (counts, variation.counts)
- sys.stdout.write ('\t\t=== ' + tool.name + ' Summary ===\n')
- else:
- # Output the results in the usual dejagnu runtest format.
- sys.stdout.write ('\n\t\t=== ' + tool.name + ' tests ===\n\n'
- 'Schedule of variations:\n')
- for name in self.variations:
- if name in tool.variations:
- sys.stdout.write (' ' + name + '\n')
- sys.stdout.write ('\n')
- for name in self.variations:
- if name in tool.variations:
- variation = tool.variations[name]
- sys.stdout.write ('Running target '
- + variation.name + '\n')
- self.output_variation (tool, variation)
- self.accumulate_counts (counts, variation.counts)
- sys.stdout.write ('\n\t\t=== ' + tool.name + ' Summary ===\n\n')
- self.output_summary (tool, counts)
-
- def main (self):
- self.parse_cmdline()
- try:
- # Parse the input files.
- for filename in self.files:
- with safe_open (filename) as file:
- self.parse_file (filename, file)
-
- # Decide what to output.
- if len (self.variations) == 0:
- self.variations = sorted (self.known_variations)
- else:
- for name in self.variations:
- if name not in self.known_variations:
- self.fatal (None, 'no results for ' + name)
- if len (self.tools) == 0:
- self.tools = sorted (self.runs.keys())
-
- # Output the header.
- if self.start_line:
- sys.stdout.write (self.start_line[1])
- sys.stdout.write (self.native_line)
- sys.stdout.write (self.target_line)
- sys.stdout.write (self.host_line)
- sys.stdout.write (self.acats_premable)
-
- # Output the main body.
- for name in self.tools:
- if name not in self.runs:
- self.fatal (None, 'no results for ' + name)
- self.output_tool (self.runs[name])
-
- # Output the footer.
- if len (self.acats_failures) > 0:
- sys.stdout.write ('*** FAILURES: '
- + ' '.join (self.acats_failures) + '\n')
- sys.stdout.write (self.version_output)
- if self.end_line:
- sys.stdout.write (self.end_line[1])
- except IOError as e:
- self.fatal (e.filename, e.strerror)
-
-Prog().main()

View File

@ -1,53 +0,0 @@
http://sourceware.org/ml/gdb-patches/2015-01/msg00110.html
Subject: [testsuite patch] Fix new FAIL: py-frame.exp: test Frame.read_register(rip)
--/04w6evG8XlLl3ft
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
for x86_64 -m32 run one gets:
+FAIL: gdb.python/py-frame.exp: test Frame.read_register(rip)
I do not have x32 OS here but the %rip test should PASS there I think.
OK for check-in?
The code is there since:
commit 5f3b99cfed3803f0b099152f54aac7cb90a2b926
Author: Sasha Smundak <asmundak@google.com>
Date: Wed Sep 3 16:34:47 2014 -0700
Add support for reading frame registers to Python API.
Jan
--/04w6evG8XlLl3ft
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/testsuite/
2015-01-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.python/py-frame.exp (test Frame.read_register(rip)): Use
is_amd64_regs_target.
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
index bf2e1ce..984acfc 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -106,7 +106,7 @@ gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.pc()))" \
"test Frame.read_register(pc)"
# On x86-64, PC is in $rip register.
-if {[istarget x86_64-*]} {
+if {[is_amd64_regs_target]} {
gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.read_register('rip')))" \
" = True" \
"test Frame.read_register(rip)"
--/04w6evG8XlLl3ft--

File diff suppressed because it is too large Load Diff

View File

@ -1,349 +0,0 @@
Date: Thu, 2 Oct 2014 17:56:53 +0200
From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
To: Doug Evans <dje at google dot com>
Cc: gdb-patches at sourceware dot org
Subject: [patchv2] Fix 100x slowdown regression on DWZ files
Message-ID: <20141002155653.GA9001@host2.jankratochvil.net>
--cNdxnHkX5QqsyA0e
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Thu, 02 Oct 2014 01:51:38 +0200, Doug Evans wrote:
> I tested this patch with --target_board=dwarf4-gdb-index
> and got a failure in m-static.exp:
That is particularly with -fdebug-types-section.
> Type units read the line table in a separate path,
OK, therefore I dropped that separate struct dwarf2_lineinfo
and reused struct line_header instead.
> OTOH, I do want to avoid any confusion that this patch may inadvertently
> introduce. For example, IIUC with your patch as is,
> if we read a partial_unit first, before a compile_unit
> that has the same stmt_list value, we'll do more processing in
> dwarf_decode_lines than we really need to since we only need a file
> number to symtab mapping. And if we later read in a compile_unit
> with the same stmt_value we'll call dwarf_decode_lines again,
> and this time we need the pc/line mapping it computes.
> Whereas if we process these in the opposite order we'll only call
> dwarf_decode_lines once. I'm sure this will be confusing at first
> to some later developer going through this code.
> [I could be missing something of course, and I'm happy for any corrections.]
Implemented (omitting some story why I did not include it before).
> The code that processes stmt_list for type_units is in setup_type_unit_groups.
> Note that this code goes to the trouble of re-initializing the buildsym
> machinery (see the calls to restart_symtab in dwarf2read.c) when we process
> the second and subsequent type units that share a stmt_list value.
> This is something that used to be done before your patch and will no
> longer be done with your patch (since if we get a cache hit we exit).
> It may be that the type_unit support is doing this unnecessarily,
> which would be great because we can then simplify it.
I hope this patch should no longer break -fdebug-types-section.
If it additionally enables some future optimization for -fdebug-types-section
the better.
> > + /* Offset of line number information in .debug_line section. */
> > + sect_offset offset;
> > + unsigned offset_in_dwz : 1;
>
> IWBN to document why offset_in_dwz is here.
> It's not obvious why it's needed.
+
On Thu, 02 Oct 2014 01:57:03 +0200, Doug Evans wrote:
> Ah, I guess the offset_in_dwz flag will ensure dwarf_decode_lines gets called
> twice regardless of order. But is that the only reason for the flag?
I have added there now:
+ /* OFFSET is for struct dwz_file associated with dwarf2_per_objfile. */
If one removes it regressions really happen. What happens is that this
line_header_hash (former lineinfo_hash) is in struct dwarf2_per_objfile which
is common for both objfile and its objfile.dwz (that one is normally in
/usr/lib/debug/.dwz/ - common for multiple objfiles). And there are two
different DIEs at offset 0xb - one in objfile and one in objfile.dwz - which
would match single line_header if offset_in_dwz was not there.
Also existing dwarf2read.c code usually transfers "dwz flag" together with DIE
offset, such as:
dwarf2_find_containing_comp_unit (sect_offset offset,
unsigned int offset_in_dwz,
struct objfile *objfile)
This reminds me - why doesn't similar ambiguity happen also for dwp_file?
I am unfortunately not much aware of the dwp implementation details.
> > - struct line_header *line_header
> > - = dwarf_decode_line_header (line_offset, cu);
> > + dwarf2_per_objfile->lineinfo_hash =
>
> As much as I prefer "=" going here, convention says to put it on the
> next line.
I have changed it but this was just blind copy from existing line 21818.
> > + htab_create_alloc_ex (127, dwarf2_lineinfo_hash, dwarf2_lineinfo_eq,
>
> I don't have any data, but 127 seems high.
I have not changed it but this was just blind copy from existing line 21818.
> I wouldn't change it, I just wanted to ask if you have any data
> guiding this choice.
Tuning some constants really makes no sense when GDB has missing + insanely
complicated data structures and in consequence GDB is using inappropriate data
structures with bad algorithmic complexity. One needs to switch GDB to C++
and its STL before one can start talking about data structures performance.
No regressions on {x86_64,x86_64-m32,i686}-fedora20-linux-gnu in DWZ mode and
in -fdebug-types-section mode.
Thanks,
Jan
--cNdxnHkX5QqsyA0e
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename="partialunit5.patch"
gdb/
2014-10-02 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix 100x slowdown regression on DWZ files.
* dwarf2read.c (struct dwarf2_per_objfile): Add line_header_hash.
(struct line_header): Add offset and offset_in_dwz.
(dwarf_decode_lines): Add parameter decode_mapping to the declaration.
(free_line_header_voidp): New declaration.
(line_header_hash, line_header_eq): New functions.
(dwarf2_build_include_psymtabs): Update dwarf_decode_lines caller.
(handle_DW_AT_stmt_list): Use dwarf2_per_objfile->line_header_hash.
(free_line_header_voidp): New function.
(dwarf_decode_line_header): Initialize offset and offset_in_dwz.
(dwarf_decode_lines): New parameter decode_mapping, use it.
Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
===================================================================
--- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c 2015-01-05 22:45:32.823240453 +0100
+++ gdb-7.8.50.20141228/gdb/dwarf2read.c 2015-01-05 22:49:35.270332647 +0100
@@ -309,6 +309,9 @@ struct dwarf2_per_objfile
/* The CUs we recently read. */
VEC (dwarf2_per_cu_ptr) *just_read_cus;
+
+ /* Table containing line_header indexed by offset and offset_in_dwz. */
+ htab_t line_header_hash;
};
static struct dwarf2_per_objfile *dwarf2_per_objfile;
@@ -1025,6 +1028,12 @@ typedef void (die_reader_func_ftype) (co
which contains the following information. */
struct line_header
{
+ /* Offset of line number information in .debug_line section. */
+ sect_offset offset;
+
+ /* OFFSET is for struct dwz_file associated with dwarf2_per_objfile. */
+ unsigned offset_in_dwz : 1;
+
unsigned int total_length;
unsigned short version;
unsigned int header_length;
@@ -1513,7 +1522,7 @@ static struct line_header *dwarf_decode_
static void dwarf_decode_lines (struct line_header *, const char *,
struct dwarf2_cu *, struct partial_symtab *,
- CORE_ADDR);
+ CORE_ADDR, int decode_mapping);
static void dwarf2_start_subfile (const char *, const char *);
@@ -2057,6 +2066,8 @@ get_section_file_name (const struct dwar
/* Return the id of SECTION.
Returns 0 if SECTION doesn't exist. */
+static void free_line_header_voidp (void *arg);
+
static int
get_section_id (const struct dwarf2_section_info *section)
{
@@ -2461,6 +2472,29 @@ dwarf2_get_dwz_file (void)
dwarf2_per_objfile->dwz_file = result;
return result;
}
+
+/* Hash function for line_header_hash. */
+
+static hashval_t
+line_header_hash (const void *item)
+{
+ const struct line_header *ofs = item;
+
+ return ofs->offset.sect_off ^ ofs->offset_in_dwz;
+}
+
+/* Equality function for line_header_hash. */
+
+static int
+line_header_eq (const void *item_lhs, const void *item_rhs)
+{
+ const struct line_header *ofs_lhs = item_lhs;
+ const struct line_header *ofs_rhs = item_rhs;
+
+ return (ofs_lhs->offset.sect_off == ofs_rhs->offset.sect_off
+ && ofs_lhs->offset_in_dwz == ofs_rhs->offset_in_dwz);
+}
+
/* DWARF quick_symbols_functions support. */
@@ -4454,7 +4488,7 @@ dwarf2_build_include_psymtabs (struct dw
return; /* No linetable, so no includes. */
/* NOTE: pst->dirname is DW_AT_comp_dir (if present). */
- dwarf_decode_lines (lh, pst->dirname, cu, pst, pst->textlow);
+ dwarf_decode_lines (lh, pst->dirname, cu, pst, pst->textlow, 1);
free_line_header (lh);
}
@@ -9002,24 +9036,64 @@ static void
handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu,
const char *comp_dir, CORE_ADDR lowpc) /* ARI: editCase function */
{
+ struct objfile *objfile = dwarf2_per_objfile->objfile;
struct attribute *attr;
+ unsigned int line_offset;
+ struct line_header *line_header, line_header_local;
+ unsigned u;
+ void **slot;
+ int decode_mapping;
gdb_assert (! cu->per_cu->is_debug_types);
attr = dwarf2_attr (die, DW_AT_stmt_list, cu);
- if (attr)
+ if (attr == NULL)
+ return;
+
+ line_offset = DW_UNSND (attr);
+
+ if (dwarf2_per_objfile->line_header_hash == NULL)
{
- unsigned int line_offset = DW_UNSND (attr);
- struct line_header *line_header
- = dwarf_decode_line_header (line_offset, cu);
-
- if (line_header)
- {
- cu->line_header = line_header;
- make_cleanup (free_cu_line_header, cu);
- dwarf_decode_lines (line_header, comp_dir, cu, NULL, lowpc);
- }
+ dwarf2_per_objfile->line_header_hash
+ = htab_create_alloc_ex (127, line_header_hash, line_header_eq,
+ free_line_header_voidp,
+ &objfile->objfile_obstack,
+ hashtab_obstack_allocate,
+ dummy_obstack_deallocate);
+ }
+
+ line_header_local.offset.sect_off = line_offset;
+ line_header_local.offset_in_dwz = cu->per_cu->is_dwz;
+ slot = htab_find_slot (dwarf2_per_objfile->line_header_hash,
+ &line_header_local, NO_INSERT);
+
+ /* For DW_TAG_compile_unit we need info like symtab::linetable which
+ is not present in *SLOT. */
+ if (die->tag == DW_TAG_partial_unit && slot != NULL)
+ {
+ gdb_assert (*slot != NULL);
+ cu->line_header = *slot;
+ return;
+ }
+
+ line_header = dwarf_decode_line_header (line_offset, cu);
+ if (line_header == NULL)
+ return;
+ cu->line_header = line_header;
+
+ slot = htab_find_slot (dwarf2_per_objfile->line_header_hash,
+ &line_header_local, INSERT);
+ gdb_assert (slot != NULL);
+ if (*slot == NULL)
+ *slot = line_header;
+ else
+ {
+ gdb_assert (die->tag != DW_TAG_partial_unit);
+ make_cleanup (free_cu_line_header, cu);
}
+ decode_mapping = (die->tag != DW_TAG_partial_unit);
+ dwarf_decode_lines (line_header, comp_dir, cu, NULL, lowpc,
+ decode_mapping);
}
/* Process DW_TAG_compile_unit or DW_TAG_partial_unit. */
@@ -16917,6 +16991,16 @@ free_line_header (struct line_header *lh
xfree (lh);
}
+/* Stub for free_line_header to match void * callback types. */
+
+static void
+free_line_header_voidp (void *arg)
+{
+ struct line_header *lh = arg;
+
+ free_line_header (lh);
+}
+
/* Add an entry to LH's include directory table. */
static void
@@ -17047,6 +17131,9 @@ dwarf_decode_line_header (unsigned int o
back_to = make_cleanup ((make_cleanup_ftype *) free_line_header,
(void *) lh);
+ lh->offset.sect_off = offset;
+ lh->offset_in_dwz = cu->per_cu->is_dwz;
+
line_ptr = section->buffer + offset;
/* Read in the header. */
@@ -17674,17 +17761,22 @@ dwarf_decode_lines_1 (struct line_header
E.g. expand_line_sal requires this when finding psymtabs to expand.
A good testcase for this is mb-inline.exp.
- LOWPC is the lowest address in CU (or 0 if not known). */
+ LOWPC is the lowest address in CU (or 0 if not known).
+
+ Boolean DECODE_MAPPING specifies we need to fully decode .debug_line
+ for its PC<->lines mapping information. Otherwise only filenames
+ tables is read in. */
static void
dwarf_decode_lines (struct line_header *lh, const char *comp_dir,
struct dwarf2_cu *cu, struct partial_symtab *pst,
- CORE_ADDR lowpc)
+ CORE_ADDR lowpc, int decode_mapping)
{
struct objfile *objfile = cu->objfile;
const int decode_for_pst_p = (pst != NULL);
- dwarf_decode_lines_1 (lh, cu, decode_for_pst_p, lowpc);
+ if (decode_mapping)
+ dwarf_decode_lines_1 (lh, cu, decode_for_pst_p, lowpc);
if (decode_for_pst_p)
{

View File

@ -1,151 +0,0 @@
-R for 85880250e591a51624d24db653aaace0c5ce5943
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=85880250e591a51624d24db653aaace0c5ce5943;hp=fce10a8494efa8faec
[buildbot] GDB regression on 85880250e591a51624d24db653aaace0c5ce5943
https://sourceware.org/ml/binutils/2015-01/msg00044.html
diff --git a/bfd/coff-i860.c b/bfd/coff-i860.c
index 8573a8d..2122c0d 100644
--- a/bfd/coff-i860.c
+++ b/bfd/coff-i860.c
@@ -467,10 +467,7 @@ static reloc_howto_type howto_table[] =
FIXME: This macro refers to symbols and asect; these are from the
calling function, not the macro arguments. */
-/* PR 17512: file: 0a38fb7c
- Set an addend value, even if it is not going to be used. A tool
- like coffdump might be used to print out the contents of the reloc. */
-#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) (cache_ptr)->addend = 0
+#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr)
/* We use the special COFF backend linker. */
#define coff_relocate_section _bfd_coff_generic_relocate_section
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index 9444117..969b812 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -267,7 +267,7 @@ typedef struct tekhex_data_struct
#define enda(x) (x->vma + x->size)
static bfd_boolean
-getvalue (char **srcp, bfd_vma *valuep, char * endp)
+getvalue (char **srcp, bfd_vma *valuep)
{
char *src = *srcp;
bfd_vma value = 0;
@@ -279,7 +279,7 @@ getvalue (char **srcp, bfd_vma *valuep, char * endp)
len = hex_value (*src++);
if (len == 0)
len = 16;
- while (len-- && src < endp)
+ while (len--)
{
if (!ISHEX (*src))
return FALSE;
@@ -288,11 +288,11 @@ getvalue (char **srcp, bfd_vma *valuep, char * endp)
*srcp = src;
*valuep = value;
- return len == 0;
+ return TRUE;
}
static bfd_boolean
-getsym (char *dstp, char **srcp, unsigned int *lenp, char * endp)
+getsym (char *dstp, char **srcp, unsigned int *lenp)
{
char *src = *srcp;
unsigned int i;
@@ -304,7 +304,7 @@ getsym (char *dstp, char **srcp, unsigned int *lenp, char * endp)
len = hex_value (*src++);
if (len == 0)
len = 16;
- for (i = 0; i < len && src < endp; i++)
+ for (i = 0; i < len; i++)
dstp[i] = src[i];
dstp[i] = 0;
*srcp = src + i;
@@ -354,7 +354,7 @@ insert_byte (bfd *abfd, int value, bfd_vma addr)
how big the data is. */
static bfd_boolean
-first_phase (bfd *abfd, int type, char *src, char * src_end)
+first_phase (bfd *abfd, int type, char *src)
{
asection *section, *alt_section;
unsigned int len;
@@ -368,21 +368,21 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
{
bfd_vma addr;
- if (!getvalue (&src, &addr, src_end))
+ if (!getvalue (&src, &addr))
return FALSE;
- while (*src && src < src_end - 1)
+ while (*src)
{
insert_byte (abfd, HEX (src), addr);
src += 2;
addr++;
}
- return TRUE;
}
+ return TRUE;
case '3':
/* Symbol record, read the segment. */
- if (!getsym (sym, &src, &len, src_end))
+ if (!getsym (sym, &src, &len))
return FALSE;
section = bfd_get_section_by_name (abfd, sym);
if (section == NULL)
@@ -403,9 +403,9 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
{
case '1': /* Section range. */
src++;
- if (!getvalue (&src, &section->vma, src_end))
+ if (!getvalue (&src, &section->vma))
return FALSE;
- if (!getvalue (&src, &val, src_end))
+ if (!getvalue (&src, &val))
return FALSE;
section->size = val - section->vma;
section->flags = SEC_HAS_CONTENTS | SEC_LOAD | SEC_ALLOC;
@@ -432,7 +432,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
abfd->flags |= HAS_SYMS;
new_symbol->prev = abfd->tdata.tekhex_data->symbols;
abfd->tdata.tekhex_data->symbols = new_symbol;
- if (!getsym (sym, &src, &len, src_end))
+ if (!getsym (sym, &src, &len))
return FALSE;
new_symbol->symbol.name = (const char *)
bfd_alloc (abfd, (bfd_size_type) len + 1);
@@ -480,7 +480,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
new_symbol->symbol.section = alt_section;
}
}
- if (!getvalue (&src, &val, src_end))
+ if (!getvalue (&src, &val))
return FALSE;
new_symbol->symbol.value = val - section->vma;
break;
@@ -498,7 +498,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
record. */
static bfd_boolean
-pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *, char *))
+pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *))
{
unsigned int chars_on_line;
bfd_boolean is_eof = FALSE;
@@ -539,7 +539,8 @@ pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *, char *))
/* Put a null at the end. */
src[chars_on_line] = 0;
- if (!func (abfd, type, src, src + chars_on_line))
+
+ if (!func (abfd, type, src))
return FALSE;
}

View File

@ -6,10 +6,10 @@ GIT snapshot:
commit 511bff520372ffc10fa2ff569c176bdf1e6e475d commit 511bff520372ffc10fa2ff569c176bdf1e6e475d
Index: gdb-7.8.50.20141228/gdb/c-valprint.c Index: gdb-7.8.90.20150126/gdb/c-valprint.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/c-valprint.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/c-valprint.c 2015-01-26 07:47:25.832758314 +0100
+++ gdb-7.8.50.20141228/gdb/c-valprint.c 2015-01-06 23:03:07.424684753 +0100 +++ gdb-7.8.90.20150126/gdb/c-valprint.c 2015-01-26 07:47:42.394829861 +0100
@@ -537,7 +537,16 @@ c_value_print (struct value *val, struct @@ -537,7 +537,16 @@ c_value_print (struct value *val, struct
{ {
/* normal case */ /* normal case */
@ -28,10 +28,10 @@ Index: gdb-7.8.50.20141228/gdb/c-valprint.c
fprintf_filtered (stream, ") "); fprintf_filtered (stream, ") ");
} }
} }
Index: gdb-7.8.50.20141228/gdb/dwarf2loc.h Index: gdb-7.8.90.20150126/gdb/dwarf2loc.h
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/dwarf2loc.h 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/dwarf2loc.h 2015-01-26 07:47:25.832758314 +0100
+++ gdb-7.8.50.20141228/gdb/dwarf2loc.h 2015-01-06 23:03:07.424684753 +0100 +++ gdb-7.8.90.20150126/gdb/dwarf2loc.h 2015-01-26 07:47:42.395829865 +0100
@@ -111,6 +111,11 @@ int dwarf2_evaluate_property (const stru @@ -111,6 +111,11 @@ int dwarf2_evaluate_property (const stru
CORE_ADDR address, CORE_ADDR address,
CORE_ADDR *value); CORE_ADDR *value);
@ -44,14 +44,14 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2loc.h
/* A helper for the compiler interface that compiles a single dynamic /* A helper for the compiler interface that compiles a single dynamic
property to C code. property to C code.
Index: gdb-7.8.50.20141228/gdb/dwarf2read.c Index: gdb-7.8.90.20150126/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/dwarf2read.c 2015-01-26 07:47:25.845758371 +0100
+++ gdb-7.8.50.20141228/gdb/dwarf2read.c 2015-01-06 23:04:09.691986881 +0100 +++ gdb-7.8.90.20150126/gdb/dwarf2read.c 2015-01-26 07:48:05.833931116 +0100
@@ -1844,6 +1844,12 @@ static void free_dwo_file_cleanup (void @@ -1855,6 +1855,12 @@ static void process_cu_includes (void);
static void process_cu_includes (void);
static void check_producer (struct dwarf2_cu *cu); static void check_producer (struct dwarf2_cu *cu);
static void free_line_header_voidp (void *arg);
+ +
+static int +static int
+attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, +attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@ -61,7 +61,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
/* Various complaints about symbol reading that don't abort the process. */ /* Various complaints about symbol reading that don't abort the process. */
@@ -14241,29 +14247,92 @@ read_tag_string_type (struct die_info *d @@ -14354,29 +14360,92 @@ read_tag_string_type (struct die_info *d
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type; struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr; struct attribute *attr;
@ -161,7 +161,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
char_type = language_string_char_type (cu->language_defn, gdbarch); char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type); type = create_string_type (NULL, char_type, range_type);
@@ -14580,13 +14649,15 @@ read_base_type (struct die_info *die, st @@ -14693,13 +14762,15 @@ read_base_type (struct die_info *die, st
return set_die_type (die, type, cu); return set_die_type (die, type, cu);
} }
@ -178,7 +178,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
{ {
struct dwarf2_property_baton *baton; struct dwarf2_property_baton *baton;
struct obstack *obstack = &cu->objfile->objfile_obstack; struct obstack *obstack = &cu->objfile->objfile_obstack;
@@ -14599,8 +14670,25 @@ attr_to_dynamic_prop (const struct attri @@ -14712,8 +14783,25 @@ attr_to_dynamic_prop (const struct attri
baton = obstack_alloc (obstack, sizeof (*baton)); baton = obstack_alloc (obstack, sizeof (*baton));
baton->referenced_type = NULL; baton->referenced_type = NULL;
baton->locexpr.per_cu = cu->per_cu; baton->locexpr.per_cu = cu->per_cu;
@ -206,7 +206,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
prop->data.baton = baton; prop->data.baton = baton;
prop->kind = PROP_LOCEXPR; prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL); gdb_assert (prop->data.baton != NULL);
@@ -14630,8 +14718,28 @@ attr_to_dynamic_prop (const struct attri @@ -14743,8 +14831,28 @@ attr_to_dynamic_prop (const struct attri
baton = obstack_alloc (obstack, sizeof (*baton)); baton = obstack_alloc (obstack, sizeof (*baton));
baton->referenced_type = die_type (target_die, target_cu); baton->referenced_type = die_type (target_die, target_cu);
baton->locexpr.per_cu = cu->per_cu; baton->locexpr.per_cu = cu->per_cu;
@ -237,7 +237,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
prop->data.baton = baton; prop->data.baton = baton;
prop->kind = PROP_LOCEXPR; prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL); gdb_assert (prop->data.baton != NULL);
@@ -14666,7 +14774,7 @@ read_subrange_type (struct die_info *die @@ -14779,7 +14887,7 @@ read_subrange_type (struct die_info *die
struct type *base_type, *orig_base_type; struct type *base_type, *orig_base_type;
struct type *range_type; struct type *range_type;
struct attribute *attr; struct attribute *attr;
@ -246,7 +246,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
int low_default_is_valid; int low_default_is_valid;
int high_bound_is_count = 0; int high_bound_is_count = 0;
const char *name; const char *name;
@@ -14686,7 +14794,9 @@ read_subrange_type (struct die_info *die @@ -14799,7 +14907,9 @@ read_subrange_type (struct die_info *die
low.kind = PROP_CONST; low.kind = PROP_CONST;
high.kind = PROP_CONST; high.kind = PROP_CONST;
@ -256,7 +256,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
/* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
omitting DW_AT_lower_bound. */ omitting DW_AT_lower_bound. */
@@ -14719,19 +14829,26 @@ read_subrange_type (struct die_info *die @@ -14832,19 +14942,26 @@ read_subrange_type (struct die_info *die
break; break;
} }
@ -286,7 +286,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
{ {
/* If bounds are constant do the final calculation here. */ /* If bounds are constant do the final calculation here. */
if (low.kind == PROP_CONST && high.kind == PROP_CONST) if (low.kind == PROP_CONST && high.kind == PROP_CONST)
@@ -14795,7 +14912,7 @@ read_subrange_type (struct die_info *die @@ -14908,7 +15025,7 @@ read_subrange_type (struct die_info *die
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask)) && !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
high.data.const_val |= negative_mask; high.data.const_val |= negative_mask;
@ -295,7 +295,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
if (high_bound_is_count) if (high_bound_is_count)
TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1; TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
@@ -21860,7 +21977,44 @@ set_die_type (struct die_info *die, stru @@ -21994,7 +22111,44 @@ set_die_type (struct die_info *die, stru
/* Read DW_AT_data_location and set in type. */ /* Read DW_AT_data_location and set in type. */
attr = dwarf2_attr (die, DW_AT_data_location, cu); attr = dwarf2_attr (die, DW_AT_data_location, cu);
@ -341,10 +341,10 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
{ {
TYPE_DATA_LOCATION (type) TYPE_DATA_LOCATION (type)
= obstack_alloc (&objfile->objfile_obstack, sizeof (prop)); = obstack_alloc (&objfile->objfile_obstack, sizeof (prop));
Index: gdb-7.8.50.20141228/gdb/f-typeprint.c Index: gdb-7.8.90.20150126/gdb/f-typeprint.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/f-typeprint.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/f-typeprint.c 2015-01-26 07:47:25.846758375 +0100
+++ gdb-7.8.50.20141228/gdb/f-typeprint.c 2015-01-06 23:03:07.428684772 +0100 +++ gdb-7.8.90.20150126/gdb/f-typeprint.c 2015-01-26 07:47:42.402829895 +0100
@@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
#include "gdbcore.h" #include "gdbcore.h"
#include "target.h" #include "target.h"
@ -429,10 +429,10 @@ Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
if (arrayprint_recurse_level == 1) if (arrayprint_recurse_level == 1)
fprintf_filtered (stream, ")"); fprintf_filtered (stream, ")");
else else
Index: gdb-7.8.50.20141228/gdb/f-valprint.c Index: gdb-7.8.90.20150126/gdb/f-valprint.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/f-valprint.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/f-valprint.c 2015-01-26 07:47:25.847758379 +0100
+++ gdb-7.8.50.20141228/gdb/f-valprint.c 2015-01-06 23:03:07.428684772 +0100 +++ gdb-7.8.90.20150126/gdb/f-valprint.c 2015-01-26 07:47:42.403829900 +0100
@@ -36,8 +36,6 @@ @@ -36,8 +36,6 @@
extern void _initialize_f_valprint (void); extern void _initialize_f_valprint (void);
@ -619,10 +619,10 @@ Index: gdb-7.8.50.20141228/gdb/f-valprint.c
if (index != TYPE_NFIELDS (type) - 1) if (index != TYPE_NFIELDS (type) - 1)
fputs_filtered (", ", stream); fputs_filtered (", ", stream);
} }
Index: gdb-7.8.50.20141228/gdb/gdbtypes.c Index: gdb-7.8.90.20150126/gdb/gdbtypes.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/gdbtypes.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/gdbtypes.c 2015-01-26 07:47:25.850758392 +0100
+++ gdb-7.8.50.20141228/gdb/gdbtypes.c 2015-01-06 23:03:07.429684777 +0100 +++ gdb-7.8.90.20150126/gdb/gdbtypes.c 2015-01-26 07:47:42.404829904 +0100
@@ -815,7 +815,8 @@ allocate_stub_method (struct type *type) @@ -815,7 +815,8 @@ allocate_stub_method (struct type *type)
struct type * struct type *
create_range_type (struct type *result_type, struct type *index_type, create_range_type (struct type *result_type, struct type *index_type,
@ -946,10 +946,10 @@ Index: gdb-7.8.50.20141228/gdb/gdbtypes.c
return new_type; return new_type;
} }
Index: gdb-7.8.50.20141228/gdb/gdbtypes.h Index: gdb-7.8.90.20150126/gdb/gdbtypes.h
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/gdbtypes.h 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/gdbtypes.h 2015-01-26 07:47:25.852758401 +0100
+++ gdb-7.8.50.20141228/gdb/gdbtypes.h 2015-01-06 23:03:07.429684777 +0100 +++ gdb-7.8.90.20150126/gdb/gdbtypes.h 2015-01-26 07:47:42.405829908 +0100
@@ -660,6 +660,10 @@ struct main_type @@ -660,6 +660,10 @@ struct main_type
struct dynamic_prop high; struct dynamic_prop high;
@ -1038,10 +1038,10 @@ Index: gdb-7.8.50.20141228/gdb/gdbtypes.h
const struct dynamic_prop *); const struct dynamic_prop *);
extern struct type *create_array_type (struct type *, struct type *, extern struct type *create_array_type (struct type *, struct type *,
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp 2015-01-06 23:03:07.429684777 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp 2015-01-26 07:47:42.405829908 +0100
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1108,10 +1108,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
+gdb_continue_to_breakpoint "vla2-deallocated" +gdb_continue_to_breakpoint "vla2-deallocated"
+gdb_test "print l" " = \\.FALSE\\." "print vla2 deallocated" +gdb_test "print l" " = \\.FALSE\\." "print vla2 deallocated"
+gdb_test "print vla2" " = <not allocated>" "print deallocated vla2" +gdb_test "print vla2" " = <not allocated>" "print deallocated vla2"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.exp 2015-01-06 23:03:07.429684777 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.exp 2015-01-26 07:47:42.405829908 +0100
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1195,10 +1195,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.exp
+ "print logicalvla(5,5,5) (2nd)" + "print logicalvla(5,5,5) (2nd)"
+gdb_test "print charactervla(5,5,5)" " = 'X'" \ +gdb_test "print charactervla(5,5,5)" " = 'X'" \
+ "print charactervla(5,5,5) (2nd)" + "print charactervla(5,5,5) (2nd)"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.f90 2015-01-06 23:03:07.429684777 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.f90 2015-01-26 07:47:42.405829908 +0100
@@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -1251,10 +1251,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.f90
+ ! dummy statement for bp + ! dummy statement for bp
+ l = .FALSE. ! vlas-modified + l = .FALSE. ! vlas-modified
+end program vla_primitives +end program vla_primitives
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.exp 2015-01-26 07:47:42.406829913 +0100
@@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1317,10 +1317,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.exp
+ "print vla3 (after func2)" + "print vla3 (after func2)"
+gdb_test "ptype vla3" "type = integer\\\(kind=4\\\) \\\(10\\\)" \ +gdb_test "ptype vla3" "type = integer\\\(kind=4\\\) \\\(10\\\)" \
+ "ptype vla3 (after func2)" + "ptype vla3 (after func2)"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.f90 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.f90 2015-01-26 07:47:42.406829913 +0100
@@ -0,0 +1,71 @@ @@ -0,0 +1,71 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -1393,10 +1393,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.f90
+ +
+ ret = .TRUE. ! func2-returned + ret = .TRUE. ! func2-returned
+end program vla_func +end program vla_func
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-history.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-history.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-history.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-history.exp 2015-01-26 07:47:42.406829913 +0100
@@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1460,10 +1460,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-history.exp
+# Try to access history values for vla values. +# Try to access history values for vla values.
+gdb_test "print \$9" " = 1311" "print \$9" +gdb_test "print \$9" " = 1311" "print \$9"
+gdb_test "print \$10" " = 1001" "print \$10" +gdb_test "print \$10" " = 1001" "print \$10"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp 2015-01-26 07:47:42.406829913 +0100
@@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1552,10 +1552,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
+ "ptype array1(100) (arbitrary length)" + "ptype array1(100) (arbitrary length)"
+gdb_test "ptype array2(4,100)" "type = integer\\\(kind=4\\\)" \ +gdb_test "ptype array2(4,100)" "type = integer\\\(kind=4\\\)" \
+ "ptype array2(4,100) (arbitrary length)" + "ptype array2(4,100) (arbitrary length)"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype.exp 2015-01-26 07:47:42.406829913 +0100
@@ -0,0 +1,96 @@ @@ -0,0 +1,96 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1653,10 +1653,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype.exp
+gdb_test "ptype vla2(5, 45, 20)" \ +gdb_test "ptype vla2(5, 45, 20)" \
+ "no such vector element because not allocated" \ + "no such vector element because not allocated" \
+ "ptype vla2(5, 45, 20) not allocated" + "ptype vla2(5, 45, 20) not allocated"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sizeof.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sizeof.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sizeof.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sizeof.exp 2015-01-26 07:47:42.406829913 +0100
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1704,10 +1704,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sizeof.exp
+gdb_breakpoint [gdb_get_line_number "pvla-associated"] +gdb_breakpoint [gdb_get_line_number "pvla-associated"]
+gdb_continue_to_breakpoint "pvla-associated" +gdb_continue_to_breakpoint "pvla-associated"
+gdb_test "print sizeof(pvla)" " = 4000" "print sizeof associated pvla" +gdb_test "print sizeof(pvla)" " = 4000" "print sizeof associated pvla"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.exp 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1753,10 +1753,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.exp
+gdb_continue_to_breakpoint "single-element" +gdb_continue_to_breakpoint "single-element"
+gdb_test "print pvla" " = \\\(5\\\)" "print single-element" +gdb_test "print pvla" " = \\\(5\\\)" "print single-element"
+gdb_test "print pvla(1)" " = 5" "print one single-element" +gdb_test "print pvla(1)" " = 5" "print one single-element"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.f90 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.f90 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -1788,10 +1788,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.f90
+ +
+ pvla => null() ! single-element + pvla => null() ! single-element
+end program vla_stride +end program vla_stride
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,104 @@ @@ -0,0 +1,104 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -1897,10 +1897,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.exp
+ "whatis var_char_p after associated" + "whatis var_char_p after associated"
+gdb_test "ptype var_char_p" "type = PTR TO -> \\( character\\*7 \\)" \ +gdb_test "ptype var_char_p" "type = PTR TO -> \\( character\\*7 \\)" \
+ "ptype var_char_p after associated" + "ptype var_char_p after associated"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.f90 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.f90 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -1942,10 +1942,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.f90
+ var_char_p => null() + var_char_p => null()
+ l = associated(var_char_p) ! var_char_p-not-associated + l = associated(var_char_p) ! var_char_p-not-associated
+end program vla_strings +end program vla_strings
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sub.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sub.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sub.f90 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sub.f90 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -2029,10 +2029,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sub.f90
+ +
+ call bar(sub_arr3, sub_arr1) + call bar(sub_arr3, sub_arr1)
+end program vla_sub +end program vla_sub
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp 2015-01-06 23:03:07.430684782 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -2069,10 +2069,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
+gdb_test "p array1(100)" " = 100" "print arbitary array1(100)" +gdb_test "p array1(100)" " = 100" "print arbitary array1(100)"
+gdb_test "p array2(4,10)" " = 1" "print arbitary array2(4,10)" +gdb_test "p array2(4,10)" " = 1" "print arbitary array2(4,10)"
+gdb_test "p array2(4,100)" " = 1" "print arbitary array2(4,100)" +gdb_test "p array2(4,100)" " = 1" "print arbitary array2(4,100)"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp 2015-01-26 07:47:42.407829917 +0100
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -2123,10 +2123,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
+gdb_test "p sub_arr2(1, 1, 1)" " = 30" "sub_arr2(1, 1, 1) after finish" +gdb_test "p sub_arr2(1, 1, 1)" " = 30" "sub_arr2(1, 1, 1) after finish"
+gdb_test "p sub_arr2(2, 1, 1)" " = 20" "sub_arr2(2, 1, 1) after finish" +gdb_test "p sub_arr2(2, 1, 1)" " = 20" "sub_arr2(2, 1, 1) after finish"
+ +
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub.exp 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub.exp 2015-01-26 07:47:42.408829922 +0100
@@ -0,0 +1,90 @@ @@ -0,0 +1,90 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -2218,10 +2218,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub.exp
+ "set array(2,2,2) to 20 in subroutine (passed vla)" + "set array(2,2,2) to 20 in subroutine (passed vla)"
+gdb_test "print array2" " = \\( *\\( *\\( *30, *20, *3,\[()3, .\]*\\)" \ +gdb_test "print array2" " = \\( *\\( *\\( *30, *20, *3,\[()3, .\]*\\)" \
+ "print array2 in foo after it was mofified in debugger (passed vla)" + "print array2 in foo after it was mofified in debugger (passed vla)"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value.exp 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value.exp 2015-01-26 07:47:42.408829922 +0100
@@ -0,0 +1,148 @@ @@ -0,0 +1,148 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -2371,10 +2371,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value.exp
+gdb_continue_to_breakpoint "pvla-deassociated" +gdb_continue_to_breakpoint "pvla-deassociated"
+gdb_test "print \$mypvar(1,3,8)" " = 1001" \ +gdb_test "print \$mypvar(1,3,8)" " = 1001" \
+ "print \$mypvar(1,3,8) after deallocated" + "print \$mypvar(1,3,8) after deallocated"
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla.f90 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla.f90 2015-01-26 07:47:42.408829922 +0100
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -2432,10 +2432,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla.f90
+ allocate (vla3 (2,2)) ! vla2-deallocated + allocate (vla3 (2,2)) ! vla2-deallocated
+ vla3(:,:) = 13 + vla3(:,:) = 13
+end program vla +end program vla
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/mi-vla-fortran.exp Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2015-01-26 07:47:42.408829922 +0100
@@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
+# Copyright 2014 Free Software Foundation, Inc. +# Copyright 2014 Free Software Foundation, Inc.
+ +
@ -2619,10 +2619,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
+ +
+mi_gdb_exit +mi_gdb_exit
+return 0 +return 0
Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/vla.f90 Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/vla.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/vla.f90 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/vla.f90 2015-01-26 07:47:42.409829926 +0100
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
+! Copyright 2014 Free Software Foundation, Inc. +! Copyright 2014 Free Software Foundation, Inc.
+! +!
@ -2666,10 +2666,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/vla.f90
+ pvla2 => null() + pvla2 => null()
+ l = associated(pvla2) ! pvla2-set-to-null + l = associated(pvla2) ! pvla2-set-to-null
+end program vla +end program vla
Index: gdb-7.8.50.20141228/gdb/typeprint.c Index: gdb-7.8.90.20150126/gdb/typeprint.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/typeprint.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/typeprint.c 2015-01-26 07:47:25.856758418 +0100
+++ gdb-7.8.50.20141228/gdb/typeprint.c 2015-01-06 23:03:07.431684787 +0100 +++ gdb-7.8.90.20150126/gdb/typeprint.c 2015-01-26 07:47:42.409829926 +0100
@@ -456,6 +456,13 @@ whatis_exp (char *exp, int show) @@ -456,6 +456,13 @@ whatis_exp (char *exp, int show)
type = value_type (val); type = value_type (val);
@ -2684,10 +2684,10 @@ Index: gdb-7.8.50.20141228/gdb/typeprint.c
get_user_print_options (&opts); get_user_print_options (&opts);
if (opts.objectprint) if (opts.objectprint)
{ {
Index: gdb-7.8.50.20141228/gdb/valarith.c Index: gdb-7.8.90.20150126/gdb/valarith.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/valarith.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/valarith.c 2015-01-26 07:47:25.857758422 +0100
+++ gdb-7.8.50.20141228/gdb/valarith.c 2015-01-06 23:03:07.432684792 +0100 +++ gdb-7.8.90.20150126/gdb/valarith.c 2015-01-26 07:47:42.409829926 +0100
@@ -193,12 +193,31 @@ value_subscripted_rvalue (struct value * @@ -193,12 +193,31 @@ value_subscripted_rvalue (struct value *
struct type *array_type = check_typedef (value_type (array)); struct type *array_type = check_typedef (value_type (array));
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type)); struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
@ -2722,10 +2722,10 @@ Index: gdb-7.8.50.20141228/gdb/valarith.c
if (VALUE_LVAL (array) == lval_memory && value_lazy (array)) if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
v = allocate_value_lazy (elt_type); v = allocate_value_lazy (elt_type);
Index: gdb-7.8.50.20141228/gdb/valprint.c Index: gdb-7.8.90.20150126/gdb/valprint.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/valprint.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/valprint.c 2015-01-26 07:47:25.858758427 +0100
+++ gdb-7.8.50.20141228/gdb/valprint.c 2015-01-06 23:03:07.432684792 +0100 +++ gdb-7.8.90.20150126/gdb/valprint.c 2015-01-26 07:47:42.410829930 +0100
@@ -303,6 +303,18 @@ valprint_check_validity (struct ui_file @@ -303,6 +303,18 @@ valprint_check_validity (struct ui_file
{ {
CHECK_TYPEDEF (type); CHECK_TYPEDEF (type);
@ -2800,10 +2800,10 @@ Index: gdb-7.8.50.20141228/gdb/valprint.c
return 1; return 1;
} }
Index: gdb-7.8.50.20141228/gdb/valprint.h Index: gdb-7.8.90.20150126/gdb/valprint.h
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/valprint.h 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/valprint.h 2015-01-26 07:47:25.859758431 +0100
+++ gdb-7.8.50.20141228/gdb/valprint.h 2015-01-06 23:03:07.432684792 +0100 +++ gdb-7.8.90.20150126/gdb/valprint.h 2015-01-26 07:47:42.410829930 +0100
@@ -217,4 +217,8 @@ extern void output_command_const (const @@ -217,4 +217,8 @@ extern void output_command_const (const
extern int val_print_scalar_type_p (struct type *type); extern int val_print_scalar_type_p (struct type *type);
@ -2813,10 +2813,10 @@ Index: gdb-7.8.50.20141228/gdb/valprint.h
+extern void val_print_not_associated (struct ui_file *stream); +extern void val_print_not_associated (struct ui_file *stream);
+ +
#endif #endif
Index: gdb-7.8.50.20141228/gdb/value.c Index: gdb-7.8.90.20150126/gdb/value.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/value.c 2015-01-06 22:51:17.663240907 +0100 --- gdb-7.8.90.20150126.orig/gdb/value.c 2015-01-26 07:47:25.860758435 +0100
+++ gdb-7.8.50.20141228/gdb/value.c 2015-01-06 23:03:07.433684797 +0100 +++ gdb-7.8.90.20150126/gdb/value.c 2015-01-26 07:47:42.411829935 +0100
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
#include "tracepoint.h" #include "tracepoint.h"
#include "cp-abi.h" #include "cp-abi.h"
@ -2919,11 +2919,11 @@ Index: gdb-7.8.50.20141228/gdb/value.c
if (TYPE_LENGTH (type)) if (TYPE_LENGTH (type))
read_value_memory (val, 0, value_stack (val), read_value_memory (val, 0, value_stack (val),
Index: gdb-7.8.50.20141228/gdb/dwarf2loc.c Index: gdb-7.8.90.20150126/gdb/dwarf2loc.c
=================================================================== ===================================================================
--- gdb-7.8.50.20141228.orig/gdb/dwarf2loc.c 2014-12-28 02:48:43.000000000 +0100 --- gdb-7.8.90.20150126.orig/gdb/dwarf2loc.c 2015-01-26 07:47:25.862758444 +0100
+++ gdb-7.8.50.20141228/gdb/dwarf2loc.c 2015-01-06 23:05:55.296499287 +0100 +++ gdb-7.8.90.20150126/gdb/dwarf2loc.c 2015-01-26 07:47:42.412829939 +0100
@@ -2326,6 +2346,11 @@ dwarf2_evaluate_loc_desc_full (struct ty @@ -2293,6 +2293,11 @@ dwarf2_evaluate_loc_desc_full (struct ty
int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0); int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0);
do_cleanups (value_chain); do_cleanups (value_chain);
@ -2935,7 +2935,7 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2loc.c
retval = value_at_lazy (type, address + byte_offset); retval = value_at_lazy (type, address + byte_offset);
if (in_stack_memory) if (in_stack_memory)
set_value_stack (retval, 1); set_value_stack (retval, 1);
@@ -2546,6 +2546,19 @@ dwarf2_compile_property_to_c (struct ui_ @@ -2552,6 +2557,19 @@ dwarf2_compile_property_to_c (struct ui_
data, data + size, per_cu); data, data + size, per_cu);
} }

View File

@ -22,11 +22,11 @@ Name: %{?scl_prefix}gdb
# See timestamp of source gnulib installed into gdb/gnulib/ . # See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20121213 %global snapgnulib 20121213
%global tarname gdb-%{version} %global tarname gdb-%{version}
Version: 7.8.50.20150108 Version: 7.8.90.20150202
# The release always contains a leading reserved number, start it at 1. # 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. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 1%{?dist} Release: 2%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL 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 Group: Development/Debuggers
@ -520,19 +520,14 @@ Patch925: gdb-fortran-frame-string.patch
# Fix Python GIL with gdb.execute("continue") (Phil Muldoon, BZ 1116957). # Fix Python GIL with gdb.execute("continue") (Phil Muldoon, BZ 1116957).
Patch927: gdb-python-gil.patch Patch927: gdb-python-gil.patch
# Fix 'Slow gstack performance' (RH BZ 1103894, Jan Kratochvil).
Patch973: gdb-slow-gstack-performance.patch
# Fix 'compile' compilation warning/error.
Patch977: gdb-compile-warn_unused_result.patch
# Fix jit-reader.h for multi-lib. # Fix jit-reader.h for multi-lib.
Patch978: gdb-jit-reader-multilib.patch Patch978: gdb-jit-reader-multilib.patch
# Fix gdb-7.9pre regressions / new FAILs. # Fix gdb-7.9pre regressions / new FAILs.
Patch979: gdb-6.8-bz457187-largefile-test-regression-fix.patch Patch979: gdb-6.8-bz457187-largefile-test-regression-fix.patch
Patch980: gdb-py-frame-rip-test-fix.patch
Patch981: gdb-tekhex-regression-revert.patch # Temporarily disable dg-extract-results.py to fix gdb.sum sorting.
Patch982: gdb-no-dg-extract-results-py.patch
%if 0%{!?rhel:1} || 0%{?rhel} > 6 %if 0%{!?rhel:1} || 0%{?rhel} > 6
# RL_STATE_FEDORA_GDB would not be found for: # RL_STATE_FEDORA_GDB would not be found for:
@ -815,12 +810,9 @@ find -name "*.info*"|xargs rm -f
%patch918 -p1 %patch918 -p1
%patch925 -p1 %patch925 -p1
%patch927 -p1 %patch927 -p1
%patch973 -p1
%patch977 -p1
%patch978 -p1 %patch978 -p1
%patch979 -p1 %patch979 -p1
%patch980 -p1 %patch982 -p1
%patch981 -p1
%patch848 -p1 %patch848 -p1
%if 0%{!?el6:1} %if 0%{!?el6:1}
@ -1321,6 +1313,10 @@ then
fi fi
%changelog %changelog
* Mon Feb 2 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.90.20150202-2.fc22
- Rebase to 7.9-branch snapshot 7.8.90.20150202.
- Temporarily disable dg-extract-results.py to fix gdb.sum sorting.
* Thu Jan 8 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.50.20150108-1.fc22 * Thu Jan 8 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.50.20150108-1.fc22
- Rebase to pre-7.9 snapshot 7.8.50.20150108. - Rebase to pre-7.9 snapshot 7.8.50.20150108.
- Fix jit-reader.h for multi-lib. - Fix jit-reader.h for multi-lib.

View File

@ -1,2 +1,2 @@
4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2 4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2
6b43f1079e9a6401c7277d6bd777bd7f gdb-7.8.50.20150108.tar.xz 3821d055a639644d09bd9734e59b051c gdb-7.8.90.20150202.tar.xz