aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-08-03Use a scoped_restore for command_nest_depthTom Tromey2-6/+11
This changes a couple of places to use a scoped_restore when manipulating command_nest_depth. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * cli/cli-script.c (execute_user_command) (execute_control_command): Use scoped_restore.
2017-08-03Remove user_call_depthTom Tromey2-15/+8
This changes execute_user_command to remove user_call_depth, using the size of user_args_stack instead. This avoids a cleanup. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * cli/cli-script.c (do_restore_user_call_depth): Remove. (execute_user_command): Remove user_call_depth; use user_args_stack's size instead.
2017-08-03Remove in_user_commandTom Tromey4-11/+7
While working on the next patch in this series, I found that the global in_user_command is not used. This patch removes it. (I didn't think to check Insight until submitting this series; and it's not very convenient to do so, so if someone has it checked out and could look at it, that would be nice.) ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * top.h (in_user_command): Remove. * top.c (in_user_command): Remove. * cli/cli-script.c (do_restore_user_call_depth) (execute_user_command): Update.
2017-08-03Use containers to avoid cleanupsTom Tromey10-108/+63
This patch introduces the use of various containers -- std::vector, std::string, or gdb::byte_vector -- in several spots in gdb that were using xmalloc and a cleanup. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * valops.c (search_struct_method): Use gdb::byte_vector. * valarith.c (value_concat): Use std::vector. * target.c (memory_xfer_partial): Use gdb::byte_vector. (simple_search_memory): Likewise. * printcmd.c (find_string_backward): Use gdb::byte_vector. * mi/mi-main.c (mi_cmd_data_write_memory): Use gdb::byte_vector. * gcore.c (gcore_copy_callback): Use gdb::byte_vector. * elfread.c (elf_rel_plt_read): Use std::string. * cp-valprint.c (cp_print_value): Use gdb::byte_vector. * cli/cli-dump.c (restore_section_callback): Use gdb::byte_vector.
2017-08-03Use unique_xmalloc_ptr in jit.cTom Tromey2-14/+9
This removes some cleanups from jit.c by using unique_xmalloc_ptr instead. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * jit.c (jit_reader_load_command): Use unique_xmalloc_ptr.
2017-08-03Replace tui_restore_gdbout with scoped_restoreTom Tromey2-20/+11
This patch replaces tui_restore_gdbout (a cleaup function) with a use of scoped_restore. This one is broken out into its own patch because it might slightly change the behavior of gdb: it saves and restores pagination_enabled, whereas the tui_restore_gdbout unconditionally set pagination_enabled to 1; and I think this warrants closer review. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * tui/tui-regs.c (tui_restore_gdbout): Remove. (tui_register_format): Use scoped_restore.
2017-08-03More uses of scoped_restoreTom Tromey5-115/+56
There were a few more places in gdb that could easily use scoped_restore, replacing some cleanups. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * reverse.c (exec_direction_default): Remove. (exec_reverse_once): Use scoped_restore. * remote.c (restore_remote_timeout): Remove. (remote_flash_erase, remote_flash_write, remote_flash_done) (readchar, remote_serial_write): Use scoped_restore. * cli/cli-script.c (struct source_cleanup_lines_args) (source_cleanup_lines): Remove. (script_from_file): Use scoped_restore. * cli/cli-cmds.c (source_verbose_cleanup): Remove. (source_command): Use scoped_restore.
2017-08-03Remove make_cleanup_free_soTom Tromey5-39/+26
make_cleanup_free_so is used in a single spot. This patch introduces a unique pointer wrapper for struct so_list, and changes this spot to use it. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * utils.h (make_cleanup_free_so): Remove. * utils.c (do_free_so, make_cleanup_free_so): Remove. * solist.h (struct so_deleter): New. (so_list_up): New typedef. * solib-svr4.c (svr4_read_so_list): Use so_list_up.
2017-08-03Remove make_cleanup_restore_current_languageTom Tromey6-36/+47
This patch replaces make_cleanup_restore_current_language with an RAII class that saves the current language, and restores it when the object is destroyed. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * utils.h (make_cleanup_restore_current_language): Remove. * utils.c (do_restore_current_language) (make_cleanup_restore_current_language): Remove. * parse.c (parse_exp_in_context_1) (parse_expression_with_language): Use scoped_restore_current_language. * mi/mi-main.c (mi_cmd_execute): Use scoped_restore_current_language. * language.h (scoped_restore_current_language): New class.
2017-08-03Remove an unlink cleanupTom Tromey2-19/+25
compile/compile.c had its own cleanup to unlink a file. This patch replaces this cleanup with gdb::unlinker. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * compile/compile.c (cleanup_unlink_file): Remove. (compile_to_object): Use gdb::unlinker. (eval_compile_command): Likewise.
2017-08-03Remove make_cleanup_fcloseTom Tromey3-20/+5
After the preceding patches, make_cleanup_fclose is no longer used, so remove it. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * utils.h (make_cleanup_fclose): Remove. * utils.c (do_fclose_cleanup, make_cleanup_fclose): Remove.
2017-08-03Change open_terminal_stream to return a gdb_file_upTom Tromey2-12/+17
This changes open_terminal_stream to return a gdb_file_up, eliminating another use of make_cleanup_fclose. Arguably perhaps new_ui should take ownership of the files using a move, but there is at least one spot where this isn't appropriate (or at least not currently done), so I elected to use a more minimal approach. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * top.c (open_terminal_stream): Return gdb_file_up. (new_ui_command): Update.
2017-08-03Use gdb_file_up in source.cTom Tromey2-29/+21
This changes some functions in source.c to use gdb_file_up. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * source.c (print_source_lines_base, forward_search_command) (reverse_search_command): Use gdb_file_up.
2017-08-03Use gdb_file_up in fbsd-nat.cTom Tromey2-4/+6
This updates fbsd-nat.c to use gdb_file_up. This removes a use of a cleanup, and helps remove make_cleanup_fclose in a later patch. I have no way to test this patch. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * fbsd-nat.c (fbsd_find_memory_regions): Update.
2017-08-03Change return type of find_and_open_scriptTom Tromey4-43/+59
This changes find_and_open_script to return a gdb::optional<open_script>, where open_script is a new type encapsulating the two return values. The new type helps avoid cleanups in the callers. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * cli/cli-cmds.c (find_and_open_script): Change return type. Remove "streamp" and "full_path" parameters. (source_script_with_search): Update. * auto-load.c (source_script_file): Update. * cli/cli-cmds.h (find_and_open_script): Change type. (open_script): New struct.
2017-08-03Introduce and use gdb_file_upTom Tromey15-153/+112
This introduces gdb_file_up, a unique pointer holding a FILE*, and then changes some code in gdb to use it. In particular gdb_fopen_cloexec now returns a gdb_file_up. This allow removing some cleanups. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * xml-support.c (xml_fetch_content_from_file): Update. * ui-file.c (stdio_file::open): Update. * tracefile-tfile.c (tfile_start): Update. * remote.c (remote_file_put, remote_file_get): Update. * nat/linux-procfs.c (linux_proc_get_int) (linux_proc_pid_get_state, linux_proc_tid_get_name): Update. * nat/linux-osdata.c (linux_common_core_of_thread): Update. (command_from_pid, commandline_from_pid, linux_xfer_osdata_cpus) (print_sockets, linux_xfer_osdata_shm, linux_xfer_osdata_sem) (linux_xfer_osdata_msg, linux_xfer_osdata_modules): Update. * nat/linux-btrace.c (linux_determine_kernel_start): Update. * linux-nat.c (linux_proc_pending_signals): Update. * dwarf2read.c (write_psymtabs_to_index): Use gdb_file_up. (file_closer): Remove. * compile/compile.c (compile_to_object): Update. * common/filestuff.h (struct gdb_file_deleter): New. (gdb_file_up): New typedef. (gdb_fopen_cloexec): Change return type. * common/filestuff.c (gdb_fopen_cloexec): Return gdb_file_up. * cli/cli-dump.c (fopen_with_cleanup): Remove. (dump_binary_file, restore_binary_file): Update. * auto-load.c (auto_load_objfile_script_1): Update.
2017-08-03Introduce and use ui_out_emit_tableTom Tromey14-196/+212
This introduces ui_out_emit_table, similar to the other existing ui_out RAII classes, and then uses it in a number of places. This replaces some cleanups. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * tracepoint.c (tvariables_info_1): Use ui_out_emit_table. (info_static_tracepoint_markers_command): Likewise. * solib.c (info_sharedlibrary_command): Use ui_out_emit_table. * skip.c (skip_info): Use ui_out_emit_table. * progspace.c (print_program_space): Use ui_out_emit_table. * osdata.c (info_osdata): Use ui_out_emit_table. * mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions): Use ui_out_emit_table. * linux-thread-db.c (info_auto_load_libthread_db): Use ui_out_emit_table. * inferior.c (print_inferior): Use ui_out_emit_table. * gdb_bfd.c (maintenance_info_bfds): Use ui_out_emit_table. * breakpoint.c (breakpoint_1): Use ui_out_emit_table. * auto-load.c (auto_load_info_scripts): Use ui_out_emit_table. * ada-tasks.c (print_ada_task_info): Use ui_out_emit_table. * ui-out.h (class ui_out_emit_table): New.
2017-08-03Add more targets to the list of architectures not supporting format changing ↵Nick Clifton5-19/+67
during linking. Fix seg-faults triggered when this is attempted. PR ld/21884 * testsuite/ld-elf/pr21884.d: Add AVR, HPPA, IA64, M68HC1x and SCORE to list of targets not supporting file format changes during linking. * testsuite/ld-unique/pr21529.d: Likewise. * emultempl/avrelf.em (_before_allocation): Skip for non-ELF output formats. (avr_elf_create_output_section_statements): Fail if the output format is not ELF. (avr_finish): Do not access the ELF header in non-ELF format output bfds. * emultempl/m68hc1xelf.em (_before_allocation): Skip for non-ELF output formats. (m68hc11elf_create_output_section_statements): Fail if the putput format is not ELF. (m68hc11elf_after_allocation): Skip for non-ELF output formats.
2017-08-03ELF checks for orphan placementAlan Modra2-29/+55
The loop checking for previous orphan placement should run even when the output is non-ELF. PR ld/21884 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Revert last change. Rename iself to elfinput. Expand comments. Condition ELF checks on having both input and output ELF files. Extract.. (elf_orphan_compatible): ..this new function.
2017-08-03Automatic date update in version.inGDB Administrator1-1/+1
2017-08-02MIPS: Factor out FPU type naming in `gdbarch' debugMaciej W. Rozycki2-8/+25
Replace chains of conditional expressions used in target-dependent MIPS `gdbarch' debug output to get a textual name of the FPU type with calls to a helper decoder function, improving code readability. No functional change. gdb/ * mips-tdep.c (mips_fpu_type_str): New function. (mips_dump_tdep): Call it.
2017-08-02Check ELF section header only for ELF outputH.J. Lu6-1/+40
When placing an orphan input section, check ELF section header only for ELF output. PR ld/21884 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check ELF section header only for ELF output. * testsuite/ld-elf/pr21884.d: New test. * testsuite/ld-elf/pr21884.t: Likewise. * testsuite/ld-elf/pr21884a.s: Likewise. * testsuite/ld-elf/pr21884b.s: Likewise.
2017-08-02Revert the last change to emultempl/elf32.emH.J. Lu2-2/+4
It will be replaced by a different fix. * emultempl/elf32.em (_place_orphan): Revert the last change.
2017-08-02Add support for creating archives of slim-LTO modules using MRi script commands.Nick Clifton2-4/+15
PR 21702 * arsup.c (ar_addmod): Add plugin support for the MRI ADDMOD command.
2017-08-02Fix assertion failure for xtensa linker.Max Filippov2-1/+6
* emultempl/xtensaelf.em (xtensa_wild_group_interleave_callback): Only check for by_name sorting.
2017-08-02Fix seg-fault when trying to place non-ELF orphan sections.Nick Clifton2-0/+8
PR 21884 * emultempl/elf32.em (_place_orphan): Skip non-ELF binaries when looking for sections to merge.
2017-08-02Fix potential illegal memory access in Xtensa port.Max Filippov2-1/+7
* xtensa-isa.c (xtensa_isa_init): Don't update lookup table entries for sysregs with negative indices.
2017-08-02Fix gas and binutils testsuite failures for am33_2.0-linux target.Nick Clifton16-24/+49
gas * testsuite/gas/all/gas.exp: Add am33 to the skip lists of tests passed over by the mn10300 target. * testsuite/gas/elf/elf.exp: Likewise. * testsuite/gas/elf/dwarf2-11.d: Correct skip of am33 target. * testsuite/gas/elf/dwarf2-12.d: Likewise. * testsuite/gas/elf/dwarf2-13.d: Likewise. * testsuite/gas/elf/dwarf2-14.d: Likewise. * testsuite/gas/elf/dwarf2-15.d: Likewise. * testsuite/gas/elf/dwarf2-16.d: Likewise. * testsuite/gas/elf/dwarf2-17.d: Likewise. * testsuite/gas/elf/dwarf2-18.d: Likewise. * testsuite/gas/elf/dwarf2-5.d: Likewise. * testsuite/gas/elf/dwarf2-6.d: Likewise. * testsuite/gas/elf/dwarf2-7.d: Likewise. binutils * testsuite/binutils-all/objdump.exp (cpus_expected): Add am33-2.
2017-08-02Teach readelf about IA64 MSB relocs.Alan Modra2-4/+15
* readelf.c (is_32bit_abs_reloc): Add R_IA64_SECREL32MSB and R_IA64_DIR32MSB. (is_64bit_abs_reloc): Add R_IA64_DIR64MSB. (is_64bit_pcrel_reloc): Add R_IA64_PCREL64MSB.
2017-08-02Automatic date update in version.inGDB Administrator1-1/+1
2017-08-01MIPS: Consistently use MIPS_FPU_TYPE for `gdbarch' memberMaciej W. Rozycki2-2/+7
Complement commit 74ed0bb4148e ("Replace current_gdbarch in *mips*"), <https://sourceware.org/ml/gdb-patches/2008-06/msg00490.html>, and consistently use the MIPS_FPU_TYPE macro to access the `->mips_fpu_type' target-dependent `gdbarch' member. No functional change. gdb/ * mips-tdep.c (mips_gdbarch_init): Use MIPS_FPU_TYPE to access `->mips_fpu_type'.
2017-08-01S/390: Fix claimfile failuresAndreas Krebbel3-0/+12
This fixes a segfault when trying to access the local_plt field in the s390 specific elf data althoug the underlaying object is a generic elf object. This fixes the following testsuite failures: < FAIL: plugin claimfile replace symbol with source < FAIL: plugin claimfile resolve symbol with source < FAIL: plugin claimfile replace file with source < FAIL: plugin set symbol visibility with source < FAIL: plugin ignore lib with source < FAIL: plugin claimfile replace lib with source < FAIL: plugin 2 with source lib < FAIL: load plugin 2 with source < FAIL: plugin 3 with source lib < FAIL: load plugin 3 with source bfd/ChangeLog: 2017-08-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * elf32-s390.c (elf_s390_finish_dynamic_sections): Skip if it isn't the S/390 specific elf data. * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
2017-08-01x86: Update segment register check in Intel syntaxH.J. Lu7-18/+57
https://sourceware.org/ml/binutils/2009-04/msg00223.html introduced a new Intel syntax parser which accepts mov eax, fs:gs:[eax] It ignores anything between ':'s after fs and treats mov eax, DWORD PTR fs:foobar:16 mov eax, DWORD PTR fs:foobar:barfoo:16 mov eax, DWORD PTR fs:ds:16 mov eax, DWORD PTR fs:ds:cs:16 as mov eax, DWORD PTR fs:16 This patch updates segment register check and only allows a single ':'. PR gas/21874 * config/tc-i386-intel.c (i386_intel_operand): Update segment register check. * testsuite/gas/i386/intelok.s: Replace "fs:gs:[eax]" with "fs:[eax]". * testsuite/gas/i386/inval-seg.s: Add tests for invalid segment register. * testsuite/gas/i386/x86-64-inval-seg.s: Likewise. * testsuite/gas/i386/inval-seg.l: Updated. * testsuite/gas/i386/x86-64-inval-seg.l: Likewise.
2017-08-01Updated Swedish translation for the binutils sub-directory.Nick Clifton2-1202/+580
* po/sv.po: Updated Swedish translation.
2017-08-01[GOLD] PowerPC recreate eh_frame for stubs on each relax passAlan Modra6-18/+137
There is a very small but non-zero probability that a stub group contains stubs on one relax pass, but does not on the next. In that case we would get an FDE covering a zero length address range. (Actually, it's even worse. Alignment padding for stubs can mean the address for the non-existent stubs is past the end of the original section to which stubs are attached, and due to the way do_plt_fde_location calculates the length we can get a negative length.) Fixing this properly requires removing the FDE. Also, I have been implementing the __tls_get_addr_opt support for gold, and that stub needs something other than the default FDE. The necessary FDE will depend on the offset to the __tls_get_addr_opt stub, which of course can change during relaxation. That means at the very least, rewriting the FDE on each pass, possibly changing the FDE size. I think that is better done by completely recreating PLT eh_frame FDEs. * ehframe.cc (Fde::operator==): New. (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): New. * ehframe.h (Fde::operator==): Declare. (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): Likewise. * layout.cc (Layout::remove_eh_frame_for_plt): New. * layout.h (Layout::remove_eh_frame_for_plt): Declare. * powerpc.cc (Target_powerpc::do_relax): Remove old eh_frame FDEs. (Stub_table::add_eh_frame): Delete eh_frame_added_ condition. Don't add eh_frame for empty stub section. (Stub_table::remove_eh_frame): New.
2017-08-01Automatic date update in version.inGDB Administrator1-1/+1
2017-07-31Update myself in MAINTAINERSRichard Henderson1-2/+1
2017-07-31Fix bb instructions with double-word condition on hppa.John David Anglin2-3/+6
2017-07-31Improve handling of ADD and SUB relocations on the RISCV target.Kuan-Lin Chen2-9/+80
* elfxx-riscv.c (riscv_elf_add_sub_reloc): New function. * (howto_table) [R_RISCV_ADD8]: Use riscv_elf_add_sub_reloc. [R_RISCV_ADD16]: Likewise. [R_RISCV_ADD32]: Likewise. [R_RISCV_ADD64]: Likewise. [R_RISCV_SUB6]: Likewise. [R_RISCV_SUB8]: Likewise. [R_RISCV_SUB16]: Likewise. [R_RISCV_SUB32]: Likewise. [R_RISCV_SUB64]: Likewise.
2017-07-31Fix compile time error when using ansidecl.h with an old version of GCC.Nick Clifton2-12/+24
PR 21850 * ansidecl.h (OVERRIDE): Protect check of __cplusplus value with #idef __cplusplus.
2017-07-31Update ChangeLog (missed that in my previous commit)Xavier Roirand1-0/+4
gdb/ * ChangeLog: Add previous commit entry Change-Id: Ic4f07cca66126e73340f032f19a2d5029bf0d40a
2017-07-31[GOLD] PowerPC --no-tls-optimizeAlan Modra3-15/+42
This adds a --no-tls-optimize option for people who want to keep __tls_get_addr calls in an executable rather than optimizing such code sequences to IE/LE. Also tidy some formatting errors, rename a variable to better reflect its use, and tweak two functions that create pairs of GOT entries to first check whether the GOT entry already exists before potentially inserting the header via reserve(2). Without the check it is possible to waste one GOT entry. * options.h (no_tls_optimize): New powerpc option. * powerpc.cc (Target_powerpc::abiversion, set_abiversion): Formatting. (Target_powerpc::stk_toc): Formatting, fix comment. (Target_powerpc::Track_tls::tls_get_addr_state): Rename from tls_get_addr. (Target_powerpc::optimize_tls_gd, optimize_tls_ld, optimize_tls_ie): Return TLSOPT_NONE when !tls_optimize. (Target_powerpc::add_global_pair_with_rel): Check for existing reloc before reserving. (Target_powerpc::add_local_tls_pair): Likewise.
2017-07-31Fix compiling zlib using x86_64-musl.Marty Plummer2-1/+6
PR 21861 * winduni.c (codepages): Use cp1252 for codepage 0.
2017-07-31Fix documentation about rot agent expression bytecodeSimon Marchi2-2/+9
The rot agent expression bytecode rotates the three items on the top of the stack. It is not clear which way the rotation is. However, the documentation currently shows this as the effect of the instructions: a b c => c b a which doesn't make sense, since the value b doesn't move. The two valid possibilities I see are a b c => b c a a b c => c a b depending on which way you rotate. When looking at the gdbserver code, the top of the stack becomes the third item, and the next-to-top item becomes the top. So the second form would be the right one, since in this notation the top of the stack is the rightmost element: a b c => c a b I adjusted the symbolic description and added a bit of text to make it more obvious. gdb/doc/ChangeLog: * agentexpr.texi (rot): Fix symbolic description, improve textual description.
2017-07-31darwin: handle recent version of dyldXavier Roirand1-1/+1
gdb/ * solib-darwin.c (DYLD_VERSION_MAX): Increase value. Change-Id: I45da25f46b3e452d44993b122a994c818d00020b
2017-07-31PR 21847, PowerPC64 --plt-localentry againAlan Modra6-2/+29
This makes ld warn about --plt-localentry if a version of glibc without the necessary ld.so checks is detected, and revises the documentation. bfd/ * elf64-ppc.c (ppc64_elf_tls_setup): Warn on --plt-localentry without ld.so checks. gold/ * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry without ld.so checks. ld/ * ld.texinfo (plt-localentry): Revise.
2017-07-31Automatic date update in version.inGDB Administrator1-1/+1
2017-07-30Automatic date update in version.inGDB Administrator1-1/+1
2017-07-29PR 21847, Don't default PowerPC64 to --plt-localentryAlan Modra6-6/+56
The big comment in ppc64_elf_tls_setup says why. I've also added some code to the bfd linker that catches the -lpthread -lc symbol differences and disable generation of optimized call stubs even when --plt-localentry is activated. Gold doesn't yet have that. PR 21847 bfd/ * elf64-ppc.c (struct ppc_link_hash_entry): Add non_zero_localentry. (ppc64_elf_merge_symbol): Set non_zero_localentry. (is_elfv2_localentry0): Test non_zero_localentry. (ppc64_elf_tls_setup): Default to --no-plt-localentry. gold/ * powerpc.cc (Target_powerpc::scan_relocs): Default to --no-plt-localentry. ld/ * ld.texinfo (plt-localentry): Document.
2017-07-29Automatic date update in version.inGDB Administrator1-1/+1