Rebase to FSF GDB 8.2.50.20181006 (8.3pre).
This commit is contained in:
parent
453d99770b
commit
a3b5cf46c2
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
/gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz
|
||||
/v2.0.tar.gz
|
||||
/gdb-8.2.50.20180917.tar.xz
|
||||
/gdb-8.2.50.20181006.tar.xz
|
||||
|
@ -1 +1 @@
|
||||
e08ef628a7e3098699ec6939584e2c9f7a9e1952
|
||||
ce3a1736b59a05128049459fcd6c91c221f40257
|
||||
|
@ -16,7 +16,7 @@ Subject: gdb-6.3-gstack-20050411.patch
|
||||
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
--- a/gdb/Makefile.in
|
||||
+++ b/gdb/Makefile.in
|
||||
@@ -1732,7 +1732,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force
|
||||
@@ -1733,7 +1733,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force
|
||||
install: all
|
||||
@$(MAKE) $(FLAGS_TO_PASS) install-only
|
||||
|
||||
@ -25,7 +25,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
transformed_name=`t='$(program_transform_name)'; \
|
||||
echo gdb | sed -e "$$t"` ; \
|
||||
if test "x$$transformed_name" = x; then \
|
||||
@@ -1781,7 +1781,25 @@ install-guile:
|
||||
@@ -1782,7 +1782,25 @@ install-guile:
|
||||
install-python:
|
||||
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
|
||||
|
||||
@ -52,7 +52,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
transformed_name=`t='$(program_transform_name)'; \
|
||||
echo gdb | sed -e $$t` ; \
|
||||
if test "x$$transformed_name" = x; then \
|
||||
@@ -1804,6 +1822,18 @@ uninstall: force $(CONFIG_UNINSTALL)
|
||||
@@ -1805,6 +1823,18 @@ uninstall: force $(CONFIG_UNINSTALL)
|
||||
fi
|
||||
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
|
@ -690,7 +690,7 @@ diff --git a/gdb/config.in b/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
|
||||
|
||||
@ -723,7 +723,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
enable_targets
|
||||
enable_64_bit_bfd
|
||||
enable_gdbmi
|
||||
@@ -910,6 +916,11 @@ CCC
|
||||
@@ -911,6 +917,11 @@ CCC
|
||||
CPP
|
||||
MAKEINFO
|
||||
MAKEINFOFLAGS
|
||||
@ -735,7 +735,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
YACC
|
||||
YFLAGS
|
||||
XMKMF'
|
||||
@@ -1578,6 +1589,8 @@ Optional Packages:
|
||||
@@ -1580,6 +1591,8 @@ Optional Packages:
|
||||
[--with-auto-load-dir]
|
||||
--without-auto-load-safe-path
|
||||
do not restrict auto-loaded files locations
|
||||
@ -744,7 +744,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
|
||||
--with-curses use the curses library instead of the termcap
|
||||
library
|
||||
@@ -1635,6 +1648,13 @@ Some influential environment variables:
|
||||
@@ -1637,6 +1650,13 @@ Some influential environment variables:
|
||||
MAKEINFO Parent configure detects if it is of sufficient version.
|
||||
MAKEINFOFLAGS
|
||||
Parameters for MAKEINFO.
|
||||
@ -758,7 +758,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
YACC The `Yet Another Compiler Compiler' implementation to use.
|
||||
Defaults to the first program found out of: `bison -y', `byacc',
|
||||
`yacc'.
|
||||
@@ -6570,6 +6590,494 @@ _ACEOF
|
||||
@@ -6618,6 +6638,494 @@ _ACEOF
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
|
||||
$as_echo "$with_auto_load_safe_path" >&6; }
|
||||
|
||||
|
@ -14,7 +14,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1339862
|
||||
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
|
||||
--- a/gdb/solib-svr4.c
|
||||
+++ b/gdb/solib-svr4.c
|
||||
@@ -1343,14 +1343,27 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
|
||||
@@ -1347,14 +1347,27 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
|
||||
}
|
||||
|
||||
{
|
||||
@ -44,7 +44,7 @@ diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
|
||||
if (build_id != NULL)
|
||||
{
|
||||
char *name, *build_id_filename;
|
||||
@@ -1365,23 +1378,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
|
||||
@@ -1369,23 +1382,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
|
||||
xfree (name);
|
||||
}
|
||||
else
|
||||
|
@ -55,13 +55,13 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
|
||||
+ && namesz == sizeof "GNU"
|
||||
+ && memcmp (xnp->name, "GNU", sizeof "GNU") == 0)
|
||||
+ {
|
||||
+ size_t size = descsz;
|
||||
+ size_t sz = descsz;
|
||||
+ gdb_byte *data = (gdb_byte *) descdata;
|
||||
+ struct bfd_build_id *retval;
|
||||
+
|
||||
+ retval = (struct bfd_build_id *) xmalloc (sizeof *retval - 1 + size);
|
||||
+ retval->size = size;
|
||||
+ memcpy (retval->data, data, size);
|
||||
+ retval = (struct bfd_build_id *) xmalloc (sizeof *retval - 1 + sz);
|
||||
+ retval->size = sz;
|
||||
+ memcpy (retval->data, data, sz);
|
||||
+
|
||||
+ return retval;
|
||||
+ }
|
||||
@ -977,7 +977,7 @@ diff --git a/gdb/corelow.c b/gdb/corelow.c
|
||||
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
|
||||
--- a/gdb/doc/gdb.texinfo
|
||||
+++ b/gdb/doc/gdb.texinfo
|
||||
@@ -19772,6 +19772,27 @@ information files.
|
||||
@@ -19829,6 +19829,27 @@ information files.
|
||||
|
||||
@end table
|
||||
|
||||
@ -1029,7 +1029,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
error (_("could not find '.gnu_debugaltlink' file for %s"),
|
||||
@@ -6198,7 +6198,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
|
||||
@@ -6197,7 +6197,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
|
||||
static gdb::array_view<const gdb_byte>
|
||||
get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
|
||||
{
|
||||
@ -1038,7 +1038,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
if (build_id == nullptr)
|
||||
return {};
|
||||
|
||||
@@ -6211,7 +6211,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
|
||||
@@ -6210,7 +6210,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
|
||||
static gdb::array_view<const gdb_byte>
|
||||
get_gdb_index_contents_from_cache_dwz (objfile *obj, dwz_file *dwz)
|
||||
{
|
||||
@ -1062,7 +1062,7 @@ diff --git a/gdb/elfread.c b/gdb/elfread.c
|
||||
if (debugfile.empty ())
|
||||
debugfile = find_separate_debug_file_by_debuglink (objfile);
|
||||
@@ -1301,6 +1303,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
|
||||
symbol_file_add_separate (abfd.get (), debugfile.c_str (),
|
||||
symbol_file_add_separate (debug_bfd.get (), debugfile.c_str (),
|
||||
symfile_flags, objfile);
|
||||
}
|
||||
+ /* Check if any separate debug info has been extracted out. */
|
||||
@ -1118,7 +1118,7 @@ diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
|
||||
|
||||
static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
|
||||
static int svr4_have_link_map_offsets (void);
|
||||
@@ -1341,9 +1342,51 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
|
||||
@@ -1345,9 +1346,51 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ Subject: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
--- a/gdb/valops.c
|
||||
+++ b/gdb/valops.c
|
||||
@@ -1104,6 +1104,8 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
@@ -1097,6 +1097,8 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
struct gdbarch *gdbarch;
|
||||
int value_reg;
|
||||
|
||||
@ -18,7 +18,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
/* Figure out which frame this is in currently.
|
||||
|
||||
We use VALUE_FRAME_ID for obtaining the value's frame id instead of
|
||||
@@ -1113,8 +1115,14 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
@@ -1106,8 +1108,14 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
frame. */
|
||||
frame = frame_find_by_id (VALUE_FRAME_ID (toval));
|
||||
|
||||
|
@ -8,9 +8,9 @@ Subject: gdb-archer-pie-addons-keep-disabled.patch
|
||||
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
--- a/gdb/breakpoint.c
|
||||
+++ b/gdb/breakpoint.c
|
||||
@@ -15506,6 +15506,50 @@ initialize_breakpoint_ops (void)
|
||||
@@ -15506,6 +15506,50 @@ static struct cmd_list_element *enablebreaklist = NULL;
|
||||
|
||||
static struct cmd_list_element *enablebreaklist = NULL;
|
||||
cmd_list_element *commands_cmd_element = nullptr;
|
||||
|
||||
+void
|
||||
+breakpoints_relocate (struct objfile *objfile, struct section_offsets *delta)
|
||||
@ -75,7 +75,7 @@ diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
|
||||
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
|
||||
--- a/gdb/objfiles.c
|
||||
+++ b/gdb/objfiles.c
|
||||
@@ -880,6 +880,11 @@ objfile_relocate1 (struct objfile *objfile,
|
||||
@@ -878,6 +878,11 @@ objfile_relocate1 (struct objfile *objfile,
|
||||
obj_section_addr (s));
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ tromey/python
|
||||
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
--- a/gdb/Makefile.in
|
||||
+++ b/gdb/Makefile.in
|
||||
@@ -2092,6 +2092,12 @@ stamp-h: $(srcdir)/config.in config.status
|
||||
@@ -2093,6 +2093,12 @@ stamp-h: $(srcdir)/config.in config.status
|
||||
CONFIG_LINKS= \
|
||||
$(SHELL) config.status
|
||||
|
||||
@ -365,7 +365,7 @@ new file mode 100644
|
||||
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
|
||||
--- a/gdb/python/python-internal.h
|
||||
+++ b/gdb/python/python-internal.h
|
||||
@@ -636,6 +636,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
|
||||
@@ -629,6 +629,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
|
||||
|
||||
};
|
||||
|
||||
@ -417,7 +417,7 @@ diff --git a/gdb/python/python.c b/gdb/python/python.c
|
||||
/* Set the quit flag. */
|
||||
|
||||
static void
|
||||
@@ -1312,6 +1337,92 @@ gdbpy_print_stack (void)
|
||||
@@ -1311,6 +1336,92 @@ gdbpy_print_stack (void)
|
||||
|
||||
|
||||
|
||||
@ -510,7 +510,7 @@ diff --git a/gdb/python/python.c b/gdb/python/python.c
|
||||
/* Return a sequence holding all the Progspaces. */
|
||||
|
||||
static PyObject *
|
||||
@@ -1963,6 +2074,8 @@ PyMethodDef python_GdbMethods[] =
|
||||
@@ -1965,6 +2076,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." },
|
||||
@ -522,10 +522,14 @@ diff --git a/gdb/python/python.c b/gdb/python/python.c
|
||||
diff --git a/gdb/python/python.h b/gdb/python/python.h
|
||||
--- a/gdb/python/python.h
|
||||
+++ b/gdb/python/python.h
|
||||
@@ -25,4 +25,6 @@
|
||||
@@ -25,7 +25,10 @@
|
||||
/* This is all that python exports to gdb. */
|
||||
extern const struct extension_language_defn extension_language_python;
|
||||
|
||||
+
|
||||
/* Command element for the 'python' command. */
|
||||
extern cmd_list_element *python_cmd_element;
|
||||
|
||||
+extern void run_python_script (int argc, char **argv);
|
||||
+
|
||||
#endif /* GDB_PYTHON_H */
|
||||
@ -544,7 +548,7 @@ diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py
|
||||
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
|
||||
--- a/gdb/testsuite/gdb.python/py-value.exp
|
||||
+++ b/gdb/testsuite/gdb.python/py-value.exp
|
||||
@@ -384,6 +384,15 @@ proc test_value_after_death {} {
|
||||
@@ -399,6 +399,15 @@ proc test_value_after_death {} {
|
||||
"print value's type"
|
||||
}
|
||||
|
||||
@ -560,7 +564,7 @@ diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py
|
||||
# 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.
|
||||
@@ -512,6 +521,7 @@ if ![runto_main] then {
|
||||
@@ -540,6 +549,7 @@ if ![runto_main] then {
|
||||
test_value_in_inferior
|
||||
test_inferior_function_call
|
||||
test_value_after_death
|
||||
|
@ -45,7 +45,7 @@ gdb/gdbserver/
|
||||
diff --git a/gdb/config.in b/gdb/config.in
|
||||
--- a/gdb/config.in
|
||||
+++ b/gdb/config.in
|
||||
@@ -264,6 +264,9 @@
|
||||
@@ -267,6 +267,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#undef HAVE_LIBRPM
|
||||
|
||||
@ -55,7 +55,7 @@ diff --git a/gdb/config.in b/gdb/config.in
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -387,6 +390,9 @@
|
||||
@@ -393,6 +396,9 @@
|
||||
/* Define to 1 if you have the `scm_new_smob' function. */
|
||||
#undef HAVE_SCM_NEW_SMOB
|
||||
|
||||
@ -68,7 +68,7 @@ diff --git a/gdb/config.in b/gdb/config.in
|
||||
diff --git a/gdb/configure b/gdb/configure
|
||||
--- a/gdb/configure
|
||||
+++ b/gdb/configure
|
||||
@@ -15793,6 +15793,64 @@ cat >>confdefs.h <<_ACEOF
|
||||
@@ -15841,6 +15841,64 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
|
||||
@ -136,7 +136,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
diff --git a/gdb/configure.ac b/gdb/configure.ac
|
||||
--- a/gdb/configure.ac
|
||||
+++ b/gdb/configure.ac
|
||||
@@ -2031,6 +2031,10 @@ case $host_os in
|
||||
@@ -2009,6 +2009,10 @@ case $host_os in
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
||||
|
||||
@ -173,7 +173,7 @@ diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in
|
||||
diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
|
||||
--- a/gdb/gdbserver/configure
|
||||
+++ b/gdb/gdbserver/configure
|
||||
@@ -8568,6 +8568,64 @@ if $want_ipa ; then
|
||||
@@ -8564,6 +8564,64 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -241,7 +241,7 @@ diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
|
||||
diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
|
||||
--- a/gdb/gdbserver/configure.ac
|
||||
+++ b/gdb/gdbserver/configure.ac
|
||||
@@ -486,6 +486,10 @@ if $want_ipa ; then
|
||||
@@ -480,6 +480,10 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -10,7 +10,7 @@ Subject: gdb-bz541866-rwatch-before-run.patch
|
||||
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
--- a/gdb/breakpoint.c
|
||||
+++ b/gdb/breakpoint.c
|
||||
@@ -8789,7 +8789,7 @@ init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch,
|
||||
@@ -8785,7 +8785,7 @@ init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch,
|
||||
int enabled, int internal, unsigned flags,
|
||||
int display_canonical)
|
||||
{
|
||||
@ -19,7 +19,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
|
||||
if (type == bp_hardware_breakpoint)
|
||||
{
|
||||
@@ -14340,7 +14340,7 @@ enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition,
|
||||
@@ -14336,7 +14336,7 @@ enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition,
|
||||
|
||||
if (bpt->type == bp_hardware_breakpoint)
|
||||
{
|
||||
|
@ -9,7 +9,7 @@ Subject: gdb-container-rh-pkg.patch
|
||||
diff --git a/gdb/remote.c b/gdb/remote.c
|
||||
--- a/gdb/remote.c
|
||||
+++ b/gdb/remote.c
|
||||
@@ -14010,7 +14010,17 @@ remote_target::pid_to_exec_file (int pid)
|
||||
@@ -14004,7 +14004,17 @@ remote_target::pid_to_exec_file (int pid)
|
||||
char *annex = NULL;
|
||||
|
||||
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)
|
||||
|
@ -12,7 +12,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1270534
|
||||
diff --git a/gdb/configure b/gdb/configure
|
||||
--- a/gdb/configure
|
||||
+++ b/gdb/configure
|
||||
@@ -9362,6 +9362,7 @@ if test x"$prefer_curses" = xyes; then
|
||||
@@ -9410,6 +9410,7 @@ if test x"$prefer_curses" = xyes; then
|
||||
# search /usr/local/include, if ncurses is installed in /usr/local. A
|
||||
# default installation of ncurses on alpha*-dec-osf* will lead to such
|
||||
# a situation.
|
||||
@ -20,7 +20,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing waddstr" >&5
|
||||
$as_echo_n "checking for library containing waddstr... " >&6; }
|
||||
if ${ac_cv_search_waddstr+:} false; then :
|
||||
@@ -9386,7 +9387,7 @@ return waddstr ();
|
||||
@@ -9434,7 +9435,7 @@ return waddstr ();
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
@ -29,7 +29,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
@@ -9460,6 +9461,7 @@ case $host_os in
|
||||
@@ -9508,6 +9509,7 @@ case $host_os in
|
||||
esac
|
||||
|
||||
# These are the libraries checked by Readline.
|
||||
@ -37,7 +37,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5
|
||||
$as_echo_n "checking for library containing tgetent... " >&6; }
|
||||
if ${ac_cv_search_tgetent+:} false; then :
|
||||
@@ -9484,7 +9486,7 @@ return tgetent ();
|
||||
@@ -9532,7 +9534,7 @@ return tgetent ();
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
|
@ -9,7 +9,7 @@ Subject: gdb-glibc-strstr-workaround.patch
|
||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
--- a/gdb/dwarf2read.c
|
||||
+++ b/gdb/dwarf2read.c
|
||||
@@ -21443,6 +21443,26 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
||||
@@ -21441,6 +21441,26 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
||||
/* Cache this symbol's name and the name's demangled form (if any). */
|
||||
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
|
||||
linkagename = dwarf2_physname (name, die, cu);
|
||||
|
@ -42,7 +42,7 @@ gdb/
|
||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
--- a/gdb/dwarf2read.c
|
||||
+++ b/gdb/dwarf2read.c
|
||||
@@ -10586,6 +10586,13 @@ private:
|
||||
@@ -10584,6 +10584,13 @@ private:
|
||||
static void
|
||||
process_die (struct die_info *die, struct dwarf2_cu *cu)
|
||||
{
|
||||
|
@ -9,7 +9,7 @@ Subject: gdb-jit-reader-multilib.patch
|
||||
diff --git a/gdb/configure b/gdb/configure
|
||||
--- a/gdb/configure
|
||||
+++ b/gdb/configure
|
||||
@@ -9649,10 +9649,12 @@ _ACEOF
|
||||
@@ -9697,10 +9697,12 @@ _ACEOF
|
||||
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@ Subject: gdb-linux_perf-bundle.patch
|
||||
diff --git a/gdb/configure b/gdb/configure
|
||||
--- a/gdb/configure
|
||||
+++ b/gdb/configure
|
||||
@@ -12028,7 +12028,7 @@ else
|
||||
@@ -12080,7 +12080,7 @@ else
|
||||
|
||||
#include <linux/perf_event.h>
|
||||
#ifndef PERF_ATTR_SIZE_VER5
|
||||
@ -21,7 +21,7 @@ diff --git a/gdb/configure b/gdb/configure
|
||||
diff --git a/gdb/configure.ac b/gdb/configure.ac
|
||||
--- a/gdb/configure.ac
|
||||
+++ b/gdb/configure.ac
|
||||
@@ -1454,7 +1454,7 @@ else
|
||||
@@ -1458,7 +1458,7 @@ else
|
||||
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <linux/perf_event.h>
|
||||
#ifndef PERF_ATTR_SIZE_VER5
|
||||
|
@ -14,7 +14,7 @@ Bug in FSF GDB exploited by the ptrace-on-utrace interaction.
|
||||
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
--- a/gdb/breakpoint.c
|
||||
+++ b/gdb/breakpoint.c
|
||||
@@ -11998,6 +11998,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
|
||||
@@ -11994,6 +11994,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
|
||||
traps we can no longer explain. */
|
||||
|
||||
old_loc->events_till_retirement = 3 * (thread_count () + 1);
|
||||
|
@ -27,7 +27,7 @@ diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
|
||||
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
|
||||
--- a/gdb/python/python-internal.h
|
||||
+++ b/gdb/python/python-internal.h
|
||||
@@ -144,6 +144,8 @@ typedef int Py_ssize_t;
|
||||
@@ -137,6 +137,8 @@ typedef int Py_ssize_t;
|
||||
#define PyGILState_Release(ARG) ((void)(ARG))
|
||||
#define PyEval_InitThreads()
|
||||
#define PyThreadState_Swap(ARG) ((void)(ARG))
|
||||
|
@ -1311,7 +1311,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -6805,7 +6805,7 @@ breakpoint_address_match (const address_space *aspace1, CORE_ADDR addr1,
|
||||
@@ -6801,7 +6801,7 @@ breakpoint_address_match (const address_space *aspace1, CORE_ADDR addr1,
|
||||
static int
|
||||
breakpoint_address_match_range (const address_space *aspace1,
|
||||
CORE_ADDR addr1,
|
||||
@ -1320,7 +1320,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
CORE_ADDR addr2)
|
||||
{
|
||||
return ((gdbarch_has_global_breakpoints (target_gdbarch ())
|
||||
@@ -10887,7 +10887,7 @@ can_use_hardware_watchpoint (const std::vector<value_ref_ptr> &vals)
|
||||
@@ -10883,7 +10883,7 @@ can_use_hardware_watchpoint (const std::vector<value_ref_ptr> &vals)
|
||||
&& TYPE_CODE (vtype) != TYPE_CODE_ARRAY))
|
||||
{
|
||||
CORE_ADDR vaddr = value_address (v);
|
||||
@ -1650,7 +1650,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -15077,8 +15077,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
|
||||
@@ -15075,8 +15075,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
|
||||
object, and then subtract off the number of bits of
|
||||
the field itself. The result is the bit offset of
|
||||
the LSB of the field. */
|
||||
@ -1707,7 +1707,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
struct type **arg_types;
|
||||
|
||||
pc = (*pos)++;
|
||||
@@ -1732,7 +1733,7 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
@@ -1735,7 +1736,7 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
struct type *range_type = TYPE_INDEX_TYPE (type);
|
||||
struct type *element_type = TYPE_TARGET_TYPE (type);
|
||||
struct value *array = allocate_value (expect_type);
|
||||
@ -2563,9 +2563,9 @@ diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
|
||||
struct ui_file *stream, int recurse,
|
||||
struct value *original_value,
|
||||
const struct value_print_options *options)
|
||||
@@ -71,8 +71,8 @@ pascal_val_print (struct type *type,
|
||||
@@ -70,8 +70,8 @@ pascal_val_print (struct type *type,
|
||||
unsigned int i = 0; /* Number of characters printed */
|
||||
unsigned len;
|
||||
LONGEST low_bound, high_bound;
|
||||
struct type *elttype;
|
||||
- unsigned eltlen;
|
||||
- int length_pos, length_size, string_pos;
|
||||
@ -2589,7 +2589,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
|
||||
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
|
||||
--- a/gdb/ppc-linux-tdep.c
|
||||
+++ b/gdb/ppc-linux-tdep.c
|
||||
@@ -1706,7 +1706,7 @@ ppc_init_linux_record_tdep (struct linux_record_tdep *record_tdep,
|
||||
@@ -1705,7 +1705,7 @@ ppc_init_linux_record_tdep (struct linux_record_tdep *record_tdep,
|
||||
|
||||
const struct floatformat **
|
||||
ppc_floatformat_for_type (struct gdbarch *gdbarch,
|
||||
@ -2622,7 +2622,7 @@ diff --git a/gdb/printcmd.c b/gdb/printcmd.c
|
||||
diff --git a/gdb/procfs.c b/gdb/procfs.c
|
||||
--- a/gdb/procfs.c
|
||||
+++ b/gdb/procfs.c
|
||||
@@ -3361,7 +3361,7 @@ procfs_target::remove_watchpoint (CORE_ADDR addr, int len,
|
||||
@@ -3367,7 +3367,7 @@ procfs_target::remove_watchpoint (CORE_ADDR addr, int len,
|
||||
}
|
||||
|
||||
int
|
||||
@ -2758,7 +2758,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c
|
||||
|
||||
int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
|
||||
struct expression *) override;
|
||||
@@ -10446,7 +10446,7 @@ int remote_hw_watchpoint_length_limit = -1;
|
||||
@@ -10441,7 +10441,7 @@ int remote_hw_watchpoint_length_limit = -1;
|
||||
int remote_hw_breakpoint_limit = -1;
|
||||
|
||||
int
|
||||
@ -2825,7 +2825,7 @@ diff --git a/gdb/spu-multiarch.c b/gdb/spu-multiarch.c
|
||||
diff --git a/gdb/stack.c b/gdb/stack.c
|
||||
--- a/gdb/stack.c
|
||||
+++ b/gdb/stack.c
|
||||
@@ -190,7 +190,7 @@ print_stack_frame (struct frame_info *frame, int print_level,
|
||||
@@ -192,7 +192,7 @@ print_stack_frame (struct frame_info *frame, int print_level,
|
||||
argument (not just the first nameless argument). */
|
||||
|
||||
static void
|
||||
@ -2834,7 +2834,7 @@ diff --git a/gdb/stack.c b/gdb/stack.c
|
||||
int first, struct ui_file *stream)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
@@ -540,7 +540,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
@@ -542,7 +542,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
/* Offset of next stack argument beyond the one we have seen that is
|
||||
at the highest offset, or -1 if we haven't come to a stack
|
||||
argument yet. */
|
||||
@ -2843,7 +2843,7 @@ diff --git a/gdb/stack.c b/gdb/stack.c
|
||||
/* Number of ints of arguments that we have printed so far. */
|
||||
int args_printed = 0;
|
||||
/* True if we should print arguments, false otherwise. */
|
||||
@@ -569,8 +569,8 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
@@ -571,8 +571,8 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
case LOC_ARG:
|
||||
case LOC_REF_ARG:
|
||||
{
|
||||
@ -2854,7 +2854,7 @@ diff --git a/gdb/stack.c b/gdb/stack.c
|
||||
|
||||
/* Compute address of next argument by adding the size of
|
||||
this argument and rounding to an int boundary. */
|
||||
@@ -705,7 +705,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
@@ -707,7 +707,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
enough about the stack to find them. */
|
||||
if (num != -1)
|
||||
{
|
||||
@ -3156,7 +3156,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
const char *,
|
||||
struct type *,
|
||||
int, enum noside);
|
||||
@@ -183,7 +183,7 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
|
||||
@@ -176,7 +176,7 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
|
||||
space. */
|
||||
|
||||
struct value *
|
||||
@ -3165,7 +3165,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
{
|
||||
struct objfile *objf;
|
||||
struct value *val = find_function_in_inferior ("malloc", &objf);
|
||||
@@ -398,12 +398,12 @@ value_cast (struct type *type, struct value *arg2)
|
||||
@@ -391,12 +391,12 @@ value_cast (struct type *type, struct value *arg2)
|
||||
if (code1 == TYPE_CODE_ARRAY)
|
||||
{
|
||||
struct type *element_type = TYPE_TARGET_TYPE (type);
|
||||
@ -3180,7 +3180,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
LONGEST low_bound, high_bound, new_length;
|
||||
|
||||
if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
|
||||
@@ -1055,7 +1055,7 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
@@ -1048,7 +1048,7 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
{
|
||||
const gdb_byte *dest_buffer;
|
||||
CORE_ADDR changed_addr;
|
||||
@ -3189,7 +3189,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
gdb_byte buffer[sizeof (LONGEST)];
|
||||
|
||||
if (value_bitsize (toval))
|
||||
@@ -3356,7 +3356,7 @@ compare_parameters (struct type *t1, struct type *t2, int skip_artificial)
|
||||
@@ -3349,7 +3349,7 @@ compare_parameters (struct type *t1, struct type *t2, int skip_artificial)
|
||||
the form "DOMAIN::NAME". */
|
||||
|
||||
static struct value *
|
||||
@ -3198,7 +3198,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
struct type *curtype, const char *name,
|
||||
struct type *intype,
|
||||
int want_address,
|
||||
@@ -3390,7 +3390,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
|
||||
@@ -3383,7 +3383,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
|
||||
if (want_address)
|
||||
return value_from_longest
|
||||
(lookup_memberptr_type (TYPE_FIELD_TYPE (t, i), domain),
|
||||
@ -3207,7 +3207,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
else if (noside != EVAL_NORMAL)
|
||||
return allocate_value (TYPE_FIELD_TYPE (t, i));
|
||||
else
|
||||
@@ -3563,7 +3563,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
|
||||
@@ -3556,7 +3556,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
|
||||
for (i = TYPE_N_BASECLASSES (t) - 1; i >= 0; i--)
|
||||
{
|
||||
struct value *v;
|
||||
@ -3216,7 +3216,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
|
||||
if (BASETYPE_VIA_VIRTUAL (t, i))
|
||||
base_offset = 0;
|
||||
@@ -3712,7 +3712,7 @@ value_rtti_indirect_type (struct value *v, int *full,
|
||||
@@ -3705,7 +3705,7 @@ value_rtti_indirect_type (struct value *v, int *full,
|
||||
struct value *
|
||||
value_full_object (struct value *argp,
|
||||
struct type *rtype,
|
||||
|
@ -90,7 +90,7 @@ diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
|
||||
diff --git a/gdb/defs.h b/gdb/defs.h
|
||||
--- a/gdb/defs.h
|
||||
+++ b/gdb/defs.h
|
||||
@@ -665,4 +665,6 @@ DEF_ENUM_FLAGS_TYPE (enum user_selected_what_flag, user_selected_what);
|
||||
@@ -668,4 +668,6 @@ DEF_ENUM_FLAGS_TYPE (enum user_selected_what_flag, user_selected_what);
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
@ -100,7 +100,7 @@ diff --git a/gdb/defs.h b/gdb/defs.h
|
||||
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
|
||||
--- a/gdb/p-valprint.c
|
||||
+++ b/gdb/p-valprint.c
|
||||
@@ -773,6 +773,7 @@ pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
|
||||
@@ -775,6 +775,7 @@ pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
|
||||
|
||||
if (boffset < 0 || boffset >= TYPE_LENGTH (type))
|
||||
{
|
||||
@ -132,7 +132,7 @@ diff --git a/gdb/utils.c b/gdb/utils.c
|
||||
diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
--- a/gdb/valops.c
|
||||
+++ b/gdb/valops.c
|
||||
@@ -2087,6 +2087,7 @@ search_struct_method (const char *name, struct value **arg1p,
|
||||
@@ -2080,6 +2080,7 @@ search_struct_method (const char *name, struct value **arg1p,
|
||||
{
|
||||
CORE_ADDR address;
|
||||
|
||||
|
@ -354,7 +354,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
|
||||
diff --git a/gdb/procfs.c b/gdb/procfs.c
|
||||
--- a/gdb/procfs.c
|
||||
+++ b/gdb/procfs.c
|
||||
@@ -1565,7 +1565,7 @@ procfs_address_to_host_pointer (CORE_ADDR addr)
|
||||
@@ -1540,7 +1540,7 @@ procfs_address_to_host_pointer (CORE_ADDR addr)
|
||||
}
|
||||
|
||||
static int
|
||||
@ -363,7 +363,7 @@ diff --git a/gdb/procfs.c b/gdb/procfs.c
|
||||
{
|
||||
struct {
|
||||
procfs_ctl_t cmd;
|
||||
@@ -3217,7 +3217,7 @@ procfs_target::pid_to_str (ptid_t ptid)
|
||||
@@ -3231,7 +3231,7 @@ procfs_target::pid_to_exec_file (int pid)
|
||||
/* Insert a watchpoint. */
|
||||
|
||||
static int
|
||||
@ -384,7 +384,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c
|
||||
|
||||
int can_use_hw_breakpoint (enum bptype, int, int) override;
|
||||
|
||||
@@ -10375,7 +10375,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
|
||||
@@ -10370,7 +10370,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
|
||||
p = strchr (rs->buf, '\0');
|
||||
addr = remote_address_masked (addr);
|
||||
p += hexnumstr (p, (ULONGEST) addr);
|
||||
@ -393,7 +393,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c
|
||||
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
@@ -10395,7 +10395,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
|
||||
@@ -10390,7 +10390,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len,
|
||||
|
||||
bool
|
||||
remote_target::watchpoint_addr_within_range (CORE_ADDR addr,
|
||||
@ -402,7 +402,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c
|
||||
{
|
||||
CORE_ADDR diff = remote_address_masked (addr - start);
|
||||
|
||||
@@ -10424,7 +10424,7 @@ remote_target::remove_watchpoint (CORE_ADDR addr, int len,
|
||||
@@ -10419,7 +10419,7 @@ remote_target::remove_watchpoint (CORE_ADDR addr, int len,
|
||||
p = strchr (rs->buf, '\0');
|
||||
addr = remote_address_masked (addr);
|
||||
p += hexnumstr (p, (ULONGEST) addr);
|
||||
|
@ -588,7 +588,7 @@ diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
|
||||
diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c
|
||||
--- a/gdb/mep-tdep.c
|
||||
+++ b/gdb/mep-tdep.c
|
||||
@@ -2239,7 +2239,7 @@ push_large_arguments (CORE_ADDR sp, int argc, struct value **argv,
|
||||
@@ -2238,7 +2238,7 @@ push_large_arguments (CORE_ADDR sp, int argc, struct value **argv,
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
{
|
||||
@ -620,7 +620,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
if (mips_debug && out != NULL)
|
||||
{
|
||||
int i;
|
||||
@@ -4561,13 +4561,13 @@ mips_eabi_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -4562,13 +4562,13 @@ mips_eabi_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
gdb_byte ref_valbuf[MAX_MIPS_ABI_REGSIZE];
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -637,7 +637,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
|
||||
/* The EABI passes structures that do not fit in a register by
|
||||
reference. */
|
||||
@@ -4837,7 +4837,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -4838,7 +4838,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function,
|
||||
|
||||
static int
|
||||
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
|
||||
@ -646,7 +646,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -4852,7 +4852,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
|
||||
@@ -4853,7 +4853,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
|
||||
|
||||
for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
|
||||
{
|
||||
@ -655,16 +655,29 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
struct type *field_type;
|
||||
|
||||
/* We're only looking at normal fields. */
|
||||
@@ -4894,7 +4894,7 @@ mips_n32n64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -4895,7 +4895,8 @@ mips_n32n64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
- int len = 0;
|
||||
- int arg_space = 0;
|
||||
+ ULONGEST arg_space = 0;
|
||||
+ LONGEST len = 0;
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
@@ -5245,11 +5245,11 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -4924,9 +4925,9 @@ mips_n32n64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
|
||||
if (mips_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
- "mips_n32n64_push_dummy_call: sp=%s allocated %ld\n",
|
||||
+ "mips_n32n64_push_dummy_call: sp=%s allocated %s\n",
|
||||
paddress (gdbarch, sp),
|
||||
- (long) align_up (arg_space, 16));
|
||||
+ pulongest (align_up (arg_space, 16)));
|
||||
|
||||
/* Initialize the integer and float register pointers. */
|
||||
argreg = MIPS_A0_REGNUM;
|
||||
@@ -5247,11 +5248,11 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function,
|
||||
: MIPS_V0_REGNUM);
|
||||
field < TYPE_NFIELDS (type); field++, regnum += 2)
|
||||
{
|
||||
@ -680,7 +693,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
|
||||
{
|
||||
/* A 16-byte long double field goes in two consecutive
|
||||
@@ -5291,8 +5291,8 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -5293,8 +5294,8 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function,
|
||||
if (offset + xfer > TYPE_LENGTH (type))
|
||||
xfer = TYPE_LENGTH (type) - offset;
|
||||
if (mips_debug)
|
||||
@ -691,16 +704,29 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
mips_xfer_register (gdbarch, regcache,
|
||||
gdbarch_num_regs (gdbarch) + regnum,
|
||||
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
|
||||
@@ -5350,7 +5350,7 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -5352,7 +5353,8 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
- int len = 0;
|
||||
- int arg_space = 0;
|
||||
+ ULONGEST arg_space = 0;
|
||||
+ LONGEST len = 0;
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
@@ -5414,13 +5414,13 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -5389,9 +5391,9 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
|
||||
if (mips_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
- "mips_o32_push_dummy_call: sp=%s allocated %ld\n",
|
||||
+ "mips_o32_push_dummy_call: sp=%s allocated %s\n",
|
||||
paddress (gdbarch, sp),
|
||||
- (long) align_up (arg_space, 16));
|
||||
+ pulongest (align_up (arg_space, 16)));
|
||||
|
||||
/* Initialize the integer and float register pointers. */
|
||||
argreg = MIPS_A0_REGNUM;
|
||||
@@ -5417,13 +5419,13 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -717,18 +743,30 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
|
||||
|
||||
val = value_contents (arg);
|
||||
|
||||
@@ -5874,8 +5874,8 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -5877,8 +5879,8 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
int argreg;
|
||||
int float_argreg;
|
||||
int argnum;
|
||||
- int len = 0;
|
||||
- int arg_space = 0;
|
||||
- int stack_offset = 0;
|
||||
+ LONGEST len = 0;
|
||||
+ ULONGEST arg_space = 0;
|
||||
+ LONGEST stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR func_addr = find_function_addr (function, NULL);
|
||||
|
||||
@@ -5935,13 +5935,13 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -5911,9 +5913,9 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
|
||||
if (mips_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
- "mips_o64_push_dummy_call: sp=%s allocated %ld\n",
|
||||
+ "mips_o64_push_dummy_call: sp=%s allocated %s\n",
|
||||
paddress (gdbarch, sp),
|
||||
- (long) align_up (arg_space, 16));
|
||||
+ pulongest (align_up (arg_space, 16)));
|
||||
|
||||
/* Initialize the integer and float register pointers. */
|
||||
argreg = MIPS_A0_REGNUM;
|
||||
@@ -5939,13 +5941,13 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -1022,7 +1060,7 @@ diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
|
||||
diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
|
||||
--- a/gdb/tic6x-tdep.c
|
||||
+++ b/gdb/tic6x-tdep.c
|
||||
@@ -881,7 +881,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -880,7 +880,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
int argreg = 0;
|
||||
int argnum;
|
||||
int stack_offset = 4;
|
||||
@ -1031,7 +1069,7 @@ diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
struct type *func_type = value_type (function);
|
||||
/* The first arg passed on stack. Mostly the first 10 args are passed by
|
||||
@@ -914,7 +914,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -913,7 +913,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
/* Now make space on the stack for the args. */
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -1040,7 +1078,7 @@ diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
|
||||
if (argnum >= 10 - argreg)
|
||||
references_offset += len;
|
||||
stack_offset += len;
|
||||
@@ -933,7 +933,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -932,7 +932,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
const gdb_byte *val;
|
||||
struct value *arg = args[argnum];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -1049,7 +1087,7 @@ diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
|
||||
enum type_code typecode = TYPE_CODE (arg_type);
|
||||
|
||||
val = value_contents (arg);
|
||||
@@ -1089,7 +1089,8 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
@@ -1087,7 +1087,8 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
}
|
||||
else
|
||||
internal_error (__FILE__, __LINE__,
|
||||
@ -1074,16 +1112,17 @@ diff --git a/gdb/tilegx-tdep.c b/gdb/tilegx-tdep.c
|
||||
diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
|
||||
--- a/gdb/v850-tdep.c
|
||||
+++ b/gdb/v850-tdep.c
|
||||
@@ -1019,7 +1019,7 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1019,7 +1019,8 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argreg;
|
||||
int argnum;
|
||||
- int len = 0;
|
||||
- int arg_space = 0;
|
||||
+ ULONGEST arg_space = 0;
|
||||
+ LONGEST len = 0;
|
||||
int stack_offset;
|
||||
|
||||
if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
|
||||
@@ -1047,7 +1047,7 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1047,7 +1048,7 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
|
||||
in four registers available. Loop thru args from first to last. */
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -1116,7 +1155,7 @@ diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c
|
||||
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
|
||||
--- a/gdb/xstormy16-tdep.c
|
||||
+++ b/gdb/xstormy16-tdep.c
|
||||
@@ -232,8 +232,9 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -232,8 +232,10 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch,
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR stack_dest = sp;
|
||||
int argreg = E_1ST_ARG_REGNUM;
|
||||
@ -1125,9 +1164,10 @@ diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
|
||||
+ int i, slacklen;
|
||||
+ LONGEST j;
|
||||
+ LONGEST typelen;
|
||||
const gdb_byte *val;
|
||||
+ const gdb_byte *val;
|
||||
gdb_byte buf[xstormy16_pc_size];
|
||||
|
||||
/* If struct_return is true, then the struct return address will
|
||||
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
--- a/gdb/xtensa-tdep.c
|
||||
+++ b/gdb/xtensa-tdep.c
|
||||
@ -1141,11 +1181,12 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
areg = arreg_number (gdbarch,
|
||||
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
|
||||
|
||||
@@ -1700,18 +1699,18 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1699,18 +1698,19 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
CORE_ADDR struct_addr)
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int i;
|
||||
- int size, onstack_size;
|
||||
+ int i;
|
||||
+ LONGEST size, onstack_size;
|
||||
gdb_byte *buf = (gdb_byte *) alloca (16);
|
||||
CORE_ADDR ra, ps;
|
||||
@ -1163,7 +1204,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
int regno; /* regno if in register. */
|
||||
} u;
|
||||
};
|
||||
@@ -1735,9 +1734,10 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1733,9 +1733,10 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -1177,7 +1218,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
switch (TYPE_CODE (arg_type))
|
||||
{
|
||||
case TYPE_CODE_INT:
|
||||
@@ -1807,8 +1807,8 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1804,8 +1805,8 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
|
||||
break;
|
||||
}
|
||||
@ -1187,7 +1228,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
|
||||
/* Align size and onstack_size. */
|
||||
size = (size + info->align - 1) & ~(info->align - 1);
|
||||
@@ -1853,7 +1853,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1850,7 +1851,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
|
||||
if (info->onstack)
|
||||
{
|
||||
@ -1196,7 +1237,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
CORE_ADDR offset = sp + info->u.offset;
|
||||
|
||||
/* Odd-sized structs are aligned to the lower side of a memory
|
||||
@@ -1869,7 +1869,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
@@ -1866,7 +1867,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -143,7 +143,7 @@ diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h
|
||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
--- a/gdb/dwarf2read.c
|
||||
+++ b/gdb/dwarf2read.c
|
||||
@@ -17705,7 +17705,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17703,7 +17703,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
struct type *base_type, *orig_base_type;
|
||||
struct type *range_type;
|
||||
struct attribute *attr;
|
||||
@ -152,7 +152,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
int low_default_is_valid;
|
||||
int high_bound_is_count = 0;
|
||||
const char *name;
|
||||
@@ -17725,7 +17725,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17723,7 +17723,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
|
||||
low.kind = PROP_CONST;
|
||||
high.kind = PROP_CONST;
|
||||
@ -162,7 +162,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
|
||||
/* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
|
||||
omitting DW_AT_lower_bound. */
|
||||
@@ -17758,6 +17760,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17756,6 +17758,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
break;
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
|
||||
if (attr)
|
||||
attr_to_dynamic_prop (attr, die, cu, &low);
|
||||
@@ -17850,7 +17860,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17848,7 +17858,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
|
||||
high.data.const_val |= negative_mask;
|
||||
|
||||
@ -223,7 +223,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
+ struct type *array_type = check_typedef (value_type (new_array));
|
||||
+ struct type *elt_type;
|
||||
+
|
||||
+ typedef struct subscript_range
|
||||
+ typedef struct
|
||||
+ {
|
||||
+ enum range_type f90_range_type;
|
||||
+ LONGEST low, high, stride;
|
||||
@ -272,11 +272,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
+ for (i = 0; i < nargs; i++)
|
||||
+ {
|
||||
+ struct subscript_store *index = &subscript_array[i];
|
||||
|
||||
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
|
||||
- high_bound = TYPE_HIGH_BOUND (range);
|
||||
- else
|
||||
- high_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
|
||||
+
|
||||
+ /* The user input is a range, with or without lower and upper bound.
|
||||
+ E.g.: "p arry(2:5)", "p arry( :5)", "p arry( : )", etc. */
|
||||
+ if (exp->elts[*pos].opcode == OP_RANGE)
|
||||
@ -310,7 +306,11 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
+ /* Assign the default stride value '1'. */
|
||||
+ else
|
||||
+ range->stride = 1;
|
||||
+
|
||||
|
||||
- if (range_type == HIGH_BOUND_DEFAULT || range_type == BOTH_BOUND_DEFAULT)
|
||||
- high_bound = TYPE_HIGH_BOUND (range);
|
||||
- else
|
||||
- high_bound = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
|
||||
+ /* Check the provided stride value is illegal, aka '0'. */
|
||||
+ if (range->stride == 0)
|
||||
+ error (_("Stride must not be 0"));
|
||||
@ -480,7 +480,8 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
+ struct value *v = NULL;
|
||||
+
|
||||
+ elt_type = TYPE_TARGET_TYPE (value_type (new_array));
|
||||
+
|
||||
|
||||
- return value_slice (array, low_bound, high_bound - low_bound + 1);
|
||||
+ /* Every SUBSCRIPT_RANGE in the user input signifies an actual range in
|
||||
+ the output array. So we traverse the SUBSCRIPT_ARRAY again, looking
|
||||
+ for a range entry. When we find one, we use the range info to create
|
||||
@ -497,8 +498,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
+ struct type *range_type, *interim_array_type;
|
||||
+
|
||||
+ int new_length;
|
||||
|
||||
- return value_slice (array, low_bound, high_bound - low_bound + 1);
|
||||
+
|
||||
+ /* The length of a sub-dimension with all elements between the
|
||||
+ bounds plus the start element itself. It may be modified by
|
||||
+ a user provided stride value. */
|
||||
@ -533,20 +533,54 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
}
|
||||
|
||||
|
||||
@@ -1930,19 +2225,8 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
@@ -1238,19 +1533,6 @@ evaluate_funcall (type *expect_type, expression *exp, int *pos,
|
||||
return eval_call (exp, noside, nargs, argvec, var_func_name, expect_type);
|
||||
}
|
||||
|
||||
-/* Helper for skipping all the arguments in an undetermined argument list.
|
||||
- This function was designed for use in the OP_F77_UNDETERMINED_ARGLIST
|
||||
- case of evaluate_subexp_standard as multiple, but not all, code paths
|
||||
- require a generic skip. */
|
||||
-
|
||||
-static void
|
||||
-skip_undetermined_arglist (int nargs, struct expression *exp, int *pos,
|
||||
- enum noside noside)
|
||||
-{
|
||||
- for (int i = 0; i < nargs; ++i)
|
||||
- evaluate_subexp (NULL_TYPE, exp, pos, noside);
|
||||
-}
|
||||
-
|
||||
struct value *
|
||||
evaluate_subexp_standard (struct type *expect_type,
|
||||
struct expression *exp, int *pos,
|
||||
@@ -1946,33 +2228,8 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
switch (code)
|
||||
{
|
||||
case TYPE_CODE_ARRAY:
|
||||
- if (exp->elts[*pos].opcode == OP_RANGE)
|
||||
- return value_f90_subarray (arg1, exp, pos, noside);
|
||||
- else
|
||||
- {
|
||||
- if (noside == EVAL_SKIP)
|
||||
- {
|
||||
- skip_undetermined_arglist (nargs, exp, pos, noside);
|
||||
- /* Return the dummy value with the correct type. */
|
||||
- return arg1;
|
||||
- }
|
||||
- goto multi_f77_subscript;
|
||||
- }
|
||||
-
|
||||
case TYPE_CODE_STRING:
|
||||
- if (exp->elts[*pos].opcode == OP_RANGE)
|
||||
- return value_f90_subarray (arg1, exp, pos, noside);
|
||||
- else
|
||||
- {
|
||||
- if (noside == EVAL_SKIP)
|
||||
- {
|
||||
- skip_undetermined_arglist (nargs, exp, pos, noside);
|
||||
- /* Return the dummy value with the correct type. */
|
||||
- return arg1;
|
||||
- }
|
||||
- arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
|
||||
- return value_subscript (arg1, value_as_long (arg2));
|
||||
- }
|
||||
@ -554,7 +588,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
|
||||
case TYPE_CODE_PTR:
|
||||
case TYPE_CODE_FUNC:
|
||||
@@ -2338,49 +2622,6 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
@@ -2369,49 +2626,6 @@ evaluate_subexp_standard (struct type *expect_type,
|
||||
}
|
||||
return (arg1);
|
||||
|
||||
@ -604,7 +638,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
|
||||
case BINOP_LOGICAL_AND:
|
||||
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
|
||||
if (noside == EVAL_SKIP)
|
||||
@@ -3301,6 +3542,9 @@ calc_f77_array_dims (struct type *array_type)
|
||||
@@ -3331,6 +3545,9 @@ calc_f77_array_dims (struct type *array_type)
|
||||
int ndimen = 1;
|
||||
struct type *tmp_type;
|
||||
|
||||
@ -639,7 +673,7 @@ diff --git a/gdb/expprint.c b/gdb/expprint.c
|
||||
print_subexp (exp, pos, stream, PREC_ABOVE_COMMA);
|
||||
fputs_filtered (")", stream);
|
||||
return;
|
||||
@@ -1098,22 +1095,24 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
@@ -1105,22 +1102,24 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
|
||||
switch (range_type)
|
||||
{
|
||||
@ -672,7 +706,7 @@ diff --git a/gdb/expprint.c b/gdb/expprint.c
|
||||
fputs_filtered ("ExclusiveRange 'EXP..EXP'", stream);
|
||||
break;
|
||||
default:
|
||||
@@ -1121,11 +1120,9 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
@@ -1128,11 +1127,9 @@ dump_subexp_body_standard (struct expression *exp,
|
||||
break;
|
||||
}
|
||||
|
||||
@ -689,7 +723,7 @@ diff --git a/gdb/expprint.c b/gdb/expprint.c
|
||||
diff --git a/gdb/expression.h b/gdb/expression.h
|
||||
--- a/gdb/expression.h
|
||||
+++ b/gdb/expression.h
|
||||
@@ -148,28 +148,27 @@ extern void dump_raw_expression (struct expression *,
|
||||
@@ -150,28 +150,27 @@ extern void dump_raw_expression (struct expression *,
|
||||
struct ui_file *, const char *);
|
||||
extern void dump_prefix_expression (struct expression *, struct ui_file *);
|
||||
|
||||
@ -999,7 +1033,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
|
||||
diff --git a/gdb/parse.c b/gdb/parse.c
|
||||
--- a/gdb/parse.c
|
||||
+++ b/gdb/parse.c
|
||||
@@ -988,24 +988,20 @@ operator_length_standard (const struct expression *expr, int endpos,
|
||||
@@ -989,24 +989,20 @@ operator_length_standard (const struct expression *expr, int endpos,
|
||||
|
||||
case OP_RANGE:
|
||||
oplen = 3;
|
||||
@ -1078,7 +1112,7 @@ diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
|
||||
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
--- a/gdb/rust-lang.c
|
||||
+++ b/gdb/rust-lang.c
|
||||
@@ -1181,13 +1181,11 @@ rust_range (struct expression *exp, int *pos, enum noside noside)
|
||||
@@ -1179,13 +1179,11 @@ rust_range (struct expression *exp, int *pos, enum noside noside)
|
||||
kind = (enum range_type) longest_to_int (exp->elts[*pos + 1].longconst);
|
||||
*pos += 3;
|
||||
|
||||
@ -1095,7 +1129,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
|
||||
if (noside == EVAL_SKIP)
|
||||
return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1);
|
||||
@@ -1276,7 +1274,7 @@ rust_compute_range (struct type *type, struct value *range,
|
||||
@@ -1274,7 +1272,7 @@ rust_compute_range (struct type *type, struct value *range,
|
||||
|
||||
*low = 0;
|
||||
*high = 0;
|
||||
@ -1104,7 +1138,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
|
||||
if (TYPE_NFIELDS (type) == 0)
|
||||
return;
|
||||
@@ -1284,15 +1282,14 @@ rust_compute_range (struct type *type, struct value *range,
|
||||
@@ -1282,15 +1280,14 @@ rust_compute_range (struct type *type, struct value *range,
|
||||
i = 0;
|
||||
if (strcmp (TYPE_FIELD_NAME (type, 0), "start") == 0)
|
||||
{
|
||||
@ -1122,7 +1156,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
*high = value_as_long (value_field (range, i));
|
||||
|
||||
if (rust_inclusive_range_type_p (type))
|
||||
@@ -1310,7 +1307,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
@@ -1308,7 +1305,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
struct type *rhstype;
|
||||
LONGEST low, high_bound;
|
||||
/* Initialized to appease the compiler. */
|
||||
@ -1131,7 +1165,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
LONGEST high = 0;
|
||||
int want_slice = 0;
|
||||
|
||||
@@ -1408,7 +1405,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
@@ -1406,7 +1403,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
error (_("Cannot subscript non-array type"));
|
||||
|
||||
if (want_slice
|
||||
@ -1140,7 +1174,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
|
||||
low = low_bound;
|
||||
if (low < 0)
|
||||
error (_("Index less than zero"));
|
||||
@@ -1426,7 +1423,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
@@ -1424,7 +1421,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
|
||||
CORE_ADDR addr;
|
||||
struct value *addrval, *tem;
|
||||
|
||||
@ -1784,7 +1818,7 @@ diff --git a/gdb/valarith.c b/gdb/valarith.c
|
||||
diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
--- a/gdb/valops.c
|
||||
+++ b/gdb/valops.c
|
||||
@@ -3807,56 +3807,195 @@ value_of_this_silent (const struct language_defn *lang)
|
||||
@@ -3800,56 +3800,195 @@ value_of_this_silent (const struct language_defn *lang)
|
||||
|
||||
struct value *
|
||||
value_slice (struct value *array, int lowbound, int length)
|
||||
|
@ -33,7 +33,7 @@ git diff --stat -p gdb/master...gdb/users/bheckel/fortran-vla-strings
|
||||
diff --git a/gdb/NEWS b/gdb/NEWS
|
||||
--- a/gdb/NEWS
|
||||
+++ b/gdb/NEWS
|
||||
@@ -203,6 +203,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
|
||||
@@ -229,6 +229,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
|
||||
|
||||
*** Changes in GDB 8.1
|
||||
|
||||
@ -87,7 +87,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
|
||||
/* memory allocation interface */
|
||||
|
||||
@@ -13748,7 +13749,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -13746,7 +13747,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||
{
|
||||
newobj->static_link
|
||||
= XOBNEW (&objfile->objfile_obstack, struct dynamic_prop);
|
||||
@ -96,7 +96,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
}
|
||||
|
||||
cu->list_in_scope = cu->builder->get_local_symbols ();
|
||||
@@ -16468,7 +16469,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -16466,7 +16467,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
|
||||
byte_stride_prop
|
||||
= (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop));
|
||||
@ -106,7 +106,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
if (!stride_ok)
|
||||
{
|
||||
complaint (_("unable to read array DW_AT_byte_stride "
|
||||
@@ -17229,29 +17231,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17227,29 +17229,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
struct gdbarch *gdbarch = get_objfile_arch (objfile);
|
||||
struct type *type, *range_type, *index_type, *char_type;
|
||||
struct attribute *attr;
|
||||
@ -208,7 +208,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
char_type = language_string_char_type (cu->language_defn, gdbarch);
|
||||
type = create_string_type (NULL, char_type, range_type);
|
||||
|
||||
@@ -17599,7 +17662,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17597,7 +17660,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
|
||||
static int
|
||||
attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
|
||||
@ -218,7 +218,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
{
|
||||
struct dwarf2_property_baton *baton;
|
||||
struct obstack *obstack
|
||||
@@ -17610,14 +17674,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
|
||||
@@ -17608,14 +17672,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
|
||||
|
||||
if (attr_form_is_block (attr))
|
||||
{
|
||||
@ -256,7 +256,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
}
|
||||
else if (attr_form_is_ref (attr))
|
||||
{
|
||||
@@ -17650,8 +17733,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
|
||||
@@ -17648,8 +17731,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
|
||||
baton = XOBNEW (obstack, struct dwarf2_property_baton);
|
||||
baton->referenced_type = die_type (target_die, target_cu);
|
||||
baton->locexpr.per_cu = cu->per_cu;
|
||||
@ -287,7 +287,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
prop->data.baton = baton;
|
||||
prop->kind = PROP_LOCEXPR;
|
||||
gdb_assert (prop->data.baton != NULL);
|
||||
@@ -17762,7 +17865,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17760,7 +17863,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
|
||||
attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
|
||||
if (attr)
|
||||
@ -296,7 +296,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
complaint (_("Missing DW_AT_byte_stride "
|
||||
"- DIE at 0x%s [in module %s]"),
|
||||
sect_offset_str (die->sect_off),
|
||||
@@ -17770,7 +17873,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17768,7 +17871,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
|
||||
attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
|
||||
if (attr)
|
||||
@ -305,7 +305,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
else if (!low_default_is_valid)
|
||||
complaint (_("Missing DW_AT_lower_bound "
|
||||
"- DIE at %s [in module %s]"),
|
||||
@@ -17779,10 +17882,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
@@ -17777,10 +17880,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
|
||||
struct attribute *attr_ub, *attr_count;
|
||||
attr = attr_ub = dwarf2_attr (die, DW_AT_upper_bound, cu);
|
||||
@ -318,7 +318,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
{
|
||||
/* If bounds are constant do the final calculation here. */
|
||||
if (low.kind == PROP_CONST && high.kind == PROP_CONST)
|
||||
@@ -25337,7 +25440,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
||||
@@ -25335,7 +25438,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
||||
attr = dwarf2_attr (die, DW_AT_allocated, cu);
|
||||
if (attr_form_is_block (attr))
|
||||
{
|
||||
@ -327,7 +327,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
add_dyn_prop (DYN_PROP_ALLOCATED, prop, type);
|
||||
}
|
||||
else if (attr != NULL)
|
||||
@@ -25351,7 +25454,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
||||
@@ -25349,7 +25452,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
||||
attr = dwarf2_attr (die, DW_AT_associated, cu);
|
||||
if (attr_form_is_block (attr))
|
||||
{
|
||||
@ -336,7 +336,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type);
|
||||
}
|
||||
else if (attr != NULL)
|
||||
@@ -25363,7 +25466,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
||||
@@ -25361,7 +25464,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
||||
|
||||
/* Read DW_AT_data_location and set in type. */
|
||||
attr = dwarf2_attr (die, DW_AT_data_location, cu);
|
||||
@ -1306,7 +1306,7 @@ diff --git a/gdb/typeprint.c b/gdb/typeprint.c
|
||||
diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
--- a/gdb/valops.c
|
||||
+++ b/gdb/valops.c
|
||||
@@ -1565,6 +1565,19 @@ value_ind (struct value *arg1)
|
||||
@@ -1558,6 +1558,19 @@ value_ind (struct value *arg1)
|
||||
if (TYPE_CODE (base_type) == TYPE_CODE_PTR)
|
||||
{
|
||||
struct type *enc_type;
|
||||
@ -1326,7 +1326,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
|
||||
|
||||
/* We may be pointing to something embedded in a larger object.
|
||||
Get the real type of the enclosing object. */
|
||||
@@ -1580,8 +1593,7 @@ value_ind (struct value *arg1)
|
||||
@@ -1573,8 +1586,7 @@ value_ind (struct value *arg1)
|
||||
else
|
||||
/* Retrieve the enclosing object pointed to. */
|
||||
arg2 = value_at_lazy (enc_type,
|
||||
|
@ -111,11 +111,11 @@ diff --git a/gdb/amd64-nat.c b/gdb/amd64-nat.c
|
||||
+ for -ERESTART* values -512 being above 0xfffffffffffffe00; tested by
|
||||
+ interrupt.exp. */
|
||||
+
|
||||
+ int i = I386_EAX_REGNUM;
|
||||
+ int k = I386_EAX_REGNUM;
|
||||
+
|
||||
+ if (regnum == -1 || regnum == i)
|
||||
+ {
|
||||
+ void *ptr = regs + amd64_native_gregset_reg_offset (gdbarch, i);
|
||||
+ void *ptr = regs + amd64_native_gregset_reg_offset (gdbarch, k);
|
||||
+
|
||||
+ *(int64_t *) ptr = *(int32_t *) ptr;
|
||||
+ }
|
||||
|
7
gdb.spec
7
gdb.spec
@ -18,7 +18,7 @@
|
||||
Name: %{?scl_prefix}gdb
|
||||
|
||||
# Freeze it when GDB gets branched
|
||||
%global snapsrc 20180917
|
||||
%global snapsrc 20181006
|
||||
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
||||
%global snapgnulib 20161115
|
||||
%global tarname gdb-%{version}
|
||||
@ -26,7 +26,7 @@ Version: 8.2.50.%{snapsrc}
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
|
||||
Group: Development/Debuggers
|
||||
@ -1024,6 +1024,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Sat Oct 6 2018 Sergio Durigan Junior <sergiodj@redhat.com> - 8.2.50.20181006-4.fc30
|
||||
- Rebase to FSF GDB 8.2.50.20181006 (8.3pre).
|
||||
|
||||
* Thu Oct 4 2018 Jan Kratochvil <jan.kratochvil@redhat.com> - 8.2.50.20180917-3.fc30
|
||||
- Fix annobin complaints (RH BZ 1630564):
|
||||
--without-stage1-ldflags: Disable static libstdc++ and libgcc linking.
|
||||
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz) = a8b1c54dd348cfeb37da73f968742896be3dd13a4215f8d8519870c2abea915f5176c3fa6989ddd10f20020a16f0fab20cbae68ee8d58a82234d8778023520f8
|
||||
SHA512 (v2.0.tar.gz) = ec63151e842c81cc73ea11ba560b63e005cefbe19d98de24ae5c8caa4de7c9c1d71d1ec5b6214a347592eac675b75a3d2b26d4691ca86f91020ebfea8e912939
|
||||
SHA512 (gdb-8.2.50.20180917.tar.xz) = 92f07fc062ff9d7cb5683507a256f65ae9d29b7d6368d22f474041201c129b1d3f687f02e89e509d5fd8e9c08dbc8bbf9d9aad56d9dbdc2f6e2baef223cc90ef
|
||||
SHA512 (gdb-8.2.50.20181006.tar.xz) = 60258237e19127f339f7bfe0a75a1ea46be3e1c789c2ab184825b7eff8977f27454feaf84b283f1807e2a0355e8c8c1216ac3a1bd7c3cddd934d06532b0bea09
|
||||
|
Loading…
Reference in New Issue
Block a user