From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27584 invoked by alias); 4 Sep 2010 20:02:07 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 27538 invoked by uid 9674); 4 Sep 2010 20:02:05 -0000 Date: Sat, 04 Sep 2010 20:02:00 -0000 Message-ID: <20100904200205.27522.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-entryval: Merge remote branch 'origin/master' into archer-jankratochvil-entryval X-Git-Refname: refs/heads/archer-jankratochvil-entryval X-Git-Reftype: branch X-Git-Oldrev: c1a07bfdf67a0cf0acba58d0fbd5574036291312 X-Git-Newrev: a5ab368b3fd58ca581aafca442e4706c50fc37a8 X-SW-Source: 2010-q3/txt/msg00073.txt.bz2 List-Id: The branch, archer-jankratochvil-entryval has been updated via a5ab368b3fd58ca581aafca442e4706c50fc37a8 (commit) via 61f0884b46ba2d3f8775995ec5433328a6d2e5cd (commit) via 2ccd65e25123e680eea9e47a645e2b6d2fa50c79 (commit) via 8fc361860682f78b8c1342b84c0f3920b6a26c81 (commit) via c4b8673aa65273a6308f68e7ab43865d71832488 (commit) via a31d2450deff59c1a13a5e75fb83c3cde5fa8ad0 (commit) via 4dd6838b3744148a9f02e8f501247833cf972738 (commit) via 058124e05ac6c31ad258e30ef0e7cea23b39c2e5 (commit) via 9ab6c083f5f3d8b2c2bc6239bac45a3944283d04 (commit) via 8e178d050f8a4a3d75f0dbfe4329009c3bcf6982 (commit) via b791ba7ae4d0e38ac1a13f944c8a4a2b4f118b6a (commit) via 5196fb1be55974acdcb603bf7e142c5f6e808574 (commit) via 57d1b0d41f1acbc4c140c49b66301040cad3fc43 (commit) via a902f2ad39ee4c1d82b093a3e2093fa21a157220 (commit) via bc54c3d8368d52bb0218c64afc5632fd2f6c8509 (commit) via 5c05b641346f70bd4884766ad38b67735618fbe2 (commit) via 812ad48c254399696c0aa73e92753e5b40929c1b (commit) via 68a15546475fe0162e39a7aed6866bd3f7692c06 (commit) from c1a07bfdf67a0cf0acba58d0fbd5574036291312 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a5ab368b3fd58ca581aafca442e4706c50fc37a8 Merge: c1a07bf 61f0884 Author: Jan Kratochvil Date: Sat Sep 4 22:01:02 2010 +0200 Merge remote branch 'origin/master' into archer-jankratochvil-entryval ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 4 + bfd/config.bfd | 2 +- bfd/version.h | 2 +- config/ChangeLog | 4 + config/dfp.m4 | 53 +++ gdb/ChangeLog | 92 +++++- gdb/breakpoint.c | 12 +- gdb/cli-out.c | 60 ++- gdb/cli-out.h | 9 +- gdb/cli/cli-logging.c | 121 +++++- gdb/config.in | 3 + gdb/configure | 2 +- gdb/configure.ac | 2 +- gdb/infrun.c | 257 ++++++------ gdb/python/py-breakpoint.c | 4 +- gdb/record.c | 609 ----------------------------- gdb/ser-pipe.c | 12 +- gdb/testsuite/ChangeLog | 16 + gdb/testsuite/gdb.base/ui-redirect.exp | 41 ++ gdb/testsuite/gdb.base/watchpoint.exp | 27 ++- gdb/testsuite/gdb.dwarf2/dw2-filename.S | 53 +++ gdb/testsuite/gdb.dwarf2/dw2-filename.exp | 44 ++ gdb/version.in | 2 +- libdecnumber/ChangeLog | 7 + libdecnumber/Makefile.in | 1 + libdecnumber/aclocal.m4 | 1 + libdecnumber/configure | 38 ++- libdecnumber/configure.ac | 38 +-- 28 files changed, 674 insertions(+), 842 deletions(-) create mode 100644 config/dfp.m4 create mode 100644 gdb/testsuite/gdb.base/ui-redirect.exp create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-filename.S create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-filename.exp First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7edf390..26d45ff 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2010-09-02 Richard Henderson + + * config.bfd (x86_64-*-mingw*): Select 32-bit pei vectors too. + 2010-09-01 Pedro Alves * netbsd-core.c (netbsd_core_core_file_pid): Renamed to ... diff --git a/bfd/config.bfd b/bfd/config.bfd index 0bfb535..e42535f 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -634,7 +634,7 @@ case "${targ}" in ;; x86_64-*-mingw*) targ_defvec=x86_64pe_vec - targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec" + targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" want64=true targ_underscore=no ;; diff --git a/bfd/version.h b/bfd/version.h index d5cb1b3..df375d0 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20100902 +#define BFD_VERSION_DATE 20100904 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/config/ChangeLog b/config/ChangeLog index 22a3641..af06955 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2010-09-03 Andreas Krebbel + + * dfp.m4: New file. + 2010-08-21 Ralf Wildenhues PR target/45084 diff --git a/config/dfp.m4 b/config/dfp.m4 new file mode 100644 index 0000000..4cace76 --- /dev/null +++ b/config/dfp.m4 @@ -0,0 +1,53 @@ +dnl @synopsis GCC_AC_ENABLE_DECIMAL_FLOAT([target triplet]) +dnl +dnl Enable C extension for decimal float if target supports it. +dnl +dnl @author Andreas Krebbel + +AC_DEFUN([GCC_AC_ENABLE_DECIMAL_FLOAT], +[ +AC_ARG_ENABLE(decimal-float, +[ --enable-decimal-float={no,yes,bid,dpd} + enable decimal float extension to C. Selecting 'bid' + or 'dpd' choses which decimal floating point format + to use], +[ + case $enable_decimal_float in + yes | no | bid | dpd) ;; + *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float. +Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;; + esac +], +[ + case $1 in + powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux*) + enable_decimal_float=yes + ;; + *) + AC_MSG_WARN(decimal float is not supported for this target, ignored) + enable_decimal_float=no + ;; + esac +]) + +# x86's use BID format instead of DPD +case x$enable_decimal_float in + xyes) + case $1 in + i?86*-*-* | x86_64*-*-*) + enable_decimal_float=bid + ;; + *) + enable_decimal_float=dpd + ;; + esac + ;; + xno) + # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper + # dependency on libdecnumber. + enable_decimal_float=dpd + ;; +esac +AC_SUBST(enable_decimal_float) + +]) \ No newline at end of file diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2d2344c..f569efa 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,93 @@ +2010-09-04 Daniel Jacobowitz + + * breakpoint.c (can_use_hardware_watchpoint): Handle the first + value specially. + +2010-09-04 Jan Kratochvil + + Code cleanup - split print_stop_reason. + * infrun.c (enum inferior_stop_reason): Remove. + (print_stop_reason): Remove by splitting into ... + (print_exited_reason, print_signal_exited_reason) + (print_no_history_reason, print_signal_received_reason) + (print_end_stepping_range_reason): ... these new functions. Update + the preceding comment. + (handle_inferior_event): Change the calls to print_exited_reason, + print_signal_exited_reason, print_no_history_reason, + print_signal_received_reason, print_end_stepping_range_reason. + (handle_step_into_function, handle_step_into_function_backward): + Change the calls to print_end_stepping_range_reason. + +2010-09-03 Jan Kratochvil + + * breakpoint.c (save_breakpoints): Use RETURN_MASK_ALL. + * cli-out.c: Include vec.h. + (cli_field_fmt, cli_spaces, cli_text, cli_message, cli_flush): New + variable stream, initialize it, use it. + (cli_redirect): New function comment. Replace the stream and + original_stream fields by the new streams field. Remove the + original_stream != NULL conditional, assert error on NULL instead. + (out_field_fmt, field_separator): New variable stream, initialize it, use it. + (cli_out_data_ctor): Assert non-NULL stream. Replace the stream and + original_stream fields by the new streams field. + (cli_out_set_stream): Replace the stream field by the new streams + field. + * cli-out.h: Include vec.h. + (ui_filep): New typedef, call DEF_VEC_P for it. + (struct cli_ui_out_data): Replace the stream and original_stream + fields by the new streams field. + * cli/cli-logging.c (set_logging_redirect): Call ui_out_redirect with + NULL first. Extend the comment. + (handle_redirections): Call ui_out_redirect with output. + * python/py-breakpoint.c (bppy_get_commands): Move ui_out_redirect + calls outside of the TRY_CATCH block. + +2010-09-03 Joel Brobecker + + GDB 7.2 released. + +2010-09-02 Joel Brobecker + + Back out the following change: + | 2010-06-29 Hui Zhu + | * record.c (set_record_pic_cmdlist, + | show_record_pic_cmdlist): New variables. + | (set_record_pic_command, + | show_record_pic_command): New functions. + | (record_pic_function, record_pic_line, record_pic_enum, + | set_record_pic_type, record_pic_hide_nofunction, + | record_pic_hide_nosource, record_pic_hide_same): New variables. + | (record_pic_fputs): New function. + | (function_list, node_list, edge_list): New struct. + | (function_list, node_list, edge_list): New variables. + | (record_pic_cleanups, record_pic_node, + | record_pic_edge, cmd_record_pic): New functions. + | (_initialize_record): Add new commands for record pic. + +2010-09-02 Daniel Jacobowitz + + * config.in, configure: Regenerated. + * configure.ac: Check for waitpid. + * ser-pipe.c (pipe_close): Wait for the program to exit. + +2010-09-02 Jan Kratochvil + + * cli/cli-logging.c: Include gdb_assert.h. + (set_logging_overwrite): New function. + (logging_redirect): New comment. + (logging_no_redirect_file, set_logging_redirect) + (pop_output_files) : New. + (handle_redirections) : New variable + no_redirect_file. Remove file autoclose for tee_file_new. No longer + discard cleanup for the close of former OUTPUT. Set + LOGGING_NO_REDIRECT_FILE. + (handle_redirections) : gdb_assert + LOGGING_NO_REDIRECT_FILE. + (show_logging_command) : Adjust messages + for SAVED_FILENAME not NULL. + (_initialize_cli_logging): Install set_logging_overwrite and + set_logging_redirect. + 2010-09-02 Jan Kratochvil * iq2000-tdep.c (iq2000_scan_prologue): Initialize SAL.END. @@ -576,7 +666,7 @@ 2010-08-13 Jan Kratochvil - * cli-logging.c (logging_overwrite, logging_redirect): Make them + * cli/cli-logging.c (logging_overwrite, logging_redirect): Make them static. 2010-08-13 Ken Werner diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index a034d6a..1d3f7fc 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -8327,10 +8327,12 @@ can_use_hardware_watchpoint (struct value *v) { if (VALUE_LVAL (v) == lval_memory) { - if (value_lazy (v)) - /* A lazy memory lvalue is one that GDB never needed to fetch; - we either just used its address (e.g., `a' in `a.b') or - we never needed it at all (e.g., `a' in `a,b'). */ + if (v != head && value_lazy (v)) + /* A lazy memory lvalue in the chain is one that GDB never + needed to fetch; we either just used its address (e.g., + `a' in `a.b') or we never needed it at all (e.g., `a' + in `a,b'). This doesn't apply to HEAD; if that is + lazy then it was not readable, but watch it anyway. */ ; else { @@ -11487,7 +11489,7 @@ save_breakpoints (char *filename, int from_tty, fprintf_unfiltered (fp, " commands\n"); ui_out_redirect (uiout, fp); - TRY_CATCH (ex, RETURN_MASK_ERROR) + TRY_CATCH (ex, RETURN_MASK_ALL) { print_command_lines (uiout, tp->commands->commands, 2); } diff --git a/gdb/cli-out.c b/gdb/cli-out.c index de0559f..7867311 100644 --- a/gdb/cli-out.c +++ b/gdb/cli-out.c @@ -26,6 +26,7 @@ #include "cli-out.h" #include "gdb_string.h" #include "gdb_assert.h" +#include "vec.h" typedef struct cli_ui_out_data cli_out_data; @@ -224,11 +225,13 @@ cli_field_fmt (struct ui_out *uiout, int fldno, va_list args) { cli_out_data *data = ui_out_data (uiout); + struct ui_file *stream; if (data->suppress_output) return; - vfprintf_filtered (data->stream, format, args); + stream = VEC_last (ui_filep, data->streams); + vfprintf_filtered (stream, format, args); if (align != ui_noalign) field_separator (); @@ -238,20 +241,26 @@ static void cli_spaces (struct ui_out *uiout, int numspaces) { cli_out_data *data = ui_out_data (uiout); + struct ui_file *stream; if (data->suppress_output) return; - print_spaces_filtered (numspaces, data->stream); + + stream = VEC_last (ui_filep, data->streams); + print_spaces_filtered (numspaces, stream); } static void cli_text (struct ui_out *uiout, const char *string) { cli_out_data *data = ui_out_data (uiout); + struct ui_file *stream; if (data->suppress_output) return; - fputs_filtered (string, data->stream); + + stream = VEC_last (ui_filep, data->streams); + fputs_filtered (string, stream); } static void ATTRIBUTE_PRINTF (3, 0) @@ -262,8 +271,13 @@ cli_message (struct ui_out *uiout, int verbosity, if (data->suppress_output) return; + if (ui_out_get_verblvl (uiout) >= verbosity) - vfprintf_unfiltered (data->stream, format, args); + { + struct ui_file *stream = VEC_last (ui_filep, data->streams); + + vfprintf_unfiltered (stream, format, args); + } } static void @@ -280,25 +294,24 @@ static void cli_flush (struct ui_out *uiout) { cli_out_data *data = ui_out_data (uiout); + struct ui_file *stream = VEC_last (ui_filep, data->streams); - gdb_flush (data->stream); + gdb_flush (stream); } +/* OUTSTREAM as non-NULL will push OUTSTREAM on the stack of output streams + and make it therefore active. OUTSTREAM as NULL will pop the last pushed + output stream; it is an internal error if it does not exist. */ + static int cli_redirect (struct ui_out *uiout, struct ui_file *outstream) { cli_out_data *data = ui_out_data (uiout); if (outstream != NULL) - { - data->original_stream = data->stream; - data->stream = outstream; - } - else if (data->original_stream != NULL) - { - data->stream = data->original_stream; - data->original_stream = NULL; - } + VEC_safe_push (ui_filep, data->streams, outstream); + else + VEC_pop (ui_filep, data->streams); return 0; } @@ -315,10 +328,11 @@ out_field_fmt (struct ui_out *uiout, int fldno, const char *format,...) { cli_out_data *data = ui_out_data (uiout); + struct ui_file *stream = VEC_last (ui_filep, data->streams); va_list args; va_start (args, format); - vfprintf_filtered (data->stream, format, args); + vfprintf_filtered (stream, format, args); va_end (args); } @@ -329,8 +343,9 @@ static void field_separator (void) { cli_out_data *data = ui_out_data (uiout); + struct ui_file *stream = VEC_last (ui_filep, data->streams); - fputc_filtered (' ', data->stream); + fputc_filtered (' ', stream); } /* This is the CLI ui-out implementation functions vector */ @@ -364,8 +379,11 @@ struct ui_out_impl cli_ui_out_impl = void cli_out_data_ctor (cli_out_data *self, struct ui_file *stream) { - self->stream = stream; - self->original_stream = NULL; + gdb_assert (stream != NULL); + + self->streams = NULL; + VEC_safe_push (ui_filep, self->streams, stream); + self->suppress_output = 0; } @@ -385,8 +403,10 @@ struct ui_file * cli_out_set_stream (struct ui_out *uiout, struct ui_file *stream) { cli_out_data *data = ui_out_data (uiout); - struct ui_file *old = data->stream; + struct ui_file *old; + + old = VEC_pop (ui_filep, data->streams); + VEC_quick_push (ui_filep, data->streams, stream); - data->stream = stream; return old; } diff --git a/gdb/cli-out.h b/gdb/cli-out.h index b4cdd82..75875c4 100644 --- a/gdb/cli-out.h +++ b/gdb/cli-out.h @@ -22,14 +22,19 @@ #define CLI_OUT_H #include "ui-out.h" +#include "vec.h" + +/* Used for cli_ui_out_data->streams. */ + +typedef struct ui_file *ui_filep; +DEF_VEC_P (ui_filep); /* These are exported so that they can be extended by other `ui_out' implementations, like TUI's. */ struct cli_ui_out_data { - struct ui_file *stream; - struct ui_file *original_stream; + VEC (ui_filep) *streams; int suppress_output; }; diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c index af63dcc..fc486d3 100644 --- a/gdb/cli/cli-logging.c +++ b/gdb/cli/cli-logging.c @@ -21,6 +21,7 @@ #include "defs.h" #include "gdbcmd.h" #include "ui-out.h" +#include "gdb_assert.h" #include "gdb_string.h" @@ -46,6 +47,15 @@ show_logging_filename (struct ui_file *file, int from_tty, } static int logging_overwrite; + +static void +set_logging_overwrite (char *args, int from_tty, struct cmd_list_element *c) +{ + if (saved_filename) + warning (_("Currently logging to %s. Turn the logging off and on to " + "make the new setting effective."), saved_filename); +} + static void show_logging_overwrite (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) @@ -55,7 +65,72 @@ Whether logging overwrites or appends to the log file is %s.\n"), value); } +/* Value as configured by the user. */ static int logging_redirect; + +/* The on-disk file in use if logging is currently active together with + redirection turned off (and therefore using tee_file_new). For active + logging with redirection the on-disk file is directly in GDB_STDOUT and + this variable is NULL. */ +static struct ui_file *logging_no_redirect_file; + +static void +set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c) +{ + struct cleanup *cleanups = NULL; + struct ui_file *output, *new_logging_no_redirect_file; + + if (saved_filename == NULL + || (logging_redirect != 0 && logging_no_redirect_file == NULL) + || (logging_redirect == 0 && logging_no_redirect_file != NULL)) + return; + + if (logging_redirect != 0) + { + gdb_assert (logging_no_redirect_file != NULL); + + /* ui_out_redirect still has not been called for next gdb_stdout. */ + cleanups = make_cleanup_ui_file_delete (gdb_stdout); + + output = logging_no_redirect_file; + new_logging_no_redirect_file = NULL; + + if (from_tty) + fprintf_unfiltered (saved_output.out, "Redirecting output to %s.\n", + logging_filename); + } + else + { + gdb_assert (logging_no_redirect_file == NULL); + output = tee_file_new (saved_output.out, 0, gdb_stdout, 0); + if (output == NULL) + perror_with_name (_("set logging")); + new_logging_no_redirect_file = gdb_stdout; hooks/post-receive -- Repository for Project Archer.