aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-11-10Work around GCC bug 63748Ulrich Weigand2-2/+6
A recent change to eval.c triggered a GCC bug that causes a false positive "may be used uninitialized" warning in evaluate_subexp_standard. This seems to be triggered by a specific CFG constructed via setjmp and gotos. While the GCC bug is in the process of being fixed, there are released compiler versions (in particular GCC 4.9) in the field that show this problem. In order to allow compiling GDB with one of those compilers, this commit slightly reworks the CFG (in an equivalent way) of the affected function, so that the GCC bug is no longer triggered. gdb/ChangeLog: * eval.c (evaluate_subexp_standard): Work around GCC bug 63748.
2014-11-10daily updateAlan Modra1-1/+1
2014-11-09daily updateAlan Modra1-1/+1
2014-11-08Correct buffer overrun testAlan Modra2-2/+6
* peXXigen.c (pe_print_idata): Revert last patch, cast lhs instead.
2014-11-07Fix a typo in gas/ChangeLogH.J. Lu1-1/+2
2014-11-07Fix race condition when using --threads with linker plugins.Evgeniy Dushistov3-1/+14
2014-11-06 Evgeniy Dushistov <dushistov@mail.ru> gold/ * plugin.cc: use lock to searialize calls of Plugin_manager::claim_file * plugin.h: add lock definition
2014-11-08daily updateAlan Modra1-1/+1
2014-11-07Cast time value to unsigned long to printH.J. Lu2-1/+7
* readelf.c (process_dynamic_section): Cast time value to unsigned long to print.
2014-11-07Cast to unsigned long in range checksH.J. Lu2-2/+7
* peXXigen.c (pe_print_idata): Cast to unsigned long in range checks.
2014-11-07X32: Add REX prefix to encode R_X86_64_GOTTPOFFH.J. Lu9-8/+76
Structions with R_X86_64_GOTTPOFF relocation must be encoded with REX prefix even if it isn't required by destination register. Otherwise linker can't safely perform IE -> LE optimization. bfd/ PR ld/17482 * elf64-x86-64.c (elf_x86_64_relocate_section): Update comments for IE->LE transition. gas/ PR ld/17482 * config/tc-i386.c (output_insn): Add a dummy REX_OPCODE prefix for structions with R_X86_64_GOTTPOFF relocation for x32 if needed. gas/testsuite/ PR ld/17482 * gas/i386/ilp32/x32-tls.d: New file. * gas/i386/ilp32/x32-tls.s: Likewise. ld/testsuite/ PR ld/17482 * ld-x86-64/tlsie4.dd: Updated.
2014-11-07gdb.base/sigstep.exp: xfail gdb/17511 on i?86 LinuxPedro Alves2-0/+7
Running gdb.base/sigstep.exp with --target=i686-pc-linux-gnu on a 64-bit kernel naturally trips on PR gdb/17511 as well, given this is a kernel bug. I haven't really tested a real 32-bit kernel/machine, but given the code in question in the kernel is shared between 32-bit and 64-bit, I'm quite sure the bug triggers in those cases as well. So, simply xfail i?86-*-linux* too. gdb/testsuite/ 2014-11-07 Pedro Alves <palves@redhat.com> PR gdb/17511 * gdb.base/sigstep.exp (in_handler_map) <si+advance>: xfail i?86-*-linux*.
2014-11-07Revert old nexti prologue check and eliminate in_prologuePedro Alves4-83/+8
The in_prologue check in the nexti code is obsolete; this commit removes that, and then removes the in_prologue function as nothing else uses it. Looking at the code in GDB that makes use in_prologue, all we find is this one caller: if ((ecs->event_thread->control.step_over_calls == STEP_OVER_NONE) || ((ecs->event_thread->control.step_range_end == 1) && in_prologue (gdbarch, ecs->event_thread->prev_pc, ecs->stop_func_start))) { /* I presume that step_over_calls is only 0 when we're supposed to be stepping at the assembly language level ("stepi"). Just stop. */ /* Also, maybe we just did a "nexti" inside a prolog, so we thought it was a subroutine call but it was not. Stop as well. FENN */ /* And this works the same backward as frontward. MVS */ end_stepping_range (ecs); return; } This was added by: commit 100a02e1deec2f037a15cdf232f026dc79763bf8 ... From Fernando Nasser: * infrun.c (handle_inferior_event): Handle "nexti" inside function prologues. The mailing list thread is here: https://sourceware.org/ml/gdb-patches/2001-01/msg00047.html Not much discussion there, and no test, but looking at the code around what was patched in that revision, we see that the checks that detect whether the program has just stepped into a subroutine didn't rely on the unwinders at all back then. From 'git show 100a02e1:gdb/infrun.c': if (stop_pc == ecs->stop_func_start /* Quick test */ || (in_prologue (stop_pc, ecs->stop_func_start) && ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ !IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name)) || IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name) || ecs->stop_func_name == 0) { /* It's a subroutine call. */ if ((step_over_calls == STEP_OVER_NONE) || ((step_range_end == 1) && in_prologue (prev_pc, ecs->stop_func_start))) { /* I presume that step_over_calls is only 0 when we're supposed to be stepping at the assembly language level ("stepi"). Just stop. */ /* Also, maybe we just did a "nexti" inside a prolog, so we thought it was a subroutine call but it was not. Stop as well. FENN */ stop_step = 1; print_stop_reason (END_STEPPING_RANGE, 0); stop_stepping (ecs); return; } Stripping the IN_SOLIB_RETURN_TRAMPOLINE checks for simplicity, we had: if (stop_pc == ecs->stop_func_start /* Quick test */ || in_prologue (stop_pc, ecs->stop_func_start) || ecs->stop_func_name == 0) { /* It's a subroutine call. */ That is, detecting a subroutine call was based on prologue detection back then. So the in_prologue check in the current tree only made sense back then as it was undoing a bad decision the in_prologue check that used to exist above did. Today, the check for a subroutine call relies on frame ids instead, which are stable throughout the function. So we can just remove the in_prologue check for nexti, and the whole in_prologue function along with it. Tested on x86_64 Fedora 20, and also by nexti-ing manually a prologue. gdb/ 2014-11-07 Pedro Alves <palves@redhat.com> * infrun.c (process_event_stop_test) <subroutine check>: Don't check if we did a "nexti" inside a prologue. * symtab.c (in_prologue): Delete function. * symtab.h (in_prologue): Delete declaration.
2014-11-07Add more fixes for inavlid memory accesses triggered by corrupt files.Nick Clifton2-91/+226
PR binutils/17531 * readelf.c (get_data): Avoid allocating memory when we know that the read will fail. (find_section_by_type): New function. (get_unwind_section_word): Check for invalid symbol indicies. Check for invalid reloc types. (get_32bit_dynamic_section): Add range checks. (get_64bit_dynamic_section): Add range checks. (process_dynamic_section): Check for a corrupt time value. (process_symbol_table): Add range checks. (dump_section_as_strings): Add string length range checks. (display_tag_value): Likewise. (display_arm_attribute): Likewise. (display_gnu_attribute): Likewise. (display_tic6x_attribute): Likewise. (display_msp430x_attribute): Likewise. (process_mips_specific): Add range check.
2014-11-07tekhex architecureAlan Modra2-1/+7
is a don't care. * tekhex.c (tekhex_set_arch_mach): Ignore unknown arch errors.
2014-11-07tekhex buffer management and symbol typesAlan Modra2-45/+79
Dramatically reduces memory consumption and processing time for large all-zero data segments. Allows multiple symbol types attached to a given segment to survive objcopy. * tekhex.c (CHUNK_SPAN): Define. (struct data_struct <chunk_init>): Use one byte per span, update all code accessing this field. (find_chunk): Add create param, don't create new entry unless set. (insert_byte): Don't save zeros. (first_phase): Set section SEC_CODE or SEC_DATA flag depending on symbol type. Create an alternate section if both types of symbol are given. Attach type '2' and '6' symbols to absolute section. (move_section_contents): Fix caching of chunk. Don't create chunk when reading, or for writing zeros. (tekhex_set_section_contents): Don't create initial chunks. (tekhex_write_object_contents): Use CHUNK_SPAN.
2014-11-07aoutx.h tidyAlan Modra2-14/+14
Save a multiplication, and any concern that the buffer allocation might be smaller than the amount read (as it could be if the header size isn't a multiple of EXTERNAL_NLIST_SIZE). * aoutx.h (aout_get_external_symbols): Tidy allocation of symbol buffer.
2014-11-06symtab.h (lookup_global_symbol): Improve function comment.Doug Evans2-0/+12
gdb/ChangeLog: * symtab.h (lookup_global_symbol): Improve function comment.
2014-11-06Rename lookup_symbol_global to lookup_global_symbol.Doug Evans7-15/+22
gdb/ChangeLog: * symtab.c (lookup_global_symbol): Renamed from lookup_symbol_global. All callers updated. * symtab.h (lookup_global_symbol): Update decl. (lookup_static_symbol): Move decl to better location.
2014-11-06symtab.c (basic_lookup_symbol_nonlocal): Add comment.Doug Evans2-0/+8
gdb/ChangeLog: * symtab.c (basic_lookup_symbol_nonlocal): Add comment.
2014-11-06Rename some "aux" functions.Doug Evans2-40/+52
"aux" doesn't contribute anything to the name, and it makes the reader wonder what it's supposed to mean. gdb/ChangeLog: * symtab.c (lookup_local_symbol): Renamed from lookup_symbol_aux_local. All callers updated. (lookup_symbol_in_all_objfiles): Renamed from lookup_symbol_aux_symtabs. All callers updated. (lookup_symbol_via_quick_fns): Renamed from lookup_symbol_aux_quick. All callers updated. (lookup_symbol_in_objfile_symtabs): Renamed from lookup_symbol_aux_objfile. All callers updated.
2014-11-06lookup_symbol_in_block: Renamed from lookup_symbol_aux_block.Doug Evans4-9/+14
gdb/ChangeLog: * symtab.c (lookup_symbol_in_block): Renamed from lookup_symbol_aux_block. All callers updated.
2014-11-06Rename lookup_symbol_static to lookup_symbol_in_static_block,Doug Evans6-18/+26
and lookup_static_symbol_aux to lookup_static_symbol. gdb/ChangeLog: * symtab.c (lookup_static_symbol): Renamed from lookup_static_symbol_aux. All callers updated. (lookup_symbol_in_static_block): Renamed from lookup_symbol_static. All callers updated.
2014-11-06New macro ALL_BLOCK_SYMBOLS_WITH_NAME.Doug Evans5-12/+20
gdb/ChangeLog: * block.h (ALL_BLOCK_SYMBOLS_WITH_NAME): New macro. * block.c (block_lookup_symbol): Use it. * cp-support.c (make_symbol_overload_list_block): Use it. * symtab.c (iterate_over_symbols): Use it.
2014-11-06Move lookup_block_symbol to block.c, rename to block_lookup_symbol.Doug Evans8-76/+85
There is another function, lookup_symbol_aux_block, and the names lookup_block_symbol and lookup_symbol_aux_block don't convey any real difference between them. The difference is that lookup_block_symbol lives in the lower level block API, and lookup_symbol_aux_block lives in the higher level symtab API. This patch makes this distinction clear. gdb/ChangeLog: * symtab.c (lookup_block_symbol): Moved to ... * block.c (block_lookup_symbol): ... here and renamed. All callers updated. * block.h (block_lookup_symbol): Declare. * symtab.h (lookup_block_symbol): Delete.
2014-11-07Revert bfd_get_size checksAlan Modra6-40/+11
* archive.c (_bfd_slurp_extended_name_table): Revert bfd_get_size check. * coffcode.h (coff_set_alignment_hook): Likewise. (coff_slurp_line_table): Likewise. * coffgen.c (coff_get_normalized_symtab): Likewise. (_bfd_coff_get_external_symbols): Likewise. * elf.c (bfd_elf_get_str_section): Likewise. * tekhex.c (first_phase): Likewise.
2014-11-06Use ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS in some places.Doug Evans3-5/+15
Non-primary symtabs share the block vector with their primary symtabs. In these cases there's no need to use ALL_SYMTABS. gdb/ChangeLog: * ada-lang.c (ada_make_symbol_completion_list): Use ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS. * symtab.c (lookup_objfile_from_block): Ditto.
2014-11-06Forgotten ChangeLog entry for previous commit.Doug Evans1-0/+5
gdb/ChangeLog: * gdbtypes.h (TYPE_CODE_CLASS): Delete. All uses changed to use TYPE_CODE_STRUCT.
2014-11-06Delete TYPE_CODE_CLASS, it's just an alias of TYPE_CODE_STRUCT.Doug Evans19-40/+27
gdb/ChangeLog: * gdbtypes.h (TYPE_CODE_CLASS): Delete. All uses changed to use TYPE_CODE_STRUCT.
2014-11-06solib_global_lookup: Fetch arch from objfile, not target_gdbarch.Doug Evans4-3/+11
gdb/ChangeLog: * objfiles.c (get_objfile_arch): Constify. * objfiles.h (get_objfile_arch): Update prototype. * solib.c (solib_global_lookup): Fetch arch from objfile, not target_gdbarch.
2014-11-07daily updateAlan Modra1-1/+1
2014-11-06Add mach parameter to nios2_find_opcode_hash.Sandra Loosemore6-7/+23
2014-11-06 Sandra Loosemore <sandra@codesourcery.com> include/opcode/ * nios2.h (nios2_find_opcode_hash): Add mach parameter to declaration. Fix obsolete comment. opcodes/ * nios2-dis.c (nios2_find_opcode_hash): Add mach parameter. (nios2_disassemble): Adjust call to nios2_find_opcode_hash. gas/ * config/tc-nios2.c (nios2_diagnose_overflow): Adjust call to nios2_find_opcode_hash.
2014-11-06Update Nios II prologue analysis to remove detection of long-obsoleteSandra Loosemore2-90/+14
code sequences. 2014-11-06 Sandra Loosemore <sandra@codesourcery.com> gdb/ * nios2-tdep.c (wild_insn): Delete. (profiler_insn, irqentry_insn): Delete. (nios2_match_sequence): Delete. (nios2_analyze_prologue): Update comments. Remove matching of obsolete profiler_insn and irqentry_insn sequences.
2014-11-06Prevent archive memebers with illegal pathnames from being extracted from an ↵Nick Clifton6-7/+65
archive. PR binutils/17552, binutils/17533 * bucomm.c (is_valid_archive_path): New function. Returns false for absolute pathnames and pathnames that include /../. * bucomm.h (is_valid_archive_path): Add prototype. * ar.c (extract_file): Use new function to check for valid pathnames when extracting files from an archive. * objcopy.c (copy_archive): Likewise. * doc/binutils.texi: Update documentation to mention the limitation on pathname of archive members.
2014-11-06Revert changes in previous deltas that introduced new failures intoNick Clifton4-19/+17
the linker testsuite. * aoutx.h (slurp_symbol_table): Revert previous delta. (slurp_reloc_table): Likewise. * compress.c (bfd_get_full_section_contents): Remove file size test. * coffgen.c (coff_get_normalized_symtab): Allow zero-sized symtabs and do not complain about linker generated files.
2014-11-06bfd/elf-attrs.c: Fix possible infinite loop parsing attributesWill Newton2-0/+9
Handle the case of a zero length section or sub-section in _bfd_elf_parse_attributes and in doing so prevent an infinite loop in the parser. bfd/ChangeLog: 2014-11-06 Will Newton <will.newton@linaro.org> * elf-attrs.c (_bfd_elf_parse_attributes): Handle zero length sections and sub-sections.
2014-11-06daily updateAlan Modra1-1/+1
2014-11-05More fixes for memory problems uncovered by file fuzzers.Nick Clifton3-7/+28
PR binutils/17512 * coffcode.h (handle_COMDAT): Replace abort with BFD_ASSERT. Replace another abort with an error message. (coff_slurp_line_table): Add more range checking. * peXXigen.c (pe_print_debugdata): Add range checking.
2014-11-05More fixes for reading corrupt ELF files.Nick Clifton2-63/+175
PR binutils/15731 * readelf.c (printable_section_name): New function. (printable_section_name_from_index): New function. (dump_relocations): Use new function. (process_program_headers, get_32bit_elf_symbols, (get_64bit_elf_symbols, process_section_headers, (process_section_groups, process_relocs, ia64_process_unwind, (hppa_process_unwind, get_unwind_section_word, decode_arm_unwind, (arm_process_unwind, process_version_sections, (process_symbol_table, apply_relocations, get_section_contents, (dump_section_as_strings, dump_section_as_bytes, (display_debug_section, process_attributes, process_mips_specific, (process_mips_specific process_gnu_liblist): Likewise. (get_unwind_section_word): Check for a missing symbol table. Replace aborts with error messages. (arm_process_unwind): Check for a missing string table. (process_attributes): Check for an attribute length that is too small. (process_mips_specific): Check for a corrupt GOT symbol offset.
2014-11-05Fix gnu11 fallout on Solaris 10+Rainer Orth2-1/+4
* sigsetmask.c (_POSIX_SOURCE): Remove.
2014-11-05Fix segfault when creating a dso with discarded .dynsym section.Matthew Fortune2-2/+9
bfd/ * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Fix segfault when creating a dso with discarded dynsym section.
2014-11-05Update .MIPS.abiflags to support MIPS R6Matthew Fortune11-0/+109
bfd/ * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6 and E_MIPS_ARCH_64R6 support. ld/testsuite/ * ld-mips-elf/abiflags-strip10-ph.d: New file. * ld-mips-elf/mips-eld.exp: Run the new test. gas/ * config/tc-mips.c (mips_elf_final_processing): Add INSN_ISA32R6 and INSN_ISA64R6 support. gas/testsuite/ * gas/mips/elf_arch_mips32r6.d: New file. * gas/mips/elf_arch_mips64r6.d: New file. * gas/mips/mips.exp: Run the new tests.
2014-11-052014-11-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>Jan-Benedict Glaw2-2/+7
* readelf.c (process_mips_specific): Fix format string warning.
2014-11-05More fixes for processing corrupt files.Nick Clifton3-39/+129
PR binutils/17512 * coffcode.h (coff_set_alignment_hook): Warn if the file lies about the number of relocations it contains. (coff_sort_func_alent): Return 0 if the pointers are NULL. (coff_slurp_line_table): Add more range checks. Do not free new tables created when sorting line numbers. * peXXigen.c (pe_print_idata): Add range checks. (pe_print_edata): Likewise. (rsrc_print_resource_entries): Likewise. Avoid printing control characters. Terminate priniting if corruption is detected. (rsrc_print_resource_directory): Terminate printing if an unknown directory type is encountered. (pe_print_debugdata): Fix off-by-one error. (rsrc_count_entries): Add range checking. (rsrc_parse_entry): Likewise.
2014-11-05Cast result of obstack_next_freeAlan Modra2-2/+4
obstack_next_free is supposed to return a void*, rather than a char* as it does currently. Avoid warning on void* arithmetic when obstack_next_free gets it proper return type. * cp-valprint.c (cp_print_value_fields): Cast obstack_next_free to char* before doing pointer arithmetic.
2014-11-05Use obstack_blank_fast to shrink obstacksAlan Modra3-2/+8
obstack_blank isn't the correct macro to call for shrinking obstacks since it does size checking. * charset.c (convert_between_encodings): Shrink obstack using obstack_blank_fast. * minsyms.c (install_minimal_symbols): Likewise.
2014-11-04Update description of ownership of files in include/Doug Evans1-1/+4
2014-11-04Fix -Wshadow warningMatthew Fortune2-4/+8
binutils/ * readelf.c (process_mips_specific): Rename index to idx.
2014-11-05daily updateAlan Modra1-1/+1
2014-11-04tui: Fix newterm call for older ncursesSimon Marchi2-1/+5
Older versions of ncurses' newterm can't take NULL for their ofp and ifp parameters. Newer versions can, and they fall back on stdout/stdin if that is the case. This patch explicitly passes stdout/stdin to the call to newterm to avoid segfaulting with older ncurses. gdb/Changelog: 2014-11-04 Simon Marchi <simon.marchi@ericsson.com> * tui/tui.c (tui_enable): Pass stdout and stdin to newterm.
2014-11-04garbage collect gdb/breakpoint.c:breakpoint_thread_matchPedro Alves3-62/+5
Used to be necessary for the thread-hop code, but that's gone now. Nothing uses this anymore. gdb/ 2014-11-04 Pedro Alves <palves@redhat.com> * breakpoint.c (breakpoint_thread_match): Delete function. * breakpoint.h (breakpoint_thread_match): Delete declaration.