- Update to gdb 7.12.1
* negative repeat count for x examines backwards * fortran: support structs/arrays with dynamically types fields * support MPX bound checking * support for the Rust language * 'catch syscall' now can catch groups of related syscalls * New (sub)commands: - skip {-file,-gfile,-function,-rfunction}: generic skip mechanism - maint {selftest,info line-table} - new-ui: create new user interface for GUI clients * (fast) tracepoints on s390x and ppc64le added to gdbserver * New target Andes NDS32 - Remove patch gdb-aarch64-v81-hwbreakpoints.diff (upstream) - Add patches from Fedora package: gdb-6.7-testsuite-stable-results.patch gdb-add-index-chmod.patch gdb-bison-old.patch gdb-container-rh-pkg.patch gdb-libexec-add-index.patch gdb-linux_perf-bundle.patch gdb-physname-pr11734-test.patch gdb-physname-pr12273-test.patch gdb-rhbz1007614-memleak-infpy_read_memory-test.patch gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch gdb-rhbz1149205-catch-syscall-after-fork-test.patch gdb-rhbz1156192-recursive-dlopen-test.patch gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch gdb-rhbz1350436-type-printers-error.patch gdb-test-ivy-bridge.patch OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=151
This commit is contained in:
parent
ed65659810
commit
a2f8e1d8c6
@ -108,7 +108,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c 2013-08-02 22:22:17.573599496 +0200
|
||||
@@ -0,0 +1,127 @@
|
||||
@@ -0,0 +1,128 @@
|
||||
+/* Copyright 2007, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
@ -139,6 +139,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
+#include <stdlib.h>
|
||||
+#include <unistd.h>
|
||||
+#include <assert.h>
|
||||
+#include <time.h>
|
||||
+
|
||||
+/* The same test running in a parallel testsuite may steal us the zero SID,
|
||||
+ even if we never get any EEXIST. Just try a while. */
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.10.1/gdb/build-id.c
|
||||
Index: gdb-7.12.1/gdb/build-id.c
|
||||
===================================================================
|
||||
--- gdb-7.10.1.orig/gdb/build-id.c 2016-01-14 16:19:02.000000000 +0100
|
||||
+++ gdb-7.10.1/gdb/build-id.c 2016-01-14 16:21:43.000000000 +0100
|
||||
@@ -830,9 +830,9 @@ missing_rpm_enlist (const char *filename
|
||||
--- gdb-7.12.1.orig/gdb/build-id.c 2017-02-14 15:56:04.000000000 +0100
|
||||
+++ gdb-7.12.1/gdb/build-id.c 2017-02-14 15:58:29.000000000 +0100
|
||||
@@ -841,9 +841,9 @@ missing_rpm_enlist_1 (const char *filena
|
||||
if (h == NULL)
|
||||
break;
|
||||
|
||||
@ -15,7 +15,7 @@ Index: gdb-7.10.1/gdb/build-id.c
|
||||
&err);
|
||||
if (!debuginfo)
|
||||
{
|
||||
@@ -840,60 +840,19 @@ missing_rpm_enlist (const char *filename
|
||||
@@ -851,60 +851,19 @@ missing_rpm_enlist_1 (const char *filena
|
||||
err);
|
||||
continue;
|
||||
}
|
||||
@ -25,12 +25,12 @@ Index: gdb-7.10.1/gdb/build-id.c
|
||||
- if (s > debuginfo && memcmp (s, ".src.rpm", srcrpmlen) == 0)
|
||||
- {
|
||||
- /* s2 = `-%{release}.src.rpm-debuginfo.%{arch}' */
|
||||
- s2 = memrchr (debuginfo, '-', s - debuginfo);
|
||||
- s2 = (char *) memrchr (debuginfo, '-', s - debuginfo);
|
||||
- }
|
||||
- if (s2)
|
||||
- {
|
||||
- /* s2 = `-%{version}-%{release}.src.rpm-debuginfo.%{arch}' */
|
||||
- s2 = memrchr (debuginfo, '-', s2 - debuginfo);
|
||||
- s2 = (char *) memrchr (debuginfo, '-', s2 - debuginfo);
|
||||
- }
|
||||
- if (!s2)
|
||||
- {
|
||||
@ -54,7 +54,7 @@ Index: gdb-7.10.1/gdb/build-id.c
|
||||
+ /* Verify the debuginfo file is not already installed. */
|
||||
/* RPMDBI_PACKAGES requires keylen == sizeof (int). */
|
||||
/* RPMDBI_LABEL is an interface for NVR-based dbiFindByLabel(). */
|
||||
mi_debuginfo = rpmtsInitIterator_p (ts, RPMDBI_LABEL, debuginfo, 0);
|
||||
mi_debuginfo = rpmtsInitIterator_p (ts, (rpmTag) RPMDBI_LABEL, debuginfo, 0);
|
||||
- xfree (debuginfo);
|
||||
if (mi_debuginfo)
|
||||
{
|
||||
@ -78,7 +78,7 @@ Index: gdb-7.10.1/gdb/build-id.c
|
||||
/* Base package name for `debuginfo-install'. We do not use the
|
||||
`yum' command directly as the line
|
||||
yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
|
||||
@@ -978,10 +937,7 @@ missing_rpm_list_print (void)
|
||||
@@ -1035,10 +994,7 @@ missing_rpm_list_print (void)
|
||||
(int (*) (const void *, const void *)) missing_rpm_list_compar);
|
||||
|
||||
printf_unfiltered (_("Missing separate debuginfos, use: %s"),
|
||||
@ -90,7 +90,7 @@ Index: gdb-7.10.1/gdb/build-id.c
|
||||
for (array_iter = array; array_iter < array + missing_rpm_list_entries;
|
||||
array_iter++)
|
||||
{
|
||||
@@ -1194,13 +1150,12 @@ debug_print_missing (const char *binary,
|
||||
@@ -1251,13 +1207,12 @@ debug_print_missing (const char *binary,
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
_("Missing separate debuginfo for %s\n"), binary);
|
||||
if (debug != NULL)
|
||||
|
@ -1,25 +1,16 @@
|
||||
Index: gdb-7.10.50.20160106/gdb/event-top.c
|
||||
Index: gdb-7.11.50.20160630/gdb/event-top.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/event-top.c
|
||||
+++ gdb-7.10.50.20160106/gdb/event-top.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "gdbcmd.h" /* for dont_repeat() */
|
||||
#include "annotate.h"
|
||||
#include "maint.h"
|
||||
--- gdb-7.11.50.20160630.orig/gdb/event-top.c 2016-07-02 23:43:24.085214144 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/event-top.c 2016-07-03 14:37:12.572130734 +0200
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "buffer.h"
|
||||
#include "ser-event.h"
|
||||
#include "gdb_select.h"
|
||||
+#include "symfile.h"
|
||||
|
||||
/* readline include files. */
|
||||
#include "readline/readline.h"
|
||||
@@ -180,6 +181,8 @@ rl_callback_read_char_wrapper (gdb_clien
|
||||
void
|
||||
cli_command_loop (void *data)
|
||||
{
|
||||
+ debug_flush_missing ();
|
||||
+
|
||||
display_gdb_prompt (0);
|
||||
|
||||
/* Now it's time to start the event loop. */
|
||||
@@ -298,6 +301,8 @@ display_gdb_prompt (const char *new_prom
|
||||
@@ -347,6 +348,8 @@
|
||||
/* Reset the nesting depth used when trace-commands is set. */
|
||||
reset_command_nest_depth ();
|
||||
|
||||
@ -28,11 +19,23 @@ Index: gdb-7.10.50.20160106/gdb/event-top.c
|
||||
old_chain = make_cleanup (free_current_contents, &actual_gdb_prompt);
|
||||
|
||||
/* Do not call the python hook on an explicit prompt change as
|
||||
Index: gdb-7.10.50.20160106/gdb/symfile.h
|
||||
@@ -794,7 +797,10 @@
|
||||
command_handler (cmd);
|
||||
|
||||
if (ui->prompt_state != PROMPTED)
|
||||
- display_gdb_prompt (0);
|
||||
+ {
|
||||
+ debug_flush_missing ();
|
||||
+ display_gdb_prompt (0);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
Index: gdb-7.11.50.20160630/gdb/symfile.h
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/symfile.h
|
||||
+++ gdb-7.10.50.20160106/gdb/symfile.h
|
||||
@@ -587,6 +587,8 @@ void map_symbol_filenames (symbol_filena
|
||||
--- gdb-7.11.50.20160630.orig/gdb/symfile.h 2016-07-03 14:34:32.032753668 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/symfile.h 2016-07-03 14:37:12.573130742 +0200
|
||||
@@ -592,6 +592,8 @@
|
||||
/* build-id support. */
|
||||
extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
|
||||
extern void debug_print_missing (const char *binary, const char *debug);
|
||||
@ -41,48 +44,10 @@ Index: gdb-7.10.50.20160106/gdb/symfile.h
|
||||
|
||||
/* From dwarf2read.c */
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/testsuite/lib/gdb.exp
|
||||
Index: gdb-7.11.50.20160630/gdb/aclocal.m4
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/testsuite/lib/gdb.exp
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/lib/gdb.exp
|
||||
@@ -1642,7 +1642,7 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
}
|
||||
- # Turn off the missing warnings as the testsuite does not expect it.
|
||||
+ # Turn off the missing RPMs warnings as the testsuite does not expect it.
|
||||
send_gdb "set build-id-verbose 0\n"
|
||||
gdb_expect 10 {
|
||||
-re "$gdb_prompt $" {
|
||||
Index: gdb-7.10.50.20160106/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/testsuite/lib/mi-support.exp
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/lib/mi-support.exp
|
||||
@@ -204,7 +204,7 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
}
|
||||
- # Turn off the missing warnings as the testsuite does not expect it.
|
||||
+ # Turn off the missing RPMs warnings as the testsuite does not expect it.
|
||||
send_gdb "190-gdb-set build-id-verbose 0\n"
|
||||
gdb_expect 10 {
|
||||
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
|
||||
Index: gdb-7.10.50.20160106/gdb/tui/tui-interp.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/tui/tui-interp.c
|
||||
+++ gdb-7.10.50.20160106/gdb/tui/tui-interp.c
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "tui/tui-io.h"
|
||||
#include "infrun.h"
|
||||
#include "observer.h"
|
||||
+#include "symfile.h"
|
||||
|
||||
static struct ui_out *tui_ui_out (struct interp *self);
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/aclocal.m4
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/aclocal.m4
|
||||
+++ gdb-7.10.50.20160106/gdb/aclocal.m4
|
||||
--- gdb-7.11.50.20160630.orig/gdb/aclocal.m4 2016-07-02 23:43:24.085214144 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/aclocal.m4 2016-07-03 14:37:12.576130768 +0200
|
||||
@@ -11,6 +11,221 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
@ -305,10 +270,10 @@ Index: gdb-7.10.50.20160106/gdb/aclocal.m4
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
Index: gdb-7.10.50.20160106/gdb/config.in
|
||||
Index: gdb-7.11.50.20160630/gdb/config.in
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/config.in
|
||||
+++ gdb-7.10.50.20160106/gdb/config.in
|
||||
--- gdb-7.11.50.20160630.orig/gdb/config.in 2016-07-02 23:43:24.085214144 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/config.in 2016-07-03 14:37:12.576130768 +0200
|
||||
@@ -33,6 +33,9 @@
|
||||
/* Define to BFD's default target vector. */
|
||||
#undef DEFAULT_BFD_VEC
|
||||
@ -319,7 +284,7 @@ Index: gdb-7.10.50.20160106/gdb/config.in
|
||||
/* Define to 1 if translation of program messages to the user's native
|
||||
language is requested. */
|
||||
#undef ENABLE_NLS
|
||||
@@ -258,6 +261,9 @@
|
||||
@@ -261,6 +264,9 @@
|
||||
/* Define if Python 2.7 is being used. */
|
||||
#undef HAVE_LIBPYTHON2_7
|
||||
|
||||
@ -329,11 +294,11 @@ Index: gdb-7.10.50.20160106/gdb/config.in
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/configure
|
||||
Index: gdb-7.11.50.20160630/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/configure
|
||||
+++ gdb-7.10.50.20160106/gdb/configure
|
||||
@@ -705,6 +705,11 @@ PKGVERSION
|
||||
--- gdb-7.11.50.20160630.orig/gdb/configure 2016-07-02 23:43:24.085214144 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/configure 2016-07-03 14:37:12.581130811 +0200
|
||||
@@ -705,6 +705,11 @@
|
||||
HAVE_NATIVE_GCORE_TARGET
|
||||
TARGET_OBS
|
||||
subdirs
|
||||
@ -345,7 +310,7 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
GDB_DATADIR
|
||||
DEBUGDIR
|
||||
MAKEINFO_EXTRA_FLAGS
|
||||
@@ -813,6 +818,7 @@ with_gdb_datadir
|
||||
@@ -814,6 +819,7 @@
|
||||
with_relocated_sources
|
||||
with_auto_load_dir
|
||||
with_auto_load_safe_path
|
||||
@ -353,7 +318,7 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
enable_targets
|
||||
enable_64_bit_bfd
|
||||
enable_gdbcli
|
||||
@@ -869,6 +875,11 @@ CCC
|
||||
@@ -870,6 +876,11 @@
|
||||
CPP
|
||||
MAKEINFO
|
||||
MAKEINFOFLAGS
|
||||
@ -365,7 +330,7 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
YACC
|
||||
YFLAGS
|
||||
XMKMF'
|
||||
@@ -1540,6 +1551,8 @@ Optional Packages:
|
||||
@@ -1541,6 +1552,8 @@
|
||||
[--with-auto-load-dir]
|
||||
--without-auto-load-safe-path
|
||||
do not restrict auto-loaded files locations
|
||||
@ -374,7 +339,7 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
|
||||
--with-curses use the curses library instead of the termcap
|
||||
library
|
||||
@@ -1595,6 +1608,13 @@ Some influential environment variables:
|
||||
@@ -1595,6 +1608,13 @@
|
||||
MAKEINFO Parent configure detects if it is of sufficient version.
|
||||
MAKEINFOFLAGS
|
||||
Parameters for MAKEINFO.
|
||||
@ -388,7 +353,7 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
YACC The `Yet Another C Compiler' implementation to use. Defaults to
|
||||
the first program found out of: `bison -y', `byacc', `yacc'.
|
||||
YFLAGS The list of arguments that will be passed by default to $YACC.
|
||||
@@ -5655,6 +5675,494 @@ _ACEOF
|
||||
@@ -5613,6 +5633,494 @@
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
|
||||
$as_echo "$with_auto_load_safe_path" >&6; }
|
||||
|
||||
@ -883,11 +848,11 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
|
||||
|
||||
subdirs="$subdirs testsuite"
|
||||
Index: gdb-7.10.50.20160106/gdb/configure.ac
|
||||
Index: gdb-7.11.50.20160630/gdb/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/configure.ac
|
||||
+++ gdb-7.10.50.20160106/gdb/configure.ac
|
||||
@@ -177,6 +177,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
|
||||
--- gdb-7.11.50.20160630.orig/gdb/configure.ac 2016-07-02 23:43:24.085214144 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/configure.ac 2016-07-03 14:37:12.582130819 +0200
|
||||
@@ -177,6 +177,199 @@
|
||||
[Directories safe to hold auto-loaded files.])
|
||||
AC_MSG_RESULT([$with_auto_load_safe_path])
|
||||
|
||||
@ -1087,11 +1052,11 @@ Index: gdb-7.10.50.20160106/gdb/configure.ac
|
||||
AC_CONFIG_SUBDIRS(testsuite)
|
||||
|
||||
# Check whether to support alternative target configurations
|
||||
Index: gdb-7.10.50.20160106/gdb/corelow.c
|
||||
Index: gdb-7.11.50.20160630/gdb/corelow.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/corelow.c
|
||||
+++ gdb-7.10.50.20160106/gdb/corelow.c
|
||||
@@ -310,7 +310,7 @@ build_id_locate_exec (int from_tty)
|
||||
--- gdb-7.11.50.20160630.orig/gdb/corelow.c 2016-07-03 14:34:32.022753582 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/corelow.c 2016-07-03 14:37:12.582130819 +0200
|
||||
@@ -310,7 +310,7 @@
|
||||
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
|
||||
}
|
||||
else
|
||||
@ -1100,10 +1065,10 @@ Index: gdb-7.10.50.20160106/gdb/corelow.c
|
||||
|
||||
do_cleanups (back_to);
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/build-id.c
|
||||
+++ gdb-7.10.50.20160106/gdb/build-id.c
|
||||
--- gdb-7.11.50.20160630.orig/gdb/build-id.c 2016-07-03 14:36:50.124938187 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/build-id.c 2016-07-03 14:42:25.171812134 +0200
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "elf/common.h"
|
||||
#include "elf-bfd.h"
|
||||
@ -1112,7 +1077,7 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
|
||||
#define BUILD_ID_VERBOSE_NONE 0
|
||||
#define BUILD_ID_VERBOSE_FILENAMES 1
|
||||
@@ -665,8 +666,366 @@ build_id_to_filename (const struct bfd_b
|
||||
@@ -665,8 +666,366 @@
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -1221,13 +1186,13 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (!((headerFormat_p = dlsym (h, "headerFormat"))
|
||||
+ && (rpmReadConfigFiles_p = dlsym (h, "rpmReadConfigFiles"))
|
||||
+ && (rpmdbFreeIterator_p = dlsym (h, "rpmdbFreeIterator"))
|
||||
+ && (rpmdbNextIterator_p = dlsym (h, "rpmdbNextIterator"))
|
||||
+ && (rpmtsCreate_p = dlsym (h, "rpmtsCreate"))
|
||||
+ && (rpmtsFree_p = dlsym (h, "rpmtsFree"))
|
||||
+ && (rpmtsInitIterator_p = dlsym (h, "rpmtsInitIterator"))))
|
||||
+ if (!((headerFormat_p = (char *(*) (Header h, const char * fmt, errmsg_t *errmsg)) dlsym (h, "headerFormat"))
|
||||
+ && (rpmReadConfigFiles_p = (int (*) (const char * file, const char * target)) dlsym (h, "rpmReadConfigFiles"))
|
||||
+ && (rpmdbFreeIterator_p = (rpmdbMatchIterator (*) (rpmdbMatchIterator mi)) dlsym (h, "rpmdbFreeIterator"))
|
||||
+ && (rpmdbNextIterator_p = (Header (*) (rpmdbMatchIterator mi)) dlsym (h, "rpmdbNextIterator"))
|
||||
+ && (rpmtsCreate_p = (rpmts (*) (void)) dlsym (h, "rpmtsCreate"))
|
||||
+ && (rpmtsFree_p = (rpmts (*) (rpmts ts)) dlsym (h, "rpmtsFree"))
|
||||
+ && (rpmtsInitIterator_p = (rpmdbMatchIterator (*) (const rpmts ts, rpmTag rpmtag, const void *keyp, size_t keylen)) dlsym (h, "rpmtsInitIterator"))))
|
||||
+ {
|
||||
+ warning (_("Opened library \"%s\" is incompatible (%s), "
|
||||
+ "missing debuginfos notifications will not be displayed"),
|
||||
@ -1283,12 +1248,12 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
+ if (s > debuginfo && memcmp (s, ".src.rpm", srcrpmlen) == 0)
|
||||
+ {
|
||||
+ /* s2 = `-%{release}.src.rpm-debuginfo.%{arch}' */
|
||||
+ s2 = memrchr (debuginfo, '-', s - debuginfo);
|
||||
+ s2 = (char *) memrchr (debuginfo, '-', s - debuginfo);
|
||||
+ }
|
||||
+ if (s2)
|
||||
+ {
|
||||
+ /* s2 = `-%{version}-%{release}.src.rpm-debuginfo.%{arch}' */
|
||||
+ s2 = memrchr (debuginfo, '-', s2 - debuginfo);
|
||||
+ s2 = (char *) memrchr (debuginfo, '-', s2 - debuginfo);
|
||||
+ }
|
||||
+ if (!s2)
|
||||
+ {
|
||||
@ -1311,7 +1276,7 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
+
|
||||
+ /* RPMDBI_PACKAGES requires keylen == sizeof (int). */
|
||||
+ /* RPMDBI_LABEL is an interface for NVR-based dbiFindByLabel(). */
|
||||
+ mi_debuginfo = rpmtsInitIterator_p (ts, RPMDBI_LABEL, debuginfo, 0);
|
||||
+ mi_debuginfo = rpmtsInitIterator_p (ts, (rpmTag) RPMDBI_LABEL, debuginfo, 0);
|
||||
+ xfree (debuginfo);
|
||||
+ if (mi_debuginfo)
|
||||
+ {
|
||||
@ -1362,7 +1327,7 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
+
|
||||
+ *slot = debuginfo;
|
||||
+
|
||||
+ missing_rpm = xmalloc (sizeof (*missing_rpm) + strlen (debuginfo));
|
||||
+ missing_rpm = (struct missing_rpm *) xmalloc (sizeof (*missing_rpm) + strlen (debuginfo));
|
||||
+ strcpy (missing_rpm->rpm, debuginfo);
|
||||
+ missing_rpm->next = missing_rpm_list;
|
||||
+ missing_rpm_list = missing_rpm;
|
||||
@ -1400,7 +1365,7 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
+ if (missing_rpm_list_entries == 0)
|
||||
+ return;
|
||||
+
|
||||
+ array = xmalloc (sizeof (*array) * missing_rpm_list_entries);
|
||||
+ array = (char **) xmalloc (sizeof (*array) * missing_rpm_list_entries);
|
||||
+ cleanups = make_cleanup (xfree, array);
|
||||
+
|
||||
+ array_iter = array;
|
||||
@ -1480,7 +1445,7 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
avoidance. */
|
||||
|
||||
struct missing_filepair
|
||||
@@ -720,11 +1079,17 @@ missing_filepair_change (void)
|
||||
@@ -720,11 +1079,17 @@
|
||||
/* All their memory came just from missing_filepair_OBSTACK. */
|
||||
missing_filepair_hash = NULL;
|
||||
}
|
||||
@ -1498,7 +1463,7 @@ Index: gdb-7.10.50.20160106/gdb/build-id.c
|
||||
missing_filepair_change ();
|
||||
}
|
||||
|
||||
@@ -791,14 +1156,39 @@ debug_print_missing (const char *binary,
|
||||
@@ -791,14 +1156,39 @@
|
||||
|
||||
*slot = missing_filepair;
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
gdb returns an incorrect back trace when applying a debuginfo
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1339862
|
||||
|
||||
Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.9.90.20150709.orig/gdb/solib-svr4.c 2015-07-09 18:18:54.526417766 +0200
|
||||
@ -57,3 +60,163 @@ Index: gdb-7.9.90.20150709/gdb/solib-svr4.c
|
||||
|
||||
xfree (build_id_filename);
|
||||
xfree (build_id);
|
||||
--- /dev/null 2016-07-02 20:29:01.679404943 +0200
|
||||
+++ gdb-7.11.50.20160721/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib.exp 2016-07-31 23:04:49.062753722 +0200
|
||||
@@ -0,0 +1,105 @@
|
||||
+# Copyright 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if {[skip_shlib_tests]} {
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+set testfile "gcore-buildid-exec-but-not-solib"
|
||||
+set srcmainfile ${testfile}-main.c
|
||||
+set srclibfile ${testfile}-lib.c
|
||||
+set libfile [standard_output_file ${testfile}-lib.so]
|
||||
+set objfile [standard_output_file ${testfile}-main.o]
|
||||
+set executable ${testfile}-main
|
||||
+set binfile [standard_output_file ${executable}]
|
||||
+set gcorefile [standard_output_file ${executable}.gcore]
|
||||
+set outdir [file dirname $binfile]
|
||||
+
|
||||
+if { [gdb_compile_shlib ${srcdir}/${subdir}/${srclibfile} ${libfile} "debug additional_flags=-Wl,--build-id"] != ""
|
||||
+ || [gdb_compile ${srcdir}/${subdir}/${srcmainfile} ${objfile} object {debug}] != "" } {
|
||||
+ unsupported "-Wl,--build-id compilation failed"
|
||||
+ return -1
|
||||
+}
|
||||
+set opts [list debug shlib=${libfile} "additional_flags=-Wl,--build-id"]
|
||||
+if { [gdb_compile ${objfile} ${binfile} executable $opts] != "" } {
|
||||
+ unsupported "-Wl,--build-id compilation failed"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+clean_restart $executable
|
||||
+gdb_load_shlib $libfile
|
||||
+
|
||||
+# Does this gdb support gcore?
|
||||
+set test "help gcore"
|
||||
+gdb_test_multiple $test $test {
|
||||
+ -re "Undefined command: .gcore.*\r\n$gdb_prompt $" {
|
||||
+ # gcore command not supported -- nothing to test here.
|
||||
+ unsupported "gdb does not support gcore on this target"
|
||||
+ return -1;
|
||||
+ }
|
||||
+ -re "Save a core file .*\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+if { ![runto lib] } then {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set escapedfilename [string_to_regexp ${gcorefile}]
|
||||
+
|
||||
+set test "save a corefile"
|
||||
+gdb_test_multiple "gcore ${gcorefile}" $test {
|
||||
+ -re "Saved corefile ${escapedfilename}\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+ -re "Can't create a corefile\r\n$gdb_prompt $" {
|
||||
+ unsupported $test
|
||||
+ return -1
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+# Now restart gdb and load the corefile.
|
||||
+
|
||||
+clean_restart $executable
|
||||
+gdb_load_shlib $libfile
|
||||
+
|
||||
+set buildid [build_id_debug_filename_get $libfile]
|
||||
+
|
||||
+regsub {\.debug$} $buildid {} buildid
|
||||
+
|
||||
+set debugdir [standard_output_file ${testfile}-debugdir]
|
||||
+file delete -force -- $debugdir
|
||||
+
|
||||
+file mkdir $debugdir/[file dirname $libfile]
|
||||
+file copy $libfile $debugdir/${libfile}
|
||||
+
|
||||
+file mkdir $debugdir/[file dirname $buildid]
|
||||
+file copy $libfile $debugdir/${buildid}
|
||||
+
|
||||
+remote_exec build "ln -s /lib ${debugdir}/"
|
||||
+remote_exec build "ln -s /lib64 ${debugdir}/"
|
||||
+# /usr is not needed, all the libs are in /lib64: libm.so.6 libc.so.6 ld-linux-x86-64.so.2
|
||||
+
|
||||
+gdb_test "set solib-absolute-prefix $debugdir"
|
||||
+
|
||||
+gdb_test_no_output "set debug-file-directory $debugdir" "set debug-file-directory"
|
||||
+
|
||||
+gdb_test "core ${gcorefile}" "Core was generated by .*" "re-load generated corefile"
|
||||
+
|
||||
+gdb_test "frame" "#0 \[^\r\n\]* lib .*" "library got loaded"
|
||||
+
|
||||
+gdb_test "bt"
|
||||
+gdb_test "info shared"
|
||||
--- /dev/null 2016-07-02 20:29:01.679404943 +0200
|
||||
+++ gdb-7.11.50.20160721/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-main.c 2016-07-28 21:06:40.977786922 +0200
|
||||
@@ -0,0 +1,25 @@
|
||||
+/* Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+extern void lib (void);
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+ lib ();
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null 2016-07-02 20:29:01.679404943 +0200
|
||||
+++ gdb-7.11.50.20160721/gdb/testsuite/gdb.base/gcore-buildid-exec-but-not-solib-lib.c 2016-07-28 21:06:40.977786922 +0200
|
||||
@@ -0,0 +1,21 @@
|
||||
+/* Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+void
|
||||
+lib (void)
|
||||
+{
|
||||
+}
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: gdb-7.10.90.20160211/gdb/corelow.c
|
||||
Index: gdb-7.11.50.20160630/gdb/corelow.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/corelow.c 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/corelow.c 2016-02-15 23:26:46.516096395 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/corelow.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/corelow.c 2016-07-03 14:34:32.022753582 +0200
|
||||
@@ -45,6 +45,10 @@
|
||||
#include "gdb_bfd.h"
|
||||
#include "completer.h"
|
||||
@ -94,11 +94,11 @@ Index: gdb-7.10.90.20160211/gdb/corelow.c
|
||||
+ NULL, NULL, NULL,
|
||||
+ &setlist, &showlist);
|
||||
}
|
||||
Index: gdb-7.10.90.20160211/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.11.50.20160630/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/doc/gdb.texinfo 2016-02-15 23:25:36.455598958 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/doc/gdb.texinfo 2016-02-15 23:26:06.362811302 +0100
|
||||
@@ -18684,6 +18684,27 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/doc/gdb.texinfo 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/doc/gdb.texinfo 2016-07-03 14:34:32.030753651 +0200
|
||||
@@ -18916,6 +18916,27 @@
|
||||
|
||||
@end table
|
||||
|
||||
@ -126,10 +126,10 @@ Index: gdb-7.10.90.20160211/gdb/doc/gdb.texinfo
|
||||
@cindex @code{.gnu_debuglink} sections
|
||||
@cindex debug link sections
|
||||
A debug link is a special section of the executable file named
|
||||
Index: gdb-7.10.90.20160211/gdb/solib-svr4.c
|
||||
Index: gdb-7.11.50.20160630/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/solib-svr4.c 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/solib-svr4.c 2016-02-15 23:26:46.613097083 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/solib-svr4.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/solib-svr4.c 2016-07-03 14:34:32.031753659 +0200
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "auxv.h"
|
||||
#include "gdb_bfd.h"
|
||||
@ -194,10 +194,10 @@ Index: gdb-7.10.90.20160211/gdb/solib-svr4.c
|
||||
xfree (buffer);
|
||||
|
||||
/* If this entry has no name, or its name matches the name
|
||||
Index: gdb-7.10.90.20160211/gdb/elfread.c
|
||||
Index: gdb-7.11.50.20160630/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/elfread.c 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/elfread.c 2016-02-15 23:26:06.364811316 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/elfread.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/elfread.c 2016-07-03 14:34:32.031753659 +0200
|
||||
@@ -1259,9 +1259,10 @@
|
||||
&& objfile->separate_debug_objfile == NULL
|
||||
&& objfile->separate_debug_objfile_backlink == NULL)
|
||||
@ -224,11 +224,11 @@ Index: gdb-7.10.90.20160211/gdb/elfread.c
|
||||
}
|
||||
}
|
||||
|
||||
Index: gdb-7.10.90.20160211/gdb/symfile.h
|
||||
Index: gdb-7.11.50.20160630/gdb/symfile.h
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/symfile.h 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/symfile.h 2016-02-15 23:26:46.516096395 +0100
|
||||
@@ -584,6 +584,10 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/symfile.h 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/symfile.h 2016-07-03 14:34:32.032753668 +0200
|
||||
@@ -589,6 +589,10 @@
|
||||
void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
|
||||
int need_fullname);
|
||||
|
||||
@ -239,11 +239,11 @@ Index: gdb-7.10.90.20160211/gdb/symfile.h
|
||||
/* From dwarf2read.c */
|
||||
|
||||
/* Names for a dwarf2 debugging section. The field NORMAL is the normal
|
||||
Index: gdb-7.10.90.20160211/gdb/testsuite/lib/gdb.exp
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/testsuite/lib/gdb.exp 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/testsuite/lib/gdb.exp 2016-02-15 23:26:46.516096395 +0100
|
||||
@@ -1640,6 +1640,16 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/testsuite/lib/gdb.exp 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/lib/gdb.exp 2016-07-03 14:34:32.033753676 +0200
|
||||
@@ -1641,6 +1641,16 @@
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
}
|
||||
@ -260,11 +260,11 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/lib/gdb.exp
|
||||
return 0
|
||||
}
|
||||
|
||||
Index: gdb-7.10.90.20160211/gdb/testsuite/lib/mi-support.exp
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/testsuite/lib/mi-support.exp 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/testsuite/lib/mi-support.exp 2016-02-15 23:26:46.516096395 +0100
|
||||
@@ -204,6 +204,16 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/testsuite/lib/mi-support.exp 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/lib/mi-support.exp 2016-07-03 14:34:32.033753676 +0200
|
||||
@@ -309,6 +309,16 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
}
|
||||
@ -279,12 +279,22 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/lib/mi-support.exp
|
||||
+ }
|
||||
+ }
|
||||
|
||||
# Create the new PTY for the inferior process.
|
||||
if { $separate_inferior_pty } {
|
||||
Index: gdb-7.10.90.20160211/gdb/objfiles.h
|
||||
mi_create_inferior_pty
|
||||
--- gdb-7.11.90.20160907/gdb/testsuite/gdb.base/new-ui-pending-input.exp-orig 2016-09-07 04:01:15.000000000 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.base/new-ui-pending-input.exp 2016-09-07 22:35:35.818534069 +0200
|
||||
@@ -62,6 +62,7 @@ proc test_command_line_new_ui_pending_in
|
||||
set options ""
|
||||
append options " -iex \"set height 0\""
|
||||
append options " -iex \"set width 0\""
|
||||
+ append options " -iex \"set build-id-verbose 0\""
|
||||
append options " -iex \"new-ui console $extra_tty_name\""
|
||||
append options " -ex \"b $bpline\""
|
||||
append options " -ex \"run\""
|
||||
Index: gdb-7.11.50.20160630/gdb/objfiles.h
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/objfiles.h 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/objfiles.h 2016-02-15 23:26:06.366811330 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/objfiles.h 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/objfiles.h 2016-07-03 14:34:32.034753685 +0200
|
||||
@@ -489,6 +489,10 @@
|
||||
|
||||
#define OBJF_NOT_FILENAME (1 << 6)
|
||||
@ -296,10 +306,10 @@ Index: gdb-7.10.90.20160211/gdb/objfiles.h
|
||||
/* Declarations for functions defined in objfiles.c */
|
||||
|
||||
extern struct objfile *allocate_objfile (bfd *, const char *name, int);
|
||||
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/corefile.exp
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/testsuite/gdb.base/corefile.exp 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/corefile.exp 2016-02-15 23:26:55.178157896 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/testsuite/gdb.base/corefile.exp 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/corefile.exp 2016-07-03 14:34:32.034753685 +0200
|
||||
@@ -293,3 +293,33 @@
|
||||
pass $test
|
||||
}
|
||||
@ -334,10 +344,10 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/corefile.exp
|
||||
+ gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
||||
+ pass $wholetest
|
||||
+}
|
||||
Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
Index: gdb-7.11.50.20160630/gdb/build-id.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/build-id.c 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/build-id.c 2016-02-15 23:26:46.516096395 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/build-id.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/build-id.c 2016-07-03 14:36:50.124938187 +0200
|
||||
@@ -26,11 +26,67 @@
|
||||
#include "objfiles.h"
|
||||
#include "filenames.h"
|
||||
@ -385,10 +395,10 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ && memcmp (xnp->name, "GNU", sizeof "GNU") == 0)
|
||||
+ {
|
||||
+ size_t size = descsz;
|
||||
+ gdb_byte *data = (void *) descdata;
|
||||
+ gdb_byte *data = (gdb_byte *) descdata;
|
||||
+ struct bfd_build_id *retval;
|
||||
+
|
||||
+ retval = xmalloc (sizeof *retval - 1 + size);
|
||||
+ retval = (struct bfd_build_id *) xmalloc (sizeof *retval - 1 + size);
|
||||
+ retval->size = size;
|
||||
+ memcpy (retval->data, data, size);
|
||||
+
|
||||
@ -429,7 +439,7 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ gdb_byte *buf;
|
||||
+ int err;
|
||||
+
|
||||
+ buf = xmalloc (hdr->p_filesz);
|
||||
+ buf = (gdb_byte *) xmalloc (hdr->p_filesz);
|
||||
+ err = target_read_memory (loadbase + i_phdr[i].p_vaddr, buf,
|
||||
+ hdr->p_filesz);
|
||||
+ if (err == 0)
|
||||
@ -633,8 +643,8 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ x_phdrs_size = (bfd_get_arch_size (templ) == 64 ? sizeof (Elf64_External_Phdr)
|
||||
+ : sizeof (Elf32_External_Phdr));
|
||||
+
|
||||
+ i_phdrs = xmalloc (i_ehdr.e_phnum * (sizeof *i_phdrs + x_phdrs_size));
|
||||
+ x_phdrs_ptr = (void *) &i_phdrs[i_ehdr.e_phnum];
|
||||
+ i_phdrs = (Elf_Internal_Phdr *) xmalloc (i_ehdr.e_phnum * (sizeof *i_phdrs + x_phdrs_size));
|
||||
+ x_phdrs_ptr = (gdb_byte *) &i_phdrs[i_ehdr.e_phnum];
|
||||
+ err = target_read_memory (ehdr_vma + i_ehdr.e_phoff, (bfd_byte *) x_phdrs_ptr,
|
||||
+ i_ehdr.e_phnum * x_phdrs_size);
|
||||
+ if (err)
|
||||
@ -700,7 +710,7 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ {
|
||||
+ struct build_id_addr_sect *candidate;
|
||||
+
|
||||
+ candidate = xmalloc (sizeof *candidate);
|
||||
+ candidate = (struct build_id_addr_sect *) xmalloc (sizeof *candidate);
|
||||
+ candidate->next = build_id_addr_sect;
|
||||
+ build_id_addr_sect = candidate;
|
||||
+ candidate->sect = sect;
|
||||
@ -825,7 +835,7 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
- + (sizeof "/.build-id/" - 1) + 1
|
||||
- + 2 * build_id_len + (sizeof ".debug" - 1) + 1);
|
||||
- link = (char *) alloca (alloc_len);
|
||||
+ link = xmalloc (strlen (debug_file_directory) + 2 * build_id_len + 50);
|
||||
+ link = (char *) xmalloc (strlen (debug_file_directory) + 2 * build_id_len + 50);
|
||||
|
||||
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
cause "/.build-id/..." lookups. */
|
||||
@ -937,7 +947,7 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ {
|
||||
+ size_t len_orig = strlen (link_all);
|
||||
+
|
||||
+ link_all = xrealloc (link_all,
|
||||
+ link_all = (char *) xrealloc (link_all,
|
||||
+ len_orig + 1 + strlen (link0_resolved) + 1);
|
||||
+
|
||||
+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
|
||||
@ -1095,7 +1105,7 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+ if (*slot != NULL)
|
||||
+ return;
|
||||
+
|
||||
+ missing_filepair = obstack_alloc (&missing_filepair_obstack,
|
||||
+ missing_filepair = (struct missing_filepair *) obstack_alloc (&missing_filepair_obstack,
|
||||
+ sizeof (*missing_filepair) - 1
|
||||
+ + binary_len0 + debug_len0);
|
||||
+ missing_filepair->binary = missing_filepair->data;
|
||||
@ -1166,10 +1176,10 @@ Index: gdb-7.10.90.20160211/gdb/build-id.c
|
||||
+
|
||||
+ observer_attach_executable_changed (debug_print_executable_changed);
|
||||
+}
|
||||
Index: gdb-7.10.90.20160211/gdb/build-id.h
|
||||
Index: gdb-7.11.50.20160630/gdb/build-id.h
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/build-id.h 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/build-id.h 2016-02-15 23:26:06.368811345 +0100
|
||||
--- gdb-7.11.50.20160630.orig/gdb/build-id.h 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/build-id.h 2016-07-03 14:34:32.035753694 +0200
|
||||
@@ -20,9 +20,10 @@
|
||||
#ifndef BUILD_ID_H
|
||||
#define BUILD_ID_H
|
||||
@ -1204,11 +1214,11 @@ Index: gdb-7.10.90.20160211/gdb/build-id.h
|
||||
+ char **build_id_filename_return);
|
||||
|
||||
#endif /* BUILD_ID_H */
|
||||
Index: gdb-7.10.90.20160211/gdb/dwarf2read.c
|
||||
Index: gdb-7.11.50.20160630/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/dwarf2read.c 2016-02-15 23:25:36.461599001 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/dwarf2read.c 2016-02-15 23:26:06.373811380 +0100
|
||||
@@ -2516,7 +2516,7 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/dwarf2read.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/dwarf2read.c 2016-07-03 14:34:32.040753736 +0200
|
||||
@@ -2535,7 +2535,7 @@
|
||||
}
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
@ -1217,11 +1227,11 @@ Index: gdb-7.10.90.20160211/gdb/dwarf2read.c
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
error (_("could not find '.gnu_debugaltlink' file for %s"),
|
||||
Index: gdb-7.10.90.20160211/gdb/python/py-objfile.c
|
||||
Index: gdb-7.11.50.20160630/gdb/python/py-objfile.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/python/py-objfile.c 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/python/py-objfile.c 2016-02-15 23:26:06.373811380 +0100
|
||||
@@ -139,7 +139,7 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/python/py-objfile.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/python/py-objfile.c 2016-07-03 14:34:32.040753736 +0200
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
TRY
|
||||
{
|
||||
@ -1230,7 +1240,7 @@ Index: gdb-7.10.90.20160211/gdb/python/py-objfile.c
|
||||
}
|
||||
CATCH (except, RETURN_MASK_ALL)
|
||||
{
|
||||
@@ -548,7 +548,7 @@
|
||||
@@ -547,7 +547,7 @@
|
||||
/* Don't return separate debug files. */
|
||||
if (objfile->separate_debug_objfile_backlink != NULL)
|
||||
continue;
|
||||
@ -1239,11 +1249,11 @@ Index: gdb-7.10.90.20160211/gdb/python/py-objfile.c
|
||||
if (obfd_build_id == NULL)
|
||||
continue;
|
||||
if (objfpy_build_id_matches (obfd_build_id, build_id))
|
||||
Index: gdb-7.10.90.20160211/gdb/coffread.c
|
||||
Index: gdb-7.11.50.20160630/gdb/coffread.c
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/coffread.c 2016-02-15 23:25:00.859346221 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/coffread.c 2016-02-15 23:26:06.374811387 +0100
|
||||
@@ -739,7 +739,7 @@
|
||||
--- gdb-7.11.50.20160630.orig/gdb/coffread.c 2016-07-03 14:33:28.130205528 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/coffread.c 2016-07-03 14:34:32.041753745 +0200
|
||||
@@ -737,7 +737,7 @@
|
||||
{
|
||||
char *debugfile;
|
||||
|
||||
|
@ -35,7 +35,7 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.arch/powerpc-power6.exp
|
||||
+
|
||||
+set testfile "powerpc-power6"
|
||||
+set srcfile ${testfile}.s
|
||||
+set objfile ${objdir}/${subdir}/${testfile}.o
|
||||
+set objfile [standard_output_file ${testfile}.o]
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
|
||||
+ untested "PowerPC prologue tests"
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.10.50.20151022/gdb/infrun.c
|
||||
Index: gdb-7.11.90.20160904/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151022.orig/gdb/infrun.c 2015-10-22 22:30:15.887224452 +0200
|
||||
+++ gdb-7.10.50.20151022/gdb/infrun.c 2015-10-22 22:30:25.742282478 +0200
|
||||
@@ -2175,7 +2175,7 @@ static const char *const scheduler_enums
|
||||
--- gdb-7.11.90.20160904.orig/gdb/infrun.c 2016-09-04 17:57:12.733853848 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/infrun.c 2016-09-04 17:57:45.568145391 +0200
|
||||
@@ -2218,7 +2218,7 @@
|
||||
schedlock_replay,
|
||||
NULL
|
||||
};
|
||||
@ -11,11 +11,11 @@ Index: gdb-7.10.50.20151022/gdb/infrun.c
|
||||
static void
|
||||
show_scheduler_mode (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2015-10-22 22:29:38.352003447 +0200
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-cli.exp 2015-10-22 22:30:15.888224458 +0200
|
||||
@@ -199,7 +199,7 @@ mi_expect_stop "breakpoint-hit" "main" "
|
||||
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2016-09-04 17:57:12.733853848 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-cli.exp 2016-09-04 17:57:45.569145399 +0200
|
||||
@@ -199,7 +199,7 @@
|
||||
# Test that the token is output even for CLI commands
|
||||
# Also test that *stopped includes frame information.
|
||||
mi_gdb_test "34 next" \
|
||||
@ -24,11 +24,11 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||
"34 next: run"
|
||||
|
||||
# Test that the new current source line is output to the console
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2015-10-22 22:29:38.352003447 +0200
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-logging.exp 2015-10-22 22:30:15.888224458 +0200
|
||||
@@ -53,7 +53,7 @@ close $chan
|
||||
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2016-09-04 17:57:12.733853848 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-logging.exp 2016-09-04 17:57:45.569145399 +0200
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
|
||||
|
||||
@ -37,7 +37,7 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
pass "Log file contents"
|
||||
} else {
|
||||
fail "Log file contents"
|
||||
@@ -76,7 +76,7 @@ set chan [open $milogfile]
|
||||
@@ -76,7 +76,7 @@
|
||||
set logcontent [read $chan]
|
||||
close $chan
|
||||
|
||||
@ -46,11 +46,11 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
pass "Redirect log file contents"
|
||||
} else {
|
||||
fail "Redirect log file contents"
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-console.exp
|
||||
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151022.orig/gdb/testsuite/gdb.mi/mi-console.exp 2015-10-22 22:29:38.353003453 +0200
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-console.exp 2015-10-22 22:30:15.888224458 +0200
|
||||
@@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.mi/mi-console.exp 2016-09-04 17:57:12.733853848 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.mi/mi-console.exp 2016-09-04 17:57:45.569145399 +0200
|
||||
@@ -60,6 +60,9 @@
|
||||
|
||||
mi_run_to_main
|
||||
|
||||
@ -60,3 +60,16 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.mi/mi-console.exp
|
||||
# The output we get from the target depends on how it is hosted. If
|
||||
# we are semihosted (e.g., the sim or a remote target that supports
|
||||
# the File I/O remote protocol extension), we see the target I/O
|
||||
Index: gdb-7.11.90.20160904/gdb/testsuite/gdb.opt/inline-cmds.exp
|
||||
===================================================================
|
||||
--- gdb-7.11.90.20160904.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2016-09-04 17:59:44.600202299 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/testsuite/gdb.opt/inline-cmds.exp 2016-09-04 18:00:04.616380027 +0200
|
||||
@@ -331,7 +331,7 @@
|
||||
|
||||
send_gdb "interpreter-exec console \"step\"\n"
|
||||
gdb_expect {
|
||||
- -re "\\^running\r\n\\*running,thread-id=\"all\"\r\n${mi_gdb_prompt}${cli_output_re}" {
|
||||
+ -re "\\^running\r\n\\*running,thread-id=\"1\"\r\n${mi_gdb_prompt}${cli_output_re}" {
|
||||
pass $message
|
||||
}
|
||||
timeout {
|
||||
|
@ -68,7 +68,7 @@ http://sourceware.org/ml/gdb-patches/2007-09/msg00228.html
|
||||
+
|
||||
+set testfile "ppc-clobbered-registers-O2"
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
+set compile_flags "debug additional_flags=-O2"
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ${compile_flags}] != "" } {
|
||||
|
101
gdb-6.7-testsuite-stable-results.patch
Normal file
101
gdb-6.7-testsuite-stable-results.patch
Normal file
@ -0,0 +1,101 @@
|
||||
gdb/testsuite/gdb.base/fileio.c:
|
||||
gdb/testsuite/gdb.base/fileio.exp:
|
||||
2007-12-08 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/fileio.c (ROOTSUBDIR): New macro.
|
||||
(main): CHDIR into ROOTSUBDIR. CHOWN ROOTSUBDIR and CHDIR into
|
||||
ROOTSUBDIR if we are being run as root.
|
||||
* gdb.base/fileio.exp: Change the startup and finish cleanup.
|
||||
Change the test file reference to be into the `fileio.dir' directory.
|
||||
|
||||
|
||||
sources/gdb/testsuite/gdb.base/dump.exp:
|
||||
Found on RHEL-5.s390x.
|
||||
|
||||
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/auxv.exp:
|
||||
random FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
|
||||
|
||||
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp:
|
||||
frames-invalid can happen asynchronously.
|
||||
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.c
|
||||
===================================================================
|
||||
--- gdb-7.12.orig/gdb/testsuite/gdb.base/fileio.c 2016-08-01 17:50:21.000000000 +0200
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/fileio.c 2016-10-07 22:49:20.689346914 +0200
|
||||
@@ -556,6 +556,28 @@
|
||||
int
|
||||
main ()
|
||||
{
|
||||
+ /* These tests
|
||||
+ Open for write but no write permission returns EACCES
|
||||
+ Unlinking a file in a directory w/o write access returns EACCES
|
||||
+ fail if we are being run as root - drop the privileges here. */
|
||||
+
|
||||
+ if (geteuid () == 0)
|
||||
+ {
|
||||
+ uid_t uid = 99;
|
||||
+
|
||||
+ if (chown (OUTDIR, uid, uid) != 0)
|
||||
+ {
|
||||
+ printf ("chown %d.%d %s: %s\n", (int) uid, (int) uid,
|
||||
+ OUTDIR, strerror (errno));
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ if (setuid (uid) || geteuid () == 0)
|
||||
+ {
|
||||
+ printf ("setuid %d: %s\n", (int) uid, strerror (errno));
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* Don't change the order of the calls. They partly depend on each other */
|
||||
test_open ();
|
||||
test_write ();
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/fileio.exp
|
||||
===================================================================
|
||||
--- gdb-7.12.orig/gdb/testsuite/gdb.base/fileio.exp 2016-08-01 17:50:21.000000000 +0200
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/fileio.exp 2016-10-07 22:54:44.680071906 +0200
|
||||
@@ -24,9 +24,9 @@
|
||||
standard_testfile
|
||||
|
||||
if {[is_remote host]} {
|
||||
- set outdir .
|
||||
+ set outdir "fileio.dir"
|
||||
} else {
|
||||
- set outdir [standard_output_file {}]
|
||||
+ set outdir [standard_output_file "fileio.dir"]
|
||||
}
|
||||
|
||||
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
|
||||
@@ -47,7 +47,8 @@
|
||||
if {[file exists $dir2] && ![file writable $dir2]} {
|
||||
system "chmod +w $dir2"
|
||||
}
|
||||
-system "rm -rf [standard_output_file *.fileio.test]"
|
||||
+system "rm -rf [standard_output_file fileio.dir]"
|
||||
+system "mkdir -m777 [standard_output_file fileio.dir]"
|
||||
|
||||
set oldtimeout $timeout
|
||||
set timeout [expr "$timeout + 60"]
|
||||
@@ -89,7 +90,7 @@
|
||||
|
||||
gdb_test "continue" ".*" ""
|
||||
|
||||
-catch "system \"chmod -f -w [standard_output_file nowrt.fileio.test]\""
|
||||
+catch "system \"chmod -f -w [standard_output_file fileio.dir/nowrt.fileio.test]\""
|
||||
|
||||
gdb_test continue \
|
||||
"Continuing\\..*open 5:.*EACCES$stop_msg" \
|
||||
@@ -276,9 +277,7 @@
|
||||
gdb_exit
|
||||
|
||||
# Make dir2 writable again so rm -rf of a build tree Just Works.
|
||||
-if {[file exists $dir2] && ![file writable $dir2]} {
|
||||
- system "chmod +w $dir2"
|
||||
-}
|
||||
+system "chmod -R +w $outdir"
|
||||
|
||||
set timeout $oldtimeout
|
||||
return 0
|
@ -1,7 +1,8 @@
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/infrun.c gdb-7.10.50.20160106/gdb/infrun.c
|
||||
--- gdb-7.10.50.20160106-orig/gdb/infrun.c 2016-01-09 15:05:06.127481758 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/infrun.c 2016-01-09 15:05:24.054593048 +0100
|
||||
@@ -626,6 +626,13 @@ holding the child stopped. Try \"set de
|
||||
Index: gdb-7.11.50.20160716/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160716.orig/gdb/infrun.c 2016-07-16 14:37:09.317178150 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/infrun.c 2016-07-16 14:37:10.636188765 +0200
|
||||
@@ -620,6 +620,13 @@
|
||||
target_pid_to_str (process_ptid));
|
||||
}
|
||||
|
||||
@ -15,10 +16,11 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/infrun.c gdb-7.10.50.20160106/gdb/i
|
||||
target_detach (NULL, 0);
|
||||
}
|
||||
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/linux-nat.c gdb-7.10.50.20160106/gdb/linux-nat.c
|
||||
--- gdb-7.10.50.20160106-orig/gdb/linux-nat.c 2016-01-09 15:05:06.225482366 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/linux-nat.c 2016-01-09 15:05:24.050593023 +0100
|
||||
@@ -194,6 +194,11 @@ enum tribool have_ptrace_getregset = TRI
|
||||
Index: gdb-7.11.50.20160716/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160716.orig/gdb/linux-nat.c 2016-07-16 14:37:09.320178174 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/linux-nat.c 2016-07-16 14:38:09.574663094 +0200
|
||||
@@ -194,6 +194,11 @@
|
||||
static struct target_ops *linux_ops;
|
||||
static struct target_ops linux_ops_saved;
|
||||
|
||||
@ -30,7 +32,7 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/linux-nat.c gdb-7.10.50.20160106/gd
|
||||
/* The method to call, if any, when a new thread is attached. */
|
||||
static void (*linux_nat_new_thread) (struct lwp_info *);
|
||||
|
||||
@@ -961,6 +966,9 @@ linux_nat_post_attach_wait (ptid_t ptid,
|
||||
@@ -1047,6 +1052,9 @@
|
||||
if (debug_linux_nat)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"LNPAW: Attaching to a stopped process\n");
|
||||
@ -40,8 +42,8 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/linux-nat.c gdb-7.10.50.20160106/gd
|
||||
|
||||
/* The process is definitely stopped. It is in a job control
|
||||
stop, unless the kernel predates the TASK_STOPPED /
|
||||
@@ -1303,6 +1311,25 @@ get_pending_status (struct lwp_info *lp,
|
||||
gdb_signal_to_string (signo));
|
||||
@@ -1404,6 +1412,25 @@
|
||||
return gdb_signal_to_host (signo);
|
||||
}
|
||||
|
||||
+#ifdef NEED_DETACH_SIGSTOP
|
||||
@ -66,18 +68,18 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/linux-nat.c gdb-7.10.50.20160106/gd
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1416,6 +1443,10 @@ linux_nat_detach (struct target_ops *ops
|
||||
}
|
||||
else
|
||||
linux_ops->to_detach (ops, args, from_tty);
|
||||
+#ifdef NEED_DETACH_SIGSTOP
|
||||
@@ -1562,6 +1589,10 @@
|
||||
detach_one_lwp (main_lwp, &signo);
|
||||
|
||||
inf_ptrace_detach_success (ops);
|
||||
+
|
||||
+#ifdef NEED_DETACH_SIGSTOP
|
||||
+ pid_was_stopped = 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Resume execution of the inferior process. If STEP is nonzero,
|
||||
@@ -1674,6 +1705,16 @@ linux_nat_resume (struct target_ops *ops
|
||||
delete_lwp (main_lwp->ptid);
|
||||
}
|
||||
@@ -1823,6 +1854,16 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@ -94,7 +96,7 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/linux-nat.c gdb-7.10.50.20160106/gd
|
||||
if (resume_many)
|
||||
iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
|
||||
|
||||
@@ -3618,6 +3659,10 @@ linux_nat_mourn_inferior (struct target_
|
||||
@@ -3819,6 +3860,10 @@
|
||||
|
||||
/* Let the arch-specific native code know this process is gone. */
|
||||
linux_nat_forget_process (pid);
|
||||
@ -105,10 +107,11 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/linux-nat.c gdb-7.10.50.20160106/gd
|
||||
}
|
||||
|
||||
/* Convert a native/host siginfo object, into/from the siginfo in the
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/testsuite/gdb.threads/attach-stopped.exp gdb-7.10.50.20160106/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
--- gdb-7.10.50.20160106-orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-01-06 02:48:38.000000000 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-01-09 15:05:48.917747101 +0100
|
||||
@@ -56,7 +56,65 @@ proc corefunc { threadtype } {
|
||||
Index: gdb-7.11.50.20160716/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160716.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-07-16 14:37:09.321178182 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/testsuite/gdb.threads/attach-stopped.exp 2016-07-16 14:37:10.640188797 +0200
|
||||
@@ -56,7 +56,65 @@
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
|
@ -5,38 +5,42 @@ Some of the threads may not be properly PTRACE_DETACHed which hurts if they
|
||||
should have been detached with SIGSTOP (as they are accidentally left running
|
||||
on the debugger termination).
|
||||
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/defs.h gdb-7.10.50.20160106/gdb/defs.h
|
||||
--- gdb-7.10.50.20160106-orig/gdb/defs.h 2016-01-09 15:06:57.658172875 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/defs.h 2016-01-09 15:07:12.431264378 +0100
|
||||
@@ -145,6 +145,9 @@ extern void set_quit_flag (void);
|
||||
Index: gdb-7.11.50.20160630/gdb/defs.h
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160630.orig/gdb/defs.h 2016-07-03 16:40:43.423078926 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/defs.h 2016-07-03 16:41:08.568271741 +0200
|
||||
@@ -175,6 +175,10 @@
|
||||
/* Flag that function quit should call quit_force. */
|
||||
extern volatile int sync_quit_force_run;
|
||||
|
||||
+#ifdef NEED_DETACH_SIGSTOP
|
||||
+extern int quit_flag_cleanup;
|
||||
+#endif
|
||||
extern int immediate_quit;
|
||||
|
||||
+
|
||||
extern void quit (void);
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/extension.c gdb-7.10.50.20160106/gdb/extension.c
|
||||
--- gdb-7.10.50.20160106-orig/gdb/extension.c 2016-01-06 02:48:37.000000000 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/extension.c 2016-01-09 15:07:12.434264396 +0100
|
||||
@@ -833,6 +833,11 @@ check_quit_flag (void)
|
||||
|
||||
/* Helper for the QUIT macro. */
|
||||
Index: gdb-7.11.50.20160630/gdb/extension.c
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160630.orig/gdb/extension.c 2016-07-03 16:40:41.723065890 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/extension.c 2016-07-03 16:41:44.896550309 +0200
|
||||
@@ -830,6 +830,11 @@
|
||||
int i, result = 0;
|
||||
const struct extension_language_defn *extlang;
|
||||
|
||||
+#ifdef NEED_DETACH_SIGSTOP
|
||||
+ if (quit_flag_cleanup)
|
||||
+ return 0;
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
ALL_ENABLED_EXTENSION_LANGUAGES (i, extlang)
|
||||
{
|
||||
if (extlang->ops->check_quit_flag != NULL)
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/top.c gdb-7.10.50.20160106/gdb/top.c
|
||||
--- gdb-7.10.50.20160106-orig/gdb/top.c 2016-01-06 02:48:38.000000000 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/top.c 2016-01-09 15:07:12.432264384 +0100
|
||||
@@ -1557,7 +1557,13 @@ quit_force (char *args, int from_tty)
|
||||
Index: gdb-7.11.50.20160630/gdb/top.c
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160630.orig/gdb/top.c 2016-07-03 16:40:41.724065898 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/top.c 2016-07-03 16:40:43.424078934 +0200
|
||||
@@ -1617,7 +1617,13 @@
|
||||
qt.args = args;
|
||||
qt.from_tty = from_tty;
|
||||
|
||||
@ -50,20 +54,21 @@ diff -dup -rup gdb-7.10.50.20160106-orig/gdb/top.c gdb-7.10.50.20160106/gdb/top.
|
||||
|
||||
/* Get out of tfind mode, and kill or detach all inferiors. */
|
||||
TRY
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/utils.c gdb-7.10.50.20160106/gdb/utils.c
|
||||
--- gdb-7.10.50.20160106-orig/gdb/utils.c 2016-01-09 15:06:57.654172850 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/utils.c 2016-01-09 15:07:12.433264390 +0100
|
||||
@@ -122,6 +122,13 @@ int job_control;
|
||||
Index: gdb-7.11.50.20160630/gdb/utils.c
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160630.orig/gdb/utils.c 2016-07-03 16:40:41.725065905 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/utils.c 2016-07-03 16:41:38.961504799 +0200
|
||||
@@ -109,6 +109,13 @@
|
||||
|
||||
int immediate_quit;
|
||||
int job_control;
|
||||
|
||||
+#ifdef NEED_DETACH_SIGSTOP
|
||||
+/* Nonzero means we are already processing the quitting cleanups and we should
|
||||
+ no longer get aborted. */
|
||||
+
|
||||
+int quit_flag_cleanup;
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
/* Nonzero means that strings with character values >0x7F should be printed
|
||||
as octal escapes. Zero means just print the value (e.g. it's an
|
||||
international character, and the terminal or window can cope.) */
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:52497db17119a21d59bc62ac5f1138b8061990f97fee6138c4e8b4d7104e67e0
|
||||
size 27307242
|
3
gdb-7.12.1.tar.bz2
Normal file
3
gdb-7.12.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fc284fa344bd7d3440da19fd8660b4e9e524dea32abea0bddbf4e2225845140e
|
||||
size 27786483
|
@ -1,65 +0,0 @@
|
||||
From: Andrew Pinski <apinski@cavium.com>
|
||||
Date: Sat, 23 Jul 2016 16:56:44 +0000 (-0700)
|
||||
Subject: Fix ARMv8.1/v8.2 for hw watchpoint and breakpoint
|
||||
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=49ecef2a7da2ee9df4ae675f99b70518fbf1bb23
|
||||
|
||||
Fix ARMv8.1/v8.2 for hw watchpoint and breakpoint
|
||||
|
||||
The problem here is ARMv8.1 (and ARMv8.2) define a
|
||||
different debug version than ARMv8 (7 and 8 respectively).
|
||||
This fixes hw watchpoints and breakpoints by checking
|
||||
for those debug versions too.
|
||||
|
||||
Committed as obvious after a test on aarch64-linux-gnu
|
||||
(on a ThunderX machine which has ARMv8.1 support enabled).
|
||||
|
||||
ChangeLog:
|
||||
* nat/aarch64-linux-hw-point.c
|
||||
(aarch64_linux_get_debug_reg_capacity): Handle
|
||||
ARMv8.1 and ARMv8.2 debug versions.
|
||||
* nat/aarch64-linux-hw-point.h
|
||||
(AARCH64_DEBUG_ARCH_V8_1): New define.
|
||||
(AARCH64_DEBUG_ARCH_V8_2): New define.
|
||||
|
||||
Signed-off-by: Andrew Pinski <apinski@cavium.com>
|
||||
---
|
||||
|
||||
diff --git a/gdb/nat/aarch64-linux-hw-point.c b/gdb/nat/aarch64-linux-hw-point.c
|
||||
index a06a6e6..f9e04d9 100644
|
||||
--- a/gdb/nat/aarch64-linux-hw-point.c
|
||||
+++ b/gdb/nat/aarch64-linux-hw-point.c
|
||||
@@ -630,7 +630,9 @@ aarch64_linux_get_debug_reg_capacity (int tid)
|
||||
|
||||
/* Get hardware watchpoint register info. */
|
||||
if (ptrace (PTRACE_GETREGSET, tid, NT_ARM_HW_WATCH, &iov) == 0
|
||||
- && AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8)
|
||||
+ && (AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_1
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_2))
|
||||
{
|
||||
aarch64_num_wp_regs = AARCH64_DEBUG_NUM_SLOTS (dreg_state.dbg_info);
|
||||
if (aarch64_num_wp_regs > AARCH64_HWP_MAX_NUM)
|
||||
@@ -650,7 +652,9 @@ aarch64_linux_get_debug_reg_capacity (int tid)
|
||||
|
||||
/* Get hardware breakpoint register info. */
|
||||
if (ptrace (PTRACE_GETREGSET, tid, NT_ARM_HW_BREAK, &iov) == 0
|
||||
- && AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8)
|
||||
+ && (AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_1
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_2))
|
||||
{
|
||||
aarch64_num_bp_regs = AARCH64_DEBUG_NUM_SLOTS (dreg_state.dbg_info);
|
||||
if (aarch64_num_bp_regs > AARCH64_HBP_MAX_NUM)
|
||||
diff --git a/gdb/nat/aarch64-linux-hw-point.h b/gdb/nat/aarch64-linux-hw-point.h
|
||||
index acf0a49..16efb7c 100644
|
||||
--- a/gdb/nat/aarch64-linux-hw-point.h
|
||||
+++ b/gdb/nat/aarch64-linux-hw-point.h
|
||||
@@ -68,6 +68,8 @@
|
||||
|
||||
/* Macro for the expected version of the ARMv8-A debug architecture. */
|
||||
#define AARCH64_DEBUG_ARCH_V8 0x6
|
||||
+#define AARCH64_DEBUG_ARCH_V8_1 0x7
|
||||
+#define AARCH64_DEBUG_ARCH_V8_2 0x8
|
||||
|
||||
/* ptrace expects control registers to be formatted as follows:
|
||||
|
69
gdb-add-index-chmod.patch
Normal file
69
gdb-add-index-chmod.patch
Normal file
@ -0,0 +1,69 @@
|
||||
http://sourceware.org/ml/gdb-patches/2017-01/msg00110.html
|
||||
Subject: [patch] contrib/gdb-add-index.sh: chmod u+w
|
||||
|
||||
|
||||
--AhhlLboLdkugWU4S
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
in Fedora 24 it still worked, in Fedora 25 it does not - *-debuginfo.rpm
|
||||
no longer have the .gdb_index accelerating section now.
|
||||
|
||||
It happens because:
|
||||
objcopy: unable to copy file 'foo.debug'; reason: Permission denied
|
||||
|
||||
*.debug files in Fedora were always 444 but the time gdb-add-index is run is
|
||||
still before the *.debug split and in Fedora 24 the files were -rwxr-xr-x
|
||||
that time while in Fedora 25 they are apparently no longer w.
|
||||
|
||||
OK for check-in?
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--AhhlLboLdkugWU4S
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
gdb/ChangeLog
|
||||
2017-01-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* contrib/gdb-add-index.sh: Use chmod u+w for $file.
|
||||
|
||||
diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh
|
||||
index 0cd4ce3..5a190a0 100755
|
||||
--- a/gdb/contrib/gdb-add-index.sh
|
||||
+++ b/gdb/contrib/gdb-add-index.sh
|
||||
@@ -38,10 +38,11 @@ fi
|
||||
dir="${file%/*}"
|
||||
test "$dir" = "$file" && dir="."
|
||||
index="${file}.gdb-index"
|
||||
+mode="${file}.mode"
|
||||
|
||||
-rm -f $index
|
||||
+rm -f $index $mode
|
||||
# Ensure intermediate index file is removed when we exit.
|
||||
-trap "rm -f $index" 0
|
||||
+trap "rm -f $index $mode" 0
|
||||
|
||||
$GDB --batch -nx -iex 'set auto-load no' \
|
||||
-ex "file $file" -ex "save gdb-index $dir" || {
|
||||
@@ -58,8 +59,13 @@ $GDB --batch -nx -iex 'set auto-load no' \
|
||||
status=0
|
||||
|
||||
if test -f "$index"; then
|
||||
+ touch "$mode"
|
||||
+ chmod --reference="$file" "$mode"
|
||||
+ # objcopy: unable to copy file 'foo.debug'; reason: Permission denied
|
||||
+ chmod u+w "$file"
|
||||
$OBJCOPY --add-section .gdb_index="$index" \
|
||||
--set-section-flags .gdb_index=readonly "$file" "$file"
|
||||
+ chmod --reference="$mode" "$file"
|
||||
status=$?
|
||||
else
|
||||
echo "$myname: No index was created for $file" 1>&2
|
||||
|
||||
--AhhlLboLdkugWU4S--
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.10.50.20160121/gdb/breakpoint.c
|
||||
Index: gdb-7.11.90.20160829/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160121.orig/gdb/breakpoint.c 2016-01-21 21:52:34.243387043 +0100
|
||||
+++ gdb-7.10.50.20160121/gdb/breakpoint.c 2016-01-21 21:53:00.365542925 +0100
|
||||
@@ -16139,6 +16139,50 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/breakpoint.c 2016-08-29 09:41:57.054875810 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/breakpoint.c 2016-08-29 09:45:04.166612376 +0200
|
||||
@@ -16176,6 +16176,50 @@
|
||||
static struct cmd_list_element *enablebreaklist = NULL;
|
||||
|
||||
void
|
||||
@ -34,7 +34,7 @@ Index: gdb-7.10.50.20160121/gdb/breakpoint.c
|
||||
+ && relocated_address < obj_section_endaddr (osect))
|
||||
+ {
|
||||
+ if (bl->inserted)
|
||||
+ remove_breakpoint (bl, mark_uninserted);
|
||||
+ remove_breakpoint (bl);
|
||||
+
|
||||
+ bl->address += delta_offset;
|
||||
+ bl->requested_address += delta_offset;
|
||||
@ -53,11 +53,11 @@ Index: gdb-7.10.50.20160121/gdb/breakpoint.c
|
||||
_initialize_breakpoint (void)
|
||||
{
|
||||
struct cmd_list_element *c;
|
||||
Index: gdb-7.10.50.20160121/gdb/breakpoint.h
|
||||
Index: gdb-7.11.90.20160829/gdb/breakpoint.h
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160121.orig/gdb/breakpoint.h 2016-01-21 21:52:34.244387049 +0100
|
||||
+++ gdb-7.10.50.20160121/gdb/breakpoint.h 2016-01-21 21:53:00.366542931 +0100
|
||||
@@ -1629,4 +1629,7 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/breakpoint.h 2016-08-29 09:41:57.054875810 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/breakpoint.h 2016-08-29 09:42:24.370129320 +0200
|
||||
@@ -1644,4 +1644,7 @@
|
||||
UIOUT iff debugging multiple threads. */
|
||||
extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout);
|
||||
|
||||
@ -65,10 +65,10 @@ Index: gdb-7.10.50.20160121/gdb/breakpoint.h
|
||||
+ struct section_offsets *delta);
|
||||
+
|
||||
#endif /* !defined (BREAKPOINT_H) */
|
||||
Index: gdb-7.10.50.20160121/gdb/objfiles.c
|
||||
Index: gdb-7.11.90.20160829/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160121.orig/gdb/objfiles.c 2016-01-21 21:52:34.245387055 +0100
|
||||
+++ gdb-7.10.50.20160121/gdb/objfiles.c 2016-01-21 21:53:00.367542937 +0100
|
||||
--- gdb-7.11.90.20160829.orig/gdb/objfiles.c 2016-08-29 09:41:57.054875810 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/objfiles.c 2016-08-29 09:42:24.370129320 +0200
|
||||
@@ -916,6 +916,11 @@
|
||||
obj_section_addr (s));
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
|
||||
http://sourceware.org/gdb/wiki/ArcherBranchManagement
|
||||
|
||||
GIT snapshot:
|
||||
commit f0ee78c5ccefe388a64273353ecd5c99dae62558
|
||||
commit cfee64ee869a6a6e4ab0b64af149d4cf59517d80
|
||||
|
||||
tromey/python
|
||||
|
||||
@ -16,10 +16,10 @@ index 0000000..173b8ea
|
||||
+This branch originally held the Python code for gdb. It still exists
|
||||
+because a small amount of code here has not yet been merged upstream.
|
||||
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
index 95104ef..a9b198a 100644
|
||||
index 5af6103..9c69cb0 100644
|
||||
--- a/gdb/Makefile.in
|
||||
+++ b/gdb/Makefile.in
|
||||
@@ -1534,6 +1534,12 @@ stamp-h: $(srcdir)/config.in config.status
|
||||
@@ -1553,6 +1553,12 @@ stamp-h: $(srcdir)/config.in config.status
|
||||
CONFIG_LINKS= \
|
||||
$(SHELL) config.status
|
||||
|
||||
@ -33,10 +33,10 @@ index 95104ef..a9b198a 100644
|
||||
$(SHELL) config.status --recheck
|
||||
|
||||
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
|
||||
index 30cfd17..e977b30 100644
|
||||
index 3f23516..b5d6390 100644
|
||||
--- a/gdb/data-directory/Makefile.in
|
||||
+++ b/gdb/data-directory/Makefile.in
|
||||
@@ -65,7 +65,10 @@ PYTHON_FILE_LIST = \
|
||||
@@ -66,7 +66,10 @@ PYTHON_FILE_LIST = \
|
||||
gdb/unwinder.py \
|
||||
gdb/prompt.py \
|
||||
gdb/xmethod.py \
|
||||
@ -47,8 +47,8 @@ index 30cfd17..e977b30 100644
|
||||
gdb/command/xmethods.py \
|
||||
gdb/command/frame_filters.py \
|
||||
gdb/command/unwinders.py \
|
||||
@@ -76,6 +79,8 @@ PYTHON_FILE_LIST = \
|
||||
gdb/function/__init__.py \
|
||||
@@ -78,6 +81,8 @@ PYTHON_FILE_LIST = \
|
||||
gdb/function/as_string.py \
|
||||
gdb/function/caller_is.py \
|
||||
gdb/function/strfns.py \
|
||||
+ gdb/function/caller_is.py \
|
||||
@ -57,7 +57,7 @@ index 30cfd17..e977b30 100644
|
||||
gdb/printer/bound_registers.py
|
||||
|
||||
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
|
||||
index 1665372..c4caffc 100644
|
||||
index f5dde61..1d92bd6 100644
|
||||
--- a/gdb/doc/gdb.texinfo
|
||||
+++ b/gdb/doc/gdb.texinfo
|
||||
@@ -1225,6 +1225,16 @@ for remote debugging.
|
||||
@ -78,7 +78,7 @@ index 1665372..c4caffc 100644
|
||||
@item -tui
|
||||
@cindex @code{--tui}
|
||||
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
|
||||
index 57ec22e..13beb05 100644
|
||||
index a17e37d..c56068b 100644
|
||||
--- a/gdb/doc/python.texi
|
||||
+++ b/gdb/doc/python.texi
|
||||
@@ -88,8 +88,6 @@ containing @code{end}. For example:
|
||||
@ -111,7 +111,7 @@ index 05a38b2..9801fdf 100644
|
||||
set variable $gdb_init_done = 1
|
||||
|
||||
diff --git a/gdb/main.c b/gdb/main.c
|
||||
index aecd60a..d0f7834 100644
|
||||
index 5477379..b7e413f 100644
|
||||
--- a/gdb/main.c
|
||||
+++ b/gdb/main.c
|
||||
@@ -33,6 +33,7 @@
|
||||
@ -122,7 +122,7 @@ index aecd60a..d0f7834 100644
|
||||
#include "source.h"
|
||||
#include "cli/cli-cmds.h"
|
||||
#include "objfiles.h"
|
||||
@@ -453,6 +454,8 @@ captured_main (void *data)
|
||||
@@ -459,6 +460,8 @@ captured_main (void *data)
|
||||
char *cdarg = NULL;
|
||||
char *ttyarg = NULL;
|
||||
|
||||
@ -190,7 +190,7 @@ index aecd60a..d0f7834 100644
|
||||
{
|
||||
/* The remaining options are the command-line options for the
|
||||
inferior. The first one is the sym/exec file, and the rest
|
||||
@@ -1137,7 +1171,8 @@ captured_main (void *data)
|
||||
@@ -1127,7 +1161,8 @@ captured_main (void *data)
|
||||
|
||||
/* Read in the old history after all the command files have been
|
||||
read. */
|
||||
@ -200,7 +200,7 @@ index aecd60a..d0f7834 100644
|
||||
|
||||
if (batch_flag)
|
||||
{
|
||||
@@ -1148,13 +1183,25 @@ captured_main (void *data)
|
||||
@@ -1138,13 +1173,25 @@ captured_main (void *data)
|
||||
/* Show time and/or space usage. */
|
||||
do_cleanups (pre_stat_chain);
|
||||
|
||||
@ -232,7 +232,7 @@ index aecd60a..d0f7834 100644
|
||||
}
|
||||
/* No exit -- exit is through quit_command. */
|
||||
}
|
||||
@@ -1188,6 +1235,12 @@ print_gdb_help (struct ui_file *stream)
|
||||
@@ -1187,6 +1234,12 @@ print_gdb_help (struct ui_file *stream)
|
||||
fputs_unfiltered (_("\
|
||||
This is the GNU debugger. Usage:\n\n\
|
||||
gdb [options] [executable-file [core-file or process-id]]\n\
|
||||
@ -245,7 +245,7 @@ index aecd60a..d0f7834 100644
|
||||
gdb [options] --args executable-file [inferior-arguments ...]\n\n\
|
||||
"), stream);
|
||||
fputs_unfiltered (_("\
|
||||
@@ -1232,6 +1285,13 @@ Output and user interface control:\n\n\
|
||||
@@ -1231,6 +1284,13 @@ Output and user interface control:\n\n\
|
||||
#endif
|
||||
fputs_unfiltered (_("\
|
||||
--dbx DBX compatibility mode.\n\
|
||||
@ -443,10 +443,10 @@ index 0000000..8742680
|
||||
+
|
||||
+InScope ()
|
||||
diff --git a/gdb/python/python.c b/gdb/python/python.c
|
||||
index 4f88b0e..870a1ba 100644
|
||||
index 621e201..703a1a0 100644
|
||||
--- a/gdb/python/python.c
|
||||
+++ b/gdb/python/python.c
|
||||
@@ -93,6 +93,8 @@ const struct extension_language_defn extension_language_python =
|
||||
@@ -95,6 +95,8 @@ const struct extension_language_defn extension_language_python =
|
||||
#include "linespec.h"
|
||||
#include "source.h"
|
||||
#include "version.h"
|
||||
@ -455,7 +455,7 @@ index 4f88b0e..870a1ba 100644
|
||||
#include "target.h"
|
||||
#include "gdbthread.h"
|
||||
#include "interps.h"
|
||||
@@ -1262,6 +1264,83 @@ gdbpy_print_stack (void)
|
||||
@@ -1263,6 +1265,92 @@ gdbpy_print_stack (void)
|
||||
|
||||
/* Return the current Progspace.
|
||||
There always is one. */
|
||||
@ -477,7 +477,14 @@ index 4f88b0e..870a1ba 100644
|
||||
+ return PyErr_Format (PyExc_RuntimeError, _("Cannot invoke CLI from MI."));
|
||||
+
|
||||
+ in_cli = 1;
|
||||
+ current_interp_command_loop ();
|
||||
+ /* See captured_command_loop. */
|
||||
+
|
||||
+ /* Give the interpreter a chance to print a prompt. */
|
||||
+ interp_pre_command_loop (top_level_interpreter ());
|
||||
+
|
||||
+ /* Now it's time to start the event loop. */
|
||||
+ start_event_loop ();
|
||||
+
|
||||
+ in_cli = 0;
|
||||
+
|
||||
+ Py_RETURN_NONE;
|
||||
@ -500,13 +507,15 @@ index 4f88b0e..870a1ba 100644
|
||||
+ PySys_SetArgv (argc - 1, argv + 1);
|
||||
+#else
|
||||
+ {
|
||||
+ wchar_t **wargv = alloca (sizeof (*wargv) * (argc + 1));
|
||||
+ wchar_t **wargv = (wchar_t **) alloca (sizeof (*wargv) * (argc + 1));
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 1; i < argc; i++)
|
||||
+ {
|
||||
+ size_t len = mbstowcs (NULL, argv[i], 0);
|
||||
+ size_t len2;
|
||||
+ /* Python-related GDB sources are built with -DNDEBUG
|
||||
+ https://sourceware.org/bugzilla/show_bug.cgi?id=20445 */
|
||||
+ size_t len2 ATTRIBUTE_UNUSED;
|
||||
+
|
||||
+ if (len == (size_t) -1)
|
||||
+ {
|
||||
@ -514,7 +523,7 @@ index 4f88b0e..870a1ba 100644
|
||||
+ i, argv[i]);
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ wargv[i] = alloca (sizeof (**wargv) * (len + 1));
|
||||
+ wargv[i] = (wchar_t *) alloca (sizeof (**wargv) * (len + 1));
|
||||
+ len2 = mbstowcs (wargv[i], argv[i], len + 1);
|
||||
+ assert (len2 == len);
|
||||
+ }
|
||||
@ -539,7 +548,7 @@ index 4f88b0e..870a1ba 100644
|
||||
|
||||
static PyObject *
|
||||
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
|
||||
@@ -1982,6 +2061,8 @@ PyMethodDef python_GdbMethods[] =
|
||||
@@ -1981,6 +2069,8 @@ PyMethodDef python_GdbMethods[] =
|
||||
Evaluate command, a string, as a gdb CLI command. Optionally returns\n\
|
||||
a Python String containing the output of the command if to_string is\n\
|
||||
set to True." },
|
||||
@ -549,7 +558,7 @@ index 4f88b0e..870a1ba 100644
|
||||
"Return a gdb parameter's value" },
|
||||
|
||||
diff --git a/gdb/python/python.h b/gdb/python/python.h
|
||||
index e6bfcca..688daa3 100644
|
||||
index b810187..a3620ab 100644
|
||||
--- a/gdb/python/python.h
|
||||
+++ b/gdb/python/python.h
|
||||
@@ -25,4 +25,6 @@
|
||||
@ -560,10 +569,10 @@ index e6bfcca..688daa3 100644
|
||||
+
|
||||
#endif /* GDB_PYTHON_H */
|
||||
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
|
||||
index 9f25a48..88b0842 100644
|
||||
index 2fdd9e3..391900d 100644
|
||||
--- a/gdb/testsuite/gdb.gdb/selftest.exp
|
||||
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
|
||||
@@ -92,6 +92,10 @@ proc do_steps_and_nexts {} {
|
||||
@@ -87,6 +87,10 @@ proc do_steps_and_nexts {} {
|
||||
set description "step over cmdarg_vec initialization"
|
||||
set command "step"
|
||||
}
|
||||
@ -575,7 +584,7 @@ index 9f25a48..88b0842 100644
|
||||
set description "next over make_command_stats_cleanup and everything it calls"
|
||||
set command "next"
|
||||
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
|
||||
index 33fdbe5..264d00f 100644
|
||||
index b5a4682..d5451a6 100644
|
||||
--- a/gdb/testsuite/gdb.python/py-frame.exp
|
||||
+++ b/gdb/testsuite/gdb.python/py-frame.exp
|
||||
@@ -95,6 +95,8 @@ gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.r
|
||||
@ -588,10 +597,10 @@ index 33fdbe5..264d00f 100644
|
||||
gdb_test "python print ('result = %s' % (gdb.selected_frame ().read_register ('sp') == gdb.parse_and_eval ('\$sp')))" \
|
||||
" = True" \
|
||||
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
|
||||
index baa17b7..45ad67e 100644
|
||||
index 57a9ba1..d90d85a 100644
|
||||
--- a/gdb/testsuite/gdb.python/py-value.exp
|
||||
+++ b/gdb/testsuite/gdb.python/py-value.exp
|
||||
@@ -388,6 +388,15 @@ proc test_value_after_death {} {
|
||||
@@ -397,6 +397,15 @@ proc test_value_after_death {} {
|
||||
"print value's type"
|
||||
}
|
||||
|
||||
@ -607,7 +616,7 @@ index baa17b7..45ad67e 100644
|
||||
# Regression test for invalid subscript operations. The bug was that
|
||||
# the type of the value was not being checked before allowing a
|
||||
# subscript operation to proceed.
|
||||
@@ -517,6 +526,7 @@ test_value_in_inferior
|
||||
@@ -526,6 +535,7 @@ test_value_in_inferior
|
||||
test_inferior_function_call
|
||||
test_lazy_strings
|
||||
test_value_after_death
|
||||
|
@ -37,13 +37,13 @@ gdb/gdbserver/
|
||||
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
||||
direct ptrace.
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
|
||||
Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/nat/linux-ptrace.c 2016-01-08 19:15:57.580707944 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c 2016-01-08 19:16:02.654736246 +0100
|
||||
@@ -24,6 +24,10 @@
|
||||
#include "gdb_wait.h"
|
||||
--- gdb-7.11.90.20160829.orig/gdb/nat/linux-ptrace.c 2016-08-29 09:35:26.798230659 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/nat/linux-ptrace.c 2016-08-29 09:35:43.162384100 +0200
|
||||
@@ -25,6 +25,10 @@
|
||||
#include "gdb_ptrace.h"
|
||||
#include <sys/procfs.h>
|
||||
|
||||
+#ifdef HAVE_SELINUX_SELINUX_H
|
||||
+# include <selinux/selinux.h>
|
||||
@ -52,7 +52,7 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
|
||||
/* Stores the ptrace options supported by the running kernel.
|
||||
A value of -1 means we did not check for features yet. A value
|
||||
of 0 means there are no supported features. */
|
||||
@@ -48,6 +52,8 @@
|
||||
@@ -49,6 +53,8 @@
|
||||
buffer_xml_printf (buffer, _("process %d is a zombie "
|
||||
"- the process has already terminated"),
|
||||
(int) pid);
|
||||
@ -61,7 +61,7 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
|
||||
}
|
||||
|
||||
/* See linux-ptrace.h. */
|
||||
@@ -594,6 +600,22 @@
|
||||
@@ -592,6 +598,22 @@
|
||||
linux_ptrace_test_ret_to_nx ();
|
||||
}
|
||||
|
||||
@ -84,11 +84,11 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.c
|
||||
/* Extract extended ptrace event from wait status. */
|
||||
|
||||
int
|
||||
Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.h
|
||||
Index: gdb-7.11.90.20160829/gdb/nat/linux-ptrace.h
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/nat/linux-ptrace.h 2016-01-08 19:15:57.581707950 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/nat/linux-ptrace.h 2016-01-08 19:16:02.655736251 +0100
|
||||
@@ -164,6 +164,7 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/nat/linux-ptrace.h 2016-08-29 09:35:26.798230659 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/nat/linux-ptrace.h 2016-08-29 09:35:43.162384100 +0200
|
||||
@@ -185,6 +185,7 @@
|
||||
extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
|
||||
|
||||
extern void linux_ptrace_init_warnings (void);
|
||||
@ -96,11 +96,11 @@ Index: gdb-7.10.50.20160106/gdb/nat/linux-ptrace.h
|
||||
extern void linux_check_ptrace_features (void);
|
||||
extern void linux_enable_event_reporting (pid_t pid, int attached);
|
||||
extern void linux_disable_event_reporting (pid_t pid);
|
||||
Index: gdb-7.10.50.20160106/gdb/configure.ac
|
||||
Index: gdb-7.11.90.20160829/gdb/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/configure.ac 2016-01-08 19:15:57.582707955 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/configure.ac 2016-01-08 19:16:02.656736257 +0100
|
||||
@@ -2077,6 +2077,10 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/configure.ac 2016-08-29 09:35:26.799230668 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/configure.ac 2016-08-29 09:35:43.163384109 +0200
|
||||
@@ -2108,6 +2108,10 @@
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
||||
|
||||
@ -111,11 +111,11 @@ Index: gdb-7.10.50.20160106/gdb/configure.ac
|
||||
dnl Handle optional features that can be enabled.
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
Index: gdb-7.10.50.20160106/gdb/gdbserver/configure.ac
|
||||
Index: gdb-7.11.90.20160829/gdb/gdbserver/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/configure.ac 2016-01-08 19:15:57.582707955 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/gdbserver/configure.ac 2016-01-08 19:16:02.656736257 +0100
|
||||
@@ -524,6 +524,10 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/configure.ac 2016-08-29 09:35:26.799230668 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/gdbserver/configure.ac 2016-08-29 09:35:43.163384109 +0200
|
||||
@@ -472,6 +472,10 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -126,11 +126,11 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/configure.ac
|
||||
AC_SUBST(GDBSERVER_DEPFILES)
|
||||
AC_SUBST(GDBSERVER_LIBS)
|
||||
AC_SUBST(srv_xmlbuiltin)
|
||||
Index: gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c
|
||||
Index: gdb-7.11.90.20160829/gdb/gdbserver/linux-low.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/linux-low.c 2016-01-08 19:15:57.585707972 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c 2016-01-08 19:16:02.658736268 +0100
|
||||
@@ -853,6 +853,29 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/linux-low.c 2016-08-29 09:35:26.801230687 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/gdbserver/linux-low.c 2016-08-29 09:35:43.165384128 +0200
|
||||
@@ -933,6 +933,29 @@
|
||||
return lwp;
|
||||
}
|
||||
|
||||
@ -160,7 +160,7 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c
|
||||
/* Start an inferior process and returns its pid.
|
||||
ALLARGS is a vector of program-name and args. */
|
||||
|
||||
@@ -876,7 +899,7 @@
|
||||
@@ -956,7 +979,7 @@
|
||||
if (pid == 0)
|
||||
{
|
||||
close_most_fds ();
|
||||
@ -169,10 +169,10 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/linux-low.c
|
||||
|
||||
setpgid (0, 0);
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/inf-ptrace.c
|
||||
Index: gdb-7.11.90.20160829/gdb/inf-ptrace.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/inf-ptrace.c 2016-01-08 19:15:57.586707977 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/inf-ptrace.c 2016-01-08 19:16:02.659736274 +0100
|
||||
--- gdb-7.11.90.20160829.orig/gdb/inf-ptrace.c 2016-08-29 09:35:26.801230687 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/inf-ptrace.c 2016-08-29 09:35:43.165384128 +0200
|
||||
@@ -79,7 +79,15 @@
|
||||
inf_ptrace_me (void)
|
||||
{
|
||||
@ -189,11 +189,11 @@ Index: gdb-7.10.50.20160106/gdb/inf-ptrace.c
|
||||
}
|
||||
|
||||
/* Start a new inferior Unix child process. EXEC_FILE is the file to
|
||||
Index: gdb-7.10.50.20160106/gdb/linux-nat.c
|
||||
Index: gdb-7.11.90.20160829/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/linux-nat.c 2016-01-08 19:15:57.587707983 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/linux-nat.c 2016-01-08 19:16:02.660736279 +0100
|
||||
@@ -1016,6 +1016,7 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/linux-nat.c 2016-08-29 09:35:26.802230697 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/linux-nat.c 2016-08-29 09:35:43.166384137 +0200
|
||||
@@ -1102,6 +1102,7 @@
|
||||
{
|
||||
struct cleanup *restore_personality
|
||||
= maybe_disable_address_space_randomization (disable_randomization);
|
||||
@ -201,7 +201,7 @@ Index: gdb-7.10.50.20160106/gdb/linux-nat.c
|
||||
|
||||
/* The fork_child mechanism is synchronous and calls target_wait, so
|
||||
we have to mask the async mode. */
|
||||
@@ -1023,7 +1024,28 @@
|
||||
@@ -1109,7 +1110,28 @@
|
||||
/* Make sure we report all signals during startup. */
|
||||
linux_nat_pass_signals (ops, 0, NULL);
|
||||
|
||||
@ -231,11 +231,11 @@ Index: gdb-7.10.50.20160106/gdb/linux-nat.c
|
||||
|
||||
do_cleanups (restore_personality);
|
||||
}
|
||||
Index: gdb-7.10.50.20160106/gdb/config.in
|
||||
Index: gdb-7.11.90.20160829/gdb/config.in
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/config.in 2016-01-08 19:15:57.588707989 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/config.in 2016-01-08 19:16:02.660736279 +0100
|
||||
@@ -264,6 +264,9 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/config.in 2016-08-29 09:35:26.803230706 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/config.in 2016-08-29 09:35:43.166384137 +0200
|
||||
@@ -267,6 +267,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#undef HAVE_LIBRPM
|
||||
|
||||
@ -245,7 +245,7 @@ Index: gdb-7.10.50.20160106/gdb/config.in
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -396,6 +399,9 @@
|
||||
@@ -399,6 +402,9 @@
|
||||
/* Define to 1 if you have the `scm_new_smob' function. */
|
||||
#undef HAVE_SCM_NEW_SMOB
|
||||
|
||||
@ -255,11 +255,11 @@ Index: gdb-7.10.50.20160106/gdb/config.in
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/configure
|
||||
Index: gdb-7.11.90.20160829/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/configure 2016-01-08 19:15:57.593708017 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/configure 2016-01-08 19:16:02.665736307 +0100
|
||||
@@ -14653,6 +14653,64 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/configure 2016-08-29 09:35:26.806230734 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/configure 2016-08-29 09:35:43.170384175 +0200
|
||||
@@ -14642,6 +14642,64 @@
|
||||
_ACEOF
|
||||
|
||||
|
||||
@ -324,11 +324,11 @@ Index: gdb-7.10.50.20160106/gdb/configure
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
# except that the argument to --with-sysroot is optional.
|
||||
Index: gdb-7.10.50.20160106/gdb/gdbserver/config.in
|
||||
Index: gdb-7.11.90.20160829/gdb/gdbserver/config.in
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/config.in 2016-01-08 19:15:57.595708028 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/gdbserver/config.in 2016-01-08 19:16:02.665736307 +0100
|
||||
@@ -117,6 +117,9 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/config.in 2016-08-29 09:35:26.807230743 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/gdbserver/config.in 2016-08-29 09:35:43.170384175 +0200
|
||||
@@ -120,6 +120,9 @@
|
||||
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
||||
#undef HAVE_LIBMCHECK
|
||||
|
||||
@ -338,7 +338,7 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/config.in
|
||||
/* Define if the target supports branch tracing. */
|
||||
#undef HAVE_LINUX_BTRACE
|
||||
|
||||
@@ -193,6 +196,9 @@
|
||||
@@ -196,6 +199,9 @@
|
||||
/* Define to 1 if you have the `pwrite' function. */
|
||||
#undef HAVE_PWRITE
|
||||
|
||||
@ -348,11 +348,11 @@ Index: gdb-7.10.50.20160106/gdb/gdbserver/config.in
|
||||
/* Define to 1 if you have the `setns' function. */
|
||||
#undef HAVE_SETNS
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/gdbserver/configure
|
||||
Index: gdb-7.11.90.20160829/gdb/gdbserver/configure
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/gdbserver/configure 2016-01-08 19:15:57.597708039 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/gdbserver/configure 2016-01-08 19:16:02.667736318 +0100
|
||||
@@ -7311,6 +7311,64 @@
|
||||
--- gdb-7.11.90.20160829.orig/gdb/gdbserver/configure 2016-08-29 09:35:26.809230762 +0200
|
||||
+++ gdb-7.11.90.20160829/gdb/gdbserver/configure 2016-08-29 09:35:43.172384194 +0200
|
||||
@@ -7561,6 +7561,64 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
|
44
gdb-bison-old.patch
Normal file
44
gdb-bison-old.patch
Normal file
@ -0,0 +1,44 @@
|
||||
bison-3.0.4-4.fc24.x86_64
|
||||
vs.
|
||||
bison-2.7-4.el7.x86_64
|
||||
|
||||
bison:
|
||||
8d0b7cef7df7fead44b9574cee342de336008625 tags/v3.0.1~2
|
||||
parsers: rename YY_NULL as YY_NULLPTR to avoid conflicts with Flex
|
||||
|
||||
ada-lex.c:113:0: error: "YY_NULL" redefined [-Werror]
|
||||
#define YY_NULL 0
|
||||
|
||||
ada-exp.c:158:0: note: this is the location of the previous definition
|
||||
# define YY_NULL nullptr
|
||||
|
||||
*-exp.c cp-name-parser.c
|
||||
vs.
|
||||
ada-lex.c
|
||||
|
||||
# ifndef YY_NULL
|
||||
# if defined __cplusplus && 201103L <= __cplusplus
|
||||
# define YY_NULL nullptr
|
||||
# else
|
||||
# define YY_NULL 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef YY_NULLPTR
|
||||
# if defined __cplusplus && 201103L <= __cplusplus
|
||||
# define YY_NULLPTR nullptr
|
||||
# else
|
||||
# define YY_NULLPTR 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
--- gdb-clean712/gdb/Makefile.in 2016-08-29 09:16:15.505393928 +0200
|
||||
+++ gdb-clean712/gdb/Makefile.in 2016-09-07 13:32:34.744270346 +0200
|
||||
@@ -1900,6 +1945,7 @@ po/$(PACKAGE).pot: force
|
||||
-e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \
|
||||
-e 's/\([ \t;,(]\)free$$/\1xfree/g' \
|
||||
-e '/^#line.*y.tab.c/d' \
|
||||
+ -e 's/\<YY_NULL\>/YY_NULLPTR/g' \
|
||||
< $@.tmp > $@
|
||||
rm -f $@.tmp
|
||||
.l.c:
|
@ -1,7 +1,7 @@
|
||||
Index: gdb-7.10.90.20160211/gdb/config/i386/linux64.mh
|
||||
Index: gdb-7.11.90.20160807/gdb/config/i386/linux64.mh
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/config/i386/linux64.mh 2016-02-11 20:56:32.470674877 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/config/i386/linux64.mh 2016-02-11 20:56:51.158797712 +0100
|
||||
--- gdb-7.11.90.20160807.orig/gdb/config/i386/linux64.mh 2016-08-07 22:27:13.889285274 +0200
|
||||
+++ gdb-7.11.90.20160807/gdb/config/i386/linux64.mh 2016-08-07 22:29:20.451311124 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
linux-procfs.o linux-ptrace.o linux-btrace.o \
|
||||
linux-waitpid.o linux-personality.o x86-linux.o \
|
||||
@ -11,10 +11,10 @@ Index: gdb-7.10.90.20160211/gdb/config/i386/linux64.mh
|
||||
NAT_CDEPS = $(srcdir)/proc-service.list
|
||||
|
||||
# The dynamically loaded libthread_db needs access to symbols in the
|
||||
Index: gdb-7.10.90.20160211/gdb/config/i386/linux.mh
|
||||
Index: gdb-7.11.90.20160807/gdb/config/i386/linux.mh
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/config/i386/linux.mh 2016-02-11 20:56:26.925638430 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/config/i386/linux.mh 2016-02-11 20:56:32.471674884 +0100
|
||||
--- gdb-7.11.90.20160807.orig/gdb/config/i386/linux.mh 2016-08-07 22:27:13.889285274 +0200
|
||||
+++ gdb-7.11.90.20160807/gdb/config/i386/linux.mh 2016-08-07 22:29:20.451311124 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
# Host: Intel 386 running GNU/Linux.
|
||||
|
||||
@ -23,10 +23,10 @@ Index: gdb-7.10.90.20160211/gdb/config/i386/linux.mh
|
||||
NATDEPFILES= inf-ptrace.o fork-child.o \
|
||||
x86-nat.o x86-dregs.o i386-linux-nat.o x86-linux-nat.o \
|
||||
proc-service.o linux-thread-db.o \
|
||||
Index: gdb-7.10.90.20160211/gdb/config/i386/nm-linux.h
|
||||
Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.90.20160211/gdb/config/i386/nm-linux.h 2016-02-11 20:56:32.471674884 +0100
|
||||
+++ gdb-7.11.90.20160807/gdb/config/i386/nm-linux.h 2016-08-07 22:29:20.451311124 +0200
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Native support for GNU/Linux i386.
|
||||
+
|
||||
@ -56,10 +56,10 @@ Index: gdb-7.10.90.20160211/gdb/config/i386/nm-linux.h
|
||||
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
|
||||
+
|
||||
+#endif /* NM_LINUX64_H */
|
||||
Index: gdb-7.10.90.20160211/gdb/config/i386/nm-linux64.h
|
||||
Index: gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.90.20160211/gdb/config/i386/nm-linux64.h 2016-02-11 20:56:32.471674884 +0100
|
||||
+++ gdb-7.11.90.20160807/gdb/config/i386/nm-linux64.h 2016-08-07 22:29:20.451311124 +0200
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Native support for GNU/Linux amd64.
|
||||
+
|
||||
@ -89,13 +89,13 @@ Index: gdb-7.10.90.20160211/gdb/config/i386/nm-linux64.h
|
||||
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
|
||||
+
|
||||
+#endif /* NM_LINUX64_H */
|
||||
Index: gdb-7.10.90.20160211/gdb/target.h
|
||||
Index: gdb-7.11.90.20160807/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-7.10.90.20160211.orig/gdb/target.h 2016-02-11 20:56:26.926638437 +0100
|
||||
+++ gdb-7.10.90.20160211/gdb/target.h 2016-02-11 20:56:32.472674890 +0100
|
||||
@@ -1924,9 +1924,11 @@
|
||||
CNT is the number of such watchpoints used so far, including this
|
||||
one. OTHERTYPE is who knows what... */
|
||||
--- gdb-7.11.90.20160807.orig/gdb/target.h 2016-08-07 22:27:13.889285274 +0200
|
||||
+++ gdb-7.11.90.20160807/gdb/target.h 2016-08-07 22:29:20.452311132 +0200
|
||||
@@ -1939,9 +1939,11 @@
|
||||
one. OTHERTYPE is the number of watchpoints of other types than
|
||||
this one used so far. */
|
||||
|
||||
+#ifndef target_can_use_hardware_watchpoint
|
||||
#define target_can_use_hardware_watchpoint(TYPE,CNT,OTHERTYPE) \
|
||||
@ -105,10 +105,10 @@ Index: gdb-7.10.90.20160211/gdb/target.h
|
||||
|
||||
/* Returns the number of debug registers needed to watch the given
|
||||
memory region, or zero if not supported. */
|
||||
Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
Index: gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2016-02-11 20:56:32.472674890 +0100
|
||||
+++ gdb-7.11.90.20160807/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2016-08-07 22:29:20.452311132 +0200
|
||||
@@ -0,0 +1,40 @@
|
||||
+# Copyright 2009, 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -150,3 +150,16 @@ Index: gdb-7.10.90.20160211/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
+gdb_test "" "main .* at .*" "start"
|
||||
+
|
||||
+gdb_test "continue" "Continuing.\r\n\r\nHardware read watchpoint \[0-9\]+: watchee\r\n\r\nValue = 0\r\n.*"
|
||||
Index: gdb-7.11.90.20160807/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-7.11.90.20160807.orig/gdb/breakpoint.c 2016-08-07 22:33:38.835405458 +0200
|
||||
+++ gdb-7.11.90.20160807/gdb/breakpoint.c 2016-08-07 22:34:45.023941950 +0200
|
||||
@@ -14953,7 +14953,7 @@
|
||||
|
||||
if (bpt->type == bp_hardware_breakpoint)
|
||||
{
|
||||
- int i;
|
||||
+ int i ATTRIBUTE_UNUSED;
|
||||
i = hw_breakpoint_used_count ();
|
||||
target_resources_ok =
|
||||
target_can_use_hardware_watchpoint (bp_hardware_breakpoint,
|
||||
|
21
gdb-container-rh-pkg.patch
Normal file
21
gdb-container-rh-pkg.patch
Normal file
@ -0,0 +1,21 @@
|
||||
--- gdb-7.11/gdb/remote.c-orig 2016-04-06 17:46:52.428921496 +0200
|
||||
+++ gdb-7.11/gdb/remote.c 2016-04-06 18:28:26.781923516 +0200
|
||||
@@ -13002,7 +13002,17 @@ remote_pid_to_exec_file (struct target_o
|
||||
char *annex = NULL;
|
||||
|
||||
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)
|
||||
- return NULL;
|
||||
+ {
|
||||
+ warning (_("Remote gdbserver does not support determining executable "
|
||||
+ "automatically.\n"
|
||||
+"RHEL <=6.8 and <=7.2 versions of gdbserver do not support such automatic executable detection.\n"
|
||||
+"The following versions of gdbserver support it:\n"
|
||||
+"- Upstream version of gdbserver (unsupported) 7.10 or later\n"
|
||||
+"- Red Hat Developer Toolset (DTS) version of gdbserver from DTS 4.0 or later (only on x86_64)\n"
|
||||
+"- RHEL-7.3 versions of gdbserver (on any architecture)"
|
||||
+));
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
if (filename != NULL)
|
||||
xfree (filename);
|
@ -1,10 +1,10 @@
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1020004
|
||||
|
||||
Index: gdb-7.9.50.20150520/gdb/data-directory/Makefile.in
|
||||
Index: gdb-7.11.50.20160630/gdb/data-directory/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-7.9.50.20150520.orig/gdb/data-directory/Makefile.in 2015-05-31 18:05:43.046746351 +0200
|
||||
+++ gdb-7.9.50.20150520/gdb/data-directory/Makefile.in 2015-05-31 18:05:58.483841655 +0200
|
||||
@@ -60,6 +60,8 @@ PYTHON_FILE_LIST = \
|
||||
--- gdb-7.11.50.20160630.orig/gdb/data-directory/Makefile.in 2016-07-03 16:32:13.788164041 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/data-directory/Makefile.in 2016-07-03 16:32:17.868198850 +0200
|
||||
@@ -61,6 +61,8 @@
|
||||
gdb/frames.py \
|
||||
gdb/FrameIterator.py \
|
||||
gdb/FrameDecorator.py \
|
||||
@ -13,18 +13,18 @@ Index: gdb-7.9.50.20150520/gdb/data-directory/Makefile.in
|
||||
gdb/types.py \
|
||||
gdb/printing.py \
|
||||
gdb/unwinder.py \
|
||||
@@ -76,6 +78,7 @@ PYTHON_FILE_LIST = \
|
||||
@@ -77,6 +79,7 @@
|
||||
gdb/command/pretty_printers.py \
|
||||
gdb/command/prompt.py \
|
||||
gdb/command/explore.py \
|
||||
+ gdb/command/backtrace.py \
|
||||
gdb/function/__init__.py \
|
||||
gdb/function/as_string.py \
|
||||
gdb/function/caller_is.py \
|
||||
gdb/function/strfns.py \
|
||||
Index: gdb-7.9.50.20150520/gdb/python/lib/gdb/FrameWrapper.py
|
||||
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/python/lib/gdb/FrameWrapper.py 2015-05-31 18:05:58.484841661 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/python/lib/gdb/FrameWrapper.py 2016-07-03 16:32:17.869198859 +0200
|
||||
@@ -0,0 +1,122 @@
|
||||
+# Wrapper API for frames.
|
||||
+
|
||||
@ -148,10 +148,10 @@ Index: gdb-7.9.50.20150520/gdb/python/lib/gdb/FrameWrapper.py
|
||||
+
|
||||
+ def __getattr__ (self, name):
|
||||
+ return getattr (self.frame, name)
|
||||
Index: gdb-7.9.50.20150520/gdb/python/lib/gdb/backtrace.py
|
||||
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/backtrace.py
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/python/lib/gdb/backtrace.py 2015-05-31 18:05:58.484841661 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/python/lib/gdb/backtrace.py 2016-07-03 16:32:17.869198859 +0200
|
||||
@@ -0,0 +1,42 @@
|
||||
+# Filtering backtrace.
|
||||
+
|
||||
@ -195,10 +195,10 @@ Index: gdb-7.9.50.20150520/gdb/python/lib/gdb/backtrace.py
|
||||
+ return iter
|
||||
+ return old_frame_filter (iter)
|
||||
+
|
||||
Index: gdb-7.9.50.20150520/gdb/python/lib/gdb/command/backtrace.py
|
||||
Index: gdb-7.11.50.20160630/gdb/python/lib/gdb/command/backtrace.py
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/python/lib/gdb/command/backtrace.py 2015-05-31 18:05:58.484841661 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/python/lib/gdb/command/backtrace.py 2016-07-03 16:32:17.869198859 +0200
|
||||
@@ -0,0 +1,106 @@
|
||||
+# New backtrace command.
|
||||
+
|
||||
|
@ -11,11 +11,11 @@ gdb/
|
||||
Work around PR libc/13097.
|
||||
* solib.c (update_solib_list): Ignore "linux-vdso.so.1".
|
||||
|
||||
Index: gdb-7.11.1/gdb/solib.c
|
||||
Index: gdb-7.9.50.20150520/gdb/solib.c
|
||||
===================================================================
|
||||
--- gdb-7.11.1.orig/gdb/solib.c 2016-02-10 04:19:39.000000000 +0100
|
||||
+++ gdb-7.11.1/gdb/solib.c 2016-08-08 17:34:35.000000000 +0200
|
||||
@@ -891,8 +891,13 @@ update_solib_list (int from_tty, struct
|
||||
--- gdb-7.9.50.20150520.orig/gdb/solib.c 2015-05-31 17:04:16.870802493 +0200
|
||||
+++ gdb-7.9.50.20150520/gdb/solib.c 2015-05-31 17:04:38.824941054 +0200
|
||||
@@ -893,8 +893,11 @@ update_solib_list (int from_tty, struct
|
||||
|
||||
TRY
|
||||
{
|
||||
@ -25,8 +25,6 @@ Index: gdb-7.11.1/gdb/solib.c
|
||||
+ Work around PR libc/13097. */
|
||||
+ if (!solib_map_sections (i)
|
||||
+ && strcmp (i->so_original_name, "linux-vdso.so.1") != 0
|
||||
+ && strcmp (i->so_original_name, "linux-vdso32.so.1") != 0
|
||||
+ && strcmp (i->so_original_name, "linux-vdso64.so.1") != 0
|
||||
+ && strcmp (i->so_original_name, "linux-gate.so.1") != 0)
|
||||
{
|
||||
not_found++;
|
||||
|
16
gdb-libexec-add-index.patch
Normal file
16
gdb-libexec-add-index.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh
|
||||
index cca7153..73181ec 100755
|
||||
--- a/gdb/contrib/gdb-add-index.sh
|
||||
+++ b/gdb/contrib/gdb-add-index.sh
|
||||
@@ -21,6 +21,11 @@
|
||||
GDB=${GDB:=gdb}
|
||||
OBJCOPY=${OBJCOPY:=objcopy}
|
||||
|
||||
+GDB2=/usr/libexec/gdb
|
||||
+if test -x $GDB2 && ! which $GDB &>/dev/null; then
|
||||
+ GDB=$GDB2
|
||||
+fi
|
||||
+
|
||||
myname="${0##*/}"
|
||||
|
||||
if test $# != 1; then
|
3
gdb-libstdc++-v3-python-6.3.1-20170212.tar.bz2
Normal file
3
gdb-libstdc++-v3-python-6.3.1-20170212.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ae85ba0279cbf1f3d7d263b5136613c2dd707b80907b3f991db43b3b23432cc1
|
||||
size 19356
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c620865e7c00c9c2e644fa693a11170bbf2fec83c078c597e61606c38d2e2562
|
||||
size 19254
|
232
gdb-linux_perf-bundle.patch
Normal file
232
gdb-linux_perf-bundle.patch
Normal file
@ -0,0 +1,232 @@
|
||||
Index: gdb-7.11.90.20160904/gdb/nat/linux-btrace.h
|
||||
===================================================================
|
||||
--- gdb-7.11.90.20160904.orig/gdb/nat/linux-btrace.h 2016-09-04 04:02:13.000000000 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/nat/linux-btrace.h 2016-09-04 20:11:47.375275492 +0200
|
||||
@@ -28,6 +28,177 @@
|
||||
# include <linux/perf_event.h>
|
||||
#endif
|
||||
|
||||
+#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
|
||||
+#ifndef HAVE_LINUX_PERF_EVENT_H
|
||||
+# error "PERF_ATTR_SIZE_VER5_BUNDLE && !HAVE_LINUX_PERF_EVENT_H"
|
||||
+#endif
|
||||
+#ifndef PERF_ATTR_SIZE_VER5
|
||||
+#define PERF_ATTR_SIZE_VER5
|
||||
+#define perf_event_mmap_page perf_event_mmap_page_bundle
|
||||
+// kernel-headers-3.10.0-493.el7.x86_64/usr/include/linux/perf_event.h
|
||||
+/*
|
||||
+ * Structure of the page that can be mapped via mmap
|
||||
+ */
|
||||
+struct perf_event_mmap_page {
|
||||
+ __u32 version; /* version number of this structure */
|
||||
+ __u32 compat_version; /* lowest version this is compat with */
|
||||
+
|
||||
+ /*
|
||||
+ * Bits needed to read the hw events in user-space.
|
||||
+ *
|
||||
+ * u32 seq, time_mult, time_shift, index, width;
|
||||
+ * u64 count, enabled, running;
|
||||
+ * u64 cyc, time_offset;
|
||||
+ * s64 pmc = 0;
|
||||
+ *
|
||||
+ * do {
|
||||
+ * seq = pc->lock;
|
||||
+ * barrier()
|
||||
+ *
|
||||
+ * enabled = pc->time_enabled;
|
||||
+ * running = pc->time_running;
|
||||
+ *
|
||||
+ * if (pc->cap_usr_time && enabled != running) {
|
||||
+ * cyc = rdtsc();
|
||||
+ * time_offset = pc->time_offset;
|
||||
+ * time_mult = pc->time_mult;
|
||||
+ * time_shift = pc->time_shift;
|
||||
+ * }
|
||||
+ *
|
||||
+ * index = pc->index;
|
||||
+ * count = pc->offset;
|
||||
+ * if (pc->cap_user_rdpmc && index) {
|
||||
+ * width = pc->pmc_width;
|
||||
+ * pmc = rdpmc(index - 1);
|
||||
+ * }
|
||||
+ *
|
||||
+ * barrier();
|
||||
+ * } while (pc->lock != seq);
|
||||
+ *
|
||||
+ * NOTE: for obvious reason this only works on self-monitoring
|
||||
+ * processes.
|
||||
+ */
|
||||
+ __u32 lock; /* seqlock for synchronization */
|
||||
+ __u32 index; /* hardware event identifier */
|
||||
+ __s64 offset; /* add to hardware event value */
|
||||
+ __u64 time_enabled; /* time event active */
|
||||
+ __u64 time_running; /* time event on cpu */
|
||||
+ union {
|
||||
+ __u64 capabilities;
|
||||
+ struct {
|
||||
+ __u64 cap_bit0 : 1, /* Always 0, deprecated, see commit 860f085b74e9 */
|
||||
+ cap_bit0_is_deprecated : 1, /* Always 1, signals that bit 0 is zero */
|
||||
+
|
||||
+ cap_user_rdpmc : 1, /* The RDPMC instruction can be used to read counts */
|
||||
+ cap_user_time : 1, /* The time_* fields are used */
|
||||
+ cap_user_time_zero : 1, /* The time_zero field is used */
|
||||
+ cap_____res : 59;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ /*
|
||||
+ * If cap_user_rdpmc this field provides the bit-width of the value
|
||||
+ * read using the rdpmc() or equivalent instruction. This can be used
|
||||
+ * to sign extend the result like:
|
||||
+ *
|
||||
+ * pmc <<= 64 - width;
|
||||
+ * pmc >>= 64 - width; // signed shift right
|
||||
+ * count += pmc;
|
||||
+ */
|
||||
+ __u16 pmc_width;
|
||||
+
|
||||
+ /*
|
||||
+ * If cap_usr_time the below fields can be used to compute the time
|
||||
+ * delta since time_enabled (in ns) using rdtsc or similar.
|
||||
+ *
|
||||
+ * u64 quot, rem;
|
||||
+ * u64 delta;
|
||||
+ *
|
||||
+ * quot = (cyc >> time_shift);
|
||||
+ * rem = cyc & (((u64)1 << time_shift) - 1);
|
||||
+ * delta = time_offset + quot * time_mult +
|
||||
+ * ((rem * time_mult) >> time_shift);
|
||||
+ *
|
||||
+ * Where time_offset,time_mult,time_shift and cyc are read in the
|
||||
+ * seqcount loop described above. This delta can then be added to
|
||||
+ * enabled and possible running (if index), improving the scaling:
|
||||
+ *
|
||||
+ * enabled += delta;
|
||||
+ * if (index)
|
||||
+ * running += delta;
|
||||
+ *
|
||||
+ * quot = count / running;
|
||||
+ * rem = count % running;
|
||||
+ * count = quot * enabled + (rem * enabled) / running;
|
||||
+ */
|
||||
+ __u16 time_shift;
|
||||
+ __u32 time_mult;
|
||||
+ __u64 time_offset;
|
||||
+ /*
|
||||
+ * If cap_usr_time_zero, the hardware clock (e.g. TSC) can be calculated
|
||||
+ * from sample timestamps.
|
||||
+ *
|
||||
+ * time = timestamp - time_zero;
|
||||
+ * quot = time / time_mult;
|
||||
+ * rem = time % time_mult;
|
||||
+ * cyc = (quot << time_shift) + (rem << time_shift) / time_mult;
|
||||
+ *
|
||||
+ * And vice versa:
|
||||
+ *
|
||||
+ * quot = cyc >> time_shift;
|
||||
+ * rem = cyc & (((u64)1 << time_shift) - 1);
|
||||
+ * timestamp = time_zero + quot * time_mult +
|
||||
+ * ((rem * time_mult) >> time_shift);
|
||||
+ */
|
||||
+ __u64 time_zero;
|
||||
+ __u32 size; /* Header size up to __reserved[] fields. */
|
||||
+
|
||||
+ /*
|
||||
+ * Hole for extension of the self monitor capabilities
|
||||
+ */
|
||||
+
|
||||
+ __u8 __reserved[118*8+4]; /* align to 1k. */
|
||||
+
|
||||
+ /*
|
||||
+ * Control data for the mmap() data buffer.
|
||||
+ *
|
||||
+ * User-space reading the @data_head value should issue an smp_rmb(),
|
||||
+ * after reading this value.
|
||||
+ *
|
||||
+ * When the mapping is PROT_WRITE the @data_tail value should be
|
||||
+ * written by userspace to reflect the last read data, after issueing
|
||||
+ * an smp_mb() to separate the data read from the ->data_tail store.
|
||||
+ * In this case the kernel will not over-write unread data.
|
||||
+ *
|
||||
+ * See perf_output_put_handle() for the data ordering.
|
||||
+ *
|
||||
+ * data_{offset,size} indicate the location and size of the perf record
|
||||
+ * buffer within the mmapped area.
|
||||
+ */
|
||||
+ __u64 data_head; /* head in the data section */
|
||||
+ __u64 data_tail; /* user-space written tail */
|
||||
+ __u64 data_offset; /* where the buffer starts */
|
||||
+ __u64 data_size; /* data buffer size */
|
||||
+
|
||||
+ /*
|
||||
+ * AUX area is defined by aux_{offset,size} fields that should be set
|
||||
+ * by the userspace, so that
|
||||
+ *
|
||||
+ * aux_offset >= data_offset + data_size
|
||||
+ *
|
||||
+ * prior to mmap()ing it. Size of the mmap()ed area should be aux_size.
|
||||
+ *
|
||||
+ * Ring buffer pointers aux_{head,tail} have the same semantics as
|
||||
+ * data_{head,tail} and same ordering rules apply.
|
||||
+ */
|
||||
+ __u64 aux_head;
|
||||
+ __u64 aux_tail;
|
||||
+ __u64 aux_offset;
|
||||
+ __u64 aux_size;
|
||||
+};
|
||||
+#endif // PERF_ATTR_SIZE_VER5
|
||||
+#endif // PERF_ATTR_SIZE_VER5_BUNDLE
|
||||
+
|
||||
struct target_ops;
|
||||
|
||||
#if HAVE_LINUX_PERF_EVENT_H
|
||||
Index: gdb-7.11.90.20160904/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.11.90.20160904.orig/gdb/configure 2016-09-04 20:11:47.238274285 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/configure 2016-09-04 20:11:47.378275519 +0200
|
||||
@@ -10601,7 +10601,7 @@
|
||||
|
||||
#include <linux/perf_event.h>
|
||||
#ifndef PERF_ATTR_SIZE_VER5
|
||||
-# error
|
||||
+// error // PERF_ATTR_SIZE_VER5_BUNDLE is not available here - Fedora+RHEL
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
Index: gdb-7.11.90.20160904/gdb/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.11.90.20160904.orig/gdb/configure.ac 2016-09-04 20:11:47.238274285 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/configure.ac 2016-09-04 20:11:47.379275528 +0200
|
||||
@@ -1461,7 +1461,7 @@
|
||||
AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
|
||||
#include <linux/perf_event.h>
|
||||
#ifndef PERF_ATTR_SIZE_VER5
|
||||
-# error
|
||||
+// error // PERF_ATTR_SIZE_VER5_BUNDLE is not available here - Fedora+RHEL
|
||||
#endif
|
||||
]]), [perf_event=yes], [perf_event=no])
|
||||
if test "$perf_event" != yes; then
|
||||
Index: gdb-7.11.90.20160904/gdb/gdb.c
|
||||
===================================================================
|
||||
--- gdb-7.11.90.20160904.orig/gdb/gdb.c 2016-09-04 04:02:13.000000000 +0200
|
||||
+++ gdb-7.11.90.20160904/gdb/gdb.c 2016-09-04 20:12:28.018633552 +0200
|
||||
@@ -20,11 +20,19 @@
|
||||
#include "main.h"
|
||||
#include "interps.h"
|
||||
|
||||
+#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
|
||||
+extern "C" void __libipt_init(void);
|
||||
+#endif
|
||||
+
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
struct captured_main_args args;
|
||||
|
||||
+#ifdef PERF_ATTR_SIZE_VER5_BUNDLE
|
||||
+ __libipt_init();
|
||||
+#endif
|
||||
+
|
||||
memset (&args, 0, sizeof args);
|
||||
args.argc = argc;
|
||||
args.argv = argv;
|
226
gdb-physname-pr11734-test.patch
Normal file
226
gdb-physname-pr11734-test.patch
Normal file
@ -0,0 +1,226 @@
|
||||
http://sourceware.org/ml/gdb-patches/2010-12/msg00263.html
|
||||
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-1.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-1.cc 2011-02-03 22:28:01.000000000 +0100
|
||||
@@ -0,0 +1,30 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ Please email any bugs, comments, and/or additions to this file to:
|
||||
+ bug-gdb@gnu.org */
|
||||
+
|
||||
+#include "pr11734.h"
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ pr11734 *p = new pr11734;
|
||||
+ p->foo ();
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-2.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-2.cc 2011-02-03 22:28:01.000000000 +0100
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ Please email any bugs, comments, and/or additions to this file to:
|
||||
+ bug-gdb@gnu.org */
|
||||
+
|
||||
+#include "pr11734.h"
|
||||
+
|
||||
+void
|
||||
+pr11734::foo(void)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-3.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-3.cc 2011-02-03 22:28:01.000000000 +0100
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ Please email any bugs, comments, and/or additions to this file to:
|
||||
+ bug-gdb@gnu.org */
|
||||
+
|
||||
+#include "pr11734.h"
|
||||
+
|
||||
+void
|
||||
+pr11734::foo (int a)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734-4.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734-4.cc 2011-02-03 22:28:01.000000000 +0100
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ Please email any bugs, comments, and/or additions to this file to:
|
||||
+ bug-gdb@gnu.org */
|
||||
+
|
||||
+#include "pr11734.h"
|
||||
+
|
||||
+void
|
||||
+pr11734::foo (char *a)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734.exp 2011-02-03 22:28:01.000000000 +0100
|
||||
@@ -0,0 +1,55 @@
|
||||
+# Copyright 2010 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# Contributed by Red Hat, originally written by Keith Seitz.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+# This file is part of the gdb testsuite.
|
||||
+
|
||||
+if { [skip_cplus_tests] } { continue }
|
||||
+
|
||||
+set testfile "pr11734"
|
||||
+set class $testfile
|
||||
+
|
||||
+set srcfiles {}
|
||||
+for {set i 1} {$i < 5} {incr i} {
|
||||
+ lappend srcfiles $testfile-$i.cc
|
||||
+}
|
||||
+
|
||||
+prepare_for_testing pr11734 $testfile $srcfiles {c++ debug}
|
||||
+
|
||||
+if {![runto_main]} {
|
||||
+ perror "couldn't run to breakpoint"
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+# An array holding the overload types for the method pr11734::foo. The
|
||||
+# first element is the overloaded method parameter. The second element
|
||||
+# is the expected source file number, e.g. "pr11734-?.cc".
|
||||
+array set tests {
|
||||
+ "char*" 4
|
||||
+ "int" 3
|
||||
+ "" 2
|
||||
+}
|
||||
+
|
||||
+# Test each overload instance twice: once quoted, once unquoted
|
||||
+foreach ovld [array names tests] {
|
||||
+ set method "${class}::foo\($ovld\)"
|
||||
+ set result "Breakpoint (\[0-9\]).*file .*/$class-$tests($ovld).*"
|
||||
+ gdb_test "break $method" $result
|
||||
+ gdb_test "break '$method'" $result
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+return 0
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr11734.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr11734.h 2011-02-03 22:28:01.000000000 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ Please email any bugs, comments, and/or additions to this file to:
|
||||
+ bug-gdb@gnu.org */
|
||||
+
|
||||
+class pr11734
|
||||
+{
|
||||
+ public:
|
||||
+ void foo ();
|
||||
+ void foo (int);
|
||||
+ void foo (char *);
|
||||
+};
|
||||
+
|
95
gdb-physname-pr12273-test.patch
Normal file
95
gdb-physname-pr12273-test.patch
Normal file
@ -0,0 +1,95 @@
|
||||
http://sourceware.org/ml/gdb-patches/2010-12/msg00264.html
|
||||
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr12273.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr12273.cc 2011-02-03 22:31:01.000000000 +0100
|
||||
@@ -0,0 +1,37 @@
|
||||
+/* This test case is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+template <typename T>
|
||||
+class GDB
|
||||
+{
|
||||
+ public:
|
||||
+ static int simple (void) { return 0; }
|
||||
+ static int harder (T a) { return 1; }
|
||||
+ template <typename X>
|
||||
+ static X even_harder (T a) { return static_cast<X> (a); }
|
||||
+ int operator == (GDB const& other)
|
||||
+ { return 1; }
|
||||
+};
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ GDB<int> a, b;
|
||||
+ if (a == b)
|
||||
+ return GDB<char>::harder('a') + GDB<int>::harder(3)
|
||||
+ + GDB<char>::even_harder<int> ('a');
|
||||
+ return GDB<int>::simple ();
|
||||
+}
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.cp/pr12273.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.cp/pr12273.exp 2011-02-03 22:31:01.000000000 +0100
|
||||
@@ -0,0 +1,46 @@
|
||||
+# Copyright 2010 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# Contributed by Red Hat, originally written by Keith Seitz.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+# This file is part of the gdb testsuite.
|
||||
+
|
||||
+if {[skip_cplus_tests]} { continue }
|
||||
+
|
||||
+set testfile "pr12273"
|
||||
+# Do NOT compile with debug flag.
|
||||
+prepare_for_testing pr12273 $testfile $testfile.cc {c++}
|
||||
+
|
||||
+gdb_test_no_output "set language c++"
|
||||
+
|
||||
+# A list of minimal symbol names to check.
|
||||
+# Note that GDB<char>::even_harder<int>(char) is quoted and includes
|
||||
+# the return type. This is necessary because this is the demangled name
|
||||
+# of the minimal symbol.
|
||||
+set min_syms [list \
|
||||
+ "GDB<int>::operator ==" \
|
||||
+ "GDB<int>::operator==(GDB<int> const&)" \
|
||||
+ "GDB<char>::harder(char)" \
|
||||
+ "GDB<int>::harder(int)" \
|
||||
+ {"int GDB<char>::even_harder<int>(char)"} \
|
||||
+ "GDB<int>::simple()"]
|
||||
+
|
||||
+foreach sym $min_syms {
|
||||
+ if {[gdb_breakpoint $sym]} {
|
||||
+ pass "setting breakpoint at $sym"
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
@ -26,7 +26,7 @@
|
||||
+
|
||||
+set testfile "powerpc-power7"
|
||||
+set srcfile ${testfile}.s
|
||||
+set objfile ${objdir}/${subdir}/${testfile}.o
|
||||
+set objfile [standard_output_file ${testfile}.o]
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
|
||||
+ untested "PowerPC Power7 instructions disassembly"
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.9.50.20150520/gdb/doc/python.texi
|
||||
Index: gdb-7.11.50.20160630/gdb/doc/python.texi
|
||||
===================================================================
|
||||
--- gdb-7.9.50.20150520.orig/gdb/doc/python.texi 2015-05-31 17:57:12.431593983 +0200
|
||||
+++ gdb-7.9.50.20150520/gdb/doc/python.texi 2015-05-31 17:57:14.654607708 +0200
|
||||
@@ -229,6 +229,14 @@ returned as a string. The default is @c
|
||||
--- gdb-7.11.50.20160630.orig/gdb/doc/python.texi 2016-07-03 16:30:37.009338358 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/doc/python.texi 2016-07-03 16:30:42.812387867 +0200
|
||||
@@ -229,6 +229,14 @@
|
||||
return value is @code{None}. If @var{to_string} is @code{True}, the
|
||||
@value{GDBN} virtual terminal will be temporarily set to unlimited width
|
||||
and height, and its pagination will be disabled; @pxref{Screen Size}.
|
||||
@ -17,11 +17,11 @@ Index: gdb-7.9.50.20150520/gdb/doc/python.texi
|
||||
@end defun
|
||||
|
||||
@findex gdb.breakpoints
|
||||
Index: gdb-7.9.50.20150520/gdb/python/python-internal.h
|
||||
Index: gdb-7.11.50.20160630/gdb/python/python-internal.h
|
||||
===================================================================
|
||||
--- gdb-7.9.50.20150520.orig/gdb/python/python-internal.h 2015-05-31 17:57:12.432593989 +0200
|
||||
+++ gdb-7.9.50.20150520/gdb/python/python-internal.h 2015-05-31 17:57:14.654607708 +0200
|
||||
@@ -142,6 +142,8 @@ typedef int Py_ssize_t;
|
||||
--- gdb-7.11.50.20160630.orig/gdb/python/python-internal.h 2016-07-03 16:30:37.010338366 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/python/python-internal.h 2016-07-03 16:30:42.812387867 +0200
|
||||
@@ -140,6 +140,8 @@
|
||||
#define PyGILState_Release(ARG) ((void)(ARG))
|
||||
#define PyEval_InitThreads()
|
||||
#define PyThreadState_Swap(ARG) ((void)(ARG))
|
||||
@ -30,11 +30,11 @@ Index: gdb-7.9.50.20150520/gdb/python/python-internal.h
|
||||
#define PyEval_ReleaseLock()
|
||||
#endif
|
||||
|
||||
Index: gdb-7.9.50.20150520/gdb/python/python.c
|
||||
Index: gdb-7.11.50.20160630/gdb/python/python.c
|
||||
===================================================================
|
||||
--- gdb-7.9.50.20150520.orig/gdb/python/python.c 2015-05-31 17:57:14.656607720 +0200
|
||||
+++ gdb-7.9.50.20150520/gdb/python/python.c 2015-05-31 18:02:08.891424227 +0200
|
||||
@@ -627,13 +627,18 @@ execute_gdb_command (PyObject *self, PyO
|
||||
--- gdb-7.11.50.20160630.orig/gdb/python/python.c 2016-07-03 16:30:37.011338375 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/python/python.c 2016-07-03 16:31:16.324673783 +0200
|
||||
@@ -619,13 +619,18 @@
|
||||
{
|
||||
const char *arg;
|
||||
PyObject *from_tty_obj = NULL, *to_string_obj = NULL;
|
||||
@ -57,7 +57,7 @@ Index: gdb-7.9.50.20150520/gdb/python/python.c
|
||||
return NULL;
|
||||
|
||||
from_tty = 0;
|
||||
@@ -654,12 +659,28 @@ execute_gdb_command (PyObject *self, PyO
|
||||
@@ -646,6 +651,15 @@
|
||||
to_string = cmp;
|
||||
}
|
||||
|
||||
@ -73,8 +73,9 @@ Index: gdb-7.9.50.20150520/gdb/python/python.c
|
||||
TRY
|
||||
{
|
||||
/* Copy the argument text in case the command modifies it. */
|
||||
char *copy = xstrdup (arg);
|
||||
@@ -653,6 +667,13 @@
|
||||
struct cleanup *cleanup = make_cleanup (xfree, copy);
|
||||
struct interp *interp;
|
||||
|
||||
+ /* In the case of long running GDB commands, allow the user to
|
||||
+ release the Python GIL acquired by Python. Restore the GIL
|
||||
@ -83,10 +84,10 @@ Index: gdb-7.9.50.20150520/gdb/python/python.c
|
||||
+ if (release_gil)
|
||||
+ state = PyEval_SaveThread();
|
||||
+
|
||||
make_cleanup_restore_integer (&interpreter_async);
|
||||
interpreter_async = 0;
|
||||
make_cleanup_restore_integer (¤t_ui->async);
|
||||
current_ui->async = 0;
|
||||
|
||||
@@ -672,11 +693,23 @@ execute_gdb_command (PyObject *self, PyO
|
||||
@@ -671,11 +692,23 @@
|
||||
execute_command (copy, from_tty);
|
||||
}
|
||||
|
||||
@ -111,12 +112,11 @@ Index: gdb-7.9.50.20150520/gdb/python/python.c
|
||||
}
|
||||
END_CATCH
|
||||
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.c 2015-05-31 17:57:14.656607720 +0200
|
||||
@@ -0,0 +1,12 @@
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.c 2016-09-12 21:51:53.750317187 +0200
|
||||
@@ -0,0 +1,13 @@
|
||||
+#include <stdio.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
@ -128,10 +128,8 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.c
|
||||
+ printf ("Sleeping %d\n", i);
|
||||
+ }
|
||||
+}
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.exp 2015-05-31 17:57:14.657607726 +0200
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.exp 2016-09-12 21:52:38.605750360 +0200
|
||||
@@ -0,0 +1,69 @@
|
||||
+# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -170,7 +168,7 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.exp
|
||||
+set sleeping_last -1
|
||||
+set hello_last 0
|
||||
+set minimal 5
|
||||
+gdb_test_multiple "python execfile('$srcdir/$subdir/$srcfile2')" $test {
|
||||
+gdb_test_multiple "python exec (open ('$srcdir/$subdir/$srcfile2').read ())" $test {
|
||||
+ -re "Error: unable to start thread\r\n" {
|
||||
+ fail $test
|
||||
+ # Not $gdb_prompt-synced!
|
||||
@ -202,12 +200,13 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.exp
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.py
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.py 2015-05-31 17:57:14.657607726 +0200
|
||||
@@ -0,0 +1,22 @@
|
||||
+import thread
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-gil-mthread.py 2016-09-12 21:59:02.668459286 +0200
|
||||
@@ -0,0 +1,28 @@
|
||||
+try:
|
||||
+ import thread
|
||||
+except:
|
||||
+ import _thread
|
||||
+import time
|
||||
+import gdb
|
||||
+
|
||||
@ -217,15 +216,18 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.python/py-gil-mthread.py
|
||||
+ while count < 10:
|
||||
+ time.sleep(1)
|
||||
+ count += 1
|
||||
+ print "Hello (", count, ")"
|
||||
+ print ("Hello (", count, ")")
|
||||
+
|
||||
+# Create a threads a continue
|
||||
+try:
|
||||
+ thread.start_new_thread( print_thread_hello, ())
|
||||
+ thread.start_new_thread (print_thread_hello, ())
|
||||
+ gdb.execute ("continue", release_gil=True)
|
||||
+
|
||||
+except:
|
||||
+ print "Error: unable to start thread"
|
||||
+ try:
|
||||
+ _thread.start_new_thread (print_thread_hello, ())
|
||||
+ gdb.execute ("continue", release_gil=True)
|
||||
+ except:
|
||||
+ print ("Error: unable to start thread")
|
||||
+
|
||||
+while 1:
|
||||
+ pass
|
||||
|
@ -1,17 +1,18 @@
|
||||
diff -dup -rup gdb-7.10.50.20160106-orig/gdb/event-top.c gdb-7.10.50.20160106/gdb/event-top.c
|
||||
--- gdb-7.10.50.20160106-orig/gdb/event-top.c 2016-01-09 14:51:02.324243506 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/event-top.c 2016-01-09 14:51:33.029434121 +0100
|
||||
@@ -1033,6 +1033,13 @@ set_async_editing_command (char *args, i
|
||||
void
|
||||
gdb_setup_readline (void)
|
||||
Index: gdb-7.11.50.20160630/gdb/event-top.c
|
||||
===================================================================
|
||||
--- gdb-7.11.50.20160630.orig/gdb/event-top.c 2016-07-03 16:32:36.108342159 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/event-top.c 2016-07-03 16:32:59.787523733 +0200
|
||||
@@ -1252,6 +1252,13 @@
|
||||
{
|
||||
struct ui *ui = current_ui;
|
||||
|
||||
+#ifdef NEED_RL_STATE_FEDORA_GDB
|
||||
+ /* 6.2 regression: no longed asks for --more--
|
||||
+ gdb.base/readline-ask.exp
|
||||
+ https://bugzilla.redhat.com/show_bug.cgi?id=701131 */
|
||||
+ RL_SETSTATE (RL_STATE_FEDORA_GDB);
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
/* This function is a noop for the sync case. The assumption is
|
||||
that the sync setup is ALL done in gdb_init, and we would only
|
||||
mess it up here. The sync stuff should really go away over
|
||||
|
162
gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Normal file
162
gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Normal file
@ -0,0 +1,162 @@
|
||||
Original message by Tom Tromey:
|
||||
|
||||
<https://sourceware.org/ml/gdb-patches/2012-03/msg00955.html>
|
||||
Message-ID: <871uoc1va3.fsf@fleche.redhat.com>
|
||||
|
||||
Comment from Sergio Durigan Junior:
|
||||
|
||||
In order to correctly test this patch, I wrote a testcase based on Jan
|
||||
Kratochvil's <gdb/testsuite/gdb.base/gcore-excessive-memory.exp>. The
|
||||
testcase, which can be seen below, tests GDB in order to see if the
|
||||
amount of memory being leaked is minimal, as requested in the bugzilla.
|
||||
It is hard to define what "minimum" is, so I ran the testcase on all
|
||||
supported RHEL architectures and came up with an average.
|
||||
|
||||
commit cc0265cdda9dc7e8665e8bfcf5b4477489daf27c
|
||||
Author: Tom Tromey <tromey@redhat.com>
|
||||
Date: Wed Mar 28 17:38:08 2012 +0000
|
||||
|
||||
* python/py-inferior.c (infpy_read_memory): Remove cleanups and
|
||||
explicitly free 'buffer' on exit paths. Decref 'membuf_object'
|
||||
before returning.
|
||||
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.c
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+static struct x
|
||||
+ {
|
||||
+ char unsigned u[4096];
|
||||
+ } x, *px = &x;
|
||||
+
|
||||
+int
|
||||
+main (int argc, char *argv[])
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.exp
|
||||
@@ -0,0 +1,68 @@
|
||||
+# Copyright 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+set testfile py-gdb-rhbz1007614-memleak-infpy_read_memory
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+
|
||||
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+if { [skip_python_tests] } { continue }
|
||||
+
|
||||
+set pid_of_gdb [exp_pid -i [board_info host fileid]]
|
||||
+
|
||||
+proc memory_v_pages_get {} {
|
||||
+ global pid_of_gdb
|
||||
+ set fd [open "/proc/$pid_of_gdb/statm"]
|
||||
+ gets $fd line
|
||||
+ close $fd
|
||||
+ # number of pages of virtual memory
|
||||
+ scan $line "%d" drs
|
||||
+ return $drs
|
||||
+}
|
||||
+
|
||||
+if { ![runto_main] } {
|
||||
+ untested $testfile.exp
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set remote_python_file [remote_download host ${srcdir}/${subdir}/${testfile}.py]
|
||||
+
|
||||
+gdb_test "source ${remote_python_file}" ""
|
||||
+
|
||||
+gdb_test "hello-world" ""
|
||||
+
|
||||
+set kbytes_before [memory_v_pages_get]
|
||||
+verbose -log "kbytes_before = $kbytes_before"
|
||||
+
|
||||
+gdb_test "hello-world" ""
|
||||
+
|
||||
+set kbytes_after [memory_v_pages_get]
|
||||
+verbose -log "kbytes_after = $kbytes_after"
|
||||
+
|
||||
+set kbytes_diff [expr $kbytes_after - $kbytes_before]
|
||||
+verbose -log "kbytes_diff = $kbytes_diff"
|
||||
+
|
||||
+# The value "1000" was calculated by running a few GDB sessions with this
|
||||
+# testcase, and seeing how much (in average) the memory consumption
|
||||
+# increased after the "hello-world" command issued above. The average
|
||||
+# was around 500 bytes, so I chose 1000 as a high estimate.
|
||||
+if { $kbytes_diff > 1000 } {
|
||||
+ fail "there is a memory leak on GDB (RHBZ 1007614)"
|
||||
+} else {
|
||||
+ pass "there is not a memory leak on GDB (RHBZ 1007614)"
|
||||
+}
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.python/py-gdb-rhbz1007614-memleak-infpy_read_memory.py
|
||||
@@ -0,0 +1,30 @@
|
||||
+# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+class HelloWorld (gdb.Command):
|
||||
+ """Greet the whole world."""
|
||||
+
|
||||
+ def __init__ (self):
|
||||
+ super (HelloWorld, self).__init__ ("hello-world",
|
||||
+ gdb.COMMAND_OBSCURE)
|
||||
+
|
||||
+ def invoke (self, arg, from_tty):
|
||||
+ px = gdb.parse_and_eval("px")
|
||||
+ core = gdb.inferiors()[0]
|
||||
+ for i in range(256 * 1024):
|
||||
+ chunk = core.read_memory(px, 4096)
|
||||
+ print "Hello, World!"
|
||||
+
|
||||
+HelloWorld ()
|
226
gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Normal file
226
gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Normal file
@ -0,0 +1,226 @@
|
||||
These testcases have been created by compiling glibc-2.17-78 on
|
||||
RHEL-7.1 s390x/ppc64 boxes, and then taking the "select.o" file
|
||||
present at $builddir/misc/select.o.
|
||||
|
||||
Index: gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.exp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.exp
|
||||
@@ -0,0 +1,34 @@
|
||||
+# Copyright 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if { ![istarget s390x-*linux-*] || ![is_lp64_target] } {
|
||||
+ verbose "Skipping s390x-prologue-skip.exp"
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile "s390x-prologue-skip"
|
||||
+set uufile "${srcdir}/${subdir}/${testfile}.o.uu"
|
||||
+set ofile "${srcdir}/${subdir}/${testfile}.o"
|
||||
+
|
||||
+if { [catch "system \"uudecode -o ${ofile} ${uufile}\"" ] != 0 } {
|
||||
+ untested "failed uudecode"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_load $ofile
|
||||
+
|
||||
+gdb_test "break select" "Breakpoint $decimal at 0x48: file ../sysdeps/unix/syscall-template.S, line 81." "breakpoint on select"
|
||||
Index: gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.arch/s390x-prologue-skip.o.uu
|
||||
@@ -0,0 +1,64 @@
|
||||
+begin 644 s390x-prologue-skip.o.uu
|
||||
+M?T5,1@("`0`````````````!`!8````!````````````````````````````
|
||||
+M``+```````!```````!``!(`#^LE\!``).O?\&@`)+D$`.^G^_]@X^#P```D
|
||||
+MP.4`````N00``NLE\+``!`J.N00`TKD$`"#`Y0````"Y!``MZ]_Q"``$I_0`
|
||||
+M"L`0`````+\/$`"G=/_7"HZG2?`!N2$`),"T``````?^````5@`"````.0$!
|
||||
+M^PX-``$!`0$````!```!+BXO<WES9&5P<R]U;FEX``!S>7-C86QL+71E;7!L
|
||||
+M871E+E,``0`````)`@```````````]```0)F$P("``$!````CP`"``````@!
|
||||
+M```````````````````````````N+B]S>7-D97!S+W5N:7@O<WES8V%L;"UT
|
||||
+M96UP;&%T92Y3`"]R;V]T+V=L:6)C+V=L:6)C+3(N,3<M-S@N96PW+G-R8R]G
|
||||
+M;&EB8RTR+C$W+6,W-3AA-C@V+VUI<V,`1TY5($%3(#(N,C,N-3(N,"XQ`(`!
|
||||
+M`1$`$`81`1(!`P@;""4($P4`````````````````+``"``````@`````````
|
||||
+M`````````````````&@`````````````````````````%``````!>E(``7@.
|
||||
+M`1L,#Z`!````````&````!P`````````1`!,CP6.!HT'2`[``@```!`````X
|
||||
+M`````````"```````"YS>6UT86(`+G-T<G1A8@`N<VAS=')T86(`+G)E;&$N
|
||||
+M=&5X=``N9&%T80`N8G-S`"YN;W1E+D=.52US=&%C:P`N<F5L82YD96)U9U]L
|
||||
+M:6YE`"YR96QA+F1E8G5G7VEN9F\`+F1E8G5G7V%B8G)E=@`N<F5L82YD96)U
|
||||
+M9U]A<F%N9V5S`"YR96QA+F5H7V9R86UE````````````````````````````
|
||||
+M````````````````````````````````````````````````````````````
|
||||
+M````````(`````$`````````!@```````````````````$``````````:```
|
||||
+M``````````````````0``````````````!L````$````````````````````
|
||||
+M``````````F``````````&`````0`````0`````````(`````````!@````F
|
||||
+M`````0`````````#````````````````````J```````````````````````
|
||||
+M````````!```````````````+`````@``````````P``````````````````
|
||||
+M`*@```````````````````````````````0``````````````#$````!````
|
||||
+M``````````````````````````"H```````````````````````````````!
|
||||
+M``````````````!&`````0``````````````````````````````J```````
|
||||
+M``!:`````````````````````0``````````````00````0`````````````
|
||||
+M````````````````">``````````&````!`````&``````````@`````````
|
||||
+M&````%<````!``````````````````````````````$"`````````),`````
|
||||
+M```````````````!``````````````!2````!```````````````````````
|
||||
+M```````)^`````````!@````$`````@`````````"``````````8````8P``
|
||||
+M``$``````````````````````````````94`````````%```````````````
|
||||
+M``````$``````````````'8````!``````````````````````````````&P
|
||||
+M`````````#`````````````````````0``````````````!Q````!```````
|
||||
+M```````````````````````*6``````````P````$`````L`````````"```
|
||||
+M```````8````B@````$``````````@```````````````````>``````````
|
||||
+M2`````````````````````@``````````````(4````$````````````````
|
||||
+M``````````````J(`````````#`````0````#0`````````(`````````!@`
|
||||
+M```1`````P`````````````````````````````"*`````````"4````````
|
||||
+M`````````````0```````````````0````(`````````````````````````
|
||||
+M````!T`````````!L````!$````*``````````@`````````&`````D````#
|
||||
+M``````````````````````````````CP`````````(X`````````````````
|
||||
+M```!`````````````````````````````````````````````````P```0``
|
||||
+M`````````````````````````P```P```````````````````````````P``
|
||||
+M!````````````````````````````P``"```````````````````````````
|
||||
+M`P``"@```````````````````````````P``!@``````````````````````
|
||||
+M`````P``"P```````````````````````````P``#0``````````````````
|
||||
+M`````````P``!0`````````````````````````!$```````````````````
|
||||
+M```````````;$``````````````````````````````V$@```0````````!(
|
||||
+M`````````"`````_$`````````````````````````````!7$@```0``````
|
||||
+M``!6`````````!````!I$`````````````````````````````!Y(@```0``
|
||||
+M``````!(`````````"````"'(@```0````````!(`````````"``7U]L:6)C
|
||||
+M7V5N86)L95]A<WEN8V-A;F-E;`!?7VQI8F-?9&ES86)L95]A<WEN8V-A;F-E
|
||||
+M;`!?7W-E;&5C=`!?7VQI8F-?;75L=&EP;&5?=&AR96%D<P!?7W-E;&5C=%]N
|
||||
+M;V-A;F-E;`!?7W-Y<V-A;&Q?97)R;W(`7U]L:6)C7W-E;&5C=`!S96QE8W0`
|
||||
+M````````````'`````H````3``````````(`````````-@````L````3````
|
||||
+M``````(`````````2@````T````3``````````(`````````8@````\````3
|
||||
+M``````````(`````````1@````$````6````````````````````!@````4`
|
||||
+M```$````````````````````#`````8````$````````````````````$```
|
||||
+M``$````6````````````````````&`````$````6`````````&@`````````
|
||||
+M!@````0````$````````````````````$`````$````6````````````````
|
||||
+L````(`````$````%````````````````````/`````$````%`````````$@`
|
||||
+`
|
||||
+end
|
||||
Index: gdb-7.6.1/gdb/testsuite/gdb.arch/ppc64-prologue-skip.exp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.arch/ppc64-prologue-skip.exp
|
||||
@@ -0,0 +1,34 @@
|
||||
+# Copyright 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if { ![istarget powerpc64-*linux-*] || ![is_lp64_target] } {
|
||||
+ verbose "Skipping ppc64-prologue-skip.exp"
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile "ppc64-prologue-skip"
|
||||
+set uufile "${srcdir}/${subdir}/${testfile}.o.uu"
|
||||
+set ofile "${srcdir}/${subdir}/${testfile}.o"
|
||||
+
|
||||
+if { [catch "system \"uudecode -o ${ofile} ${uufile}\"" ] != 0 } {
|
||||
+ untested "failed uudecode"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_load $ofile
|
||||
+
|
||||
+gdb_test "break ___newselect_nocancel" "Breakpoint $decimal at 0xc: file ../sysdeps/unix/syscall-template.S, line 81." "breakpoint on ___newselect_nocancel"
|
||||
Index: gdb-7.6.1/gdb/testsuite/gdb.arch/ppc64-prologue-skip.o.uu
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.arch/ppc64-prologue-skip.o.uu
|
||||
@@ -0,0 +1,70 @@
|
||||
+begin 644 ppc64-skip-prologue.o.uu
|
||||
+M?T5,1@("`0`````````````!`!4````!````````````````````````````
|
||||
+M``-(``````!```````!``!0`$8%-B-`L"@``0,(`-#@``(Y$```"3.,`('P(
|
||||
+M`J;X`0`0^"'_D4@```%@````Z`$`@#@A`'!\"`.F3H``(/@A_X%]*`*F^2$`
|
||||
+MD/CA`-#XP0#(^*$`P/B!`+CX80"P2````6````#X80!PZ.$`T.C!`,CHH0#`
|
||||
+MZ($`N.AA`+`X``".1````GP``";X80!X^`$`B.AA`'!(```!8````.DA`)#H
|
||||
+M`0"(Z&$`>'TH`Z9\#_$@."$`@$SC`"!+__]@```````,($``````````O``(
|
||||
+M7U]S96QE8W0```````````````````````````!6``(````Y!`'[#@T``0$!
|
||||
+M`0````$```$N+B]S>7-D97!S+W5N:7@``'-Y<V-A;&PM=&5M<&QA=&4N4P`!
|
||||
+M``````D"```````````#T``!`BT3`@D``0$```"/``(`````"`$`````````
|
||||
+M`````````````````"XN+W-Y<V1E<',O=6YI>"]S>7-C86QL+71E;7!L871E
|
||||
+M+E,`+W)O;W0O9VQI8F,O9VQI8F,M,BXQ-RTW."YE;#<N<W)C+V=L:6)C+3(N
|
||||
+M,3<M8S<U.&$V.#8O;6ES8P!'3E4@05,@,BXR,RXU,BXP+C$`@`$!$0`0!A$!
|
||||
+M$@$#"!L()0@3!0`````````````````L``(`````"```````````````````
|
||||
+M````````V``````````````````````````0``````%Z4@`$>$$!&PP!````
|
||||
+M`#`````8`````````+P`20YP$4%^1`X`009!0@Z``4(107Y2$49_20X`!D$&
|
||||
+M1@``````+G-Y;71A8@`N<W1R=&%B`"YS:'-T<G1A8@`N<F5L82YT97AT`"YD
|
||||
+M871A`"YB<W,`+G)E;&$N;W!D`"YN;W1E+D=.52US=&%C:P`N<F5L82YD96)U
|
||||
+M9U]L:6YE`"YR96QA+F1E8G5G7VEN9F\`+F1E8G5G7V%B8G)E=@`N<F5L82YD
|
||||
+M96)U9U]A<F%N9V5S`"YR96QA+F5H7V9R86UE````````````````````````
|
||||
+M````````````````````````````````````````````````````````````
|
||||
+M`````````"`````!``````````8```````````````````!``````````-@`
|
||||
+M```````````````````$```````````````;````!```````````````````
|
||||
+M```````````*>`````````!(````$@````$`````````"``````````8````
|
||||
+M)@````$``````````P```````````````````1@`````````````````````
|
||||
+M``````````$``````````````"P````(``````````,`````````````````
|
||||
+M``$8```````````````````````````````!```````````````V`````0``
|
||||
+M```````#```````````````````!&``````````0````````````````````
|
||||
+M"```````````````,0````0`````````````````````````````"L``````
|
||||
+M````,````!(````%``````````@`````````&````#L````!````````````
|
||||
+M``````````````````$H```````````````````````````````!````````
|
||||
+M``````!0`````0`````````````````````````````!*`````````!:````
|
||||
+M`````````````````0``````````````2P````0`````````````````````
|
||||
+M````````"O``````````&````!(````(``````````@`````````&````&$`
|
||||
+M```!``````````````````````````````&"`````````),`````````````
|
||||
+M```````!``````````````!<````!``````````````````````````````+
|
||||
+M"`````````!@````$@````H`````````"``````````8````;0````$`````
|
||||
+M`````````````````````````A4`````````%`````````````````````$`
|
||||
+M`````````````(`````!``````````````````````````````(P````````
|
||||
+M`#`````````````````````0``````````````![````!```````````````
|
||||
+M```````````````+:``````````P````$@````T`````````"``````````8
|
||||
+M````E`````$``````````@```````````````````F``````````2```````
|
||||
+M``````````````@``````````````(\````$````````````````````````
|
||||
+M``````N8`````````!@````2````#P`````````(`````````!@````1````
|
||||
+M`P`````````````````````````````"J`````````">````````````````
|
||||
+M`````0```````````````0````(`````````````````````````````"$@`
|
||||
+M```````!L````!,````+``````````@`````````&`````D````#````````
|
||||
+M``````````````````````GX`````````'H````````````````````!````
|
||||
+M`````````````````````````````````````````````P```0``````````
|
||||
+M`````````````````P```P```````````````````````````P``!```````
|
||||
+M`````````````````````P``!0```````````````````````````P``"@``
|
||||
+M`````````````````````````P``#````````````````````````````P``
|
||||
+M"````````````````````````````P``#0``````````````````````````
|
||||
+M`P``#P```````````````````````````P``!P``````````````````````
|
||||
+M```!$@``!0```````````````````-@````*$@```0`````````,````````
|
||||
+M`#`````@$``````````````````````````````P$```````````````````
|
||||
+M``````````!*$`````````````````````````````!E(@``!0``````````
|
||||
+M`````````-@```!S(@``!0```````````````````-@`7U]S96QE8W0`7U]?
|
||||
+M;F5W<V5L96-T7VYO8V%N8V5L`%]?<WES8V%L;%]E<G)O<@!?7VQI8F-?96YA
|
||||
+M8FQE7V%S>6YC8V%N8V5L`%]?;&EB8U]D:7-A8FQE7V%S>6YC8V%N8V5L`%]?
|
||||
+M;&EB8U]S96QE8W0`<V5L96-T```````````````````D````#0````H`````
|
||||
+M``````````````!<````#@````H```````````````````"4````#P````H`
|
||||
+M`````````````````````````0```"8````````````````````(````````
|
||||
+M`#,```````````````````!&`````0```"8````````````````````&````
|
||||
+M!@````$````````````````````,````!P````$````````````````````0
|
||||
+M`````0```"8````````````````````8`````0```"8`````````V```````
|
||||
+M```&````!0````$````````````````````0`````0```"8`````````````
|
||||
+6```````<`````0```!H`````````````
|
||||
+`
|
||||
+end
|
114
gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Normal file
114
gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Normal file
@ -0,0 +1,114 @@
|
||||
URL: <https://sourceware.org/ml/gdb-patches/2013-05/msg00364.html>
|
||||
Message-ID: <1368136582.30058.7.camel@soleil>
|
||||
|
||||
From: Philippe Waroquiers <philippe dot waroquiers at skynet dot be>
|
||||
To: gdb-patches at sourceware dot org
|
||||
Subject: RFA: fix gdb_assert caused by 'catch signal ...' and fork
|
||||
Date: Thu, 09 May 2013 23:56:22 +0200
|
||||
|
||||
The attached patch fixes a gdb_assert caused by the combination of catch
|
||||
signal and fork:
|
||||
break-catch-sig.c:152: internal-error: signal_catchpoint_remove_location: Assertion `signal_catch_counts[iter] > 0' failed.
|
||||
|
||||
The problem is that the signal_catch_counts is decremented by detach_breakpoints.
|
||||
The fix consists in not detaching breakpoint locations of type bp_loc_other.
|
||||
The patch introduces a new test.
|
||||
|
||||
Comments by Sergio Durigan Junior:
|
||||
|
||||
I addded a specific testcase for this patch, which tests exactly the
|
||||
issue that the customer is facing. This patch does not solve the
|
||||
whole problem of catching a syscall and forking (for more details,
|
||||
see <https://sourceware.org/bugzilla/show_bug.cgi?id=13457>,
|
||||
specifically comment #3), but it solves the issue reported by the
|
||||
customer.
|
||||
|
||||
I also removed the original testcase of this patch, because it
|
||||
relied on "catch signal", which is a command that is not implemented
|
||||
in this version of GDB.
|
||||
|
||||
commit bd9673a4ded96ea5c108601501c8e59003ea1be6
|
||||
Author: Philippe Waroquiers <philippe@sourceware.org>
|
||||
Date: Tue May 21 18:47:05 2013 +0000
|
||||
|
||||
Fix internal error caused by interaction between catch signal and fork
|
||||
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.c 2016-10-20 21:03:09.584272695 +0200
|
||||
@@ -0,0 +1,11 @@
|
||||
+#include <stdio.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+int
|
||||
+main (int argc, char **argv)
|
||||
+{
|
||||
+ if (fork () == 0)
|
||||
+ sleep (1);
|
||||
+ chdir (".");
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1149205-catch-syscall-fork.exp 2016-10-20 21:04:13.337771174 +0200
|
||||
@@ -0,0 +1,58 @@
|
||||
+# Copyright 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if { [is_remote target] || ![isnative] } then {
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+set testfile "gdb-rhbz1149205-catch-syscall-fork"
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
+
|
||||
+# Until "catch syscall" is implemented on other targets...
|
||||
+if {![istarget "hppa*-hp-hpux*"] && ![istarget "*-linux*"]} then {
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+# This shall be updated whenever 'catch syscall' is implemented
|
||||
+# on some architecture.
|
||||
+#if { ![istarget "i\[34567\]86-*-linux*"]
|
||||
+if { ![istarget "x86_64-*-linux*"] && ![istarget "i\[34567\]86-*-linux*"]
|
||||
+ && ![istarget "powerpc-*-linux*"] && ![istarget "powerpc64-*-linux*"]
|
||||
+ && ![istarget "sparc-*-linux*"] && ![istarget "sparc64-*-linux*"] } {
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
|
||||
+ untested ${testfile}.exp
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_reinitialize_dir $srcdir/$subdir
|
||||
+gdb_load $binfile
|
||||
+
|
||||
+if { ![runto_main] } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_test "catch syscall chdir" \
|
||||
+ "Catchpoint $decimal \\\(syscall (.)?chdir(.)? \\\[$decimal\\\]\\\)" \
|
||||
+ "catch syscall chdir"
|
||||
+
|
||||
+gdb_test "continue" \
|
||||
+ "Continuing\.\r\n.*\r\nCatchpoint $decimal \\\(call to syscall .?chdir.?.*" \
|
||||
+ "continue from catch syscall after fork"
|
341
gdb-rhbz1156192-recursive-dlopen-test.patch
Normal file
341
gdb-rhbz1156192-recursive-dlopen-test.patch
Normal file
@ -0,0 +1,341 @@
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libbar.c 2016-10-22 22:10:13.262634144 +0200
|
||||
@@ -0,0 +1,30 @@
|
||||
+/* Testcase for recursive dlopen calls.
|
||||
+
|
||||
+ Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+/* This test was copied from glibc's testcase called
|
||||
+ <dlfcn/tst-rec-dlopen.c> and related files. */
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+void
|
||||
+bar (void)
|
||||
+{
|
||||
+ printf ("Called bar.\n");
|
||||
+}
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen-libfoo.c 2016-10-22 22:10:13.262634144 +0200
|
||||
@@ -0,0 +1,30 @@
|
||||
+/* Testcase for recursive dlopen calls.
|
||||
+
|
||||
+ Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+/* This test was copied from glibc's testcase called
|
||||
+ <dlfcn/tst-rec-dlopen.c> and related files. */
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+void
|
||||
+foo (void)
|
||||
+{
|
||||
+ printf ("Called foo.\n");
|
||||
+}
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.c 2016-10-22 22:10:13.262634144 +0200
|
||||
@@ -0,0 +1,124 @@
|
||||
+/* Testcase for recursive dlopen calls.
|
||||
+
|
||||
+ Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+/* This test was copied from glibc's testcase called
|
||||
+ <dlfcn/tst-rec-dlopen.c> and related files. */
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <malloc.h>
|
||||
+#include <dlfcn.h>
|
||||
+
|
||||
+#define DSO "gdb-rhbz1156192-recursive-dlopen-libfoo.so"
|
||||
+#define FUNC "foo"
|
||||
+
|
||||
+#define DSO1 "gdb-rhbz1156192-recursive-dlopen-libbar.so"
|
||||
+#define FUNC1 "bar"
|
||||
+
|
||||
+/* Prototype for my hook. */
|
||||
+void *custom_malloc_hook (size_t, const void *);
|
||||
+
|
||||
+/* Pointer to old malloc hooks. */
|
||||
+void *(*old_malloc_hook) (size_t, const void *);
|
||||
+
|
||||
+/* Call function func_name in DSO dso_name via dlopen. */
|
||||
+void
|
||||
+call_func (const char *dso_name, const char *func_name)
|
||||
+{
|
||||
+ int ret;
|
||||
+ void *dso;
|
||||
+ void (*func) (void);
|
||||
+ char *err;
|
||||
+
|
||||
+ /* Open the DSO. */
|
||||
+ dso = dlopen (dso_name, RTLD_NOW|RTLD_GLOBAL);
|
||||
+ if (dso == NULL)
|
||||
+ {
|
||||
+ err = dlerror ();
|
||||
+ fprintf (stderr, "%s\n", err);
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ /* Clear any errors. */
|
||||
+ dlerror ();
|
||||
+
|
||||
+ /* Lookup func. */
|
||||
+ *(void **) (&func) = dlsym (dso, func_name);
|
||||
+ if (func == NULL)
|
||||
+ {
|
||||
+ err = dlerror ();
|
||||
+ if (err != NULL)
|
||||
+ {
|
||||
+ fprintf (stderr, "%s\n", err);
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ }
|
||||
+ /* Call func twice. */
|
||||
+ (*func) ();
|
||||
+
|
||||
+ /* Close the library and look for errors too. */
|
||||
+ ret = dlclose (dso);
|
||||
+ if (ret != 0)
|
||||
+ {
|
||||
+ err = dlerror ();
|
||||
+ fprintf (stderr, "%s\n", err);
|
||||
+ exit (1);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+/* Empty hook that does nothing. */
|
||||
+void *
|
||||
+custom_malloc_hook (size_t size, const void *caller)
|
||||
+{
|
||||
+ void *result;
|
||||
+ /* Restore old hooks. */
|
||||
+ __malloc_hook = old_malloc_hook;
|
||||
+ /* First call a function in another library via dlopen. */
|
||||
+ call_func (DSO1, FUNC1);
|
||||
+ /* Called recursively. */
|
||||
+ result = malloc (size);
|
||||
+ /* Restore new hooks. */
|
||||
+ __malloc_hook = custom_malloc_hook;
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+
|
||||
+ /* Save old hook. */
|
||||
+ old_malloc_hook = __malloc_hook;
|
||||
+ /* Install new hook. */
|
||||
+ __malloc_hook = custom_malloc_hook;
|
||||
+
|
||||
+ /* Attempt to dlopen a shared library. This dlopen will
|
||||
+ trigger an access to the ld.so.cache, and that in turn
|
||||
+ will require a malloc to duplicate data in the cache.
|
||||
+ The malloc will call our malloc hook which calls dlopen
|
||||
+ recursively, and upon return of this dlopen the non-ref
|
||||
+ counted ld.so.cache mapping will be unmapped. We will
|
||||
+ return to the original dlopen and crash trying to access
|
||||
+ dlopened data. */
|
||||
+ call_func (DSO, FUNC);
|
||||
+
|
||||
+ /* Restore old hook. */
|
||||
+ __malloc_hook = old_malloc_hook;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.base/gdb-rhbz1156192-recursive-dlopen.exp 2016-10-24 23:21:58.043064177 +0200
|
||||
@@ -0,0 +1,137 @@
|
||||
+# Copyright 2014 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if { [skip_shlib_tests] } {
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+# Library foo
|
||||
+set libname1 "gdb-rhbz1156192-recursive-dlopen-libfoo"
|
||||
+set srcfile_lib1 ${srcdir}/${subdir}/${libname1}.c
|
||||
+set binfile_lib1 [standard_output_file ${libname1}.so]
|
||||
+# Library bar
|
||||
+set libname2 "gdb-rhbz1156192-recursive-dlopen-libbar"
|
||||
+set srcfile_lib2 ${srcdir}/${subdir}/${libname2}.c
|
||||
+set binfile_lib2 [standard_output_file ${libname2}.so]
|
||||
+
|
||||
+set testfile "gdb-rhbz1156192-recursive-dlopen"
|
||||
+set srcfile ${testfile}.c
|
||||
+set executable ${testfile}
|
||||
+set binfile [standard_output_file ${executable}]
|
||||
+
|
||||
+if { [gdb_compile_shlib ${srcfile_lib1} ${binfile_lib1} \
|
||||
+ { debug "additional_flags=-fPIC" }] != "" } {
|
||||
+ untested "Could not compile ${binfile_lib1}"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+if { [gdb_compile_shlib ${srcfile_lib2} ${binfile_lib2} \
|
||||
+ { debug "additional_flags=-fPIC" }] != "" } {
|
||||
+ untested "Could not compile ${binfile_lib2}"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+if { [prepare_for_testing ${testfile}.exp ${executable} ${srcfile} \
|
||||
+ [ list debug shlib_load "additional_flags=-Wno-deprecated-declarations" ]] } {
|
||||
+ untested "Could not compile ${executable}"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+proc do_test { has_libfoo has_libbar } {
|
||||
+ global hex binfile_lib2 binfile_lib1 gdb_prompt
|
||||
+ set libbar_match "[string_to_regexp $binfile_lib2]"
|
||||
+ set libfoo_match "[string_to_regexp $binfile_lib1]"
|
||||
+
|
||||
+ gdb_test_multiple "info shared" "info shared" {
|
||||
+ -re ".*$libfoo_match\r\n.*$libbar_match\(\r\n.*Shared library is missing\)?.*\r\n${gdb_prompt} $" {
|
||||
+ if { $has_libfoo && $has_libbar } {
|
||||
+ pass "matched libfoo and libbar"
|
||||
+ } else {
|
||||
+ fail "matched libfoo and libbar (has_libfoo = $has_libfoo, has_libbar = $has_libbar)"
|
||||
+ }
|
||||
+ }
|
||||
+ -re ".*$libfoo_match\(\r\n.*Shared library is missing\)?.*\r\n${gdb_prompt} $" {
|
||||
+ if { $has_libfoo && !$has_libbar } {
|
||||
+ pass "matched libfoo"
|
||||
+ } else {
|
||||
+ fail "matched libfoo (has_libfoo = $has_libfoo, has_libbar = $has_libbar)"
|
||||
+ }
|
||||
+ }
|
||||
+ -re ".*$libbar_match\(\r\n.*Shared library is missing\)?.*\r\n${gdb_prompt} $" {
|
||||
+ if { $has_libbar && !$has_libfoo } {
|
||||
+ pass "matched libbar"
|
||||
+ } else {
|
||||
+ fail "matched libbar (has_libfoo = $has_libfoo, has_libbar = $has_libbar)"
|
||||
+ }
|
||||
+ }
|
||||
+ "\r\n${gdb_prompt} $" {
|
||||
+ if { !$has_libfoo && !$has_libbar } {
|
||||
+ pass "did not match libfoo nor libbar"
|
||||
+ } else {
|
||||
+ fail "did not match libfoo nor libbar (has_libfoo = $has_libfoo, has_libbar = $has_libbar)"
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+proc test_stop_on_solib_events { } {
|
||||
+ set pass 0
|
||||
+ # This variable holds the information about whether libfoo and
|
||||
+ # libbar (respectively) are expected in the "info shared" output.
|
||||
+ set solib_event_order { { 0 0 } { 0 0 } { 0 0 } { 0 1 } \
|
||||
+ { 0 1 } { 0 0 } { 0 0 } { 0 1 } \
|
||||
+ { 0 1 } { 0 0 } { 0 0 } { 0 1 } \
|
||||
+ { 0 1 } { 0 0 } { 0 0 1 } { 1 1 } \
|
||||
+ { 1 1 } { 1 0 } { 1 0 } { 1 1 } \
|
||||
+ { 1 1 } { 1 0 1 } { 1 0 } { 1 0 } }
|
||||
+
|
||||
+ with_test_prefix "stop-on-solib-events" {
|
||||
+ gdb_test_no_output "set stop-on-solib-events 1" "setting stop-on-solib-events"
|
||||
+
|
||||
+ gdb_run_cmd
|
||||
+ foreach l $solib_event_order {
|
||||
+ incr pass
|
||||
+ with_test_prefix "pass #$pass" {
|
||||
+ set should_be_corrupted [expr 0+0[lindex $l 2]]
|
||||
+ do_test [lindex $l 0] [lindex $l 1]
|
||||
+ set test "continue"
|
||||
+ global gdb_prompt
|
||||
+ gdb_test_multiple $test $test {
|
||||
+ -re "\r\nwarning: Corrupted shared library list:.*\r\nStopped due to shared library event.*\r\n$gdb_prompt $" {
|
||||
+ set corrupted 1
|
||||
+ pass $test
|
||||
+ }
|
||||
+ -re "\r\nStopped due to shared library event.*\r\n$gdb_prompt $" {
|
||||
+ set corrupted 0
|
||||
+ pass $test
|
||||
+ }
|
||||
+ }
|
||||
+ set test "corrupted=$corrupted but should_be_corrupted=$should_be_corrupted"
|
||||
+ if {$corrupted == $should_be_corrupted} {
|
||||
+ pass $test
|
||||
+ } else {
|
||||
+ fail $test
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ # In the last pass we do not expect to see libfoo or libbar.
|
||||
+ incr pass
|
||||
+ with_test_prefix "pass #$pass" {
|
||||
+ do_test 0 0
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+test_stop_on_solib_events
|
@ -0,0 +1,125 @@
|
||||
Comments from Sergio Durigan Junior:
|
||||
|
||||
The "proper" fix for this whole problem would be to backport the
|
||||
"ambiguous linespec" patch series. However, it is really not
|
||||
recommended to do that for RHEL GDB, because the patch series is too
|
||||
big and could introduce unwanted regressions. Instead, what we
|
||||
chose to do was to replace the gdb_assert call by a warning (which
|
||||
allows the user to continue the debugging session), and tell the
|
||||
user that, although more than one location was found for his/her
|
||||
breakpoint, only one will be used.
|
||||
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set-main.cc 2016-10-20 21:06:31.849854180 +0200
|
||||
@@ -0,0 +1,22 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+int
|
||||
+main (int argc, char *argv[])
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.cc 2016-10-20 21:06:31.850854188 +0200
|
||||
@@ -0,0 +1,26 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+class C
|
||||
+ {
|
||||
+ public:
|
||||
+ C () {}
|
||||
+ C (int x) {}
|
||||
+ };
|
||||
+
|
||||
+C a;
|
||||
+C b (1);
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.cp/gdb-rhbz1186476-internal-error-unqualified-name-re-set.exp 2016-10-20 21:09:33.408270526 +0200
|
||||
@@ -0,0 +1,51 @@
|
||||
+# Copyright 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if { [skip_cplus_tests] } { continue }
|
||||
+if { [skip_shlib_tests] } { continue }
|
||||
+if { [is_remote target] } { continue }
|
||||
+if { [target_info exists use_gdb_stub] } { continue }
|
||||
+
|
||||
+set testfile gdb-rhbz1186476-internal-error-unqualified-name-re-set-main
|
||||
+set srcfile $testfile.cc
|
||||
+set executable $testfile
|
||||
+set binfile [standard_output_file $executable]
|
||||
+
|
||||
+set libtestfile gdb-rhbz1186476-internal-error-unqualified-name-re-set
|
||||
+set libsrcfile $libtestfile.cc
|
||||
+set sofile [standard_output_file lib$libtestfile.so]
|
||||
+
|
||||
+# Create and source the file that provides information about the compiler
|
||||
+# used to compile the test case.
|
||||
+if [get_compiler_info "c++"] {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+if { [gdb_compile_shlib $srcdir/$subdir/$libsrcfile $sofile {debug c++ "additional_flags=-fPIC"}] != ""
|
||||
+ || [gdb_compile $srcdir/$subdir/$srcfile $binfile executable [list additional_flags=-Wl,-rpath,[file dirname ${sofile}] "c++" shlib=${sofile} ]] != ""} {
|
||||
+ untested $libtestfile.exp
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+clean_restart $executable
|
||||
+
|
||||
+gdb_test_no_output "set breakpoint pending on"
|
||||
+# gdb_breakpoint would print a failure because of some warning messages
|
||||
+gdb_test "break C::C" "Breakpoint $decimal \\(C::C\\) pending."
|
||||
+
|
||||
+#gdb_test "run" "warning: Found more than one location for breakpoint #$decimal; only the first location will be used.(\r\n)+Breakpoint $decimal, C::C.*"
|
||||
+gdb_test "run"
|
||||
+
|
||||
+gdb_test "info break" " in C::C\\(\\) at .* in C::C\\(int\\) at .*"
|
@ -1,5 +1,47 @@
|
||||
--- /dev/null 2016-04-19 22:52:19.405224269 +0200
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-framefilter-thread.exp 2016-04-19 23:22:10.655271756 +0200
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-framefilter-thread.c 2016-09-12 21:43:56.448695513 +0200
|
||||
@@ -0,0 +1,39 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <pthread.h>
|
||||
+#include <assert.h>
|
||||
+
|
||||
+static void *
|
||||
+start (void *arg)
|
||||
+{
|
||||
+ return arg; /* Backtrace end breakpoint */
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+ pthread_t thread1;
|
||||
+ int i;
|
||||
+
|
||||
+ i = pthread_create (&thread1, NULL, start, NULL);
|
||||
+ assert (i == 0);
|
||||
+ i = pthread_join (thread1, NULL);
|
||||
+ assert (i == 0);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-framefilter-thread.exp 2016-09-12 21:46:54.623428493 +0200
|
||||
@@ -0,0 +1,54 @@
|
||||
+# Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -35,7 +77,7 @@
|
||||
+
|
||||
+# Load global frame-filters
|
||||
+set remote_python_file [remote_download host ${srcdir}/${subdir}/${testfile}.py]
|
||||
+gdb_test_no_output "python execfile ('${remote_python_file}')" \
|
||||
+gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
|
||||
+ "Load python file"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "Backtrace end breakpoint"]
|
||||
@ -55,51 +97,9 @@
|
||||
+# block = self.frame.block()
|
||||
+# RuntimeError: Cannot locate object file for block.
|
||||
+gdb_test "bt" " in \[0-9\]+ \[^\r\n\]*" "bt with filters"
|
||||
--- /dev/null 2016-04-19 22:52:19.405224269 +0200
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-framefilter-thread.c 2016-04-18 22:44:07.096613437 +0200
|
||||
@@ -0,0 +1,39 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <pthread.h>
|
||||
+#include <assert.h>
|
||||
+
|
||||
+static void *
|
||||
+start (void *arg)
|
||||
+{
|
||||
+ return; /* Backtrace end breakpoint */
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+ pthread_t thread1;
|
||||
+ int i;
|
||||
+
|
||||
+ i = pthread_create (&thread1, NULL, start, NULL);
|
||||
+ assert (i == 0);
|
||||
+ i = pthread_join (thread1, NULL);
|
||||
+ assert (i == 0);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null 2016-04-19 22:52:19.405224269 +0200
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-framefilter-thread.py 2016-04-19 23:14:03.273994063 +0200
|
||||
@@ -0,0 +1,56 @@
|
||||
--- /dev/null 2016-09-12 21:37:05.332693927 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/testsuite/gdb.python/py-framefilter-thread.py 2016-09-12 21:49:16.150795235 +0200
|
||||
@@ -0,0 +1,60 @@
|
||||
+# Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -151,8 +151,12 @@
|
||||
+ gdb.frame_filters [self.name] = self
|
||||
+
|
||||
+ def filter (self, frame_iter):
|
||||
+ frame_iter = itertools.imap (Reverse_Function,
|
||||
+ frame_iter)
|
||||
+ # Python 3.x moved the itertools.imap functionality to map(),
|
||||
+ # so check if it is available.
|
||||
+ if hasattr(itertools, "imap"):
|
||||
+ frame_iter = itertools.imap (Reverse_Function, frame_iter)
|
||||
+ else:
|
||||
+ frame_iter = map (Reverse_Function, frame_iter)
|
||||
+ return frame_iter
|
||||
+
|
||||
+FrameFilter()
|
||||
|
73
gdb-rhbz1350436-type-printers-error.patch
Normal file
73
gdb-rhbz1350436-type-printers-error.patch
Normal file
@ -0,0 +1,73 @@
|
||||
Typo in Python support breaks info type-printers command
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1350436
|
||||
|
||||
[testsuite patch] PR python/17136: 'info type-printers' causes an exception when there are per-objfile printers
|
||||
https://sourceware.org/ml/gdb-patches/2016-06/msg00455.html
|
||||
|
||||
diff -dup -rup gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.cc gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.cc
|
||||
--- gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.cc 2013-01-01 07:41:26.000000000 +0100
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.cc 2016-06-27 22:57:58.168642470 +0200
|
||||
@@ -31,6 +31,12 @@ templ<basic_string> s;
|
||||
|
||||
basic_string bs;
|
||||
|
||||
+class Other
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+Other ovar;
|
||||
+
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
diff -dup -rup gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.exp gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.exp
|
||||
--- gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.exp 2013-01-01 07:41:26.000000000 +0100
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.exp 2016-06-27 22:58:13.846785208 +0200
|
||||
@@ -51,3 +51,7 @@ gdb_test_no_output "enable type-printer
|
||||
gdb_test "whatis bs" "string" "whatis with enabled printer"
|
||||
|
||||
gdb_test "whatis s" "templ<string>"
|
||||
+
|
||||
+gdb_test "info type-printers" "Type printers for \[^\r\n\]*/py-typeprint:\r\n *other\r\n.*" \
|
||||
+ "info type-printers for other"
|
||||
+gdb_test "whatis ovar" "type = Another"
|
||||
diff -dup -rup gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.py gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.py
|
||||
--- gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.py 2013-01-01 07:41:26.000000000 +0100
|
||||
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.py 2016-06-27 22:57:58.169642479 +0200
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
import gdb
|
||||
|
||||
-class Recognizer(object):
|
||||
+class StringRecognizer(object):
|
||||
def __init__(self):
|
||||
self.enabled = True
|
||||
|
||||
@@ -30,6 +30,26 @@ class StringTypePrinter(object):
|
||||
self.enabled = True
|
||||
|
||||
def instantiate(self):
|
||||
- return Recognizer()
|
||||
+ return StringRecognizer()
|
||||
|
||||
gdb.type_printers.append(StringTypePrinter())
|
||||
+
|
||||
+class OtherRecognizer(object):
|
||||
+ def __init__(self):
|
||||
+ self.enabled = True
|
||||
+
|
||||
+ def recognize(self, type_obj):
|
||||
+ if type_obj.tag == 'Other':
|
||||
+ return 'Another'
|
||||
+ return None
|
||||
+
|
||||
+class OtherTypePrinter(object):
|
||||
+ def __init__(self):
|
||||
+ self.name = 'other'
|
||||
+ self.enabled = True
|
||||
+
|
||||
+ def instantiate(self):
|
||||
+ return OtherRecognizer()
|
||||
+
|
||||
+import gdb.types
|
||||
+gdb.types.register_type_printer(gdb.objfiles()[0], OtherTypePrinter())
|
File diff suppressed because it is too large
Load Diff
@ -137,10 +137,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-tdep.patch
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/alpha-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/alpha-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/alpha-tdep.c 2016-01-08 19:16:16.592813990 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/alpha-tdep.c 2016-01-08 19:16:20.308834717 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/alpha-tdep.c 2016-07-16 14:35:45.390502718 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/alpha-tdep.c 2016-07-16 14:35:47.511519788 +0200
|
||||
@@ -299,17 +299,17 @@
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -183,11 +183,11 @@ Index: gdb-7.10.50.20160106/gdb/alpha-tdep.c
|
||||
memcpy (arg_reg_buffer + offset, contents, tlen);
|
||||
offset += tlen;
|
||||
contents += tlen;
|
||||
Index: gdb-7.10.50.20160106/gdb/amd64-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/amd64-tdep.c 2016-01-08 19:16:16.594814001 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/amd64-tdep.c 2016-01-08 19:16:20.309834723 +0100
|
||||
@@ -699,7 +699,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/amd64-tdep.c 2016-07-16 14:35:45.391502726 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/amd64-tdep.c 2016-07-16 14:35:47.512519796 +0200
|
||||
@@ -729,7 +729,7 @@
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
{
|
||||
enum amd64_reg_class theclass[2];
|
||||
@ -196,7 +196,7 @@ Index: gdb-7.10.50.20160106/gdb/amd64-tdep.c
|
||||
static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
|
||||
static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
|
||||
int integer_reg = 0;
|
||||
@@ -850,8 +850,8 @@
|
||||
@@ -880,8 +880,8 @@
|
||||
};
|
||||
struct value **stack_args = XALLOCAVEC (struct value *, nargs);
|
||||
int num_stack_args = 0;
|
||||
@ -207,7 +207,7 @@ Index: gdb-7.10.50.20160106/gdb/amd64-tdep.c
|
||||
int integer_reg = 0;
|
||||
int sse_reg = 0;
|
||||
int i;
|
||||
@@ -863,7 +863,7 @@
|
||||
@@ -893,7 +893,7 @@
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
struct type *type = value_type (args[i]);
|
||||
@ -216,10 +216,10 @@ Index: gdb-7.10.50.20160106/gdb/amd64-tdep.c
|
||||
enum amd64_reg_class theclass[2];
|
||||
int needed_integer_regs = 0;
|
||||
int needed_sse_regs = 0;
|
||||
Index: gdb-7.10.50.20160106/gdb/amd64-windows-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/amd64-windows-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/amd64-windows-tdep.c 2016-01-08 19:16:16.595814006 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/amd64-windows-tdep.c 2016-01-08 19:16:20.310834728 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/amd64-windows-tdep.c 2016-07-16 14:35:45.393502742 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/amd64-windows-tdep.c 2016-07-16 14:35:47.512519796 +0200
|
||||
@@ -288,7 +288,7 @@
|
||||
struct type *type, struct regcache *regcache,
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
@ -229,11 +229,11 @@ Index: gdb-7.10.50.20160106/gdb/amd64-windows-tdep.c
|
||||
int regnum = -1;
|
||||
|
||||
/* See if our value is returned through a register. If it is, then
|
||||
Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/arm-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/arm-tdep.c 2016-01-08 19:16:16.603814051 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/arm-tdep.c 2016-01-08 19:17:05.737088107 +0100
|
||||
@@ -3340,7 +3340,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/arm-tdep.c 2016-07-16 14:35:45.400502798 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/arm-tdep.c 2016-07-16 14:36:30.328864376 +0200
|
||||
@@ -3443,7 +3443,7 @@
|
||||
array). Vector types are not currently supported, matching the
|
||||
generic AAPCS support. */
|
||||
|
||||
@ -242,7 +242,7 @@ Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
arm_vfp_cprc_sub_candidate (struct type *t,
|
||||
enum arm_vfp_cprc_base_type *base_type)
|
||||
{
|
||||
@@ -3423,7 +3423,7 @@
|
||||
@@ -3526,7 +3526,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -251,7 +251,7 @@ Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
unsigned unitlen;
|
||||
|
||||
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t),
|
||||
@@ -3446,13 +3446,15 @@
|
||||
@@ -3549,12 +3549,12 @@
|
||||
|
||||
case TYPE_CODE_STRUCT:
|
||||
{
|
||||
@ -261,16 +261,12 @@ Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
int i;
|
||||
for (i = 0; i < TYPE_NFIELDS (t); i++)
|
||||
{
|
||||
- int sub_count = arm_vfp_cprc_sub_candidate (TYPE_FIELD_TYPE (t, i),
|
||||
- base_type);
|
||||
+ LONGEST sub_count;
|
||||
+
|
||||
+ sub_count = arm_vfp_cprc_sub_candidate (TYPE_FIELD_TYPE (t, i),
|
||||
+ base_type);
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count += sub_count;
|
||||
@@ -3472,13 +3474,15 @@
|
||||
- int sub_count = 0;
|
||||
+ LONGEST sub_count = 0;
|
||||
|
||||
if (!field_is_static (&TYPE_FIELD (t, i)))
|
||||
sub_count = arm_vfp_cprc_sub_candidate (TYPE_FIELD_TYPE (t, i),
|
||||
@@ -3578,13 +3578,15 @@
|
||||
|
||||
case TYPE_CODE_UNION:
|
||||
{
|
||||
@ -289,7 +285,7 @@ Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count = (count > sub_count ? count : sub_count);
|
||||
@@ -3514,7 +3518,7 @@
|
||||
@@ -3620,7 +3622,7 @@
|
||||
int *count)
|
||||
{
|
||||
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
|
||||
@ -298,7 +294,7 @@ Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
if (c <= 0 || c > 4)
|
||||
return 0;
|
||||
*base_type = b;
|
||||
@@ -3595,7 +3599,7 @@
|
||||
@@ -3701,7 +3703,7 @@
|
||||
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -307,11 +303,11 @@ Index: gdb-7.10.50.20160106/gdb/arm-tdep.c
|
||||
struct type *arg_type;
|
||||
struct type *target_type;
|
||||
enum type_code typecode;
|
||||
Index: gdb-7.10.50.20160106/gdb/avr-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/avr-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/avr-tdep.c 2016-01-08 19:16:16.604814057 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/avr-tdep.c 2016-01-08 19:16:20.314834750 +0100
|
||||
@@ -1196,13 +1196,13 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/avr-tdep.c 2016-07-16 14:35:45.401502806 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/avr-tdep.c 2016-07-16 14:35:47.516519828 +0200
|
||||
@@ -1195,13 +1195,13 @@
|
||||
|
||||
struct stack_item
|
||||
{
|
||||
@ -327,7 +323,7 @@ Index: gdb-7.10.50.20160106/gdb/avr-tdep.c
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = XNEW (struct stack_item);
|
||||
@@ -1291,12 +1291,12 @@
|
||||
@@ -1289,12 +1289,12 @@
|
||||
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -341,22 +337,22 @@ Index: gdb-7.10.50.20160106/gdb/avr-tdep.c
|
||||
- int len = TYPE_LENGTH (type);
|
||||
+ ssize_t len = TYPE_LENGTH (type);
|
||||
|
||||
/* Calculate the potential last register needed. */
|
||||
last_regnum = regnum - (len + (len & 1));
|
||||
Index: gdb-7.10.50.20160106/gdb/bfin-tdep.c
|
||||
/* Calculate the potential last register needed.
|
||||
E.g. For length 2, registers regnum and regnum-1 (say 25 and 24)
|
||||
Index: gdb-7.11.50.20160716/gdb/bfin-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/bfin-tdep.c 2016-01-08 19:16:16.605814062 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/bfin-tdep.c 2016-01-08 19:16:20.315834756 +0100
|
||||
@@ -504,7 +504,7 @@
|
||||
gdb_byte buf[4];
|
||||
--- gdb-7.11.50.20160716.orig/gdb/bfin-tdep.c 2016-07-16 14:35:45.401502806 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/bfin-tdep.c 2016-07-16 14:35:47.516519828 +0200
|
||||
@@ -502,7 +502,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int i;
|
||||
long reg_r0, reg_r1, reg_r2;
|
||||
- int total_len = 0;
|
||||
+ ssize_t total_len = 0;
|
||||
enum bfin_abi abi = bfin_abi (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
|
||||
@@ -528,7 +528,7 @@
|
||||
for (i = nargs - 1; i >= 0; i--)
|
||||
{
|
||||
@@ -524,7 +524,7 @@
|
||||
{
|
||||
struct type *value_type = value_enclosing_type (args[i]);
|
||||
struct type *arg_type = check_typedef (value_type);
|
||||
@ -365,10 +361,10 @@ Index: gdb-7.10.50.20160106/gdb/bfin-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
write_memory (sp, value_contents (args[i]), container_len);
|
||||
Index: gdb-7.10.50.20160106/gdb/cris-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/cris-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/cris-tdep.c 2016-01-08 19:16:16.606814068 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/cris-tdep.c 2016-01-08 19:16:20.316834762 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/cris-tdep.c 2016-07-16 14:35:45.403502823 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/cris-tdep.c 2016-07-16 14:35:47.517519836 +0200
|
||||
@@ -663,13 +663,13 @@
|
||||
|
||||
struct stack_item
|
||||
@ -385,7 +381,7 @@ Index: gdb-7.10.50.20160106/gdb/cris-tdep.c
|
||||
{
|
||||
struct stack_item *si = XNEW (struct stack_item);
|
||||
si->data = (gdb_byte *) xmalloc (len);
|
||||
@@ -841,13 +841,13 @@
|
||||
@@ -833,13 +833,13 @@
|
||||
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -403,11 +399,11 @@ Index: gdb-7.10.50.20160106/gdb/cris-tdep.c
|
||||
|
||||
/* How may registers worth of storage do we need for this argument? */
|
||||
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
|
||||
Index: gdb-7.10.50.20160106/gdb/h8300-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/h8300-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/h8300-tdep.c 2016-01-08 19:16:16.607814073 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/h8300-tdep.c 2016-01-08 19:16:20.316834762 +0100
|
||||
@@ -639,7 +639,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/h8300-tdep.c 2016-07-16 14:35:45.403502823 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/h8300-tdep.c 2016-07-16 14:35:47.517519836 +0200
|
||||
@@ -637,7 +637,7 @@
|
||||
int struct_return, CORE_ADDR struct_addr)
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -416,7 +412,7 @@ Index: gdb-7.10.50.20160106/gdb/h8300-tdep.c
|
||||
int wordsize = BINWORD (gdbarch);
|
||||
int reg = E_ARG0_REGNUM;
|
||||
int argument;
|
||||
@@ -666,11 +666,11 @@
|
||||
@@ -664,11 +664,11 @@
|
||||
{
|
||||
struct cleanup *back_to;
|
||||
struct type *type = value_type (args[argument]);
|
||||
@ -430,7 +426,7 @@ Index: gdb-7.10.50.20160106/gdb/h8300-tdep.c
|
||||
gdb_byte *padded = (gdb_byte *) xmalloc (padded_len);
|
||||
back_to = make_cleanup (xfree, padded);
|
||||
|
||||
@@ -699,7 +699,7 @@
|
||||
@@ -697,7 +697,7 @@
|
||||
/* Heavens to Betsy --- it's really going in registers!
|
||||
Note that on the h8/300s, there are gaps between the
|
||||
registers in the register file. */
|
||||
@ -439,11 +435,11 @@ Index: gdb-7.10.50.20160106/gdb/h8300-tdep.c
|
||||
|
||||
for (offset = 0; offset < padded_len; offset += wordsize)
|
||||
{
|
||||
Index: gdb-7.10.50.20160106/gdb/hppa-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/hppa-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/hppa-tdep.c 2016-01-08 19:16:16.609814085 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/hppa-tdep.c 2016-01-08 19:16:20.317834767 +0100
|
||||
@@ -995,7 +995,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/hppa-tdep.c 2016-07-16 14:35:45.405502839 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/hppa-tdep.c 2016-07-16 14:35:47.518519844 +0200
|
||||
@@ -991,7 +991,7 @@
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = value_type (arg);
|
||||
@ -452,7 +448,7 @@ Index: gdb-7.10.50.20160106/gdb/hppa-tdep.c
|
||||
const bfd_byte *valbuf;
|
||||
bfd_byte fptrbuf[8];
|
||||
int regnum;
|
||||
@@ -1190,7 +1190,7 @@
|
||||
@@ -1186,7 +1186,7 @@
|
||||
struct type *type, struct regcache *regcache,
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
{
|
||||
@ -461,10 +457,10 @@ Index: gdb-7.10.50.20160106/gdb/hppa-tdep.c
|
||||
int regnum, offset;
|
||||
|
||||
if (len > 16)
|
||||
Index: gdb-7.10.50.20160106/gdb/i386-darwin-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/i386-darwin-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/i386-darwin-tdep.c 2016-01-08 19:16:16.609814085 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/i386-darwin-tdep.c 2016-01-08 19:16:20.317834767 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/i386-darwin-tdep.c 2016-07-16 14:35:45.405502839 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/i386-darwin-tdep.c 2016-07-16 14:35:47.518519844 +0200
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||
@ -474,11 +470,11 @@ Index: gdb-7.10.50.20160106/gdb/i386-darwin-tdep.c
|
||||
int num_m128 = 0;
|
||||
|
||||
if (struct_return)
|
||||
Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/i386-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/i386-tdep.c 2016-01-08 19:16:16.615814118 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/i386-tdep.c 2016-01-08 19:16:20.319834778 +0100
|
||||
@@ -2663,7 +2663,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/i386-tdep.c 2016-07-16 14:35:45.410502879 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/i386-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -2664,7 +2664,7 @@
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
int write_pass;
|
||||
@ -487,7 +483,7 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
/* Determine the total space required for arguments and struct
|
||||
return address in a first pass (allowing for 16-byte-aligned
|
||||
@@ -2671,7 +2671,7 @@
|
||||
@@ -2672,7 +2672,7 @@
|
||||
|
||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||
{
|
||||
@ -496,7 +492,7 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
if (struct_return)
|
||||
{
|
||||
@@ -2688,7 +2688,7 @@
|
||||
@@ -2689,7 +2689,7 @@
|
||||
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -505,7 +501,7 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
if (write_pass)
|
||||
{
|
||||
@@ -2895,7 +2895,7 @@
|
||||
@@ -2896,7 +2896,7 @@
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
enum type_code code = TYPE_CODE (type);
|
||||
@ -514,7 +510,7 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
gdb_assert (code == TYPE_CODE_STRUCT
|
||||
|| code == TYPE_CODE_UNION
|
||||
@@ -3641,7 +3641,7 @@
|
||||
@@ -3718,7 +3718,7 @@
|
||||
i386_convert_register_p (struct gdbarch *gdbarch,
|
||||
int regnum, struct type *type)
|
||||
{
|
||||
@ -523,7 +519,7 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
/* Values may be spread across multiple registers. Most debugging
|
||||
formats aren't expressive enough to specify the locations, so
|
||||
@@ -3674,7 +3674,7 @@
|
||||
@@ -3751,7 +3751,7 @@
|
||||
int *optimizedp, int *unavailablep)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
@ -532,7 +528,7 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
if (i386_fp_regnum_p (gdbarch, regnum))
|
||||
return i387_register_to_value (frame, regnum, type, to,
|
||||
@@ -3710,7 +3710,7 @@
|
||||
@@ -3787,7 +3787,7 @@
|
||||
i386_value_to_register (struct frame_info *frame, int regnum,
|
||||
struct type *type, const gdb_byte *from)
|
||||
{
|
||||
@ -541,11 +537,11 @@ Index: gdb-7.10.50.20160106/gdb/i386-tdep.c
|
||||
|
||||
if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
|
||||
{
|
||||
Index: gdb-7.10.50.20160106/gdb/iq2000-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/iq2000-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/iq2000-tdep.c 2016-01-08 19:16:16.616814124 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/iq2000-tdep.c 2016-01-08 19:16:20.320834784 +0100
|
||||
@@ -651,8 +651,9 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/iq2000-tdep.c 2016-07-16 14:35:45.411502887 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/iq2000-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -646,8 +646,9 @@
|
||||
const bfd_byte *val;
|
||||
bfd_byte buf[4];
|
||||
struct type *type;
|
||||
@ -557,11 +553,11 @@ Index: gdb-7.10.50.20160106/gdb/iq2000-tdep.c
|
||||
/* Used to copy struct arguments into the stack. */
|
||||
CORE_ADDR struct_ptr;
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/m32r-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/m32r-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/m32r-tdep.c 2016-01-08 19:16:16.616814124 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/m32r-tdep.c 2016-01-08 19:16:20.320834784 +0100
|
||||
@@ -687,7 +687,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/m32r-tdep.c 2016-07-16 14:35:45.411502887 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/m32r-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -685,7 +685,7 @@
|
||||
CORE_ADDR regval;
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||
@ -570,10 +566,10 @@ Index: gdb-7.10.50.20160106/gdb/m32r-tdep.c
|
||||
|
||||
/* First force sp to a 4-byte alignment. */
|
||||
sp = sp & ~3;
|
||||
Index: gdb-7.10.50.20160106/gdb/m68k-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/m68k-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/m68k-tdep.c 2016-01-08 19:16:16.617814129 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/m68k-tdep.c 2016-01-08 19:16:20.320834784 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/m68k-tdep.c 2016-07-16 14:35:45.412502895 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/m68k-tdep.c 2016-07-16 14:35:47.520519860 +0200
|
||||
@@ -382,7 +382,7 @@
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
@ -596,10 +592,10 @@ Index: gdb-7.10.50.20160106/gdb/m68k-tdep.c
|
||||
|
||||
/* Non-scalars bigger than 4 bytes are left aligned, others are
|
||||
right aligned. */
|
||||
Index: gdb-7.10.50.20160106/gdb/m88k-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/m88k-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/m88k-tdep.c 2016-01-08 19:16:16.617814129 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/m88k-tdep.c 2016-01-08 19:16:20.321834790 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/m88k-tdep.c 2016-07-16 14:35:45.412502895 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/m88k-tdep.c 2016-07-16 14:35:47.521519868 +0200
|
||||
@@ -257,13 +257,13 @@
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
@ -627,10 +623,10 @@ Index: gdb-7.10.50.20160106/gdb/m88k-tdep.c
|
||||
|
||||
if (m88k_in_register_p (type))
|
||||
{
|
||||
Index: gdb-7.10.50.20160106/gdb/mep-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/mep-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/mep-tdep.c 2016-01-08 19:16:16.618814135 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/mep-tdep.c 2016-01-08 19:16:20.321834790 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/mep-tdep.c 2016-07-16 14:35:45.413502903 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/mep-tdep.c 2016-07-16 14:35:47.521519868 +0200
|
||||
@@ -2272,7 +2272,7 @@
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
@ -640,10 +636,10 @@ Index: gdb-7.10.50.20160106/gdb/mep-tdep.c
|
||||
|
||||
if (arg_len > MEP_GPR_SIZE)
|
||||
{
|
||||
Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/mips-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/mips-tdep.c 2016-01-08 19:16:16.626814179 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/mips-tdep.c 2016-01-08 19:16:20.324834806 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/mips-tdep.c 2016-07-16 14:35:45.421502967 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/mips-tdep.c 2016-07-16 14:35:47.523519884 +0200
|
||||
@@ -455,7 +455,7 @@
|
||||
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg_num, int length,
|
||||
@ -664,7 +660,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
if (mips_debug && out != NULL)
|
||||
{
|
||||
int i;
|
||||
@@ -4554,13 +4554,13 @@
|
||||
@@ -4529,13 +4529,13 @@
|
||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -681,7 +677,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
|
||||
/* The EABI passes structures that do not fit in a register by
|
||||
reference. */
|
||||
@@ -4829,7 +4829,7 @@
|
||||
@@ -4804,7 +4804,7 @@
|
||||
|
||||
static int
|
||||
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
|
||||
@ -690,7 +686,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -4844,7 +4844,7 @@
|
||||
@@ -4819,7 +4819,7 @@
|
||||
|
||||
for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
|
||||
{
|
||||
@ -699,7 +695,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
struct type *field_type;
|
||||
|
||||
/* We're only looking at normal fields. */
|
||||
@@ -4886,7 +4886,7 @@
|
||||
@@ -4861,7 +4861,7 @@
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
@ -708,7 +704,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
@@ -5237,11 +5237,11 @@
|
||||
@@ -5212,11 +5212,11 @@
|
||||
: MIPS_V0_REGNUM);
|
||||
field < TYPE_NFIELDS (type); field++, regnum += 2)
|
||||
{
|
||||
@ -724,7 +720,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
|
||||
{
|
||||
/* A 16-byte long double field goes in two consecutive
|
||||
@@ -5283,8 +5283,8 @@
|
||||
@@ -5258,8 +5258,8 @@
|
||||
if (offset + xfer > TYPE_LENGTH (type))
|
||||
xfer = TYPE_LENGTH (type) - offset;
|
||||
if (mips_debug)
|
||||
@ -735,7 +731,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
mips_xfer_register (gdbarch, regcache,
|
||||
gdbarch_num_regs (gdbarch) + regnum,
|
||||
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
|
||||
@@ -5342,7 +5342,7 @@
|
||||
@@ -5317,7 +5317,7 @@
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
@ -744,7 +740,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
@@ -5406,13 +5406,13 @@
|
||||
@@ -5381,13 +5381,13 @@
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -761,7 +757,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
|
||||
val = value_contents (arg);
|
||||
|
||||
@@ -5870,8 +5870,8 @@
|
||||
@@ -5842,8 +5842,8 @@
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
@ -772,7 +768,7 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
|
||||
@@ -5931,13 +5931,13 @@
|
||||
@@ -5903,13 +5903,13 @@
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -789,11 +785,11 @@ Index: gdb-7.10.50.20160106/gdb/mips-tdep.c
|
||||
|
||||
val = value_contents (arg);
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/mn10300-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/mn10300-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/mn10300-tdep.c 2016-01-08 19:16:16.627814185 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/mn10300-tdep.c 2016-01-08 19:16:20.324834806 +0100
|
||||
@@ -1227,7 +1227,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/mn10300-tdep.c 2016-07-16 14:35:45.422502976 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/mn10300-tdep.c 2016-07-16 14:35:47.524519892 +0200
|
||||
@@ -1225,7 +1225,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
const int push_size = register_size (gdbarch, E_PC_REGNUM);
|
||||
int regs_used;
|
||||
@ -802,11 +798,11 @@ Index: gdb-7.10.50.20160106/gdb/mn10300-tdep.c
|
||||
int stack_offset = 0;
|
||||
int argnum;
|
||||
const gdb_byte *val;
|
||||
Index: gdb-7.10.50.20160106/gdb/mt-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/mt-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/mt-tdep.c 2016-01-08 19:16:16.628814190 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/mt-tdep.c 2016-01-08 19:16:20.324834806 +0100
|
||||
@@ -781,9 +781,9 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/mt-tdep.c 2016-07-16 14:35:45.423502984 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/mt-tdep.c 2016-07-16 14:35:47.524519892 +0200
|
||||
@@ -780,9 +780,9 @@
|
||||
gdb_byte buf[MT_MAX_STRUCT_SIZE];
|
||||
int argreg = MT_1ST_ARGREG;
|
||||
int split_param_len = 0;
|
||||
@ -818,10 +814,10 @@ Index: gdb-7.10.50.20160106/gdb/mt-tdep.c
|
||||
int i, j;
|
||||
|
||||
/* First handle however many args we can fit into MT_1ST_ARGREG thru
|
||||
Index: gdb-7.10.50.20160106/gdb/ppc-sysv-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/ppc-sysv-tdep.c 2016-01-08 19:16:16.629814196 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/ppc-sysv-tdep.c 2016-01-08 19:16:20.325834812 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/ppc-sysv-tdep.c 2016-07-16 14:35:45.424502992 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/ppc-sysv-tdep.c 2016-07-16 14:35:47.524519892 +0200
|
||||
@@ -66,7 +66,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
|
||||
@ -866,10 +862,10 @@ Index: gdb-7.10.50.20160106/gdb/ppc-sysv-tdep.c
|
||||
|
||||
/* Enforce alignment of stack location, if requested. */
|
||||
if (align > tdep->wordsize)
|
||||
Index: gdb-7.10.50.20160106/gdb/rl78-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/rl78-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/rl78-tdep.c 2016-01-08 19:16:16.629814196 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/rl78-tdep.c 2016-01-08 19:16:20.325834812 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/rl78-tdep.c 2016-07-16 14:35:45.424502992 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/rl78-tdep.c 2016-07-16 14:35:47.525519900 +0200
|
||||
@@ -1336,8 +1336,8 @@
|
||||
for (i = nargs - 1; i >= 0; i--)
|
||||
{
|
||||
@ -881,10 +877,10 @@ Index: gdb-7.10.50.20160106/gdb/rl78-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
write_memory (rl78_make_data_address (sp),
|
||||
Index: gdb-7.10.50.20160106/gdb/rs6000-aix-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/rs6000-aix-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/rs6000-aix-tdep.c 2016-01-08 19:16:16.630814202 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/rs6000-aix-tdep.c 2016-01-08 19:16:20.326834817 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/rs6000-aix-tdep.c 2016-07-16 14:35:45.425503000 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/rs6000-aix-tdep.c 2016-07-16 14:35:47.525519900 +0200
|
||||
@@ -186,9 +186,9 @@
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -897,7 +893,7 @@ Index: gdb-7.10.50.20160106/gdb/rs6000-aix-tdep.c
|
||||
gdb_byte tmp_buffer[50];
|
||||
int f_argno = 0; /* current floating point argno */
|
||||
int wordsize = gdbarch_tdep (gdbarch)->wordsize;
|
||||
@@ -321,7 +321,7 @@
|
||||
@@ -319,7 +319,7 @@
|
||||
|
||||
if ((argno < nargs) || argbytes)
|
||||
{
|
||||
@ -906,11 +902,11 @@ Index: gdb-7.10.50.20160106/gdb/rs6000-aix-tdep.c
|
||||
|
||||
if (argbytes)
|
||||
{
|
||||
Index: gdb-7.10.50.20160106/gdb/s390-linux-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/s390-linux-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/s390-linux-tdep.c 2016-01-08 19:16:16.632814213 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/s390-linux-tdep.c 2016-01-08 19:16:20.328834829 +0100
|
||||
@@ -2981,7 +2981,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/s390-linux-tdep.c 2016-07-16 14:35:45.427503016 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/s390-linux-tdep.c 2016-07-16 14:35:47.526519908 +0200
|
||||
@@ -3125,7 +3125,7 @@
|
||||
/* Determine whether N is a power of two. */
|
||||
|
||||
static int
|
||||
@ -919,7 +915,7 @@ Index: gdb-7.10.50.20160106/gdb/s390-linux-tdep.c
|
||||
{
|
||||
return n && ((n & (n - 1)) == 0);
|
||||
}
|
||||
@@ -3038,7 +3038,7 @@
|
||||
@@ -3182,7 +3182,7 @@
|
||||
enum bfd_endian byte_order, int is_unnamed)
|
||||
{
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
@ -928,10 +924,10 @@ Index: gdb-7.10.50.20160106/gdb/s390-linux-tdep.c
|
||||
int write_mode = as->regcache != NULL;
|
||||
|
||||
if (s390_function_arg_float (type))
|
||||
Index: gdb-7.10.50.20160106/gdb/score-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/score-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/score-tdep.c 2016-01-08 19:16:16.633814218 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/score-tdep.c 2016-01-08 19:16:20.328834829 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/score-tdep.c 2016-07-16 14:35:45.428503024 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/score-tdep.c 2016-07-16 14:35:47.527519916 +0200
|
||||
@@ -514,7 +514,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argnum;
|
||||
@ -941,10 +937,10 @@ Index: gdb-7.10.50.20160106/gdb/score-tdep.c
|
||||
CORE_ADDR stack_offset = 0;
|
||||
CORE_ADDR addr = 0;
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/sh-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/sh-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/sh-tdep.c 2016-01-08 19:16:16.635814230 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/sh-tdep.c 2016-01-08 19:16:20.329834834 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/sh-tdep.c 2016-07-16 14:35:45.429503032 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/sh-tdep.c 2016-07-16 14:35:47.527519916 +0200
|
||||
@@ -805,7 +805,7 @@
|
||||
static int
|
||||
sh_use_struct_convention (int renesas_abi, struct type *type)
|
||||
@ -983,20 +979,20 @@ Index: gdb-7.10.50.20160106/gdb/sh-tdep.c
|
||||
int pass_on_stack = 0;
|
||||
int last_reg_arg = INT_MAX;
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/sh64-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/sh64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/sh64-tdep.c 2016-01-08 19:16:16.635814230 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/sh64-tdep.c 2016-01-08 19:16:20.329834834 +0100
|
||||
@@ -1056,7 +1056,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/sh64-tdep.c 2016-07-16 14:35:45.430503040 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/sh64-tdep.c 2016-07-16 14:35:47.528519925 +0200
|
||||
@@ -1060,7 +1060,7 @@
|
||||
CORE_ADDR struct_addr)
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
- int stack_offset, stack_alloc;
|
||||
+ LONGEST stack_offset, stack_alloc;
|
||||
int int_argreg;
|
||||
int float_argreg;
|
||||
int double_argreg;
|
||||
@@ -1067,7 +1067,7 @@
|
||||
int float_arg_index = 0;
|
||||
int double_arg_index = 0;
|
||||
@@ -1069,7 +1069,7 @@
|
||||
CORE_ADDR regval;
|
||||
const gdb_byte *val;
|
||||
gdb_byte valbuf[8];
|
||||
@ -1005,10 +1001,10 @@ Index: gdb-7.10.50.20160106/gdb/sh64-tdep.c
|
||||
int argreg_size;
|
||||
int fp_args[12];
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/sparc-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/sparc-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/sparc-tdep.c 2016-01-08 19:16:16.636814235 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/sparc-tdep.c 2016-01-08 19:16:20.330834840 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/sparc-tdep.c 2016-07-16 14:35:45.431503048 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/sparc-tdep.c 2016-07-16 14:35:47.528519925 +0200
|
||||
@@ -525,7 +525,7 @@
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -1018,10 +1014,10 @@ Index: gdb-7.10.50.20160106/gdb/sparc-tdep.c
|
||||
|
||||
if (sparc_structure_or_union_p (type)
|
||||
|| (sparc_floating_p (type) && len == 16)
|
||||
Index: gdb-7.10.50.20160106/gdb/sparc64-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/sparc64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/sparc64-tdep.c 2016-01-08 19:16:16.637814241 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/sparc64-tdep.c 2016-01-08 19:16:20.330834840 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/sparc64-tdep.c 2016-07-16 14:35:45.432503056 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/sparc64-tdep.c 2016-07-16 14:35:47.528519925 +0200
|
||||
@@ -636,7 +636,8 @@
|
||||
|
||||
static void
|
||||
@ -1077,10 +1073,10 @@ Index: gdb-7.10.50.20160106/gdb/sparc64-tdep.c
|
||||
int regnum = -1;
|
||||
gdb_byte buf[16];
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/spu-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/spu-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/spu-tdep.c 2016-01-08 19:16:16.638814246 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/spu-tdep.c 2016-01-08 19:16:20.331834845 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/spu-tdep.c 2016-07-16 14:35:45.433503064 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/spu-tdep.c 2016-07-16 14:35:47.529519932 +0200
|
||||
@@ -1429,7 +1429,7 @@
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
@ -1099,11 +1095,11 @@ Index: gdb-7.10.50.20160106/gdb/spu-tdep.c
|
||||
int preferred_slot;
|
||||
|
||||
if (spu_scalar_value_p (type))
|
||||
Index: gdb-7.10.50.20160106/gdb/tic6x-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/tic6x-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/tic6x-tdep.c 2016-01-08 19:16:16.639814252 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/tic6x-tdep.c 2016-01-08 19:16:20.332834851 +0100
|
||||
@@ -895,7 +895,7 @@
|
||||
--- gdb-7.11.50.20160716.orig/gdb/tic6x-tdep.c 2016-07-16 14:35:45.433503064 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/tic6x-tdep.c 2016-07-16 14:35:47.529519932 +0200
|
||||
@@ -892,7 +892,7 @@
|
||||
int argreg = 0;
|
||||
int argnum;
|
||||
int stack_offset = 4;
|
||||
@ -1112,7 +1108,7 @@ Index: gdb-7.10.50.20160106/gdb/tic6x-tdep.c
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
struct type *func_type = value_type (function);
|
||||
@@ -929,7 +929,7 @@
|
||||
@@ -926,7 +926,7 @@
|
||||
/* Now make space on the stack for the args. */
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -1121,7 +1117,7 @@ Index: gdb-7.10.50.20160106/gdb/tic6x-tdep.c
|
||||
if (argnum >= 10 - argreg)
|
||||
references_offset += len;
|
||||
stack_offset += len;
|
||||
@@ -948,7 +948,7 @@
|
||||
@@ -945,7 +945,7 @@
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -1130,7 +1126,7 @@ Index: gdb-7.10.50.20160106/gdb/tic6x-tdep.c
|
||||
enum type_code typecode = TYPE_CODE (arg_type);
|
||||
|
||||
val = value_contents (arg);
|
||||
@@ -1108,7 +1108,8 @@
|
||||
@@ -1105,7 +1105,8 @@
|
||||
}
|
||||
else
|
||||
internal_error (__FILE__, __LINE__,
|
||||
@ -1140,23 +1136,23 @@ Index: gdb-7.10.50.20160106/gdb/tic6x-tdep.c
|
||||
|
||||
addr = sp + stack_offset;
|
||||
write_memory (addr, val, len);
|
||||
Index: gdb-7.10.50.20160106/gdb/tilegx-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/tilegx-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/tilegx-tdep.c 2016-01-08 19:16:16.640814257 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/tilegx-tdep.c 2016-01-08 19:16:20.332834851 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/tilegx-tdep.c 2016-07-16 14:35:45.434503072 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/tilegx-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
@@ -288,7 +288,7 @@
|
||||
CORE_ADDR stack_dest = sp;
|
||||
int argreg = TILEGX_R0_REGNUM;
|
||||
int i, j;
|
||||
- int typelen, slacklen, alignlen;
|
||||
+ LONGEST typelen, slacklen, alignlen;
|
||||
- int typelen, slacklen;
|
||||
+ LONGEST typelen, slacklen;
|
||||
static const gdb_byte four_zero_words[16] = { 0 };
|
||||
|
||||
/* If struct_return is 1, then the struct return address will
|
||||
Index: gdb-7.10.50.20160106/gdb/v850-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/v850-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/v850-tdep.c 2016-01-08 19:16:16.640814257 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/v850-tdep.c 2016-01-08 19:16:20.332834851 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/v850-tdep.c 2016-07-16 14:35:45.434503072 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/v850-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
@@ -1019,7 +1019,7 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argreg;
|
||||
@ -1175,10 +1171,10 @@ Index: gdb-7.10.50.20160106/gdb/v850-tdep.c
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[v850_reg_size];
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/vax-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/vax-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/vax-tdep.c 2016-01-08 19:16:16.641814263 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/vax-tdep.c 2016-01-08 19:16:20.333834856 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/vax-tdep.c 2016-07-16 14:35:45.435503080 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/vax-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
@@ -111,7 +111,7 @@
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -1197,10 +1193,10 @@ Index: gdb-7.10.50.20160106/gdb/vax-tdep.c
|
||||
|
||||
sp -= (len + 3) & ~3;
|
||||
count += (len + 3) / 4;
|
||||
Index: gdb-7.10.50.20160106/gdb/xstormy16-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/xstormy16-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/xstormy16-tdep.c 2016-01-08 19:16:16.641814263 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/xstormy16-tdep.c 2016-01-08 19:16:20.333834856 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/xstormy16-tdep.c 2016-07-16 14:35:45.435503080 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/xstormy16-tdep.c 2016-07-16 14:35:47.530519941 +0200
|
||||
@@ -233,8 +233,9 @@
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR stack_dest = sp;
|
||||
@ -1213,10 +1209,10 @@ Index: gdb-7.10.50.20160106/gdb/xstormy16-tdep.c
|
||||
const gdb_byte *val;
|
||||
gdb_byte buf[xstormy16_pc_size];
|
||||
|
||||
Index: gdb-7.10.50.20160106/gdb/xtensa-tdep.c
|
||||
Index: gdb-7.11.50.20160716/gdb/xtensa-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20160106.orig/gdb/xtensa-tdep.c 2016-01-08 19:16:16.643814274 +0100
|
||||
+++ gdb-7.10.50.20160106/gdb/xtensa-tdep.c 2016-01-08 19:16:20.334834862 +0100
|
||||
--- gdb-7.11.50.20160716.orig/gdb/xtensa-tdep.c 2016-07-16 14:35:45.437503096 +0200
|
||||
+++ gdb-7.11.50.20160716/gdb/xtensa-tdep.c 2016-07-16 14:35:47.531519949 +0200
|
||||
@@ -1638,8 +1638,7 @@
|
||||
|
||||
if (len > (callsize > 8 ? 8 : 16))
|
||||
|
@ -47,11 +47,11 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=f77-bounds.patch
|
||||
|
||||
Index: gdb-7.10.50.20151027/gdb/f-lang.h
|
||||
Index: gdb-7.11.90.20160907/gdb/f-lang.h
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151027.orig/gdb/f-lang.h 2015-11-02 21:25:14.233161097 +0100
|
||||
+++ gdb-7.10.50.20151027/gdb/f-lang.h 2015-11-02 21:25:22.404214860 +0100
|
||||
@@ -62,9 +62,9 @@ struct common_block
|
||||
--- gdb-7.11.90.20160907.orig/gdb/f-lang.h 2016-09-07 21:48:33.308624019 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/f-lang.h 2016-09-07 21:48:40.967692469 +0200
|
||||
@@ -49,9 +49,9 @@
|
||||
struct symbol *contents[1];
|
||||
};
|
||||
|
||||
@ -63,21 +63,21 @@ Index: gdb-7.10.50.20151027/gdb/f-lang.h
|
||||
|
||||
extern void f77_get_dynamic_array_length (struct type *);
|
||||
|
||||
Index: gdb-7.10.50.20151027/gdb/f-typeprint.c
|
||||
Index: gdb-7.11.90.20160907/gdb/f-typeprint.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151027.orig/gdb/f-typeprint.c 2015-11-02 21:25:14.234161104 +0100
|
||||
+++ gdb-7.10.50.20151027/gdb/f-typeprint.c 2015-11-02 21:25:22.404214860 +0100
|
||||
@@ -171,7 +171,7 @@ f_type_print_varspec_suffix (struct type
|
||||
--- gdb-7.11.90.20160907.orig/gdb/f-typeprint.c 2016-09-07 21:48:33.309624028 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/f-typeprint.c 2016-09-07 21:48:40.967692469 +0200
|
||||
@@ -147,7 +147,7 @@
|
||||
int show, int passed_a_ptr, int demangled_args,
|
||||
int arrayprint_recurse_level)
|
||||
int arrayprint_recurse_level, int print_rank_only)
|
||||
{
|
||||
- int upper_bound, lower_bound;
|
||||
+ LONGEST upper_bound, lower_bound;
|
||||
|
||||
/* No static variables are permitted as an error call may occur during
|
||||
execution of this function. */
|
||||
@@ -204,7 +204,7 @@ f_type_print_varspec_suffix (struct type
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
{
|
||||
lower_bound = f77_get_lowerbound (type);
|
||||
if (lower_bound != 1) /* Not the default. */
|
||||
- fprintf_filtered (stream, "%d:", lower_bound);
|
||||
@ -85,16 +85,16 @@ Index: gdb-7.10.50.20151027/gdb/f-typeprint.c
|
||||
|
||||
/* Make sure that, if we have an assumed size array, we
|
||||
print out a warning and print the upperbound as '*'. */
|
||||
@@ -214,7 +214,7 @@ f_type_print_varspec_suffix (struct type
|
||||
@@ -204,7 +204,7 @@
|
||||
else
|
||||
{
|
||||
upper_bound = f77_get_upperbound (type);
|
||||
- fprintf_filtered (stream, "%d", upper_bound);
|
||||
+ fprintf_filtered (stream, "%s", plongest (upper_bound));
|
||||
}
|
||||
}
|
||||
|
||||
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY)
|
||||
@@ -283,7 +283,7 @@ void
|
||||
@@ -276,7 +276,7 @@
|
||||
f_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||
int level)
|
||||
{
|
||||
@ -103,7 +103,7 @@ Index: gdb-7.10.50.20151027/gdb/f-typeprint.c
|
||||
int index;
|
||||
|
||||
QUIT;
|
||||
@@ -365,7 +365,7 @@ f_type_print_base (struct type *type, st
|
||||
@@ -358,7 +358,7 @@
|
||||
else
|
||||
{
|
||||
upper_bound = f77_get_upperbound (type);
|
||||
@ -112,11 +112,11 @@ Index: gdb-7.10.50.20151027/gdb/f-typeprint.c
|
||||
}
|
||||
break;
|
||||
|
||||
Index: gdb-7.10.50.20151027/gdb/f-valprint.c
|
||||
Index: gdb-7.11.90.20160907/gdb/f-valprint.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151027.orig/gdb/f-valprint.c 2015-11-02 21:25:14.234161104 +0100
|
||||
+++ gdb-7.10.50.20151027/gdb/f-valprint.c 2015-11-02 21:25:22.405214867 +0100
|
||||
@@ -43,7 +43,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
|
||||
--- gdb-7.11.90.20160907.orig/gdb/f-valprint.c 2016-09-07 21:48:33.309624028 +0200
|
||||
+++ gdb-7.11.90.20160907/gdb/f-valprint.c 2016-09-07 21:48:40.967692469 +0200
|
||||
@@ -43,7 +43,7 @@
|
||||
/* Array which holds offsets to be applied to get a row's elements
|
||||
for a given array. Array also holds the size of each subarray. */
|
||||
|
||||
@ -125,7 +125,7 @@ Index: gdb-7.10.50.20151027/gdb/f-valprint.c
|
||||
f77_get_lowerbound (struct type *type)
|
||||
{
|
||||
if (TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED (type))
|
||||
@@ -52,7 +52,7 @@ f77_get_lowerbound (struct type *type)
|
||||
@@ -52,7 +52,7 @@
|
||||
return TYPE_ARRAY_LOWER_BOUND_VALUE (type);
|
||||
}
|
||||
|
||||
|
@ -1,19 +1,7 @@
|
||||
Index: gdb-7.10.50.20151022/gdb/value.c
|
||||
===================================================================
|
||||
--- gdb-7.10.50.20151022.orig/gdb/value.c 2015-10-24 23:17:04.042143628 +0200
|
||||
+++ gdb-7.10.50.20151022/gdb/value.c 2015-10-24 23:17:27.687300689 +0200
|
||||
@@ -934,7 +934,6 @@ allocate_value_lazy (struct type *type)
|
||||
description correctly. */
|
||||
check_typedef (type);
|
||||
|
||||
- ulongest_fits_host_or_error (TYPE_LENGTH (type));
|
||||
val = XCNEW (struct value);
|
||||
val->contents = NULL;
|
||||
val->next = all_values;
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp 2015-10-24 23:17:04.042143628 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.exp 2016-07-03 15:00:57.617347850 +0200
|
||||
@@ -0,0 +1,59 @@
|
||||
+# This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -45,8 +33,8 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp
|
||||
+
|
||||
+# Test 64-bit file first as it is not compiled so its compilation never fails.
|
||||
+
|
||||
+set file64bitbz2uu ${srcdir}/${subdir}/${testfile}-64bit.bz2.uu
|
||||
+set file64bit ${objdir}/${subdir}/${testfile}-64bit
|
||||
+set file64bitbz2uu ${srcdir}/${subdir}/${testfile}.bz2.uu
|
||||
+set file64bit ${objdir}/${subdir}/${testfile}
|
||||
+
|
||||
+if {[catch "system \"uudecode -o - ${file64bitbz2uu} | bzip2 -dc >${file64bit}\""] != 0} {
|
||||
+ untested "failed uudecode or bzip2"
|
||||
@ -60,7 +48,7 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp
|
||||
+
|
||||
+clean_restart ${file64bit}
|
||||
+
|
||||
+#if { [prepare_for_testing ${testfile}.exp ${testfile}-64bit $srcfile2 {nodebug}] } {
|
||||
+#if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile2 {nodebug}] } {
|
||||
+# return -1
|
||||
+#}
|
||||
+
|
||||
@ -74,10 +62,10 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.exp
|
||||
+}
|
||||
+
|
||||
+test "native"
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.c
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.c 2015-10-24 23:17:04.042143628 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.c 2016-07-03 15:00:57.618347859 +0200
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -107,10 +95,10 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.c
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.S
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.S
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.S 2015-10-24 23:17:04.042143628 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.S 2016-07-03 15:00:57.618347859 +0200
|
||||
@@ -0,0 +1,249 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -361,10 +349,10 @@ Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.S
|
||||
+ .string "char"
|
||||
+ .ident "GCC: (GNU) 4.7.3 20121109 (prerelease)"
|
||||
+ .section .note.GNU-stack,"",@progbits
|
||||
Index: gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu
|
||||
Index: gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20151022/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu 2015-10-24 23:17:04.042143628 +0200
|
||||
+++ gdb-7.11.50.20160630/gdb/testsuite/gdb.base/longest-types-64bit.bz2.uu 2016-07-03 15:00:57.618347859 +0200
|
||||
@@ -0,0 +1,67 @@
|
||||
+begin 755 gdb.base/longest-types-64bit.bz2
|
||||
+M0EIH.3%!62936<'N#OH`"G/________^______?_Y______//]7SQD5'^/_%
|
||||
|
461
gdb-test-ivy-bridge.patch
Normal file
461
gdb-test-ivy-bridge.patch
Normal file
@ -0,0 +1,461 @@
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp 2016-10-20 20:57:31.652630455 +0200
|
||||
@@ -0,0 +1,170 @@
|
||||
+# Copyright 2011 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if {![istarget "x86_64-*-*"]} then {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile amd64-ivy-bridge
|
||||
+set test compilation
|
||||
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m64 -nostdlib"]] {
|
||||
+ fail $test
|
||||
+ return -1
|
||||
+}
|
||||
+pass $test
|
||||
+
|
||||
+gdb_test_no_output "set disassembly-flavor att"
|
||||
+# gas/i386/x86-64-rdrnd.d
|
||||
+# gas/i386/x86-64-f16c.d
|
||||
+# gas/i386/x86-64-fsgs.d
|
||||
+gdb_test "disassemble/r _start" "\r
|
||||
+Dump of assembler code for function _start:\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
|
||||
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand %rbx\r
|
||||
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand %r8w\r
|
||||
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand %r8d\r
|
||||
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand %r8\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
|
||||
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand %rbx\r
|
||||
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand %r8w\r
|
||||
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand %r8d\r
|
||||
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand %r8\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps \\(%r8\\),%ymm8\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 43 7d 1d 00 02\t\( \)?vcvtps2ph \\\$0x2,%ymm8,\\(%r8\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%rcx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps \\(%r8\\),%ymm8\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%rcx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%rcx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 43 79 1d 00 02\t\( \)?vcvtps2ph \\\$0x2,%xmm8,\\(%r8\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%rcx\\)\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase %r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase %rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase %r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase %r8\r
|
||||
+End of assembler dump\\." "att"
|
||||
+
|
||||
+gdb_test_no_output "set disassembly-flavor intel"
|
||||
+# gas/i386/x86-64-rdrnd-intel.d
|
||||
+# gas/i386/x86-64-f16c-intel.d
|
||||
+# gas/i386/x86-64-fsgs-intel.d
|
||||
+gdb_test "disassemble/r _start" "\r
|
||||
+Dump of assembler code for function _start:\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
|
||||
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand rbx\r
|
||||
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand r8w\r
|
||||
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand r8d\r
|
||||
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand r8\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
|
||||
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand rbx\r
|
||||
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand r8w\r
|
||||
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand r8d\r
|
||||
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand r8\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps ymm8,XMMWORD PTR \\\[r8\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 43 7d 1d 00 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[r8\\\],ymm8,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[rcx\\\],xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps ymm8,XMMWORD PTR \\\[r8\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[rcx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[rcx\\\],ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[rcx\\\],ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 43 79 1d 00 02\t\( \)?vcvtps2ph QWORD PTR \\\[r8\\\],xmm8,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[rcx\\\],xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase r8\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase rbx\r
|
||||
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase r8d\r
|
||||
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase r8\r
|
||||
+End of assembler dump\\." "intel"
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp 2016-10-20 20:57:43.251721147 +0200
|
||||
@@ -0,0 +1,106 @@
|
||||
+# Copyright 2011 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if {![istarget "x86_64-*-*"] && ![istarget "i?86-*-*"]} then {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile i386-ivy-bridge
|
||||
+set test compilation
|
||||
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m32 -nostdlib"]] {
|
||||
+ fail $test
|
||||
+ return -1
|
||||
+}
|
||||
+pass $test
|
||||
+
|
||||
+gdb_test_no_output "set disassembly-flavor att"
|
||||
+# gas/i386/rdrnd.d
|
||||
+# gas/i386/f16c.d
|
||||
+# gas/i386/fsgs.d
|
||||
+gdb_test "disassemble/r _start" "\r
|
||||
+Dump of assembler code for function _start:\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%ymm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
|
||||
+End of assembler dump\\." "att"
|
||||
+
|
||||
+gdb_test_no_output "set disassembly-flavor intel"
|
||||
+# gas/i386/rdrnd-intel.d
|
||||
+# gas/i386/f16c-intel.d
|
||||
+# gas/i386/fsgs-intel.d
|
||||
+gdb_test "disassemble/r _start" "\r
|
||||
+Dump of assembler code for function _start:\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
|
||||
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
|
||||
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
|
||||
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
|
||||
+End of assembler dump\\." "intel"
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S 2016-10-20 20:55:50.853842324 +0200
|
||||
@@ -0,0 +1,98 @@
|
||||
+/* Copyright 2011 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ This file is part of the gdb testsuite. */
|
||||
+
|
||||
+ .globl _start
|
||||
+_start: .text
|
||||
+
|
||||
+/* gas/i386/x86-64-rdrnd.s */
|
||||
+ .att_syntax prefix
|
||||
+ rdrand %bx
|
||||
+ rdrand %ebx
|
||||
+ rdrand %rbx
|
||||
+ rdrand %r8w
|
||||
+ rdrand %r8d
|
||||
+ rdrand %r8
|
||||
+
|
||||
+ .intel_syntax noprefix
|
||||
+ rdrand bx
|
||||
+ rdrand ebx
|
||||
+ rdrand rbx
|
||||
+ rdrand r8w
|
||||
+ rdrand r8d
|
||||
+ rdrand r8
|
||||
+
|
||||
+/* gas/i386/x86-64-f16c.s */
|
||||
+ .att_syntax prefix
|
||||
+ vcvtph2ps %xmm4,%ymm4
|
||||
+ vcvtph2ps (%r8),%ymm8
|
||||
+ vcvtph2ps %xmm4,%xmm6
|
||||
+ vcvtph2ps (%rcx),%xmm4
|
||||
+ vcvtps2ph $0x2,%ymm4,%xmm4
|
||||
+ vcvtps2ph $0x2,%ymm8,(%r8)
|
||||
+ vcvtps2ph $0x2,%xmm4,%xmm4
|
||||
+ vcvtps2ph $0x2,%xmm4,(%rcx)
|
||||
+
|
||||
+ .intel_syntax noprefix
|
||||
+ vcvtph2ps ymm4,xmm4
|
||||
+ vcvtph2ps ymm8,XMMWORD PTR [r8]
|
||||
+ vcvtph2ps ymm4,[rcx]
|
||||
+ vcvtph2ps xmm6,xmm4
|
||||
+ vcvtph2ps xmm4,QWORD PTR [rcx]
|
||||
+ vcvtph2ps xmm4,[rcx]
|
||||
+ vcvtps2ph xmm4,ymm4,0x2
|
||||
+ vcvtps2ph XMMWORD PTR [rcx],ymm4,0x2
|
||||
+ vcvtps2ph [rcx],ymm4,0x2
|
||||
+ vcvtps2ph xmm4,xmm4,0x2
|
||||
+ vcvtps2ph QWORD PTR [r8],xmm8,0x2
|
||||
+ vcvtps2ph [rcx],xmm4,0x2
|
||||
+
|
||||
+/* gas/i386/x86-64-fsgs.s */
|
||||
+ .att_syntax prefix
|
||||
+ rdfsbase %ebx
|
||||
+ rdfsbase %rbx
|
||||
+ rdfsbase %r8d
|
||||
+ rdfsbase %r8
|
||||
+ rdgsbase %ebx
|
||||
+ rdgsbase %rbx
|
||||
+ rdgsbase %r8d
|
||||
+ rdgsbase %r8
|
||||
+ wrfsbase %ebx
|
||||
+ wrfsbase %rbx
|
||||
+ wrfsbase %r8d
|
||||
+ wrfsbase %r8
|
||||
+ wrgsbase %ebx
|
||||
+ wrgsbase %rbx
|
||||
+ wrgsbase %r8d
|
||||
+ wrgsbase %r8
|
||||
+
|
||||
+ .intel_syntax noprefix
|
||||
+ rdfsbase ebx
|
||||
+ rdfsbase rbx
|
||||
+ rdfsbase r8d
|
||||
+ rdfsbase r8
|
||||
+ rdgsbase ebx
|
||||
+ rdgsbase rbx
|
||||
+ rdgsbase r8d
|
||||
+ rdgsbase r8
|
||||
+ wrfsbase ebx
|
||||
+ wrfsbase rbx
|
||||
+ wrfsbase r8d
|
||||
+ wrfsbase r8
|
||||
+ wrgsbase ebx
|
||||
+ wrgsbase rbx
|
||||
+ wrgsbase r8d
|
||||
+ wrgsbase r8
|
||||
Index: gdb-7.12/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.12/gdb/testsuite/gdb.arch/i386-ivy-bridge.S 2016-10-20 20:55:50.853842324 +0200
|
||||
@@ -0,0 +1,67 @@
|
||||
+/* Copyright 2011 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ This file is part of the gdb testsuite. */
|
||||
+
|
||||
+ .globl _start
|
||||
+_start: .text
|
||||
+
|
||||
+/* gas/i386/rdrnd.s */
|
||||
+ .att_syntax prefix
|
||||
+ rdrand %bx
|
||||
+ rdrand %ebx
|
||||
+
|
||||
+ .intel_syntax noprefix
|
||||
+ rdrand bx
|
||||
+ rdrand ebx
|
||||
+
|
||||
+/* gas/i386/f16c.s */
|
||||
+ .att_syntax prefix
|
||||
+ vcvtph2ps %xmm4,%ymm4
|
||||
+ vcvtph2ps (%ecx),%ymm4
|
||||
+ vcvtph2ps %xmm4,%xmm6
|
||||
+ vcvtph2ps (%ecx),%xmm4
|
||||
+ vcvtps2ph $0x2,%ymm4,%xmm4
|
||||
+ vcvtps2ph $0x2,%ymm4,(%ecx)
|
||||
+ vcvtps2ph $0x2,%xmm4,%xmm4
|
||||
+ vcvtps2ph $0x2,%xmm4,(%ecx)
|
||||
+
|
||||
+ .intel_syntax noprefix
|
||||
+ vcvtph2ps ymm4,xmm4
|
||||
+ vcvtph2ps ymm4,XMMWORD PTR [ecx]
|
||||
+ vcvtph2ps ymm4,[ecx]
|
||||
+ vcvtph2ps xmm6,xmm4
|
||||
+ vcvtph2ps xmm4,QWORD PTR [ecx]
|
||||
+ vcvtph2ps xmm4,[ecx]
|
||||
+ vcvtps2ph xmm4,ymm4,0x2
|
||||
+ vcvtps2ph XMMWORD PTR [ecx],ymm4,0x2
|
||||
+ vcvtps2ph [ecx],ymm4,0x2
|
||||
+ vcvtps2ph xmm4,xmm4,0x2
|
||||
+ vcvtps2ph QWORD PTR [ecx],xmm4,0x2
|
||||
+ vcvtps2ph [ecx],xmm4,0x2
|
||||
+
|
||||
+/* gas/i386/fsgs.s */
|
||||
+ .att_syntax prefix
|
||||
+ rdfsbase %ebx
|
||||
+ rdgsbase %ebx
|
||||
+ wrfsbase %ebx
|
||||
+ wrgsbase %ebx
|
||||
+
|
||||
+ .intel_syntax noprefix
|
||||
+ rdfsbase ebx
|
||||
+ rdgsbase ebx
|
||||
+ wrfsbase ebx
|
||||
+ wrgsbase ebx
|
||||
+
|
80
gdb-testsuite-casts.patch
Normal file
80
gdb-testsuite-casts.patch
Normal file
@ -0,0 +1,80 @@
|
||||
http://sourceware.org/ml/gdb-patches/2016-09/msg00082.html
|
||||
Subject: [testsuite patch] Fix false FAIL in gdb.cp/casts.exp
|
||||
|
||||
|
||||
--ikeVEW9yuYc//A+q
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
gcc-6.2.1-1.fc26.x86_64
|
||||
|
||||
gdb compile failed, /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:40:10: error: expected primary-expression before 'int'
|
||||
decltype(int x)
|
||||
^~~
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:40:10: error: expected ')' before 'int'
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:40:1: error: expected unqualified-id before 'decltype'
|
||||
decltype(int x)
|
||||
^~~~~~~~
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc: In function 'int main(int, char**)':
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:59:14: error: expected primary-expression before 'decltype'
|
||||
double y = decltype(2);
|
||||
^~~~~~~~
|
||||
|
||||
'decltype' is a registered keyword since C++11 which is now a default for GCC.
|
||||
|
||||
OK for check-in?
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--ikeVEW9yuYc//A+q
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.cp/casts.cc: Rename decltype to int_to_double.
|
||||
* gdb.cp/casts.exp (whatis decltype(5)): Rename to ...
|
||||
(whatis int_to_double(5)): ... here.
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.cp/casts.cc b/gdb/testsuite/gdb.cp/casts.cc
|
||||
index 43f112f..4f68ba0 100644
|
||||
--- a/gdb/testsuite/gdb.cp/casts.cc
|
||||
+++ b/gdb/testsuite/gdb.cp/casts.cc
|
||||
@@ -37,7 +37,7 @@ struct DoublyDerived : public VirtuallyDerived,
|
||||
// Confuse a simpler approach.
|
||||
|
||||
double
|
||||
-decltype(int x)
|
||||
+int_to_double(int x)
|
||||
{
|
||||
return x + 2.0;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ main (int argc, char **argv)
|
||||
Alpha *ad = &derived;
|
||||
Alpha *add = &doublyderived;
|
||||
|
||||
- double y = decltype(2);
|
||||
+ double y = int_to_double(2);
|
||||
|
||||
return 0; /* breakpoint spot: casts.exp: 1 */
|
||||
}
|
||||
diff --git a/gdb/testsuite/gdb.cp/casts.exp b/gdb/testsuite/gdb.cp/casts.exp
|
||||
index 34a2492..5798098 100644
|
||||
--- a/gdb/testsuite/gdb.cp/casts.exp
|
||||
+++ b/gdb/testsuite/gdb.cp/casts.exp
|
||||
@@ -112,7 +112,7 @@ gdb_test "print reinterpret_cast<A &> (*b)" " = \\(A \\&\\) @$hex: {a = 42}" \
|
||||
|
||||
# Test that keyword shadowing works.
|
||||
|
||||
-gdb_test "whatis decltype(5)" " = double"
|
||||
+gdb_test "whatis int_to_double(5)" " = double"
|
||||
|
||||
# Basic tests using typeof.
|
||||
|
||||
|
||||
--ikeVEW9yuYc//A+q--
|
||||
|
79
gdb-testsuite-m-static.patch
Normal file
79
gdb-testsuite-m-static.patch
Normal file
@ -0,0 +1,79 @@
|
||||
http://sourceware.org/ml/gdb-patches/2016-09/msg00083.html
|
||||
Subject: [testsuite patch] Fix C++11 compilation failure for gdb.cp/m-static.exp
|
||||
|
||||
|
||||
--y0ulUmNC+osPPQO6
|
||||
Content-Type: text/plain; charset=iso-2022-jp
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
gcc-6.2.1-1.fc26.x86_64
|
||||
|
||||
g++ -std=c++03:
|
||||
no warnings
|
||||
|
||||
g++:
|
||||
In file included from /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.cc:79:0:
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.h:9:34: error: $B!F(Bconstexpr$B!G(B needed for in-class initialization of static data member $B!F(Bconst float gnu_obj_4::somewhere$B!G(B of non-integral type [-fpermissive]
|
||||
static const float somewhere = 3.14159;
|
||||
^~~~~~~
|
||||
|
||||
clang++:
|
||||
In file included from /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.cc:79:
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.h:9:22: warning: in-class initializer for static data member of type 'const float' is a GNU extension [-Wgnu-static-float-init]
|
||||
static const float somewhere = 3.14159;
|
||||
^ ~~~~~~~
|
||||
1 warning generated.
|
||||
|
||||
clang++ -std=c++11:
|
||||
In file included from /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.cc:79:
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.h:9:22: error: in-class initializer for static data member of type 'const float' requires 'constexpr' specifier [-Wstatic-float-init]
|
||||
static const float somewhere = 3.14159;
|
||||
^ ~~~~~~~
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.h:9:3: note: add 'constexpr'
|
||||
static const float somewhere = 3.14159;
|
||||
^
|
||||
constexpr
|
||||
1 error generated.
|
||||
|
||||
OK for check-in?
|
||||
|
||||
After the fix out of the 4 combinations above only this one remains non-empty:
|
||||
|
||||
clang++:
|
||||
In file included from /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.cc:79:
|
||||
/home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/m-static.h:9:22: warning: in-class initializer for static data member of type 'const float' is a GNU extension [-Wgnu-static-float-init]
|
||||
static const float somewhere = 3.14159;
|
||||
^ ~~~~~~~
|
||||
1 warning generated.
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--y0ulUmNC+osPPQO6
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.cp/m-static.h (gnu_obj_4::somewhere): Use constexpr for C++11.
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.cp/m-static.h b/gdb/testsuite/gdb.cp/m-static.h
|
||||
index bcedfff..2992463 100644
|
||||
--- a/gdb/testsuite/gdb.cp/m-static.h
|
||||
+++ b/gdb/testsuite/gdb.cp/m-static.h
|
||||
@@ -6,6 +6,9 @@ class gnu_obj_4
|
||||
static const int elsewhere;
|
||||
static const int nowhere;
|
||||
static const int everywhere = 317;
|
||||
+#if __cplusplus >= 201103L
|
||||
+ constexpr
|
||||
+#endif
|
||||
static const float somewhere = 3.14159;
|
||||
|
||||
// try to ensure test4 is actually allocated
|
||||
|
||||
--y0ulUmNC+osPPQO6--
|
||||
|
83
gdb-testsuite-morestack-gold.patch
Normal file
83
gdb-testsuite-morestack-gold.patch
Normal file
@ -0,0 +1,83 @@
|
||||
http://sourceware.org/ml/gdb-patches/2016-10/msg00652.html
|
||||
Subject: [testsuite patch] Fix false FAIL for gdb.base/morestack.exp
|
||||
|
||||
|
||||
--HlL+5n6rz5pIUxbD
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
since
|
||||
[commit] [testsuite patch] Fix gcc_compiled for gcc 6 & 7
|
||||
https://sourceware.org/ml/gdb-patches/2016-10/msg00620.html
|
||||
|
||||
there has started running again
|
||||
Running gdb/testsuite/gdb.base/morestack.exp ...
|
||||
+FAIL: gdb.base/morestack.exp: continue
|
||||
+PASS: gdb.base/morestack.exp: up 3000
|
||||
|
||||
but as you can see it FAILs now - on Fedora 24 x86_64 (although for example it
|
||||
still PASSes on CentOS-7.2 x86_64).
|
||||
|
||||
Program received signal SIGSEGV, Segmentation fault.
|
||||
0x00007ffff787c7bb in malloc_consolidate (av=av@entry=0x7ffff7bbcb00 <main_arena>) at malloc.c:4181
|
||||
4181 unlink(av, nextchunk, bck, fwd);
|
||||
(gdb) bt
|
||||
#0 0x00007ffff787c7bb in malloc_consolidate (av=av@entry=0x7ffff7bbcb00 <main_arena>) at malloc.c:4181
|
||||
#1 0x00007ffff787f235 in _int_malloc (av=av@entry=0x7ffff7bbcb00 <main_arena>, bytes=bytes@entry=1024) at malloc.c:3448
|
||||
[...]
|
||||
#8 0x00007ffff784c5ac in _IO_vfprintf_internal (s=0x7ffff7bbd600 <_IO_2_1_stdout_>, format=<optimized out>, ap=ap@entry=0x7ffff77fd7f8) at vfprintf.c:1631
|
||||
#9 0x00007ffff7853939 in __printf (format=<optimized out>) at printf.c:33
|
||||
#10 0x0000000000400d6b in down ()
|
||||
#11 0x0000000000400f2c in __morestack ()
|
||||
#12 0x0000000000400dda in down ()
|
||||
[...]
|
||||
|
||||
This apparently is due to - man gcc - -fsplit-stack:
|
||||
When code compiled with -fsplit-stack calls code compiled without
|
||||
-fsplit-stack, there may not be much stack space available for the
|
||||
latter code to run. If compiling all code, including library code,
|
||||
with -fsplit-stack is not an option, then the linker can fix up these
|
||||
calls so that the code compiled without -fsplit-stack always has
|
||||
a large stack. Support for this is implemented in the gold linker in
|
||||
GNU binutils release 2.21 and later.
|
||||
|
||||
Personally I do not understand why gold is not the default linker as GNU ld is
|
||||
unusably slow (6x) for C++ but that is off-topic here.
|
||||
|
||||
OK for check-in?
|
||||
|
||||
|
||||
Thanks,
|
||||
Jan
|
||||
|
||||
--HlL+5n6rz5pIUxbD
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-10-22 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/morestack.exp: Try to build it using -fuse-ld=gold first.
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.base/morestack.exp b/gdb/testsuite/gdb.base/morestack.exp
|
||||
index 12f5d28..caa85b8 100644
|
||||
--- a/gdb/testsuite/gdb.base/morestack.exp
|
||||
+++ b/gdb/testsuite/gdb.base/morestack.exp
|
||||
@@ -23,7 +23,11 @@ if {$gcc_compiled == 0} {
|
||||
|
||||
standard_testfile
|
||||
|
||||
-if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile {additional_flags=-fsplit-stack}] } {
|
||||
+# -fuse-ld=gold is used for calling printf code built without -fsplit-stack
|
||||
+# which could crash otherise. See GCC documentation of -fsplit-stack.
|
||||
+set opts "additional_flags=-fsplit-stack"
|
||||
+if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile [list $opts additional_flags=-fuse-ld=gold]] \
|
||||
+ && [prepare_for_testing ${testfile}.exp ${testfile} $srcfile $opts] } {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
--HlL+5n6rz5pIUxbD--
|
||||
|
47
gdb-tls-1of2.patch
Normal file
47
gdb-tls-1of2.patch
Normal file
@ -0,0 +1,47 @@
|
||||
http://sourceware.org/ml/gdb-patches/2016-10/msg00206.html
|
||||
Subject: [patch+7.12.1 1/2] Code cleanup: write_exp_msymbol: +is_tls
|
||||
|
||||
|
||||
--XMCwj5IQnwKtuyBG
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
no functionality change, for patch 2/2.
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--XMCwj5IQnwKtuyBG
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename="tls1.patch"
|
||||
|
||||
gdb/ChangeLog
|
||||
2016-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* parse.c (write_exp_msymbol): New variable is_tls, use it.
|
||||
|
||||
--- a/gdb/parse.c
|
||||
+++ b/gdb/parse.c
|
||||
@@ -484,6 +484,8 @@ write_exp_msymbol (struct parser_state *ps,
|
||||
struct obj_section *section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
|
||||
enum minimal_symbol_type type = MSYMBOL_TYPE (msymbol);
|
||||
CORE_ADDR pc;
|
||||
+ const int is_tls = (section != NULL
|
||||
+ && section->the_bfd_section->flags & SEC_THREAD_LOCAL);
|
||||
|
||||
/* The minimal symbol might point to a function descriptor;
|
||||
resolve it to the actual code address instead. */
|
||||
@@ -520,7 +522,7 @@ write_exp_msymbol (struct parser_state *ps,
|
||||
write_exp_elt_longcst (ps, (LONGEST) addr);
|
||||
write_exp_elt_opcode (ps, OP_LONG);
|
||||
|
||||
- if (section && section->the_bfd_section->flags & SEC_THREAD_LOCAL)
|
||||
+ if (is_tls)
|
||||
{
|
||||
write_exp_elt_opcode (ps, UNOP_MEMVAL_TLS);
|
||||
write_exp_elt_objfile (ps, objfile);
|
||||
|
||||
--XMCwj5IQnwKtuyBG--
|
||||
|
159
gdb-tls-2of2.patch
Normal file
159
gdb-tls-2of2.patch
Normal file
@ -0,0 +1,159 @@
|
||||
http://sourceware.org/ml/gdb-patches/2016-10/msg00207.html
|
||||
Subject: [patch+7.12.1 2/2] Fix TLS (such as 'errno') regression
|
||||
|
||||
|
||||
--3Pql8miugIZX0722
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
2273f0ac95a79ce29ef42025c63f90e82cf907d7 is the first bad commit
|
||||
commit 2273f0ac95a79ce29ef42025c63f90e82cf907d7
|
||||
Author: Tom Tromey <tromey@redhat.com>
|
||||
Date: Tue Oct 15 13:28:57 2013 -0600
|
||||
change minsyms not to be relocated at read-time
|
||||
[FYI v3 06/10] change minsyms not to be relocated at read-time
|
||||
Message-Id: <1393441273-32268-7-git-send-email-tromey@redhat.com>
|
||||
https://sourceware.org/ml/gdb-patches/2014-02/msg00798.html
|
||||
|
||||
mv /usr/lib/debug /usr/lib/debug-x
|
||||
echo 'int main(){}'|gcc -pthread -x c -
|
||||
./gdb -q -ex start -ex 'set debug expr 1' -ex 'p errno' ./a.out
|
||||
0 UNOP_MEMVAL_TLS TLS type @0x35df7e0 (__thread /* "/lib64/libc.so.6" */ <thread local variable, no debug info>)
|
||||
4 OP_LONG Type @0x35df850 (__CORE_ADDR), value 140737345728528 (0x7ffff77fb010)
|
||||
Cannot access memory at address 0xffffef7c9698
|
||||
->
|
||||
0 UNOP_MEMVAL_TLS TLS type @0x3ad9520 (__thread /* "/lib64/libc.so.6" */ <thread local variable, no debug info>)
|
||||
4 OP_LONG Type @0x3ad9590 (__CORE_ADDR), value 16 (0x10)
|
||||
$1 = 0
|
||||
|
||||
With glibc debuginfo, that is without: mv /usr/lib/debug /usr/lib/debug-x
|
||||
0 OP_VAR_VALUE Block @0x3b30e70, symbol @0x3b30d10 (errno)
|
||||
$1 = 0
|
||||
So such case is unrelated to this patch and the regression is not visible with
|
||||
glibc debuginfo installed.
|
||||
|
||||
I guess all these issues will be solved by Gary Benson's Infinity.
|
||||
But at least for older non-Infinity glibcs GDB should not regress.
|
||||
|
||||
For the testcase it is important the variable is in objfile with non-zero base
|
||||
address. glibc is a shared library for 'errno' but I found easier for the
|
||||
testcase to use PIE instead of a shlib. For TLS variables in PT_EXEC the
|
||||
regression obviously does not happen.
|
||||
|
||||
It has been found by a more complete testcase present in Fedora, the fix there
|
||||
also solves more cases where FSF GDB currently cannot resolve 'errno':
|
||||
http://pkgs.fedoraproject.org/cgit/rpms/gdb.git/tree/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
FAIL: gdb.dwarf2/dw2-errno2.exp: macros=N threads=Y: print errno for core
|
||||
|
||||
No regressions on {x86_64,x86_64-m32,i686}-fedora26pre-linux-gnu.
|
||||
|
||||
OK for check-in?
|
||||
|
||||
|
||||
Thanks,
|
||||
Jan
|
||||
|
||||
--3Pql8miugIZX0722
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename="tls1-2.patch"
|
||||
|
||||
gdb/ChangeLog
|
||||
2016-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* parse.c (write_exp_msymbol): Fix ADDR computation.
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.threads/tls-nodebug-pie.c: New file.
|
||||
* gdb.threads/tls-nodebug-pie.exp: New file.
|
||||
|
||||
--- a/gdb/parse.c
|
||||
+++ b/gdb/parse.c
|
||||
@@ -480,13 +480,17 @@ write_exp_msymbol (struct parser_state *ps,
|
||||
struct objfile *objfile = bound_msym.objfile;
|
||||
struct gdbarch *gdbarch = get_objfile_arch (objfile);
|
||||
|
||||
- CORE_ADDR addr = BMSYMBOL_VALUE_ADDRESS (bound_msym);
|
||||
struct obj_section *section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
|
||||
enum minimal_symbol_type type = MSYMBOL_TYPE (msymbol);
|
||||
- CORE_ADDR pc;
|
||||
+ CORE_ADDR addr, pc;
|
||||
const int is_tls = (section != NULL
|
||||
&& section->the_bfd_section->flags & SEC_THREAD_LOCAL);
|
||||
|
||||
+ if (is_tls)
|
||||
+ addr = MSYMBOL_VALUE_RAW_ADDRESS (bound_msym.minsym);
|
||||
+ else
|
||||
+ addr = BMSYMBOL_VALUE_ADDRESS (bound_msym);
|
||||
+
|
||||
/* The minimal symbol might point to a function descriptor;
|
||||
resolve it to the actual code address instead. */
|
||||
pc = gdbarch_convert_from_func_ptr_addr (gdbarch, addr, ¤t_target);
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.threads/tls-nodebug-pie.c
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <pthread.h>
|
||||
+
|
||||
+__thread int thread_local = 42;
|
||||
+
|
||||
+int main(void)
|
||||
+{
|
||||
+ /* Ensure we link against pthreads even with --as-needed. */
|
||||
+ pthread_testcancel();
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
|
||||
@@ -0,0 +1,29 @@
|
||||
+# Copyright 2016 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+standard_testfile
|
||||
+
|
||||
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
|
||||
+ [list "additional_flags=-fPIE -pie"]] != "" } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+clean_restart ${binfile}
|
||||
+if ![runto_main] then {
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+# Formerly: Cannot access memory at address 0xd5554d5216fc
|
||||
+gdb_test "p thread_local" " = 42" "thread local storage"
|
||||
|
||||
--3Pql8miugIZX0722--
|
||||
|
722
gdb-upstream.patch
Normal file
722
gdb-upstream.patch
Normal file
@ -0,0 +1,722 @@
|
||||
commit 2c29df25b7c2ff006b45afd80ee6dd734ebbd47c
|
||||
Author: Sergio Durigan Junior <sergiodj@redhat.com>
|
||||
Date: Sun Sep 11 16:53:09 2016 -0400
|
||||
|
||||
Fix false FAIL on gdb.base/stap-probe.exp, due to ICF optimization
|
||||
|
||||
GCC 6's ICF optimization pass is making the declaration of 'm1' and
|
||||
'm2', on gdb.base/stap-probe.c, to be unified. However, this leads to
|
||||
only one instance of the probe 'two' being created, which causes a
|
||||
failure on the testsuite (which expects a multi-location breakpoint to
|
||||
be inserted on the probe).
|
||||
|
||||
This patch fixes this failure by declaring a dummy variable on 'm1',
|
||||
and using it as an argument to m1's version of probe 'two'. Since we
|
||||
do not care about the contents of the functions nor about the
|
||||
arguments of each probe 'two', this is OK.
|
||||
|
||||
gdb/testsuite/ChangeLog:
|
||||
2016-09-11 Sergio Durigan Junior <sergiodj@redhat.com>
|
||||
Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/stap-probe.c (m1): New variable 'dummy', necessary to
|
||||
make m1's definition to be different from m2's. Use 'dummy' as an
|
||||
argument for probe 'two'.
|
||||
|
||||
### a/gdb/testsuite/ChangeLog
|
||||
### b/gdb/testsuite/ChangeLog
|
||||
## -1,3 +1,10 @@
|
||||
+2016-09-11 Sergio Durigan Junior <sergiodj@redhat.com>
|
||||
+ Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
+
|
||||
+ * gdb.base/stap-probe.c (m1): New variable 'dummy', necessary to
|
||||
+ make m1's definition to be different from m2's. Use 'dummy' as an
|
||||
+ argument for probe 'two'.
|
||||
+
|
||||
2016-09-10 Jon Beniston <jon@beniston.com>
|
||||
|
||||
* lib/mi-support.exp (mi_gdb_target_load): Use target_sim_options
|
||||
--- a/gdb/testsuite/gdb.base/stap-probe.c
|
||||
+++ b/gdb/testsuite/gdb.base/stap-probe.c
|
||||
@@ -53,8 +53,13 @@ struct funcs
|
||||
static void
|
||||
m1 (void)
|
||||
{
|
||||
+ /* m1 and m2 are equivalent, but because of some compiler
|
||||
+ optimizations we have to make each of them unique. This is why
|
||||
+ we have this dummy variable here. */
|
||||
+ volatile int dummy = 0;
|
||||
+
|
||||
if (TEST2)
|
||||
- STAP_PROBE (test, two);
|
||||
+ STAP_PROBE1 (test, two, dummy);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
|
||||
commit f389f6fef76d7cf8e8beb7061edff2155c284898
|
||||
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Date: Wed Oct 5 21:56:46 2016 +0200
|
||||
|
||||
testsuite: Fix recent GCC FAIL: gdb.arch/i386-signal.exp
|
||||
|
||||
gcc-6.2.1-2.fc24.x86_64
|
||||
|
||||
(gdb) backtrace 10^M
|
||||
(gdb) FAIL: gdb.arch/i386-signal.exp: backtrace 10
|
||||
|
||||
(gdb) disas/s
|
||||
Dump of assembler code for function main:
|
||||
.../gdb/testsuite/gdb.arch/i386-signal.c:
|
||||
30 {
|
||||
0x000000000040057f <+0>: push %rbp
|
||||
0x0000000000400580 <+1>: mov %rsp,%rbp
|
||||
31 setup ();
|
||||
0x0000000000400583 <+4>: callq 0x400590 <setup>
|
||||
=> 0x0000000000400588 <+9>: mov $0x0,%eax
|
||||
32 }
|
||||
0x000000000040058d <+14>: pop %rbp
|
||||
0x000000000040058e <+15>: retq
|
||||
End of assembler dump.
|
||||
|
||||
The .exp patch is an obvious typo fix I think. The regex was written to
|
||||
accept "ADDR in main" and I find it OK as checking .debug_line validity is not
|
||||
the purpose of this testfile.
|
||||
|
||||
gcc-4.8.5-11.el7.x86_64 did not put the 'mov $0x0,%eax' instruction there at
|
||||
all so there was no problem with .debug_line.
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-10-05 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.arch/i386-signal.exp (backtrace 10): Fix #2 typo.
|
||||
|
||||
### a/gdb/testsuite/ChangeLog
|
||||
### b/gdb/testsuite/ChangeLog
|
||||
## -1,3 +1,7 @@
|
||||
+2016-10-05 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
+
|
||||
+ * gdb.arch/i386-signal.exp (backtrace 10): Fix #2 typo.
|
||||
+
|
||||
2016-10-05 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* lib/gdb.exp (support_complex_tests): Return zero if
|
||||
--- a/gdb/testsuite/gdb.arch/i386-signal.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/i386-signal.exp
|
||||
@@ -35,6 +35,6 @@ gdb_load ${binfile}
|
||||
|
||||
runto func
|
||||
gdb_test "backtrace 10" \
|
||||
- "#0 ($hex in )?func.*\r\n#1 <signal handler called>\r\n#2 ($hex in)?main.*"
|
||||
+ "#0 ($hex in )?func.*\r\n#1 <signal handler called>\r\n#2 ($hex in )?main.*"
|
||||
|
||||
gdb_test "finish" "Run till exit from \#0 func.*<signal handler called>"
|
||||
|
||||
|
||||
commit 20c2c024c1e89e402a57e8c3577fb9777709d9a4
|
||||
Author: Carl E. Love <carll@oc4738070240.ibm.com>
|
||||
Date: Fri Aug 19 11:06:38 2016 -0700
|
||||
|
||||
Fix missing files for ld when test suite not compiled in the source directory
|
||||
|
||||
This patch fixes an issues with six test suite expect files that do not
|
||||
run correctly when the test suite is not built in the source directory. The
|
||||
issue is these tests are not using the current "standard_testfile" call
|
||||
but rather using the older set command to initialize the "testfile",
|
||||
"srcfile" and "binprefix" variables or are missing the set for the
|
||||
"binprefix" variable.
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
|
||||
2016-08-19 Carl Love <cel@us.ibm.com>
|
||||
|
||||
* gdb.arch/altivec-regs.exp: Use standard_testfile instead of
|
||||
maintaining separate logic for constructing the output path.
|
||||
* gdb.arch/powerpc-d128-regs.exp: Likewise.
|
||||
* gdb.arch/ppc-dfp.exp: Likewise.
|
||||
* gdb.arch/ppc-fp.exp: Likewise.
|
||||
* gdb.arch/vsx-regs.exp: Likewise.
|
||||
* gdb.arch/altivec-abi.exp: Likewise, plus added local variable
|
||||
binprefix for generating the additional binary files.
|
||||
|
||||
### a/gdb/testsuite/ChangeLog
|
||||
### b/gdb/testsuite/ChangeLog
|
||||
## -1,3 +1,14 @@
|
||||
+2016-08-19 Carl Love <cel@us.ibm.com>
|
||||
+
|
||||
+ * gdb.arch/altivec-regs.exp: Use standard_testfile instead of
|
||||
+ maintaining separate logic for constructing the output path.
|
||||
+ * gdb.arch/powerpc-d128-regs.exp: Likewise.
|
||||
+ * gdb.arch/ppc-dfp.exp: Likewise.
|
||||
+ * gdb.arch/ppc-fp.exp: Likewise.
|
||||
+ * gdb.arch/vsx-regs.exp: Likewise.
|
||||
+ * gdb.arch/altivec-abi.exp: Likewise, plus added local variable
|
||||
+ binprefix for generating the additional binary files.
|
||||
+
|
||||
2016-08-19 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* gdb.trace/mi-trace-frame-collected.exp
|
||||
--- a/gdb/testsuite/gdb.arch/altivec-abi.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/altivec-abi.exp
|
||||
@@ -26,9 +26,7 @@ if {![istarget "powerpc*"] || [skip_altivec_tests]} then {
|
||||
return
|
||||
}
|
||||
|
||||
-set testfile "altivec-abi"
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
-set srcfile ${testfile}.c
|
||||
+standard_testfile
|
||||
|
||||
if [get_compiler_info] {
|
||||
warning "get_compiler failed"
|
||||
@@ -146,6 +144,8 @@ proc altivec_abi_tests { extra_flags force_abi } {
|
||||
}
|
||||
|
||||
if [test_compiler_info gcc*] {
|
||||
+ set binprefix ${binfile}
|
||||
+
|
||||
with_test_prefix "default ABI, auto" {
|
||||
altivec_abi_tests "additional_flags=-maltivec" "auto"
|
||||
}
|
||||
@@ -156,23 +156,23 @@ if [test_compiler_info gcc*] {
|
||||
# On 64-bit GNU/Linux with GCC 4.1 and 4.2, -mabi=no-altivec
|
||||
# was broken, so skip those tests there.
|
||||
if { ![is_lp64_target] || ![test_compiler_info "gcc-4-\[12\]-*"] } {
|
||||
- set binfile ${objdir}/${subdir}/${testfile}-ge-ge
|
||||
+ set binfile ${binprefix}-ge-ge
|
||||
with_test_prefix "generic ABI, forced" {
|
||||
altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=no-altivec" "generic"
|
||||
}
|
||||
|
||||
- set binfile ${objdir}/${subdir}/${testfile}-ge-auto
|
||||
+ set binfile ${binprefix}-ge-auto
|
||||
with_test_prefix "generic ABI, auto" {
|
||||
altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=no-altivec" "auto"
|
||||
}
|
||||
}
|
||||
|
||||
- set binfile ${objdir}/${subdir}/${testfile}-av-av
|
||||
+ set binfile ${binprefix}-av-av
|
||||
with_test_prefix "AltiVec ABI, forced" {
|
||||
altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=altivec" "altivec"
|
||||
}
|
||||
|
||||
- set binfile ${objdir}/${subdir}/${testfile}-av-auto
|
||||
+ set binfile ${binprefix}-av-auto
|
||||
with_test_prefix "AltiVec ABI, auto" {
|
||||
altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=altivec" "auto"
|
||||
}
|
||||
--- a/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
@@ -27,9 +27,7 @@ if {![istarget "powerpc*"] || [skip_altivec_tests]} then {
|
||||
return
|
||||
}
|
||||
|
||||
-set testfile "altivec-regs"
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
-set srcfile ${testfile}.c
|
||||
+standard_testfile
|
||||
|
||||
set compile_flags {debug nowarnings}
|
||||
if [get_compiler_info] {
|
||||
--- a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
@@ -25,9 +25,7 @@ if ![istarget "powerpc64*-*"] then {
|
||||
return
|
||||
}
|
||||
|
||||
-set testfile "powerpc-d128-regs"
|
||||
-set srcfile ${testfile}.c
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
+standard_testfile
|
||||
|
||||
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {quiet debug}] != "" } {
|
||||
untested powerpc-d128-regs.exp
|
||||
--- a/gdb/testsuite/gdb.arch/ppc-dfp.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/ppc-dfp.exp
|
||||
@@ -21,9 +21,7 @@ if ![istarget "powerpc*"] then {
|
||||
return
|
||||
}
|
||||
|
||||
-set testfile "ppc-dfp"
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
-set srcfile ${testfile}.c
|
||||
+standard_testfile
|
||||
|
||||
if [get_compiler_info] {
|
||||
warning "get_compiler failed"
|
||||
--- a/gdb/testsuite/gdb.arch/ppc-fp.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/ppc-fp.exp
|
||||
@@ -21,9 +21,7 @@ if ![istarget "powerpc*"] then {
|
||||
return
|
||||
}
|
||||
|
||||
-set testfile "ppc-fp"
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
-set srcfile ${testfile}.c
|
||||
+standard_testfile
|
||||
|
||||
if [get_compiler_info] {
|
||||
warning "get_compiler failed"
|
||||
--- a/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
@@ -24,9 +24,7 @@ if {![istarget "powerpc*"] || [skip_vsx_tests]} then {
|
||||
return
|
||||
}
|
||||
|
||||
-set testfile "vsx-regs"
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
-set srcfile ${testfile}.c
|
||||
+standard_testfile
|
||||
|
||||
set compile_flags {debug nowarnings quiet}
|
||||
if [get_compiler_info] {
|
||||
|
||||
|
||||
http://sourceware.org/ml/gdb-patches/2016-10/msg00258.html
|
||||
Subject: [testsuite obv] Use standard_output_file
|
||||
|
||||
From: Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Date: Tue, 11 Oct 2016 16:43:58 +0200
|
||||
Subject: [PATCH] testsuite: Use standard_output_file
|
||||
Subject: [PATCH] testsuite: Use standard_output_file
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.arch/powerpc-prologue.exp: Use standard_output_file.
|
||||
* gdb.arch/ppc64-symtab-cordic.exp: Likewise.
|
||||
* gdb.arch/vsx-regs.exp: Likewise.
|
||||
---
|
||||
gdb/testsuite/ChangeLog | 6 ++++++
|
||||
gdb/testsuite/gdb.arch/powerpc-prologue.exp | 2 +-
|
||||
gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp | 4 ++--
|
||||
gdb/testsuite/gdb.arch/vsx-regs.exp | 2 +-
|
||||
4 files changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
|
||||
index 9c7df29..b6ba0ec 100644
|
||||
### a/gdb/testsuite/ChangeLog
|
||||
### b/gdb/testsuite/ChangeLog
|
||||
## -1,3 +1,9 @@
|
||||
+2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
+
|
||||
+ * gdb.arch/powerpc-prologue.exp: Use standard_output_file
|
||||
+ * gdb.arch/ppc64-symtab-cordic.exp: Likewise.
|
||||
+ * gdb.arch/vsx-regs.exp: Likewise.
|
||||
+
|
||||
2016-10-07 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* gdb.xml/tdesc-regs.exp: Set regdir to "arm/".
|
||||
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
|
||||
index 341ae02..0c74d7e 100644
|
||||
--- a/gdb/testsuite/gdb.arch/powerpc-prologue.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
|
||||
@@ -24,7 +24,7 @@ if {[istarget *-*-aix*] || ![istarget "powerpc-*-*"]} then {
|
||||
|
||||
set testfile "powerpc-prologue"
|
||||
set srcfile ${testfile}.c
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
|
||||
# Don't use "debug", so that we don't have line information for the assembly
|
||||
# fragments.
|
||||
diff --git a/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp b/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
|
||||
index c8cb429..3fdc490 100644
|
||||
--- a/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
|
||||
@@ -21,9 +21,9 @@ if {![istarget "powerpc*"] || ![is_lp64_target]} {
|
||||
standard_testfile
|
||||
|
||||
set kobz2file ${srcdir}/${subdir}/cordic.ko.bz2
|
||||
-set kofile ${objdir}/${subdir}/cordic.ko
|
||||
+set kofile [standard_output_file cordic.ko]
|
||||
set kodebugbz2file ${srcdir}/${subdir}/cordic.ko.debug.bz2
|
||||
-set kodebugfile ${objdir}/${subdir}/cordic.ko.debug
|
||||
+set kodebugfile [standard_output_file cordic.ko.debug]
|
||||
|
||||
if {[catch "system \"bzip2 -dc ${kobz2file} >${kofile}\""] != 0} {
|
||||
untested "failed bzip2 for ${kobz2file}"
|
||||
diff --git a/gdb/testsuite/gdb.arch/vsx-regs.exp b/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
index 307f12a..31e58e6 100644
|
||||
--- a/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
@@ -152,7 +152,7 @@ for {set i 0} {$i < 32} {incr i 1} {
|
||||
# later when loading the core file (i.e., different register values for different
|
||||
# vector register banks).
|
||||
|
||||
-set corefile "${objdir}/${subdir}/vsx-core.test"
|
||||
+set corefile [standard_output_file vsx-core.test]
|
||||
set core_supported [gdb_gcore_cmd "$corefile" "Save a VSX-enabled corefile"]
|
||||
|
||||
# Now run the F32~F63/VR0~VR31 tests.
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
||||
http://sourceware.org/ml/gdb-patches/2016-10/msg00268.html
|
||||
Subject: [testsuite obv] Fix gdb.arch/powerpc-prologue.c compilation
|
||||
|
||||
From: Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Date: Tue, 11 Oct 2016 19:09:05 +0200
|
||||
Subject: [PATCH] testsuite: Fix gdb.arch/powerpc-prologue.c compilation
|
||||
Subject: [PATCH] testsuite: Fix gdb.arch/powerpc-prologue.c compilation
|
||||
|
||||
gcc-6.2.1
|
||||
|
||||
gdb compile failed, gdb/testsuite/gdb.arch/powerpc-prologue.c: In function 'main':
|
||||
gdb/testsuite/gdb.arch/powerpc-prologue.c:32:3: warning: implicit declaration of function 'optimized_1' [-Wimplicit-function-declaration]
|
||||
optimized_1 ();
|
||||
^~~~~~~~~~~
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.arch/powerpc-prologue.c (optimized_1): New declaration.
|
||||
---
|
||||
gdb/testsuite/ChangeLog | 4 ++++
|
||||
gdb/testsuite/gdb.arch/powerpc-prologue.c | 1 +
|
||||
2 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
|
||||
index b6ba0ec..b4ccd4a 100644
|
||||
### a/gdb/testsuite/ChangeLog
|
||||
### b/gdb/testsuite/ChangeLog
|
||||
## -1,5 +1,9 @@
|
||||
2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
+ * gdb.arch/powerpc-prologue.c (optimized_1): New declaration.
|
||||
+
|
||||
+2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
+
|
||||
* gdb.arch/powerpc-prologue.exp: Use standard_output_file
|
||||
* gdb.arch/ppc64-symtab-cordic.exp: Likewise.
|
||||
* gdb.arch/vsx-regs.exp: Likewise.
|
||||
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue.c b/gdb/testsuite/gdb.arch/powerpc-prologue.c
|
||||
index 6c10dfc..a1b8065 100644
|
||||
--- a/gdb/testsuite/gdb.arch/powerpc-prologue.c
|
||||
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#endif
|
||||
|
||||
void gdb2029 (void);
|
||||
+void optimized_1 (void);
|
||||
|
||||
int
|
||||
main (void)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
||||
|
||||
http://sourceware.org/ml/gdb-patches/2016-10/msg00613.html
|
||||
Subject: [testsuite patch] Fix gcc_compiled for gcc 6 & 7
|
||||
|
||||
|
||||
--IS0zKkzwUGydFO0o
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
OK for check-in?
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--IS0zKkzwUGydFO0o
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
gdb/testsuite/ChangeLog
|
||||
2016-10-20 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* lib/gdb.exp (get_compiler_info): Generalize gcc_compile regexp.
|
||||
|
||||
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
|
||||
index 378eea0..7d9b198 100644
|
||||
--- a/gdb/testsuite/lib/gdb.exp
|
||||
+++ b/gdb/testsuite/lib/gdb.exp
|
||||
@@ -3290,12 +3290,8 @@ proc get_compiler_info {{arg ""}} {
|
||||
}
|
||||
|
||||
# Set the legacy symbols.
|
||||
- set gcc_compiled 0
|
||||
- if { [regexp "^gcc-1-" "$compiler_info" ] } { set gcc_compiled 1 }
|
||||
- if { [regexp "^gcc-2-" "$compiler_info" ] } { set gcc_compiled 2 }
|
||||
- if { [regexp "^gcc-3-" "$compiler_info" ] } { set gcc_compiled 3 }
|
||||
- if { [regexp "^gcc-4-" "$compiler_info" ] } { set gcc_compiled 4 }
|
||||
- if { [regexp "^gcc-5-" "$compiler_info" ] } { set gcc_compiled 5 }
|
||||
+ set gcc_compiled 0
|
||||
+ regexp "^gcc-(\[0-9\]+)-" "$compiler_info" matchall gcc_compiled
|
||||
|
||||
# Log what happened.
|
||||
verbose -log "get_compiler_info: $compiler_info"
|
||||
|
||||
--IS0zKkzwUGydFO0o--
|
||||
|
||||
|
||||
|
||||
commit 1b7e3d2fb7036ce6f9d74e32dc052518f5cd45b6
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Fri Feb 3 09:04:21 2017 +0000
|
||||
|
||||
Fix compile time warning messages when compiling binutils with gcc 7.0.1.
|
||||
|
||||
PR 21096
|
||||
bfd * coffcode.h (coff_write_object_contents): Enlarge size of
|
||||
s_name_buf in order to avoid compile time warning about possible
|
||||
integer truncation.
|
||||
* elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
|
||||
32-bits of insn value before printing into buffer.
|
||||
|
||||
opcodes * aarch64-opc.c (print_register_list): Ensure that the register
|
||||
list index will fir into the tb buffer.
|
||||
(print_register_offset_address): Likewise.
|
||||
* tic6x-dis.c (print_insn_tic6x): Increase size of func_unit_buf.
|
||||
|
||||
### a/bfd/ChangeLog
|
||||
### b/bfd/ChangeLog
|
||||
## -1,3 +1,12 @@
|
||||
+2017-02-03 Nick Clifton <nickc@redhat.com>
|
||||
+
|
||||
+ PR 21096
|
||||
+ * coffcode.h (coff_write_object_contents): Enlarge size of
|
||||
+ s_name_buf in order to avoid compile time warning about possible
|
||||
+ integer truncation.
|
||||
+ * elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
|
||||
+ 32-bits of insn value before printing into buffer.
|
||||
+
|
||||
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* elfxx-mips.c (mips_elf_hash_sort_data): Add
|
||||
--- a/bfd/coffcode.h
|
||||
+++ b/bfd/coffcode.h
|
||||
@@ -3755,7 +3755,9 @@ coff_write_object_contents (bfd * abfd)
|
||||
NUL-terminated. We use a temporary buffer so that we can still
|
||||
sprintf all eight chars without splatting a terminating NUL
|
||||
over the first byte of the following member (s_paddr). */
|
||||
- char s_name_buf[SCNNMLEN + 1];
|
||||
+ /* PR 21096: The +20 is to stop a bogus warning from gcc7 about
|
||||
+ a possible buffer overflow. */
|
||||
+ char s_name_buf[SCNNMLEN + 1 + 20];
|
||||
|
||||
/* An inherent limitation of the /nnnnnnn notation used to indicate
|
||||
the offset of the long name in the string table is that we
|
||||
@@ -3770,9 +3772,10 @@ coff_write_object_contents (bfd * abfd)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- /* snprintf not strictly necessary now we've verified the value
|
||||
- has less than eight ASCII digits, but never mind. */
|
||||
- snprintf (s_name_buf, SCNNMLEN + 1, "/%lu", (unsigned long) string_size);
|
||||
+ /* We do not need to use snprintf here as we have already verfied
|
||||
+ that string_size is not too big, plus we have an overlarge
|
||||
+ buffer, just in case. */
|
||||
+ sprintf (s_name_buf, "/%lu", (unsigned long) string_size);
|
||||
/* Then strncpy takes care of any padding for us. */
|
||||
strncpy (section.s_name, s_name_buf, SCNNMLEN);
|
||||
string_size += len + 1;
|
||||
--- a/bfd/elf32-nds32.c
|
||||
+++ b/bfd/elf32-nds32.c
|
||||
@@ -14949,7 +14949,6 @@ nds32_elf_ex9_import_table (struct bfd_link_info *info)
|
||||
{
|
||||
int num = 0;
|
||||
bfd_byte *contents;
|
||||
- unsigned long insn;
|
||||
FILE *ex9_import_file;
|
||||
int update_ex9_table;
|
||||
struct elf_nds32_link_hash_table *table;
|
||||
@@ -14963,6 +14962,7 @@ nds32_elf_ex9_import_table (struct bfd_link_info *info)
|
||||
/* Read instructions from the input file and build the list. */
|
||||
while (!feof (ex9_import_file))
|
||||
{
|
||||
+ unsigned long insn;
|
||||
char *code;
|
||||
struct elf_nds32_insn_times_entry *ptr;
|
||||
size_t nread;
|
||||
@@ -14973,7 +14973,7 @@ nds32_elf_ex9_import_table (struct bfd_link_info *info)
|
||||
break;
|
||||
insn = bfd_getb32 (contents);
|
||||
code = bfd_malloc (sizeof (char) * 9);
|
||||
- snprintf (code, 9, "%08lx", insn);
|
||||
+ snprintf (code, 9, "%08lx", (insn & 0xffffffff));
|
||||
ptr = bfd_malloc (sizeof (struct elf_nds32_insn_times_entry));
|
||||
ptr->string = code;
|
||||
ptr->order = num;
|
||||
### a/opcodes/ChangeLog
|
||||
### b/opcodes/ChangeLog
|
||||
## -1,3 +1,11 @@
|
||||
+2017-02-03 Nick Clifton <nickc@redhat.com>
|
||||
+
|
||||
+ PR 21096
|
||||
+ * aarch64-opc.c (print_register_list): Ensure that the register
|
||||
+ list index will fir into the tb buffer.
|
||||
+ (print_register_offset_address): Likewise.
|
||||
+ * tic6x-dis.c (print_insn_tic6x): Increase size of func_unit_buf.
|
||||
+
|
||||
2017-01-27 Alexis Deruell <alexis.deruelle@gmail.com>
|
||||
|
||||
PR 21056
|
||||
--- a/opcodes/aarch64-opc.c
|
||||
+++ b/opcodes/aarch64-opc.c
|
||||
@@ -2865,7 +2865,8 @@ print_register_list (char *buf, size_t size, const aarch64_opnd_info *opnd,
|
||||
|
||||
/* Prepare the index if any. */
|
||||
if (opnd->reglist.has_index)
|
||||
- snprintf (tb, 8, "[%" PRIi64 "]", opnd->reglist.index);
|
||||
+ /* PR 21096: The %100 is to silence a warning about possible truncation. */
|
||||
+ snprintf (tb, 8, "[%" PRIi64 "]", (opnd->reglist.index % 100));
|
||||
else
|
||||
tb[0] = '\0';
|
||||
|
||||
@@ -2344,7 +2344,9 @@ print_register_offset_address (char *buf
|
||||
if (print_extend_p)
|
||||
{
|
||||
if (print_amount_p)
|
||||
- snprintf (tb, sizeof (tb), ",%s #%d", shift_name, opnd->shifter.amount);
|
||||
+ snprintf (tb, sizeof (tb), ",%s #%d", shift_name,
|
||||
+ /* PR 21096: The %100 is to silence a warning about possible truncation. */
|
||||
+ (opnd->shifter.amount % 100));
|
||||
else
|
||||
snprintf (tb, sizeof (tb), ",%s", shift_name);
|
||||
}
|
||||
--- a/opcodes/tic6x-dis.c
|
||||
+++ b/opcodes/tic6x-dis.c
|
||||
@@ -316,7 +316,7 @@ print_insn_tic6x (bfd_vma addr, struct disassemble_info *info)
|
||||
const char *parallel;
|
||||
const char *cond = "";
|
||||
const char *func_unit;
|
||||
- char func_unit_buf[7];
|
||||
+ char func_unit_buf[8];
|
||||
unsigned int func_unit_side = 0;
|
||||
unsigned int func_unit_data_side = 0;
|
||||
unsigned int func_unit_cross = 0;
|
||||
@@ -703,8 +703,9 @@ print_insn_tic6x (bfd_vma addr, struct disassemble_info *info)
|
||||
if (opc->flags & TIC6X_FLAG_INSN16_BSIDE && func_unit_side == 1)
|
||||
func_unit_cross = 1;
|
||||
|
||||
- snprintf (func_unit_buf, 7, " .%c%u%s%s", func_unit_char,
|
||||
- func_unit_side, (func_unit_cross ? "X" : ""), data_str);
|
||||
+ snprintf (func_unit_buf, sizeof func_unit_buf, " .%c%u%s%s",
|
||||
+ func_unit_char, func_unit_side,
|
||||
+ (func_unit_cross ? "X" : ""), data_str);
|
||||
func_unit = func_unit_buf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
commit db7b55faa1a11e632ddf57505c9bb64bc783471a
|
||||
Author: Nick Clifton <nickc@redhat.com>
|
||||
Date: Fri Dec 16 10:59:36 2016 +0000
|
||||
|
||||
Fix compile time warning building arm-dis.c
|
||||
|
||||
### a/opcodes/ChangeLog
|
||||
### b/opcodes/ChangeLog
|
||||
## -1,3 +1,8 @@
|
||||
+2016-12-16 Nick Clifton <nickc@redhat.com>
|
||||
+
|
||||
+ * arm-dis.c (print_insn_thumb32): Fix compile time warning
|
||||
+ computing value_in_comment.
|
||||
+
|
||||
2016-12-14 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* mips-dis.c (mips_convert_abiflags_ases): New function.
|
||||
--- a/opcodes/arm-dis.c
|
||||
+++ b/opcodes/arm-dis.c
|
||||
@@ -5759,7 +5759,7 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
|
||||
if (off || !U)
|
||||
{
|
||||
func (stream, ", #%c%u", U ? '+' : '-', off * 4);
|
||||
- value_in_comment = off * 4 * U ? 1 : -1;
|
||||
+ value_in_comment = (off && U) ? 1 : -1;
|
||||
}
|
||||
func (stream, "]");
|
||||
if (W)
|
||||
@@ -5771,7 +5771,7 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
|
||||
if (W)
|
||||
{
|
||||
func (stream, "#%c%u", U ? '+' : '-', off * 4);
|
||||
- value_in_comment = off * 4 * U ? 1 : -1;
|
||||
+ value_in_comment = (off && U) ? 1 : -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
|
||||
commit 97e64e5ab19dbf6a9babd711e8deec5545520954
|
||||
Author: Yao Qi <yao.qi@linaro.org>
|
||||
Date: Fri Sep 23 17:27:26 2016 +0100
|
||||
|
||||
Replace sprintf with xsnprintf in nat/linux-osdata.c
|
||||
|
||||
I see the following build warning when I build GDB with GCC trunk.
|
||||
|
||||
../../binutils-gdb/gdb/nat/linux-osdata.c: In function ‘LONGEST linux_xfer_osdata_fds(gdb_byte*, ULONGEST, ULONGEST)’:
|
||||
../../binutils-gdb/gdb/nat/linux-osdata.c:767:1: error: ‘%s’ directive writing between 0 and 255 bytes into a region of size 11 [-Werror=format-length=]
|
||||
linux_xfer_osdata_fds (gdb_byte *readbuf,
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
../../binutils-gdb/gdb/nat/linux-osdata.c:800:51: note: format output between 7 and 262 bytes into a destination of size 17
|
||||
sprintf (procentry, "/proc/%s", dp->d_name);
|
||||
^
|
||||
../../binutils-gdb/gdb/nat/linux-osdata.c: In function ‘LONGEST linux_xfer_osdata_threads(gdb_byte*, ULONGEST, ULONGEST)’:
|
||||
../../binutils-gdb/gdb/nat/linux-osdata.c:555:1: error: ‘%s’ directive writing between 0 and 255 bytes into a region of size 11 [-Werror=format-length=]
|
||||
linux_xfer_osdata_threads (gdb_byte *readbuf,
|
||||
^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
../../binutils-gdb/gdb/nat/linux-osdata.c:588:51: note: format output between 7 and 262 bytes into a destination of size 17
|
||||
sprintf (procentry, "/proc/%s", dp->d_name);
|
||||
^
|
||||
cc1plus: all warnings being treated as errors
|
||||
|
||||
The warning is a false positive, but we can workaround it by replacing
|
||||
sprintf with xsnprintf. On the other hand, it is always preferred to
|
||||
use xsnprintf.
|
||||
|
||||
gdb:
|
||||
|
||||
2016-09-23 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* nat/linux-osdata.c (linux_xfer_osdata_threads): Replace
|
||||
sprintf with xsnprintf.
|
||||
(linux_xfer_osdata_fds): Likewise.
|
||||
|
||||
### a/gdb/ChangeLog
|
||||
### b/gdb/ChangeLog
|
||||
## -1,3 +1,9 @@
|
||||
+2016-09-23 Yao Qi <yao.qi@linaro.org>
|
||||
+
|
||||
+ * nat/linux-osdata.c (linux_xfer_osdata_threads): Replace
|
||||
+ sprintf with xsnprintf.
|
||||
+ (linux_xfer_osdata_fds): Likewise.
|
||||
+
|
||||
2016-09-23 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* Makefile.in (SFILES): Add common/new-op.c.
|
||||
--- a/gdb/nat/linux-osdata.c
|
||||
+++ b/gdb/nat/linux-osdata.c
|
||||
@@ -585,7 +585,8 @@ linux_xfer_osdata_threads (gdb_byte *readbuf,
|
||||
|| NAMELEN (dp) > sizeof ("4294967295") - 1)
|
||||
continue;
|
||||
|
||||
- sprintf (procentry, "/proc/%s", dp->d_name);
|
||||
+ xsnprintf (procentry, sizeof (procentry), "/proc/%s",
|
||||
+ dp->d_name);
|
||||
if (stat (procentry, &statbuf) == 0
|
||||
&& S_ISDIR (statbuf.st_mode))
|
||||
{
|
||||
@@ -797,7 +798,8 @@ linux_xfer_osdata_fds (gdb_byte *readbuf,
|
||||
|| NAMELEN (dp) > sizeof ("4294967295") - 1)
|
||||
continue;
|
||||
|
||||
- sprintf (procentry, "/proc/%s", dp->d_name);
|
||||
+ xsnprintf (procentry, sizeof (procentry), "/proc/%s",
|
||||
+ dp->d_name);
|
||||
if (stat (procentry, &statbuf) == 0
|
||||
&& S_ISDIR (statbuf.st_mode))
|
||||
{
|
1977
gdb-vla-intel-fortran-strides.patch
Normal file
1977
gdb-vla-intel-fortran-strides.patch
Normal file
File diff suppressed because it is too large
Load Diff
1488
gdb-vla-intel-fortran-vla-strings.patch
Normal file
1488
gdb-vla-intel-fortran-vla-strings.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -27,30 +27,36 @@ cannot reproduce it.
|
||||
Thanks,
|
||||
Jan
|
||||
|
||||
--FCuugMFkClbJLl1L
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename="vlastringonly.patch"
|
||||
--- ./gdb/dwarf2loc.c 2016-08-29 04:01:25.000000000 +0200
|
||||
+++ ./gdb/dwarf2loc.c 2016-09-01 11:00:20.258909494 +0200
|
||||
@@ -2289,6 +2289,15 @@ const struct dwarf_expr_context_funcs dw
|
||||
dwarf_expr_get_obj_addr
|
||||
};
|
||||
|
||||
Index: gdb-7.9.50.20150520/gdb/gdbtypes.c
|
||||
===================================================================
|
||||
--- gdb-7.9.50.20150520.orig/gdb/gdbtypes.c 2015-05-31 16:14:04.164533833 +0200
|
||||
+++ gdb-7.9.50.20150520/gdb/gdbtypes.c 2015-05-31 16:14:05.844545344 +0200
|
||||
@@ -1851,6 +1851,7 @@ is_dynamic_type_internal (struct type *t
|
||||
}
|
||||
+static void
|
||||
+select_frame_cleanup (void *arg)
|
||||
+{
|
||||
+ struct frame_info *frame = (struct frame_info *) arg;
|
||||
+
|
||||
+ if (frame != NULL)
|
||||
+ select_frame (frame);
|
||||
+}
|
||||
+
|
||||
/* Evaluate a location description, starting at DATA and with length
|
||||
SIZE, to find the current location of variable of TYPE in the
|
||||
context of FRAME. BYTE_OFFSET is applied after the contents are
|
||||
@@ -2318,6 +2327,11 @@ dwarf2_evaluate_loc_desc_full (struct ty
|
||||
|
||||
case TYPE_CODE_ARRAY:
|
||||
+ case TYPE_CODE_STRING:
|
||||
{
|
||||
gdb_assert (TYPE_NFIELDS (type) == 1);
|
||||
|
||||
@@ -2192,6 +2193,7 @@ resolve_dynamic_type_internal (struct ty
|
||||
}
|
||||
|
||||
case TYPE_CODE_ARRAY:
|
||||
+ case TYPE_CODE_STRING:
|
||||
resolved_type = resolve_dynamic_array (type, addr_stack);
|
||||
break;
|
||||
ctx = new_dwarf_expr_context ();
|
||||
old_chain = make_cleanup_free_dwarf_expr_context (ctx);
|
||||
+
|
||||
+ make_cleanup (select_frame_cleanup, deprecated_safe_get_selected_frame ());
|
||||
+ if (frame != NULL)
|
||||
+ select_frame (frame);
|
||||
+
|
||||
value_chain = make_cleanup_value_free_to_mark (value_mark ());
|
||||
|
||||
ctx->gdbarch = get_objfile_arch (objfile);
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
|
293
gdb-vla-intel-tests.patch
Normal file
293
gdb-vla-intel-tests.patch
Normal file
@ -0,0 +1,293 @@
|
||||
Index: gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-func.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-func.exp 2016-01-08 19:15:44.983637680 +0100
|
||||
@@ -0,0 +1,61 @@
|
||||
+# Copyright 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+standard_testfile ".f90"
|
||||
+
|
||||
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
||||
+ {debug f90 quiet}] } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+if ![runto MAIN__] then {
|
||||
+ perror "couldn't run to breakpoint MAIN__"
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+# Check VLA passed to first Fortran function.
|
||||
+gdb_breakpoint [gdb_get_line_number "func1-vla-passed"]
|
||||
+gdb_continue_to_breakpoint "func1-vla-passed"
|
||||
+gdb_test "print vla" " = \\( *\\( *22, *22, *22,\[()22, .\]*\\)" \
|
||||
+ "print vla (func1)"
|
||||
+gdb_test "ptype vla" "type = integer\\\(kind=4\\\) \\\(10,10\\\)" \
|
||||
+ "ptype vla (func1)"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "func1-vla-modified"]
|
||||
+gdb_continue_to_breakpoint "func1-vla-modified"
|
||||
+gdb_test "print vla(5,5)" " = 55" "print vla(5,5) (func1)"
|
||||
+gdb_test "print vla(7,7)" " = 77" "print vla(5,5) (func1)"
|
||||
+
|
||||
+# Check if the values are correct after returning from func1
|
||||
+gdb_breakpoint [gdb_get_line_number "func1-returned"]
|
||||
+gdb_continue_to_breakpoint "func1-returned"
|
||||
+gdb_test "print ret" " = .TRUE." "print ret after func1 returned"
|
||||
+
|
||||
+# Check VLA passed to second Fortran function
|
||||
+gdb_breakpoint [gdb_get_line_number "func2-vla-passed"]
|
||||
+gdb_continue_to_breakpoint "func2-vla-passed"
|
||||
+gdb_test "print vla" \
|
||||
+ " = \\\(44, 44, 44, 44, 44, 44, 44, 44, 44, 44\\\)" \
|
||||
+ "print vla (func2)"
|
||||
+gdb_test "ptype vla" "type = integer\\\(kind=4\\\) \\\(10\\\)" \
|
||||
+ "ptype vla (func2)"
|
||||
+
|
||||
+# Check if the returned VLA has the correct values and ptype.
|
||||
+gdb_breakpoint [gdb_get_line_number "func2-returned"]
|
||||
+gdb_continue_to_breakpoint "func2-returned"
|
||||
+gdb_test "print vla3" " = \\\(1, 2, 44, 4, 44, 44, 44, 8, 44, 44\\\)" \
|
||||
+ "print vla3 (after func2)"
|
||||
+gdb_test "ptype vla3" "type = integer\\\(kind=4\\\) \\\(10\\\)" \
|
||||
+ "ptype vla3 (after func2)"
|
||||
Index: gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-func.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-func.f90 2016-01-08 19:15:44.983637680 +0100
|
||||
@@ -0,0 +1,71 @@
|
||||
+! Copyright 2014 Free Software Foundation, Inc.
|
||||
+!
|
||||
+! This program is free software; you can redistribute it and/or modify
|
||||
+! it under the terms of the GNU General Public License as published by
|
||||
+! the Free Software Foundation; either version 2 of the License, or
|
||||
+! (at your option) any later version.
|
||||
+!
|
||||
+! This program is distributed in the hope that it will be useful,
|
||||
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+! GNU General Public License for more details.
|
||||
+!
|
||||
+! You should have received a copy of the GNU General Public License
|
||||
+! along with this program; if not, write to the Free Software
|
||||
+! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+
|
||||
+logical function func1 (vla)
|
||||
+ implicit none
|
||||
+ integer, allocatable :: vla (:, :)
|
||||
+ func1 = allocated(vla)
|
||||
+ vla(5,5) = 55 ! func1-vla-passed
|
||||
+ vla(7,7) = 77
|
||||
+ return ! func1-vla-modified
|
||||
+end function func1
|
||||
+
|
||||
+function func2(vla)
|
||||
+ implicit none
|
||||
+ integer :: vla (:)
|
||||
+ integer :: func2(size(vla))
|
||||
+ integer :: k
|
||||
+
|
||||
+ vla(1) = 1 ! func2-vla-passed
|
||||
+ vla(2) = 2
|
||||
+ vla(4) = 4
|
||||
+ vla(8) = 8
|
||||
+
|
||||
+ func2 = vla
|
||||
+end function func2
|
||||
+
|
||||
+program vla_func
|
||||
+ implicit none
|
||||
+ interface
|
||||
+ logical function func1 (vla)
|
||||
+ integer, allocatable :: vla (:, :)
|
||||
+ end function
|
||||
+ end interface
|
||||
+ interface
|
||||
+ function func2 (vla)
|
||||
+ integer :: vla (:)
|
||||
+ integer func2(size(vla))
|
||||
+ end function
|
||||
+ end interface
|
||||
+
|
||||
+ logical :: ret
|
||||
+ integer, allocatable :: vla1 (:, :)
|
||||
+ integer, allocatable :: vla2 (:)
|
||||
+ integer, allocatable :: vla3 (:)
|
||||
+
|
||||
+ ret = .FALSE.
|
||||
+
|
||||
+ allocate (vla1 (10,10))
|
||||
+ vla1(:,:) = 22
|
||||
+
|
||||
+ allocate (vla2 (10))
|
||||
+ vla2(:) = 44
|
||||
+
|
||||
+ ret = func1(vla1)
|
||||
+ vla3 = func2(vla2) ! func1-returned
|
||||
+
|
||||
+ ret = .TRUE. ! func2-returned
|
||||
+end program vla_func
|
||||
Index: gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-stringsold.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-stringsold.exp 2016-01-08 19:15:44.984637686 +0100
|
||||
@@ -0,0 +1,101 @@
|
||||
+# Copyright 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+standard_testfile ".f90"
|
||||
+
|
||||
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
||||
+ {debug f90 quiet}] } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+# check that all fortran standard datatypes will be
|
||||
+# handled correctly when using as VLA's
|
||||
+
|
||||
+if ![runto MAIN__] then {
|
||||
+ perror "couldn't run to breakpoint MAIN__"
|
||||
+ continue
|
||||
+}
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "var_char-allocated-1"]
|
||||
+gdb_continue_to_breakpoint "var_char-allocated-1"
|
||||
+gdb_test "print var_char" \
|
||||
+ " = \\(PTR TO -> \\( character\\*10 \\)\\) ${hex}" \
|
||||
+ "print var_char after allocated first time"
|
||||
+gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*10 \\)" \
|
||||
+ "whatis var_char first time"
|
||||
+gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*10 \\)" \
|
||||
+ "ptype var_char first time"
|
||||
+gdb_test "next" "\\d+.*var_char = 'foo'.*" \
|
||||
+ "next to allocation status of var_char"
|
||||
+gdb_test "print l" " = .TRUE." "print allocation status first time"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "var_char-filled-1"]
|
||||
+gdb_continue_to_breakpoint "var_char-filled-1"
|
||||
+gdb_test "print var_char" \
|
||||
+ " = \\(PTR TO -> \\( character\\*3 \\)\\) ${hex}" \
|
||||
+ "print var_char after filled first time"
|
||||
+gdb_test "print *var_char" " = 'foo'" \
|
||||
+ "print *var_char after filled first time"
|
||||
+gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*3 \\)" \
|
||||
+ "whatis var_char after filled first time"
|
||||
+gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*3 \\)" \
|
||||
+ "ptype var_char after filled first time"
|
||||
+gdb_test "print var_char(1)" " = 102 'f'" "print var_char(1)"
|
||||
+gdb_test "print var_char(3)" " = 111 'o'" "print var_char(3)"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "var_char-filled-2"]
|
||||
+gdb_continue_to_breakpoint "var_char-filled-2"
|
||||
+gdb_test "print var_char" \
|
||||
+ " = \\(PTR TO -> \\( character\\*6 \\)\\) ${hex}" \
|
||||
+ "print var_char after allocated second time"
|
||||
+gdb_test "print *var_char" " = 'foobar'" \
|
||||
+ "print *var_char after allocated second time"
|
||||
+gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*6 \\)" \
|
||||
+ "whatis var_char second time"
|
||||
+gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*6 \\)" \
|
||||
+ "ptype var_char second time"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "var_char-empty"]
|
||||
+gdb_continue_to_breakpoint "var_char-empty"
|
||||
+gdb_test "print var_char" \
|
||||
+ " = \\(PTR TO -> \\( character\\*0 \\)\\) ${hex}" \
|
||||
+ "print var_char after set empty"
|
||||
+gdb_test "print *var_char" " = \"\"" "print *var_char after set empty"
|
||||
+gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*0 \\)" \
|
||||
+ "whatis var_char after set empty"
|
||||
+gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*0 \\)" \
|
||||
+ "ptype var_char after set empty"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "var_char-allocated-3"]
|
||||
+gdb_continue_to_breakpoint "var_char-allocated-3"
|
||||
+gdb_test "print var_char" \
|
||||
+ " = \\(PTR TO -> \\( character\\*21 \\)\\) ${hex}" \
|
||||
+ "print var_char after allocated third time"
|
||||
+gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*21 \\)" \
|
||||
+ "whatis var_char after allocated third time"
|
||||
+gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*21 \\)" \
|
||||
+ "ptype var_char after allocated third time"
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "var_char_p-associated"]
|
||||
+gdb_continue_to_breakpoint "var_char_p-associated"
|
||||
+gdb_test "print var_char_p" \
|
||||
+ " = \\(PTR TO -> \\( character\\*7 \\)\\) ${hex}" \
|
||||
+ "print var_char_p after associated"
|
||||
+gdb_test "print *var_char_p" " = 'johndoe'" \
|
||||
+ "print *var_char_ after associated"
|
||||
+gdb_test "whatis var_char_p" "type = PTR TO -> \\( character\\*7 \\)" \
|
||||
+ "whatis var_char_p after associated"
|
||||
+gdb_test "ptype var_char_p" "type = PTR TO -> \\( character\\*7 \\)" \
|
||||
+ "ptype var_char_p after associated"
|
||||
Index: gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-stringsold.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.10.50.20160106/gdb/testsuite/gdb.fortran/vla-stringsold.f90 2016-01-08 19:15:44.984637686 +0100
|
||||
@@ -0,0 +1,40 @@
|
||||
+! Copyright 2014 Free Software Foundation, Inc.
|
||||
+!
|
||||
+! This program is free software; you can redistribute it and/or modify
|
||||
+! it under the terms of the GNU General Public License as published by
|
||||
+! the Free Software Foundation; either version 2 of the License, or
|
||||
+! (at your option) any later version.
|
||||
+!
|
||||
+! This program is distributed in the hope that it will be useful,
|
||||
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+! GNU General Public License for more details.
|
||||
+!
|
||||
+! You should have received a copy of the GNU General Public License
|
||||
+! along with this program; if not, write to the Free Software
|
||||
+! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+
|
||||
+program vla_strings
|
||||
+ character(len=:), target, allocatable :: var_char
|
||||
+ character(len=:), pointer :: var_char_p
|
||||
+ logical :: l
|
||||
+
|
||||
+ allocate(character(len=10) :: var_char)
|
||||
+ l = allocated(var_char) ! var_char-allocated-1
|
||||
+ var_char = 'foo'
|
||||
+ deallocate(var_char) ! var_char-filled-1
|
||||
+ l = allocated(var_char) ! var_char-deallocated
|
||||
+ allocate(character(len=42) :: var_char)
|
||||
+ l = allocated(var_char)
|
||||
+ var_char = 'foobar'
|
||||
+ var_char = '' ! var_char-filled-2
|
||||
+ var_char = 'bar' ! var_char-empty
|
||||
+ deallocate(var_char)
|
||||
+ allocate(character(len=21) :: var_char)
|
||||
+ l = allocated(var_char) ! var_char-allocated-3
|
||||
+ var_char = 'johndoe'
|
||||
+ var_char_p => var_char
|
||||
+ l = associated(var_char_p) ! var_char_p-associated
|
||||
+ var_char_p => null()
|
||||
+ l = associated(var_char_p) ! var_char_p-not-associated
|
||||
+end program vla_strings
|
43
gdb.changes
43
gdb.changes
@ -1,3 +1,46 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 15 15:55:11 UTC 2017 - matz@suse.com
|
||||
|
||||
- Update to gdb 7.12.1
|
||||
* negative repeat count for x examines backwards
|
||||
* fortran: support structs/arrays with dynamically types fields
|
||||
* support MPX bound checking
|
||||
* support for the Rust language
|
||||
* 'catch syscall' now can catch groups of related syscalls
|
||||
* New (sub)commands:
|
||||
- skip {-file,-gfile,-function,-rfunction}: generic skip
|
||||
mechanism
|
||||
- maint {selftest,info line-table}
|
||||
- new-ui: create new user interface for GUI clients
|
||||
* (fast) tracepoints on s390x and ppc64le added to gdbserver
|
||||
* New target Andes NDS32
|
||||
- Remove patch gdb-aarch64-v81-hwbreakpoints.diff (upstream)
|
||||
- Add patches from Fedora package:
|
||||
gdb-6.7-testsuite-stable-results.patch
|
||||
gdb-add-index-chmod.patch
|
||||
gdb-bison-old.patch
|
||||
gdb-container-rh-pkg.patch
|
||||
gdb-libexec-add-index.patch
|
||||
gdb-linux_perf-bundle.patch
|
||||
gdb-physname-pr11734-test.patch
|
||||
gdb-physname-pr12273-test.patch
|
||||
gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
|
||||
gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
|
||||
gdb-rhbz1149205-catch-syscall-after-fork-test.patch
|
||||
gdb-rhbz1156192-recursive-dlopen-test.patch
|
||||
gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
|
||||
gdb-rhbz1350436-type-printers-error.patch
|
||||
gdb-test-ivy-bridge.patch
|
||||
gdb-testsuite-casts.patch
|
||||
gdb-testsuite-m-static.patch
|
||||
gdb-testsuite-morestack-gold.patch
|
||||
gdb-tls-1of2.patch
|
||||
gdb-tls-2of2.patch
|
||||
gdb-upstream.patch
|
||||
gdb-vla-intel-fortran-strides.patch
|
||||
gdb-vla-intel-fortran-vla-strings.patch
|
||||
gdb-vla-intel-tests.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 9 15:37:41 UTC 2017 - matz@suse.com
|
||||
|
||||
|
275
gdb.spec
275
gdb.spec
@ -24,10 +24,7 @@ License: GPL-3.0+ and GPL-3.0-with-GCC-exception and LGPL-2.1+ and LGPL-3
|
||||
Group: Development/Tools/Debuggers
|
||||
Name: gdb
|
||||
|
||||
%global snap 20130731
|
||||
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
||||
%global snapgnulib 20121213
|
||||
Version: 7.11.1
|
||||
Version: 7.12.1
|
||||
Release: 0
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
@ -78,7 +75,7 @@ Source3: gdb-gstack.man
|
||||
Source4: gdbinit
|
||||
|
||||
# libstdc++ pretty printers from GCC SVN HEAD (4.5 experimental).
|
||||
%global libstdcxxpython gdb-libstdc++-v3-python-r225521
|
||||
%global libstdcxxpython gdb-libstdc++-v3-python-6.3.1-20170212
|
||||
Source5: %{libstdcxxpython}.tar.bz2
|
||||
|
||||
# Provide gdbtui for RHEL-5 and RHEL-6 as it is removed upstream (BZ 797664).
|
||||
@ -92,128 +89,139 @@ Source13: gdb-rpmlintrc
|
||||
|
||||
#Fedora Packages begin
|
||||
Patch1: gdb-6.3-rh-testversion-20041202.patch
|
||||
Patch2: gdb-archer.patch
|
||||
Patch3: gdb-fortran-stride-intel-1of6.patch
|
||||
Patch4: gdb-fortran-stride-intel-2of6.patch
|
||||
Patch5: gdb-fortran-stride-intel-3of6.patch
|
||||
Patch6: gdb-fortran-stride-intel-4of6.patch
|
||||
Patch7: gdb-fortran-stride-intel-5of6.patch
|
||||
Patch8: gdb-fortran-stride-intel-6of6.patch
|
||||
Patch9: gdb-vla-intel.patch
|
||||
Patch10: gdb-vla-intel-logical-not.patch
|
||||
Patch11: gdb-vla-intel-stringbt-fix.patch
|
||||
Patch12: gdb-vla-intel-04of23-fix.patch
|
||||
Patch13: gdb-6.3-rh-dummykfail-20041202.patch
|
||||
Patch14: gdb-6.3-ppc64syscall-20040622.patch
|
||||
Patch15: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||||
Patch16: gdb-6.3-gstack-20050411.patch
|
||||
Patch17: gdb-6.3-test-pie-20050107.patch
|
||||
Patch18: gdb-6.3-test-self-20050110.patch
|
||||
Patch19: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch20: gdb-6.3-test-movedir-20050125.patch
|
||||
Patch21: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
Patch22: gdb-6.3-inferior-notification-20050721.patch
|
||||
Patch23: gdb-6.3-inheritancetest-20050726.patch
|
||||
Patch24: gdb-6.3-readnever-20050907.patch
|
||||
Patch25: gdb-6.5-bz203661-emit-relocs.patch
|
||||
Patch26: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
Patch27: gdb-6.5-sharedlibrary-path.patch
|
||||
Patch28: gdb-6.5-BEA-testsuite.patch
|
||||
Patch29: gdb-6.5-last-address-space-byte-test.patch
|
||||
Patch30: gdb-6.5-readline-long-line-crash-test.patch
|
||||
Patch31: gdb-6.5-bz216711-clone-is-outermost.patch
|
||||
Patch32: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
||||
Patch33: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
||||
Patch34: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
||||
Patch35: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
||||
Patch36: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
||||
Patch37: gdb-6.6-bz230000-power6-disassembly-test.patch
|
||||
Patch38: gdb-6.6-bz229517-gcore-without-terminal.patch
|
||||
Patch39: gdb-6.6-bz235197-fork-detach-info.patch
|
||||
Patch40: gdb-6.6-testsuite-timeouts.patch
|
||||
Patch41: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
||||
Patch42: gdb-6.6-scheduler_locking-step-is-default.patch
|
||||
Patch43: gdb-6.3-attach-see-vdso-test.patch
|
||||
Patch44: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
||||
Patch45: gdb-6.6-buildid-locate.patch
|
||||
Patch46: gdb-6.6-buildid-locate-solib-missing-ids.patch
|
||||
Patch47: gdb-6.6-buildid-locate-rpm.patch
|
||||
Patch48: gdb-6.7-charsign-test.patch
|
||||
Patch49: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
||||
Patch50: gdb-6.5-ia64-libunwind-leak-test.patch
|
||||
Patch51: gdb-6.5-missed-trap-on-step-test.patch
|
||||
Patch52: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
|
||||
Patch53: gdb-6.5-gcore-buffer-limit-test.patch
|
||||
Patch54: gdb-6.6-threads-static-test.patch
|
||||
Patch55: gdb-6.3-mapping-zero-inode-test.patch
|
||||
Patch56: gdb-6.3-focus-cmd-prev-test.patch
|
||||
Patch57: gdb-6.8-bz442765-threaded-exec-test.patch
|
||||
Patch58: gdb-6.8-sparc64-silence-memcpy-check.patch
|
||||
Patch59: gdb-6.5-section-num-fixup-test.patch
|
||||
Patch60: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
Patch61: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
Patch62: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
Patch63: gdb-simultaneous-step-resume-breakpoint-test.patch
|
||||
Patch64: gdb-core-open-vdso-warning.patch
|
||||
Patch65: gdb-x86_64-i386-syscall-restart.patch
|
||||
Patch66: gdb-bz533176-fortran-omp-step.patch
|
||||
Patch67: gdb-follow-child-stale-parent.patch
|
||||
Patch68: gdb-ccache-workaround.patch
|
||||
Patch69: gdb-archer-pie-addons.patch
|
||||
Patch70: gdb-archer-pie-addons-keep-disabled.patch
|
||||
Patch71: gdb-lineno-makeup-test.patch
|
||||
Patch72: gdb-ppc-power7-test.patch
|
||||
Patch73: gdb-bz541866-rwatch-before-run.patch
|
||||
Patch74: gdb-moribund-utrace-workaround.patch
|
||||
Patch75: gdb-archer-next-over-throw-cxx-exec.patch
|
||||
Patch76: gdb-bz601887-dwarf4-rh-test.patch
|
||||
Patch77: gdb-6.6-buildid-locate-core-as-arg.patch
|
||||
Patch78: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
|
||||
Patch79: gdb-test-bt-cfi-without-die.patch
|
||||
Patch80: gdb-gdb-add-index-script.patch
|
||||
Patch81: gdb-bz568248-oom-is-error.patch
|
||||
Patch82: gdb-bz634108-solib_address.patch
|
||||
Patch83: gdb-test-pid0-core.patch
|
||||
Patch84: gdb-test-dw2-aranges.patch
|
||||
Patch85: gdb-test-expr-cumulative-archer.patch
|
||||
Patch86: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
||||
Patch87: gdb-glibc-vdso-workaround.patch
|
||||
Patch88: gdb-runtest-pie-override.patch
|
||||
Patch89: gdb-attach-fail-reasons-5of5.patch
|
||||
Patch90: gdb-stale-frame_info.patch
|
||||
Patch91: gdb-glibc-strstr-workaround.patch
|
||||
Patch92: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
||||
Patch93: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||
Patch94: gdb-rhbz795424-bitpos-20of25.patch
|
||||
Patch95: gdb-rhbz795424-bitpos-21of25.patch
|
||||
Patch96: gdb-rhbz795424-bitpos-22of25.patch
|
||||
Patch97: gdb-rhbz795424-bitpos-23of25.patch
|
||||
Patch98: gdb-rhbz795424-bitpos-25of25.patch
|
||||
Patch99: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||
Patch100: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
Patch101: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
|
||||
Patch102: gdb-gnat-dwarf-crash-3of3.patch
|
||||
Patch103: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
|
||||
Patch104: gdb-archer-vla-tests.patch
|
||||
Patch105: gdb-fortran-stride-intel-6of6-nokfail.patch
|
||||
Patch106: gdb-btrobust.patch
|
||||
Patch107: gdb-fortran-frame-string.patch
|
||||
Patch108: gdb-python-gil.patch
|
||||
Patch2: gdb-upstream.patch
|
||||
Patch3: gdb-archer.patch
|
||||
Patch4: gdb-vla-intel-fortran-strides.patch
|
||||
Patch5: gdb-vla-intel-fortran-vla-strings.patch
|
||||
Patch6: gdb-vla-intel-stringbt-fix.patch
|
||||
Patch7: gdb-6.3-rh-dummykfail-20041202.patch
|
||||
Patch8: gdb-6.3-ppc64syscall-20040622.patch
|
||||
Patch9: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||||
Patch10: gdb-6.3-gstack-20050411.patch
|
||||
Patch11: gdb-6.3-test-pie-20050107.patch
|
||||
Patch12: gdb-6.3-test-self-20050110.patch
|
||||
Patch13: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch14: gdb-6.3-test-movedir-20050125.patch
|
||||
Patch15: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
Patch16: gdb-6.3-inferior-notification-20050721.patch
|
||||
Patch17: gdb-6.3-inheritancetest-20050726.patch
|
||||
Patch18: gdb-6.3-readnever-20050907.patch
|
||||
Patch19: gdb-6.5-bz203661-emit-relocs.patch
|
||||
Patch20: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
Patch21: gdb-6.5-sharedlibrary-path.patch
|
||||
Patch22: gdb-6.5-BEA-testsuite.patch
|
||||
Patch23: gdb-6.5-last-address-space-byte-test.patch
|
||||
Patch24: gdb-6.5-readline-long-line-crash-test.patch
|
||||
Patch25: gdb-6.5-bz216711-clone-is-outermost.patch
|
||||
Patch26: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
||||
Patch27: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
||||
Patch28: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
||||
Patch29: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
||||
Patch30: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
||||
Patch31: gdb-6.6-bz230000-power6-disassembly-test.patch
|
||||
Patch32: gdb-6.6-bz229517-gcore-without-terminal.patch
|
||||
Patch33: gdb-6.6-bz235197-fork-detach-info.patch
|
||||
Patch34: gdb-6.6-testsuite-timeouts.patch
|
||||
Patch35: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
||||
Patch36: gdb-6.6-scheduler_locking-step-is-default.patch
|
||||
Patch37: gdb-6.3-attach-see-vdso-test.patch
|
||||
Patch38: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
||||
Patch39: gdb-6.6-buildid-locate.patch
|
||||
Patch40: gdb-6.6-buildid-locate-solib-missing-ids.patch
|
||||
Patch41: gdb-6.6-buildid-locate-rpm.patch
|
||||
Patch42: gdb-6.7-charsign-test.patch
|
||||
Patch43: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
||||
Patch44: gdb-6.7-testsuite-stable-results.patch
|
||||
Patch45: gdb-6.5-ia64-libunwind-leak-test.patch
|
||||
Patch46: gdb-6.5-missed-trap-on-step-test.patch
|
||||
Patch47: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
|
||||
Patch48: gdb-6.5-gcore-buffer-limit-test.patch
|
||||
Patch49: gdb-6.6-threads-static-test.patch
|
||||
Patch50: gdb-6.3-mapping-zero-inode-test.patch
|
||||
Patch51: gdb-6.3-focus-cmd-prev-test.patch
|
||||
Patch52: gdb-6.8-bz442765-threaded-exec-test.patch
|
||||
Patch53: gdb-6.8-sparc64-silence-memcpy-check.patch
|
||||
Patch54: gdb-6.5-section-num-fixup-test.patch
|
||||
Patch55: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
Patch56: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
Patch57: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
Patch58: gdb-simultaneous-step-resume-breakpoint-test.patch
|
||||
Patch59: gdb-core-open-vdso-warning.patch
|
||||
Patch60: gdb-x86_64-i386-syscall-restart.patch
|
||||
Patch61: gdb-bz533176-fortran-omp-step.patch
|
||||
Patch62: gdb-follow-child-stale-parent.patch
|
||||
Patch63: gdb-ccache-workaround.patch
|
||||
Patch64: gdb-archer-pie-addons.patch
|
||||
Patch65: gdb-archer-pie-addons-keep-disabled.patch
|
||||
Patch66: gdb-lineno-makeup-test.patch
|
||||
Patch67: gdb-ppc-power7-test.patch
|
||||
Patch68: gdb-bz541866-rwatch-before-run.patch
|
||||
Patch69: gdb-moribund-utrace-workaround.patch
|
||||
Patch70: gdb-archer-next-over-throw-cxx-exec.patch
|
||||
Patch71: gdb-bz601887-dwarf4-rh-test.patch
|
||||
Patch72: gdb-6.6-buildid-locate-core-as-arg.patch
|
||||
Patch73: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
|
||||
Patch74: gdb-test-bt-cfi-without-die.patch
|
||||
Patch75: gdb-gdb-add-index-script.patch
|
||||
Patch76: gdb-bz568248-oom-is-error.patch
|
||||
Patch77: gdb-bz634108-solib_address.patch
|
||||
Patch78: gdb-test-pid0-core.patch
|
||||
Patch79: gdb-test-dw2-aranges.patch
|
||||
Patch80: gdb-test-expr-cumulative-archer.patch
|
||||
Patch81: gdb-physname-pr11734-test.patch
|
||||
Patch82: gdb-physname-pr12273-test.patch
|
||||
Patch83: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
||||
Patch84: gdb-test-ivy-bridge.patch
|
||||
Patch85: gdb-glibc-vdso-workaround.patch
|
||||
Patch86: gdb-runtest-pie-override.patch
|
||||
Patch87: gdb-attach-fail-reasons-5of5.patch
|
||||
Patch88: gdb-stale-frame_info.patch
|
||||
Patch89: gdb-glibc-strstr-workaround.patch
|
||||
Patch90: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
||||
Patch91: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||
Patch92: gdb-rhbz795424-bitpos-20of25.patch
|
||||
Patch93: gdb-rhbz795424-bitpos-21of25.patch
|
||||
Patch94: gdb-rhbz795424-bitpos-22of25.patch
|
||||
Patch95: gdb-rhbz795424-bitpos-23of25.patch
|
||||
Patch96: gdb-rhbz795424-bitpos-25of25.patch
|
||||
Patch97: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||
Patch98: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
Patch99: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
|
||||
Patch100: gdb-gnat-dwarf-crash-3of3.patch
|
||||
Patch101: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
|
||||
Patch102: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
|
||||
Patch103: gdb-archer-vla-tests.patch
|
||||
Patch104: gdb-vla-intel-tests.patch
|
||||
Patch105: gdb-btrobust.patch
|
||||
Patch106: gdb-fortran-frame-string.patch
|
||||
Patch107: gdb-python-gil.patch
|
||||
Patch108: gdb-rhbz1156192-recursive-dlopen-test.patch
|
||||
Patch109: gdb-jit-reader-multilib.patch
|
||||
Patch110: gdb-bz1219747-attach-kills.patch
|
||||
Patch111: gdb-fedora-libncursesw.patch
|
||||
Patch112: gdb-opcodes-clflushopt-test.patch
|
||||
Patch113: gdb-dts-rhel6-python-compat.patch
|
||||
Patch114: gdb-6.6-buildid-locate-rpm-scl.patch
|
||||
Patch115: gdb-readline62-ask-more-rh.patch
|
||||
Patch116: gdb-6.8-attach-signalled-detach-stopped.patch
|
||||
Patch117: gdb-6.8-quit-never-aborts.patch
|
||||
Patch118: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
|
||||
Patch120: gdb-testsuite-dw2-undefined-ret-addr.patch
|
||||
Patch121: gdb-rhbz1325795-framefilters-test.patch
|
||||
Patch122: gdb-bare-DW_TAG_lexical_block-1of2.patch
|
||||
Patch123: gdb-bare-DW_TAG_lexical_block-2of2.patch
|
||||
Patch124: gdb-testsuite-readline63-sigint.patch
|
||||
Patch110: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
|
||||
Patch111: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
|
||||
Patch112: gdb-rhbz1350436-type-printers-error.patch
|
||||
Patch113: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
|
||||
Patch114: gdb-bz1219747-attach-kills.patch
|
||||
Patch115: gdb-fedora-libncursesw.patch
|
||||
Patch116: gdb-opcodes-clflushopt-test.patch
|
||||
Patch117: gdb-dts-rhel6-python-compat.patch
|
||||
Patch118: gdb-6.6-buildid-locate-rpm-scl.patch
|
||||
Patch119: gdb-readline62-ask-more-rh.patch
|
||||
Patch120: gdb-6.8-attach-signalled-detach-stopped.patch
|
||||
Patch121: gdb-6.8-quit-never-aborts.patch
|
||||
Patch122: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
|
||||
Patch123: gdb-container-rh-pkg.patch
|
||||
Patch124: gdb-rhbz1325795-framefilters-test.patch
|
||||
Patch125: gdb-linux_perf-bundle.patch
|
||||
Patch126: gdb-bison-old.patch
|
||||
Patch127: gdb-testsuite-casts.patch
|
||||
Patch128: gdb-testsuite-m-static.patch
|
||||
Patch129: gdb-tls-1of2.patch
|
||||
Patch130: gdb-tls-2of2.patch
|
||||
Patch131: gdb-testsuite-morestack-gold.patch
|
||||
Patch132: gdb-libexec-add-index.patch
|
||||
Patch133: gdb-add-index-chmod.patch
|
||||
Patch134: gdb-testsuite-readline63-sigint.patch
|
||||
#Fedora Packages end
|
||||
|
||||
# Upstream patch to fix gcc -Werror
|
||||
@ -221,7 +229,6 @@ Patch1002: gdb-6.6-buildid-locate-rpm-suse.patch
|
||||
Patch1003: gdb-pahole-python2.patch
|
||||
Patch1004: gdb-fix-buf-overflow.diff
|
||||
Patch1005: gdb-7.10-swo18929.patch
|
||||
Patch1006: gdb-aarch64-v81-hwbreakpoints.diff
|
||||
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
@ -291,7 +298,7 @@ BuildRequires: gcc-ada
|
||||
BuildRequires: gcc-ada
|
||||
%endif
|
||||
%endif
|
||||
%if ! (0%{?is_opensuse} && %_arch == "s390x" )
|
||||
%if ! (0%{?is_opensuse} && %_target_cpu == "s390x" )
|
||||
# openSUSE for s390x doesn't build 32bit libs
|
||||
%if 0%{suse_version} > 1110
|
||||
%ifarch x86_64 ppc64 s390x
|
||||
@ -498,18 +505,28 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch116 -p1
|
||||
%patch117 -p1
|
||||
%patch118 -p1
|
||||
%patch119 -p1
|
||||
%patch120 -p1
|
||||
%patch121 -p1
|
||||
%patch122 -p1
|
||||
%patch123 -p1
|
||||
%patch124 -p1
|
||||
%patch125 -p1
|
||||
%patch126 -p1
|
||||
%patch127 -p1
|
||||
%patch128 -p1
|
||||
%patch129 -p1
|
||||
%patch130 -p1
|
||||
%patch131 -p1
|
||||
%patch132 -p1
|
||||
%patch133 -p1
|
||||
%patch134 -p1
|
||||
#Fedora patching end
|
||||
|
||||
%patch1002 -p1
|
||||
%patch1003 -p1
|
||||
%patch1004 -p1
|
||||
%patch1005 -p1
|
||||
%patch1006 -p1
|
||||
|
||||
find -name "*.orig" | xargs rm -f
|
||||
! find -name "*.rej" # Should not happen.
|
||||
|
Loading…
x
Reference in New Issue
Block a user