aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-04-06Remove free_value_chainTom Tromey6-73/+69
This patch changes value_release_to_mark and fetch_subexp_value to return a std::vector of value references, rather than relying on the "next" field that is contained in a struct value. This makes it simpler to reason about the returned values, and also allows for the removal of free_value_chain. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * value.h (fetch_subexp_value, value_release_to_mark): Update. (free_value_chain): Remove. * value.c (free_value_chain): Remove. (value_release_to_mark): Return a std::vector. * ppc-linux-nat.c (num_memory_accesses): Change "chain" to a std::vector. (check_condition): Update. * eval.c (fetch_subexp_value): Change "val_chain" to a std::vector. * breakpoint.c (update_watchpoint): Update. (can_use_hardware_watchpoint): Change "vals" to a std::vector.
2018-04-06Remove free_all_valuesTom Tromey3-22/+5
free_all_values is unused, so this removes it. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * value.h (free_all_values): Remove. * value.c (free_all_values): Remove.
2018-04-06Change value history to use value_ref_ptrTom Tromey2-54/+20
This simplifies the value history implementation by replacing the current data structure with a std::vector, and by making the value history simply hold a reference to each value. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * value.c (VALUE_HISTORY_CHUNK, struct value_history_chunk) (value_history_chain, value_history_count): Remove. (value_history): New global. (record_latest_value, access_value_history, show_values) (preserve_values): Update.
2018-04-06Change varobj to use value_ref_ptrTom Tromey5-36/+54
This changes varobj to use value_ref_ptr, allowing the removal of some manual reference count management. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * varobj.h (struct varobj) <value>: Now a value_ref_ptr. * varobj.c (varobj_set_display_format, varobj_set_value) (install_default_visualizer, construct_visualizer) (install_new_value, ~varobj, varobj_get_value_type) (my_value_of_variable, varobj_editable_p): Update. * c-varobj.c (c_describe_child, c_value_of_variable) (cplus_number_of_children, cplus_describe_child): Update. * ada-varobj.c (ada_number_of_children, ada_name_of_child) (ada_path_expr_of_child, ada_value_of_child, ada_type_of_child) (ada_value_of_variable, ada_value_is_changeable_p): Update.
2018-04-06Change last_examine_value to value_ref_ptrTom Tromey2-13/+14
This patch removes some manual reference count manipulation by changing last_examine_value to be a value_ref_ptr and then updating the users. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * printcmd.c (last_examine_address): Change type to value_ref_ptr. (do_examine, x_command): Update.
2018-04-06Change breakpoints to use value_ref_ptrTom Tromey4-52/+46
Now that value_ref_ptr exists, it is possible to simplify breakpoint and bpstat memory management by using a value_ref_ptr rather than manually handling the reference counts. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * value.c (release_value): Update. * breakpoint.h (struct watchpoint) <val>: Now a value_ref_ptr. (struct bpstats) <val>: Now a value_ref_ptr. * breakpoint.c (update_watchpoint, breakpoint_init_inferior) (~bpstats, bpstats, bpstat_clear_actions, watchpoint_check) (~watchpoint, print_it_watchpoint, watch_command_1) (invalidate_bp_value_on_memory_change): Update.
2018-04-06Introduce a gdb_ref_ptr specialization for struct valueTom Tromey19-114/+136
struct value is internally reference counted and so, while it also has some ownership rules unique to it, it makes sense to use a gdb_ref_ptr when managing it automatically. This patch removes the existing unique_ptr specialization in favor of a reference-counted pointer. It also introduces two other clarifications: 1. Rename value_free to value_decref, which I think is more in line with what the function actually does; and 2. Change release_value to return a gdb_ref_ptr. This change allows us to remove the confusing release_value_or_incref function, primarily by making it much simpler to reason about the result of release_value. gdb/ChangeLog 2018-04-06 Tom Tromey <tom@tromey.com> * varobj.c (varobj_clear_saved_item) (update_dynamic_varobj_children, install_new_value, ~varobj): Update. * value.h (value_incref): Move declaration earlier. (value_decref): Rename from value_free. (struct value_ref_policy): New. (value_ref_ptr): New typedef. (struct value_deleter): Remove. (gdb_value_up): Remove typedef. (release_value): Change return type. (release_value_or_incref): Remove. * value.c (set_value_parent): Update. (value_incref): Change return type. (value_decref): Rename from value_free. (value_free_to_mark, free_all_values, free_value_chain): Update. (release_value): Return value_ref_ptr. (release_value_or_incref): Remove. (record_latest_value, set_internalvar, clear_internalvar): Update. * stack.c (info_frame_command): Don't call value_free. * python/py-value.c (valpy_dealloc, valpy_new) (value_to_value_object): Update. * printcmd.c (do_examine): Update. * opencl-lang.c (lval_func_free_closure): Update. * mi/mi-main.c (register_changed_p): Don't call value_free. * mep-tdep.c (mep_frame_prev_register): Don't call value_free. * m88k-tdep.c (m88k_frame_prev_register): Don't call value_free. * m68hc11-tdep.c (m68hc11_frame_prev_register): Don't call value_free. * guile/scm-value.c (vlscm_free_value_smob) (vlscm_scm_from_value): Update. * frame.c (frame_register_unwind, frame_unwind_register_signed) (frame_unwind_register_unsigned, get_frame_register_bytes) (put_frame_register_bytes): Don't call value_free. * findvar.c (address_from_register): Don't call value_free. * dwarf2read.c (dwarf2_compute_name): Don't call value_free. * dwarf2loc.c (entry_data_value_free_closure) (value_of_dwarf_reg_entry, free_pieced_value_closure) (dwarf2_evaluate_loc_desc_full): Update. * breakpoint.c (update_watchpoint, breakpoint_init_inferior) (~bpstats, bpstats, bpstat_clear_actions, watchpoint_check) (~watchpoint, watch_command_1) (invalidate_bp_value_on_memory_change): Update. * alpha-tdep.c (alpha_register_to_value): Don't call value_free.
2018-04-06Add -Wno-error=deprecated-register to gdb build flagsSimon Marchi3-2/+10
As shown in PR 23022, building with clang-6 and Python 2 trips on the fact that the Python 2 headers use the "register" keyword: /usr/include/python2.7/unicodeobject.h:534:5: error: 'register' storage class specifier is deprecated and incompatible with C++17 [-Werror,-Wdeprecated-register] register PyObject *obj, /* Object */ ^~~~~~~~~ This patch adds -Wno-error=deprecated-register to our flags, so that we can still see this class of warnings, but they don't cause a build failure. gdb/ChangeLog: PR gdb/23022 * warning.m4: Add -Wno-error=deprecated-register. * configure: Re-generate.
2018-04-06Display all DWARF 5 language namesTom Tromey2-0/+15
I happened to notice that objdump was not printing "Rust" when showing the DW_AT_language for a CU: <10> DW_AT_language : 28 (Unknown: 1c) This patch adds all the new language constants from DWARF 5 to binutils/dwarf.c. 2018-04-06 Tom Tromey <tom@tromey.com> * dwarf.c (read_and_display_attr_value): Add missing DW_LANG constants from DWARF 5.
2018-04-06x86-64: Don't mask out R_X86_64_converted_reloc_bitH.J. Lu2-3/+5
R_X86_64_converted_reloc_bit is set in elf_x86_64_convert_load_reloc which is called from elf_x86_64_check_relocs. Since it is used only internally by linker, there is no need to mask it out in elf_x86_64_info_to_howto. * elf64-x86-64.c (elf_x86_64_info_to_howto): Don't mask out R_X86_64_converted_reloc_bit.
2018-04-06Automatic date update in version.inGDB Administrator1-1/+1
2018-04-05Use dlsym to check if libdl is needed for pluginH.J. Lu10-60/+85
config/plugins.m4 has if test "$plugins" = "yes"; then AC_SEARCH_LIBS([dlopen], [dl]) fi Plugin uses dlsym, but libasan.so only intercepts dlopen, not dlsym: [hjl@gnu-tools-1 binutils-text]$ nm -D /lib64/libasan.so.4| grep " dl" 0000000000038580 W dlclose U dl_iterate_phdr 000000000004dc50 W dlopen U dlsym U dlvsym [hjl@gnu-tools-1 binutils-text]$ Testing dlopen for libdl leads to false negative when -fsanitize=address is used. It results in link failure: ../bfd/.libs/libbfd.a(plugin.o): undefined reference to symbol 'dlsym@@GLIBC_2.16' dlsym should be used to check if libdl is needed for plugin. bfd/ PR gas/22318 * configure: Regenerated. binutils/ PR gas/22318 * configure: Regenerated. gas/ PR gas/22318 * configure: Regenerated. gprof/ PR gas/22318 * configure: Regenerated. ld/ PR gas/22318 * configure: Regenerated.
2018-04-05config: Sync with GCCH.J. Lu3-3/+28
Sync with GCC 2018-04-05 H.J. Lu <hongjiu.lu@intel.com> PR gas/22318 * plugins.m4 (AC_PLUGINS): Use dlsym to check if libdl is needed. 2018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com> PR target/84148 * cet.m4: Check if target support multi-byte NOPS (SSE).
2018-04-05Improve warnings for relocations referring to discarded sections.Cary Coutant2-4/+25
gold/ * target-reloc.h (relocate_section): Add local symbol index or global symbol name to warning about relocation that refers to discarded section.
2018-04-05MIPS/binutils/testsuite: Fix `.dc.l' typo in `strip-13mips64.s'Maciej W. Rozycki2-1/+6
Fix a typo: `.dc.w' -> `.dc.l' in `strip-13mips64.s', correcting a bug from commit 2f8ceb38991e ("binutils/testsuite: Support REL and MIPS64 reloc formats with `strip-13'"). For relocation format correctness only as there is no observable change in test results due to the lack of connection between the second relocation entry affected and the examined error message produced. binutils/ * testsuite/binutils-all/strip-13mips64.s: Use `.dc.l' rather than `.dc.w' in second relocation.
2018-04-05Revert previous patch and apply revised patch.Cary Coutant2-33/+19
Revert: 2018-04-05 James Cowgill <james.cowgill@mips.com> PR gold/22770 * mips.cc (Mips_got_info::record_got_page_entry): Fetch existing page entries for the object's GOT. Apply: PR gold/22770 * mips.cc (Mips_got_info::record_got_page_entry): Don't insert Got_page_entry for object's GOT. (Mips_got_info::add_got_page_entries): Add all pages from from's GOT. Rename to add_got_page_count. (Got_page_entry): Remove num_pages.
2018-04-05MIPS: Fix GOT page counter in multi-got linksJames Cowgill2-10/+15
The record_got_page_entry function records and updates the maximum number of GOT page entries which may be required by an object. In the case where an existing GOT page entry was expanded, only the entry belonging to output GOT would have its page count updated. This leaves the entry belonging to the object GOT with the num_pages count of 1 it was originally initialized with. Later on when GOTs are being merged in a multi-got link, this causes the value of entry->num_pages in add_got_page_entries to always be 1 and underestimates the number of pages required for the new entry. This in turn leads to an assertion failure in get_got_page_offset where we run out of pages. Fix by obtaining the object's GOT entry unconditionally and not just the first time it gets created. Now that entry2 is always valid, remove the useless NULL checks. gold/ PR gold/22770 * mips.cc (Mips_got_info::record_got_page_entry): Fetch existing page entries for the object's GOT.
2018-04-05Stop the IA64 linker from removing unwind tables when garbage collecting.Nick Clifton2-2/+9
PR 23030 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Make sure that the .IA_64.unwind_info and .IA_64.unwind sections are not subject to garbage collection.
2018-04-05Remove unnecessary include from linespec.hTom Tromey2-1/+4
linespec.h was inculding vec.h, but doesn't expose any VECs. So, this include can be removed. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.h: Remove include of "vec.h".
2018-04-05Remove typep and VEC(typep) from linespec.cTom Tromey2-25/+16
This removes VEC(typep) from linespec.c in favor of std::vector. It also removes the "typep" typedef. This change allowed the removal of some cleanups. I believe the previous cleanup code in find_superclass_methods could result in a memory leak, so this patch is an improvement in that way as well. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.c (typep): Remove typedef. (find_methods, find_superclass_methods): Take a std::vector. (find_method): Use std::vector.
2018-04-05More use of std::vector in linespec.cTom Tromey6-78/+47
This changes some spots in linespec.c to take a std::vector. This patch spilled out to objc-lang.c a bit as well. This change allows for the removal of some cleanups. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * utils.c (compare_strings): Remove. * utils.h (compare_strings): Remove. * objc-lang.h (find_imps): Update. * objc-lang.c (find_methods): Take a std::vector. (uniquify_strings, find_imps): Likewise. * linespec.c (find_methods): Take a std::vector. (decode_objc): Use std::vector. (add_all_symbol_names_from_pspace, find_superclass_methods): Take a std::vector. (find_method, find_function_symbols): Use std::vector.
2018-04-05Change streq to return boolTom Tromey6-12/+37
I wanted to use streq with std::unique in another (upcoming) patch in this seres, so I changed it to return bool. To my surprise, this lead to regressions. The cause turned out to be that streq was used as an htab callback -- by casting it to the correct function type. This sort of cast is invalid, so this patch adds a variant which is directly suitable for use by htab. (Note that I did not add an overload, as I could not get that to work with template deduction in the other patch.) ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * completer.c (completion_tracker::completion_tracker): Remove cast. (completion_tracker::discard_completions): Likewise. * breakpoint.c (ambiguous_names_p): Remove cast. * ada-lang.c (_initialize_ada_language): Remove cast. * utils.h (streq): Update. (streq_hash): Add new declaration. * utils.c (streq): Return bool. (streq_hash): New function.
2018-04-05Remove a string copy from event_location_to_salsTom Tromey2-7/+6
The use of "const" showed that a string copy in event_location_to_sals was unnecessary. This patch removes it. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.c (event_location_to_sals) <case ADDRESS_LOCATION>: Remove a string copy.
2018-04-05Have filter_results take a std::vectorTom Tromey2-16/+11
This chagnes filter_results to take a std::vector, allowing the removal of some cleanups in its callers. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.c (filter_results): Use std::vector. (decode_line_2, decode_line_full): Update.
2018-04-05Return std::string from canonical_to_fullformTom Tromey2-63/+61
This changes canonical_to_fullform to return a std::string, and changes decode_line_2 to use std::vector. This allows for the removal of some cleanups. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.c (canonical_to_fullform): Return std::string. (filter_results): Update. (struct decode_line_2_item): Add constructor. <fullform, displayform>: Now std::string. (decode_line_2_compare_items): Now a std::sort comparator. (decode_line_2): Update.
2018-04-05Make copy_token_string return unique_xmalloc_ptrTom Tromey2-65/+37
This changes copy_token_string to return a unique_xmalloc_ptr, which allows the removal of some cleanups. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.c (copy_token_string): Return a unique_xmalloc_ptr. (unexpected_linespec_error): Update. (linespec_parse_basic, parse_linespec): Update.
2018-04-05Fix some indentation in linespec.cTom Tromey2-70/+71
This removes some leftover comments and fixes the indentation in a couple of spots in linespec.c. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * linespec.c (linespec_parse_basic): Reindent.
2018-04-05Remove some cleanups from search_minsyms_for_nameTom Tromey4-97/+71
This changes struct collect_minsyms to use a std::vector, which enables the removal of a cleanup from search_minsyms_for_name. This also changes iterate_over_minimal_symbols to take a gdb::function_view, which makes a function in linespec.c more type-safe. ChangeLog 2018-04-05 Tom Tromey <tom@tromey.com> * minsyms.h (iterate_over_minimal_symbols): Update. * minsyms.c (iterate_over_minimal_symbols): Take a gdb::function_view. * linespec.c (struct collect_minsyms): Remove. (compare_msyms): Now a std::sort comparator. (add_minsym): Add parameters. (search_minsyms_for_name): Update. Use std::vector.
2018-04-05binutils/testsuite: Tighten the error message check with `strip-13'Maciej W. Rozycki2-1/+7
Avoid false positives and actually verify both that an `unsupported relocation type 0x8f' message is produced and that no other message is, except for the final `bad value', in the `strip-13' test. This ensures that it is a relocation processing error and not a different issue that has caused `strip' to terminate unsuccessfully, and that the number representing the unsupported relocation has not been clobbered. binutils/ * testsuite/binutils-all/strip-13.d: Also expect `unsupported relocation type 0x8f' error message.
2018-04-05binutils/testsuite: Support REL and MIPS64 reloc formats with `strip-13'Maciej W. Rozycki6-5/+64
Add source variants for the `strip-13' test that produce relocations in the REL and MIPS64 formats, fixing a failure for the `mips64el-openbsd' target. This also corrects output for `i*86-*', `i960-*', `m6812-*' and `m68hc12-*', o32 `mips*-*', and `score*-*' targets, which however does not show up as a test result change due to lax error message matching causing `bad value' previously produced by `strip' as a result of input file rejection to be accepted as a test pass. For `m6811-*' aka `m68hc11-*' targets this causes a phantom regression, because they use 16-bit addressing and therefore `.dc.a' emits 16-bit quantities causing relocation data constructed in assembly not to be as expected. Previously input was rejected by `strip' with a `bad value' message and now it is accepted, however due to the relocation data error the relocation number is not one of the unsupported ones and the tool completes successfully, which scores as a test failure. Disable the test case for `m6811-*' and `m68hc11-*' targets then, as it is a test case bug rather than a problem with the relevant backend. A separate change to the test case is required to correct this problem, at which point the test case can be enabled for the affected targets. binutils/ * testsuite/binutils-all/strip-13.s: Rename to... * testsuite/binutils-all/strip-13rela.s: ... this. * testsuite/binutils-all/strip-13rel.s: New test source. * testsuite/binutils-all/strip-13mips64.s: New test source. * testsuite/binutils-all/strip-13.d: Remove `arm-*', `d10v-*', `dlx-*' and `xgate-*' from `not-target' list. Add `m6811-*' and `m68hc11-*' to `not-target' list. * testsuite/binutils-all/objcopy.exp: Switch between sources for `strip-13'.
2018-04-05binutils/testsuite: Enable `strip-13' test for `hppa*-*'Maciej W. Rozycki3-4/+10
Based on relocations defined in include/elf/*.h files we have relocation numbers: 143, 159, 214 and 215 currently not used by any of our ELF targets. Use 143 then instead of 241 to enable the `strip-13' test for `hppa*-*' targets. It has a side effect with some targets of verifying that unused relocations whose numbers are below the respective R_*_max value are handled correctly. binutils/ * testsuite/binutils-all/strip-13.s: Use 143 (0x8f) rather than 241 (0xf1) for the relocation number and RELA addend. * testsuite/binutils-all/strip-13.d: Remove `hppa*-*' from the `not-target' list.
2018-04-05Automatic date update in version.inGDB Administrator1-1/+1
2018-04-05[GOLD] Make powerpc64 .branch_lt relroAlan Modra2-8/+9
Better security beats better placement for code optimization. * powerpc.cc (Target_powerpc::make_brlt_section): Make .branch_lt relro.
2018-04-05elf-hppa.h warning fixAlan Modra2-2/+7
* elf-hppa.h (elf_hppa_info_to_howto): Init howto to NULL. (elf_hppa_info_to_howto_rel): Likewise.
2018-04-04 * binutils/MAINTAINERS: Update e-mail address.John David Anglin2-1/+5
2018-04-04i386: Clear vex instead of vex.evexH.J. Lu5-6/+22
"vex" has many fields to control how to decode an instruction. Clear all fields in "vex" before decoding an instruction to avoid using values left from the previous instruction. gas/ PR binutils/23025 * testsuite/gas/i386/prefix.s: Add tests for vcvtpd2dq with VEX and EVEX prefixes. * testsuite/gas/i386/prefix.d: Updated. opcodes/ PR binutils/23025 * i386-dis.c (get_valid_dis386): Don't set vex.prefix nor vex.w to 0. (print_insn): Clear vex instead of vex.evex.
2018-04-04Add blurb about linker changes for Cygwin and Mingw targets.Eric Botcazou1-0/+2
2018-04-04Speed up direct linking with DLLs on Windows (2/2).Eric Botcazou4-12/+144
This patch deals with the generation of the import library on the fly. The implementation is inefficient because the linker makes a lot of calls to realloc and memmove when importing the symbols in order to maintain a sorted list of symbols. This is fixable by relying on the fact that, for every linked DLL, the list of symbols it exports is already sorted so you can import them en masse once you have found the insertion point. ld/ * deffile.h (def_file_add_import_from): Declare. (def_file_add_import_at): Likewise. * deffilep.y (fill_in_import): New function extracted from... (def_file_add_import): ...here. Call it. (def_file_add_import_from): New function. (def_file_add_import_at): Likewise. * pe-dll.c (pe_implied_import_dll): Use an optimized version of the insertion loop for imported symbols if possible.
2018-04-04Speed up direct linking with DLLs on Windows (1/2).Eric Botcazou8-388/+298
This patch deals with the auto-import feature. There are 2 versions of this feature: the original one, which was piggybacked on the OS loader with an optional help from the runtime (--enable-auto-import --enable-runtime-pseudo-reloc-v1) and is still the one mostly documented in the sources and manual; the enhanced one by Kai Tietz, which is entirely piggybacked on the runtime (--enable-auto-import --enable-runtime-pseudo-reloc-v2) and is the default for Mingw and Cygwin nowadays. The implementation is inefficient because of pe[p]_find_data_imports: for every undefined symbol, the function walks the entire set of relocations for all the input files and does a direct name comparison for each of them. This is easily fixable by using a hash-based map for v1 and a simple hash table for v2. This patch leaves v1 alone and only changes v2. It also factors out pe[p]_find_data_imports into a common function, removes old cruft left and right, and attempts to better separate the implementations of v1 and v2 in the code. ld/ * emultempl/pe.em (U_SIZE): Delete. (pe_data_import_dll): Likewise. (make_import_fixup): Return void, take 4th parameter and pass it down in call to pe_create_import_fixup. (pe_find_data_imports): Move to... (gld_${EMULATION_NAME}_after_open): Run the stdcall fixup pass after the auto-import pass and add a guard before running the latter. * emultempl/pep.em (U_SIZE): Delete. (pep_data_import_dll): Likewise. (make_import_fixup): Return void, take 4th parameter and pass it down in call to pe_create_import_fixup. (pep_find_data_imports): Move to... (gld_${EMULATION_NAME}_after_open): Run the stdcall fixup pass after the auto-import pass and add a guard before running the latter. * pe-dll.c (runtime_pseudp_reloc_v2_init): Change type to bfd_boolean. (pe_walk_relocs_of_symbol): Rename into... (pe_walk_relocs): ...this. Add 2 more parameters,4th parameter to the callback prototype and pass 4th parameter in calls to the callback. If the import hash table is present, invoke the callback on the reloc if the symbol name is in the table. (pe_find_data_imports): ...here. Take 2 parameters. Build an import hash table for the pseudo-relocation support version 2. When it is built, walk the relocations only once at the end; when it is not, do not build a fixup when the symbol isn't part of an import table. Issue the associated warning only after a first fixup is built. (tmp_seq2): Delete. (make_singleton_name_imp): Likewise. (make_import_fixup_mark): Return const char * and a stable string. (make_import_fixup_entry): Do not deal with the pseudo-relocation support version 2. (make_runtime_pseudo_reloc): Factor out code and fix formatting. (pe_create_import_fixup): Add 5th parameter. Clearly separate the pseudo-relocation support version 2 from the rest. Fix formatting. * pe-dll.h (pe_walk_relocs_of_symbol): Delete. (pe_find_data_imports): Declare. (pe_create_import_fixup): Add 5th parameter. * pep-dll.c (pe_data_import_dll): Delete. (pe_find_data_imports): Define. (pe_walk_relocs_of_symbol): Delete. * pep-dll.h (pep_walk_relocs_of_symbol): Delete. (pep_find_data_imports): Declare. (pep_create_import_fixup): Add 5th parameter. * ld.texinfo (--enable-auto-import): Adjust to new implementation.
2018-04-04Update Spanish translations for ld/ opcodes/ and gold/ sub-directoriesNick Clifton6-1725/+5017
2018-04-04Retire Jason Eckhardt as i860 maintainer.Nick Clifton2-1/+5
* MAINTAINERS: Move Jason Eckhardt to past maintainers section.
2018-04-04PR binutils/22875: HPPA/ELF: Also fail with relocation placeholdersMaciej W. Rozycki2-5/+24
Do not consider R_PARISC_UNIMPLEMENTED placeholder relocation entries of the `elf_hppa_howto_table' table valid in `info_to_howto' HPPA handlers. Instead issue an unsupported relocation type error and return a NULL howto as with relocations whose number is R_PARISC_UNIMPLEMENTED or beyond. bfd/ * elf-hppa.h (elf_hppa_info_to_howto): Also return unsuccessfully for unimplemented relocations. (elf_hppa_info_to_howto_rel): Likewise.
2018-04-04PR binutils/22875: i860/ELF: Report unsupported relocation typesMaciej W. Rozycki2-16/+36
Complement commit f3185997ac09 ("PR 22875: Stop strip corrupting unknown relocs"), <https://sourceware.org/ml/binutils/2018-02/msg00445.html>, and also set the `bfd_error_bad_value' error and report an unsupported relocation type if a howto lookup fails with the i860 backend, fixing a confusing `no error' error message and removing a binutils test failure: failed with: <.../binutils/strip-new: tmpdir/bintest.o: no error>, expected: <.* bad value> .../binutils/strip-new: tmpdir/bintest.o: no error FAIL: binutils-all/strip-13 with the `i860-stardent-elf' target. bfd/ * elf32-i860.c (lookup_howto): Add `abfd' parameter. Set the `bfd_error_bad_value' error and call `_bfd_error_handler' on a howto lookup failure. (elf32_i860_reloc_type_lookup): Adjust `lookup_howto' call accordingly. (elf32_i860_info_to_howto_rela): Likewise. (elf32_i860_relocate_splitn): Likewise. (elf32_i860_relocate_pc16): Likewise. (elf32_i860_relocate_pc26): Likewise. (elf32_i860_relocate_section): Likewise.
2018-04-04PR binutils/22875: Visium/ELF: Prevent an out-of-bounds howto table accessMaciej W. Rozycki2-1/+7
Prevent an out-of-bounds `visium_elf_howto_table' table access in `visium_info_to_howto_rela' by using the size of the table rather than R_VISIUM_max to determine the number of entries in the contiguous regular Visium relocation range defined and described in the table. bfd/ * elf32-visium.c (visium_info_to_howto_rela): Correct the range check for `visium_elf_howto_table' table access.
2018-04-04PR binutils/22875: IQ2000/ELF: Prevent an out-of-bounds howto table accessMaciej W. Rozycki2-1/+7
Prevent an out-of-bounds `iq2000_elf_howto_table' table access in `iq2000_info_to_howto_rela' by using the size of the table rather than R_IQ2000_max to determine the number of entries in the contiguous regular IQ2000 relocation range defined and described in the table. bfd/ * elf32-iq2000.c (iq2000_info_to_howto_rela): Correct the range check for `iq2000_elf_howto_table' table access.
2018-04-04PR binutils/22875: FRV/ELF: Prevent an out-of-bounds howto table accessMaciej W. Rozycki2-1/+7
Prevent an out-of-bounds `elf32_frv_howto_table' table access in `frv_info_to_howto_rela' by using the size of the table rather than R_FRV_max to determine the number of entries in the contiguous regular FRV relocation range defined and described in the table. bfd/ * elf32-frv.c (frv_info_to_howto_rela): Correct the range check for `elf32_frv_howto_table' table access.
2018-04-04PR binutils/22875: MIPS/ELF: Also fail with relocation placeholdersMaciej W. Rozycki4-38/+58
Do not consider placeholder EMPTY_HOWTO relocation entries valid in `rtype_to_howto' MIPS handlers. Instead issue an unsupported relocation type error and return a NULL howto as with relocations outside the three ISA-specific min-max ranges. bfd/ * elf32-mips.c (mips_elf32_rtype_to_howto): Also return unsuccessfully for placeholder howtos. * elf64-mips.c (mips_elf64_rtype_to_howto): Likewise. * elfn32-mips.c (mips_elf_n32_rtype_to_howto): Likewise.
2018-04-04Automatic date update in version.inGDB Administrator1-1/+1
2018-04-03Change read_alphacoff_dynamic_symtab to use gdb::byte_vectorTom Tromey2-61/+35
This changes read_alphacoff_dynamic_symtab to use gdb::byte_vector. This allows for the removal of some cleanups. Tested by the buildbot; though I don't know whether this code path is ever actually run. gdb/ChangeLog 2018-04-03 Tom Tromey <tom@tromey.com> * mipsread.c (read_alphacoff_dynamic_symtab): Use gdb::byte_vector.
2018-04-03MIPS/LD/testsuite: Correct LD emulations for `mips*-*-kfreebsd*-gnu'Maciej W. Rozycki2-1/+9
Complement commit 86b24e15c45b ("MIPS/LD/testsuite: Correct comm-data.exp test ABI/emul/endian arrangement") and set LD emulations correctly for `mips*-*-kfreebsd*-gnu' targets in comm-data.exp, removing test suite failures: FAIL: MIPS o32/copyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/copyreloc common symbol override test FAIL: MIPS o32/nocopyreloc common symbol override test (auxiliary shared object build) FAIL: MIPS o32/nocopyreloc common symbol override test ld/ * testsuite/ld-mips-elf/comm-data.exp: Correct support for `mips*-*-kfreebsd*-gnu' targets.