aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-26Re: CSKY: Add new arch CK860Alan Modra2-0/+5
bfd-in2.h is a generated file. Put the new machine where it belongs. * archures.c (bfd_mach_ck860): Define.
2020-08-26Automatic date update in version.inGDB Administrator1-1/+1
2020-08-25arc: Add GNU/Linux support for ARCAnton Kolesov6-2/+298
ARC Linux targets differences from baremetal: - No support for hardware single instruction stepping. - Different access rules to registers. - Use of another instruction for breakpoints. v2: Changes after Tom's remarks [1] arc-linux-tdep.c - Use true/false instead of TRUE/FALSE. - arc_linux_sw_breakpoint_from_kind (): Break long lines into two. - arc_linux_sw_breakpoint_from_kind (): Remove starting blank line. - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0) arc-tdep.c - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0) gdb/configure.tgt - arc*-*-linux*): Remove "build_gdbserver=yes". v3: Changes after Simon's remarks [2] arc-linux-tdep.c - Use "return trap_size" instead of cryptic "return 2". - Removed unnecessary curly braces. - Removed "void" from "_initialize_arc_linux_tdep (void)". v5: Changes after Simon's remarks [3] - Remove unnecessary empty lines. - Replace "breakpoint uses" with "breakpoints use" in a comment. - "return condition;" i.s.o. "if (condition) return true; else return false;" [1] Tom's remarks https://sourceware.org/pipermail/gdb-patches/2020-April/167887.html [2] Simon's remarks on v2 https://sourceware.org/pipermail/gdb-patches/2020-May/168513.html [3] Simon's remarks on v4 https://sourceware.org/pipermail/gdb-patches/2020-August/170994.html gdb/ChangeLog: 2020-08-25 Anton Kolesov <anton.kolesov@synopsys.com> * configure.tgt: ARC support for GNU/Linux. * Makefile.in (ALL_TARGET_OBJS): Likewise. * arc-linux-tdep.c: New file. * arc-tdep.h (ARC_STATUS32_L_MASK, ARC_STATUS32_DE_MASK): Declare. * arc-tdep.c (arc_write_pc): Use it.
2020-08-25arc: Add hardware loop detectionShahab Vahedi5-6/+56
For ARC there are registers that are not part of a required set in XML target descriptions by default, but are almost always present on ARC targets and are universally exposed by the ptrace interface. Hardware loop registers being one of them. LP_START and LP_END auxiliary registers are hardware loop start and end. Formally, they are optional, but it is hard to find an ARC configuration that doesn't have them. They are always present in processors that can run GNU/Linux. GDB needs to know about those registers to implement proper software single stepping, since they affect what instruction will be next. This commit adds the code to check for the existance of "lp_start" and "lp_end" in XML target descriptions. If they exist, then the function reports that the target supports hardware loops. gdb/ChangeLog: * arc-tdep.c (arc_check_for_hardware_loop): New. * arc-tdep.h (gdbarch_tdep): New field has_hw_loops. gdb/doc/ChangeLog: * gdb.texinfo (Synopsys ARC): Document LP_START, LP_END and BTA.
2020-08-25arc: Add inclusion of "gdbarch.h" in "arc-tdep.h"Shahab Vahedi2-0/+5
The "arc-tdep.h" makes use of definitions in "gdbarch.h", but it does not include it explicitly. I have piggy backed this fix in another commit [1], but I was asked to do it separately [2]. [1] arc: Add hardware loop detection https://sourceware.org/pipermail/gdb-patches/2020-July/170800.html [2] Simon's remarks to "arc: Add hardware loop detection" https://sourceware.org/pipermail/gdb-patches/2020-August/170993.html gdb/ChangeLog: * arc-tdep.h: Include "gdbarch.h".
2020-08-25arc: Add ARCv2 XML target along with refactoringShahab Vahedi19-349/+691
A few changes have been made to make the register support simpler, more flexible and extendible. The trigger for most of these changes are the remarks [1] made earlier for v2 of this patch. The noticeable improvements are: - The arc XML target features are placed under gdb/features/arc - There are two cores (based on ISA) and one auxiliary feature: v1-core: ARC600, ARC601, ARC700 v2-core: ARC EM, ARC HS aux: common in both - The XML target features represent a minimalistic sane set of registers irrespective of application (baremetal or linux). - A concept of "feature" class has been introduced in the code. The "feature" object is constructed from BFD and GDBARCH data. It contains necessary information (ISA and register size) to determine which XML target feature to use. - A new structure (ARC_REGISTER_FEATURE) is added that allows providing index, names, and the necessity of registers. This simplifies the sanity checks and future extendibility. - Documnetation has been updated to reflect ARC features better. - Although the feature names has changed, there still exists backward compatibility with older names through find_obsolete_[core,aux]_names() functions. The last two points were inspired from RiscV port. [1] https://sourceware.org/pipermail/gdb-patches/2020-May/168511.html gdb/ChangeLog: * arch/arc.h (arc_gdbarch_features): New class to stir the selection of target XML. (arc_create_target_description): Use FEATURES to choose XML target. (arc_lookup_target_description): Use arc_create_target_description to create _new_ target descriptions or return the already created ones if the FEATURES is the same. * arch/arc.c: Implementation of prototypes described above. * gdb/arc-tdep.h (arc_regnum enum): Add more registers. (arc_gdbarch_features_init): Initialize the FEATURES struct. * arc-tdep.c (*_feature_name): Make feature names consistent. (arc_register_feature): A new struct to hold information about registers of a particular target/feature. (arc_check_tdesc_feature): Check if XML provides registers in compliance with ARC_REGISTER_FEATURE structs. (arc_update_acc_reg_names): Add aliases for r58 and r59. (determine_*_reg_feature_set): Which feature name to look for. (arc_gdbarch_features_init): Given MACH and ABFD, initialize FEATURES. (mach_type_to_arc_isa): Convert from a set of binutils machine types to expected ISA enums to be used in arc_gdbarch_features structs. * features/Makefile (FEATURE_XMLFILES): Add new files. * gdb/features/arc/v1-aux.c: New file. * gdb/features/arc/v1-aux.xml: Likewise. * gdb/features/arc/v1-core.c: Likewise. * gdb/features/arc/v1-core.xml: Likewise. * gdb/features/arc/v2-aux.c: Likewise. * gdb/features/arc/v2-aux.xml: Likewise. * gdb/features/arc/v2-core.c: Likewise. * gdb/features/arc/v2-core.xml: Likewise. * NEWS (Changes since GDB 9): Announce obsolence of old feature names. gdb/doc/ChangeLog: * gdb.texinfo (Synopsys ARC): Update the documentation for ARC Features. gdb/testsuite/ChangeLog: * gdb.arch/arc-tdesc-cpu.xml: Use new feature names.
2020-08-25gdb/testsuite: fix gdb.threads/stepi-random-signal.exp pattern (gdb/26532)Simon Marchi2-1/+6
Commit 1eb8556f5a8b ("gdb: add infrun_debug_printf macro") changed the debug output format for `set debug infrun 1`. The test gdb.threads/stepi-random-signal.exp uses that debug output, and was updated, but not correctly. It results in this failure: FAIL: gdb.threads/stepi-random-signal.exp: stepi (no random signal) Fix it by adjusting the pattern in the test. gdb/testsuite/ChangeLog: PR gdb/26532 * gdb.threads/stepi-random-signal.exp: Update pattern. Change-Id: If5fa525e9545e32a286effe6a6184358374bd37c
2020-08-25gdb/testsuite: fix gdb.base/ui-redirect.exp pattern (gdb/26532)Simon Marchi2-1/+6
Commit 1eb8556f5a8b ("gdb: add infrun_debug_printf macro") changed the debug output format for `set debug infrun 1`. It broke test gdb.base/ui-redirect.exp, which I missed: FAIL: gdb.base/ui-redirect.exp: debugging: continue Fix it by adjusting the pattern in the test to the new reality. gdb/testsuite/ChangeLog: PR gdb/26532 * gdb.base/ui-redirect.exp: Update pattern. Change-Id: Ie8a8f6675e35a0cab55109b1534b44eb51baec9d
2020-08-25Fix ChangeLog entry for commit b04aa1fc8c9d4a79e6293a3a1df7507052afedf3Gary Benson1-1/+1
2020-08-25Fix the linker's handling of DWARF-5 line number tables.Mark Wielaard2-2/+136
When building with gcc with -gdwarf-5 ld tests (including ld-elf/dwarf.exp) fail because they try to read the .debug_ranges section. But DWARF5 introduces a new .debug_rnglists section that encodes the address ranges more efficiently. Implement reading the debug_rnglists in bfd/dwarf2.c. Which makes all tests pass again and fixes several gcc testsuite tests when defaulting to DWARF5. * dwarf2.c (struct dwarf2_debug_file): Add dwarf_rnglists_buffer and dwarf_rnglists_size fields. (dwarf_debug_sections): Add debug_rnglists. (dwarf_debug_section_enum): Likewise. (read_debug_rnglists): New function. (read_rangelist): New function to call either read_ranges or read_rnglists. Rename original function to... (read_ranges): ...this. (read_rnglists): New function.
2020-08-25Disable Clang's integrated assembler for two testcasesGary Benson3-1/+20
gdb.dwarf2/dw2-dir-file-name.exp fails to build using Clang because the generated assembly language contains .ascii directives with more than one string literal. gdb.dwarf2/dw2-restore.exp fails to build using Clang because it contains .func and .endfunc directives. This commit causes Clang to invoke the system assembler to assemble the relevant files. gdb/testsuite/ChangeLog: * gdb.dwarf2/dw2-dir-file-name.exp: Use system assembler when compiling with clang. * gdb.dwarf2/dw2-restore.exp: Likewise
2020-08-25Enable gdb.cp/ambiguous.exp with GCC and clangGary Benson2-2/+17
gdb.cp/ambiguous.exp failed to build using clang with the following error: gdb compile failed, /gdbtest/src/gdb/testsuite/gdb.cp/ambiguous.cc:70:36: warning: direct base 'A1' is inaccessible due to ambiguity: class JVA1 -> class KV -> class A1 class JVA1 -> class A1 [-Winaccessible-base] class JVA1 : public KV, public LV, public A1 { ^~~~~~~~~ This commit builds this testcase with -Wno-inaccessible-base when using clang, to avoid this failure. Furthermore, gdb.cp/ambiguous.exp has been disabled when using GCC since 1998. This commit enables this testcase, building with -Wno-inaccessible-base when using GCC >= 10.1, and -w otherwise. gdb/testsuite/ChangeLog: * gdb.cp/ambiguous.exp: Enable test when compiling with GCC. Add additional_flags=-Wno-inaccessible-base when compiling with GCC >= 10.1 or clang. Add additional_flags=-w when compiling with GCC < 10.
2020-08-25PR26505, ASAN: xstormy16_elf_relax_section elf32-xstormy16.c:595Alan Modra2-1/+8
PR 26505 * elf32-xstormy16.c (xstormy16_elf_relax_section): Check is_elf_hash_table before accessing elf fields.
2020-08-25PR26504, ASAN: parse_disassembler_options vax-dis.c:142Alan Modra2-2/+8
PR 26504 * vax-dis.c (parse_disassembler_options): Always add at least one to entry_addr_total_slots.
2020-08-25PR26501, ASAN: tic54x_undefined_symbol tc-tic54x.c:5015Alan Modra2-8/+9
PR26501 * gas/config/tc-tic54x.c (tic54x_undefined_symbol): Properly treat misc_symbol_hash entries without values.
2020-08-25PR26500, ASAN: tic4x_inst_make tc-tic4x.c:1247Alan Modra2-2/+7
PR 26500 * tc-tic4x.c (tic4x_inst_make): Don't die on terminating insn with name = "".
2020-08-25PR26482, ASAN: _bfd_xcoff_sizeof_headers coff-rs6000.c:2585Alan Modra2-5/+13
PR 26482 * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Ignore sections that won't be output.
2020-08-25PR26463, ASAN: m32c_elf_relax_section elf32-m32c.c:1448Alan Modra2-1/+8
PR 26463 * elf32-m32c.c (m32c_elf_relax_section): Check is_elf_hash_table before accessing elf fields.
2020-08-25PR26452, ASAN: som_compute_checksum som.c:4293Alan Modra2-5/+12
PR 26452 * som.c (som_compute_checksum): XOR 32-bit words in header, not unsigned long sized words.
2020-08-25PR26441, ASAN: get_b_cc tc-cr16.c:1521Alan Modra2-6/+9
PR 26441 * config/tc-cr16.c (get_b_cc): Return NULL early if op isn't two or three chars, and don't bother copying.
2020-08-25PR26430, ASAN: nacl_modify_segment_map elf-nacl.c:164Alan Modra2-5/+12
PR 26430 * elf-nacl.c (nacl_modify_segment_map): Correct alloc size and amount copied for elf_segment_map defined with one element sections array.
2020-08-25PR26426, ASAN: neon_quad tc-arm.c:15175Alan Modra2-0/+11
PR 26426 * config/tc-arm.c (do_neon_mvn, do_neon_swp): Bail out on NS_NULL shape.
2020-08-25PR26422, ASAN: elf32_arm_final_link_relocate elf32-arm.c:10351Alan Modra2-35/+28
Always reading 32 bits in order to extract addends from instruction fields is wrong when the field size is smaller. It also leads to reading past the end of the section. This patch tidies that by reading the proper field size, which allows some later refetching of addends to disappear. PR 26422 * elf32-arm.c (elf32_arm_final_link_relocate): Use the appropriate bfd_get_x size function to read addends out of fields. Apply rightshift adjustment too. Don't apply the now unnecessary howto->size shift to branch REL addends. Don't refetch R_ARM_ABS8 and R_ARM_ABS16 addends. Don't refetch thumb branch addends. Correct R_ARM_THM_JUMP6 addend.
2020-08-25PR26419, ASAN: mn10300_elf_relax_section elf-m10300.c:3943Alan Modra2-2/+8
PR 26419 * elf-m10300.c (mn10300_elf_relax_section): Don't attempt access before start of section.
2020-08-25PR26410, UBSAN: symbols.c:1818Alan Modra2-3/+10
Don't memset(0,0,0). PR 26410 * symbols.c (dollar_label_count, dollar_label_max): Make size_t. (dollar_label_clear): Don't call memset with NULL pointer.
2020-08-25gas warning fixesAlan Modra6-5/+16
Some versions of gcc with -Werror=format-overflow complain about using a perfectly good 7 char buffer for "r%dr%d" when the int is between 0 and 64, apparently not seeing the value range. note: __builtin___sprintf_chk output between 5 and 24 bytes into a destination of size 7 * config/tc-arc.c (declare_register_set): Avoid false positive format-overflow warning. * config/tc-epiphany.c (md_assemble): Likewise. * config/tc-mips.c (md_begin): Likewise. * config/tc-mmix.c (mmix_md_begin): Likewise. * config/tc-nds32.c (nds32_elf_append_relax_relocs): Avoid false positive "may be used uninitialized" warning.
2020-08-25tic54x ld testsuiteAlan Modra9-2/+27
* testsuite/ld-libs/libs.exp: Don't run on sh-pe, tic30 or tic54x. * testsuite/ld-scripts/data.d: xfail tic4x and tic54x. * testsuite/ld-scripts/empty-address-2a.d: xfail tic54x. * testsuite/ld-scripts/empty-address-2b.d: Likewise. * testsuite/ld-scripts/include-1.d: xfail tic4x and tic54x. * testsuite/ld-scripts/provide-1.d: xfail tic54x. * testsuite/ld-scripts/provide-2.d: Likewise. * testsuite/ld-scripts/provide-4.d: Likewise.
2020-08-25gdb/modula-2: parsing of multi-subscript arraysGaius Mulley5-7/+96
Fix bug PR m2/26372, GDB's inability to parse multi-dimensional modula-2 arrays. We previously had two rules for handling the parsing of array sub-scripts. I have reproduced them here with the actual handler blocks removed to make the bug clearer: exp : exp '[' non_empty_arglist ']' ; exp : exp '[' exp ']' ; non_empty_arglist : exp ; non_empty_arglist : non_empty_arglist ',' exp ; This is ambiguous as the pattern "exp '[' exp" could match either of the 'exp' rules. Currently it just so happens that the parser picks the second 'exp' rule which means we can only handle a single array index. As the handler code for the first 'exp' pattern will correctly handle and number of array indexes then lets just remove the second pattern. gdb/ChangeLog: PR m2/26372 * m2-exp.y (exp): Improve comment for non_empty_arglist case, add an assert. Remove single element array indexing pattern as the MULTI_SUBSCRIPT support will handle this case too. gdb/testsuite/ChangeLog: PR m2/26372 * gdb.modula2/multidim.c: New file. * gdb.modula2/multidim.exp: New file.
2020-08-25Revert "Fix for Bug 26372 [Modula-2] Parsing of multi-subscript arrays"Andrew Burgess5-105/+25
This reverts commit 07758bdfa9e5a762f2ec0deeb51b11d6ad5fe376.
2020-08-25Fix for Bug 26372 [Modula-2] Parsing of multi-subscript arraysGaius Mulley5-25/+105
Here is a bugfix for Pr 26372 [Modula-2] Parsing of multi-subscript arrays. Also included is a dejagnu testcase. No extra regressions are caused on Debian GNU/Linux Buster amd64. gdb/ChangeLog: 2020-08-25 Gaius Mulley <gaiusmod2@gmail.com> PR m2/26372 * m2-exp.y: Rewrite array subscript rules to support multidimension array access. (ArgumentList) replaces non_empty_arglist. gdb/testsuite/ChangeLog: 2020-08-25 Gaius Mulley <gaiusmod2@gmail.com> PR m2/26372 * testsuite/gdb.modula2/multidim.exp: New file. * testsuite/gdb.modula2/multidim.c: New file.
2020-08-24gdb: move declaration of valprint_check_validity to valprint.hSimon Marchi4-15/+21
The implementation is in valprint.c, so the declaration belongs in valprint.h. gdb/ChangeLog: * value.h (valprint_check_validity): Move declaration from here... * valprint.h (valprint_check_validity): ... to here. Change-Id: Ibe577d3696720099e6d79888d4ee8e3c1bf05a26
2020-08-25Automatic date update in version.inGDB Administrator1-1/+1
2020-08-24gdb/testsuite: make runto always emit a FAIL on internal errorSimon Marchi2-3/+7
I noticed that when a test uses `runto_main` and a GDB internal error happens while running to main, no error or fail is emitted. This is because `runto_main` uses the `no-message` option of `runto`. As a result, if a test fails to run to main and exits, no sign that something went wrong is emitted. For example, add this always-false assertion to compute_frame_id: --- a/gdb/frame.c +++ b/gdb/frame.c @@ -545,6 +545,7 @@ static void compute_frame_id (struct frame_info *fi) { gdb_assert (!fi->this_id.p); + gdb_assert (false); if (frame_debug) fprintf_unfiltered (gdb_stdlog, "{ compute_frame_id (fi=%d) ", ... and run gdb.dwarf2/dw2-align.exp. No fail or sign that something went wrong is shown. It just appears as if the test gets skipped. A developer introducing such a regression in this test today would likely notice it, because we are used to diff-ing test results. So we would see some PASSes dispappear for no good reason and look into it. But I find it worrysome for two reasons: 1. Scripts that analyze regressions (such as the one on the buildbot) may only look for new FAILs or new ERRORs. It would probably miss this. 2. Imagine that we one day have a testsuite that runs cleanly (some people might already run subsets of the testsuite and expect it to all pass), we would just run the testsuite and check that there are no fails. It would be easy to miss something like this. In case of internal error, I suggest making `runto` emit a FAIL even if `no-message` was passed. This is different from other failure modes that might be expected (whchi rightfully cause the test to simply be skipped). An internal error is always bad, so if it happens it should noisily fail. gdb/testsuite/ChangeLog: * lib/gdb.exp (runto): Always emit fail on internal error. Change-Id: I6e6faed4868ea821541a23042b2d01c30058b0d3
2020-08-24gdb: add debug_prefixed_vprintfSimon Marchi5-10/+56
To help ensure that all debug statements have the same format, introduce the debug_prefixed_vprintf helper. Implement linux_nat_debug_printf_1 and infrun_debug_printf_1 with it. I would eventually like to style the module and function name with some color, to help them stick out, but I don't really know how to do that yet, it can always be done later. gdb/ChangeLog: * debug.h: New file. * debug.c (debug_prefixed_vprintf): New function. * infrun.c (infrun_debug_printf_1): Use debug_prefixed_vprintf. * linux-nat.c (linux_nat_debug_printf_1): Likewise. Change-Id: Iccc290a2dc6b5fffcbe1c2866ed8d804ad380764
2020-08-24gdb: add infrun_debug_printf macroSimon Marchi8-533/+298
Introduce this macro to print debug statements in the infrun.c file, same idea as what was done in 9327494e0eeb ("gdb: add linux_nat_debug_printf macro"). Although in this case, there are places outside infrun.c that print debug statements if debug_infrun is set. So the macro has to be declared in the header file, so that it can be used in these other files. Note one special case. In stop_all_threads, I've used an explicit if (debug_infrun) infrun_debug_printf_1 ("stop_all_threads", "done"); for the message in the SCOPE_EXIT. Otherwise, the message appears like this: [infrun] operator(): done Until we find a better solution for extracting a meaningful function name for lambda functions, I think it's fine to handle these special cases manually, they are quite rare. Some tests need to be updated, because they rely on some infrun debug statements. gdb/ChangeLog: * infrun.h (infrun_debug_printf_1): New function declaration. (infrun_debug_printf): New macro. * infrun.c (infrun_debug_printf_1): Use infrun_debug_printf throughout. (infrun_debug_printf): New function. * breakpoint.c (should_be_inserted): Use infrun_debug_printf. (handle_jit_event): Likewise. gdb/testsuite/ChangeLog: * gdb.base/gdb-sigterm.exp (do_test): Update expected regexp. * gdb.threads/signal-while-stepping-over-bp-other-thread.exp: Likewise. * gdb.threads/stepi-random-signal.exp: Likewise. Change-Id: I66433c8a9caa64c8525ab57c593022b9d1956d5c
2020-08-25elf_hash_table_id accessAlan Modra32-72/+133
* elf-m10300.c (elf32_mn10300_hash_table): Test is_elf_hash_table before accessing elf_hash_table_id. * elf32-arc.c (elf_arc_hash_table): Likewise. * elf32-arm.c (elf32_arm_hash_table): Likewise. * elf32-avr.c (avr_link_hash_table): Likewise. * elf32-bfin.c (bfinfdpic_hash_table): Likewise. * elf32-cris.c (elf_cris_hash_table): Likewise. * elf32-csky.c (csky_elf_hash_table): Likewise. * elf32-frv.c (frvfdpic_hash_table): Likewise. * elf32-hppa.c (hppa_link_hash_table): Likewise. * elf32-lm32.c (lm32_elf_hash_table): Likewise. * elf32-m32r.c (m32r_elf_hash_table): Likewise. * elf32-m68hc1x.h (m68hc11_elf_hash_table): Likewise. * elf32-m68k.c (elf_m68k_hash_table): Likewise. * elf32-metag.c (metag_link_hash_table): Likewise. * elf32-microblaze.c (elf32_mb_hash_table): Likewise. * elf32-nds32.h (nds32_elf_hash_table): Likewise. * elf32-or1k.c (or1k_elf_hash_table): Likewise. * elf32-s390.c (elf_s390_hash_table): Likewise. * elf32-sh.c (sh_elf_hash_table): Likewise. * elf32-spu.c (spu_hash_table): Likewise. * elf32-tilepro.c (tilepro_elf_hash_table): Likewise. * elf32-xtensa.c (elf_xtensa_hash_table): Likewise. * elf64-alpha.c (alpha_elf_hash_table): Likewise. * elf64-hppa.c (hppa_link_hash_table): Likewise. * elf64-ia64-vms.c (elf64_ia64_hash_table): Likewise. * elf64-s390.c (elf_s390_hash_table): Likewise. * elfnn-ia64.c (elfNN_ia64_hash_table): Likewise. * elfnn-riscv.c (riscv_elf_hash_table): Likewise. * elfxx-mips.c (mips_elf_hash_table): Likewise. * elfxx-sparc.h (_bfd_sparc_elf_hash_table): Likewise. * elfxx-tilegx.c (tilegx_elf_hash_table): Likewise.
2020-08-24Fix erroroneous use of '%zu' in elfcore_grok_win32pstatusJon Turney2-2/+7
As reported in [1], _bfd_error_handler() doesn't support '%zu'. module_name_size is always 32-bits in the data structure we are extracting it from, so use an unsigned int to store it instead. [1] https://sourceware.org/pipermail/gdb-patches/2020-August/171391.html bfd/ChangeLog: 2020-08-21 Jon Turney <jon.turney@dronecode.org.uk> * elf.c (elfcore_grok_win32pstatus): Change name_size to unsigned int. Use '%u' format with _bfd_error_handler to render it.
2020-08-25PR26489, ASAN: ppc64_elf_size_stubs elf64-ppc.c:13389Alan Modra2-3/+9
Stub sections are inserted after sec_info is sized, so have higher ids. Test flags that will exclude stub sections before looking at the sec_info array. PR 26489 * elf64-ppc.c (ppc64_elf_size_stubs): Test code_sec->has_toc_reloc and code_sec->makes_toc_func_call before sec_info[code_sec->id].
2020-08-25PR26492, ASAN: ppc64_elf_before_check_relocs elf64-ppc.c:4337Alan Modra2-2/+9
PR 26492 * elf64-ppc.c (ppc_hash_table): Test is_elf_hash_table before accessing elf_hash_table_id.
2020-08-25PR26483, ASAN: ppc_elf_link_params elf32-ppc.c:2314Alan Modra2-2/+9
PR 26483 * elf32-ppc.c (ppc_elf_hash_table): Test is_elf_hash_table before accessing elf_hash_table_id.
2020-08-24bfd: Handle DW_FORM_data16 for .debug_line tables containing MD5Mark Wielaard2-2/+24
* dwarf2.c (read_attribute_value): Handle DW_FORM_data16. (read_formatted_entries): Likewise. And skip zero entry.
2020-08-24CSKY: Add new arch CK860.Cooper Qu16-15/+259
bfd/ * bfd-in2.h (bfd_mach_ck860): New. * cpu-csky.c (arch_info_struct): Add item for CK860. gas/ * config/tc-csky.c (csky_archs): Add item for CK860, change ck810 and ck807's arch_flag. (csky_cpus): Add item for CK860. (md_begin): Enable DSP for CK810 and CK807 by default. (md_apply_fix): Fix CKCORE_TLS_IE32 relocation failure. * gas/testsuite/gas/csky/cskyv2_all.d: Change 'sync 0' to 'sync'. * gas/testsuite/gas/csky/cskyv2_all.s: Likewise. * gas/testsuite/gas/csky/cskyv2_ck860.d: New. * gas/testsuite/gas/csky/cskyv2_ck860.s: New. * gas/testsuite/gas/csky/enhance_dsp.d: Change plsli.u16 to plsli.16. * gas/testsuite/gas/csky/enhance_dsp.s: Likewise. include/ * opcode/csky.h (CSKYV2_ISA_10E60): New. (CSKY_ARCH_860): New. opcode/ * csky-dis.c (csky_find_inst_info): Skip CK860's instructions in other CPUs to speed up disassembling. * csky-opc.h (csky_v2_opcodes): Add CK860's instructions, Change plsli.u16 to plsli.16, change sync's operand format. Change-Id: I80ec1a9c0cc600d668082a9b91ae6d45b33ec0fc
2020-08-24sparc testsuite falloutAlan Modra3-2/+7
2020-08-24tic54x fixesAlan Modra5-29/+33
A number of the tic54x tests were failing, and I thought it worth investigating since the target makes use of a lot of hash tables, and we've just changed gas hash tables. It turns out none of the gas failures were due to hashing. * config/tc-tic54x.c (stag_add_field_symbols): Don't free "name" in case where it isn't copied. * config/tc-tic54x.h (LOCAL_LABELS_FB): Undef. * testsuite/gas/tic54x/field.d: Dump section contents and symbols rather than disassembling. * testsuite/gas/tic54x/set.d: Adjust for newer disassembly.
2020-08-24PowerPC TPREL_HA/LO optimisationAlan Modra17-200/+436
ppc64 ld optimises sequences like the following addis 3,13,wot@tprel@ha lwz 3,wot@tprel@l(3) to nop lwz 3,wot@tprel(13) when "wot" is located near enough to the thread pointer. However, the ABI doesn't require that R_PPC64_TPREL16_HA always be on an addis rt,13,imm instruction, and while ld checked for that on the high-part instruction it didn't disable the optimisation on the low-part instruction. This patch fixes that problem, disabling the tprel optimisation globally if high-part instructions don't pass sanity checks. The optimisation is also enabled for ppc32, where before ld.bfd had the code in the wrong place and ld.gold had it in a block only enabled for ppc64. bfd/ * elf32-ppc.c (ppc_elf_check_relocs): Set has_tls_reloc for high part tprel16 relocs. (ppc_elf_tls_optimize): Sanity check high part tprel16 relocs. Clear do_tls_opt on odd instructions. (ppc_elf_relocate_section): Move TPREL16_HA/LO optimisation later. Don't sanity check them here. * elf64-ppc.c (ppc64_elf_check_relocs): Set has_tls_reloc for high part tprel16 relocs. (ppc64_elf_tls_optimize): Sanity check high part tprel16 relocs. Clear do_tls_opt on odd instructions. (ppc64_elf_relocate_section): Don't sanity check TPREL16_HA. ld/ * testsuite/ld-powerpc/tls32.d: Update for TPREL_HA/LO optimisation. * testsuite/ld-powerpc/tlsexe32.d: Likewise. * testsuite/ld-powerpc/tlsldopt32.d: Likewise. * testsuite/ld-powerpc/tlsmark32.d: Likewise. * testsuite/ld-powerpc/tlsopt4_32.d: Likewise. * testsuite/ld-powerpc/tprel.s, * testsuite/ld-powerpc/tprel.d, * testsuite/ld-powerpc/tprel32.d: New tests. * testsuite/ld-powerpc/tprelbad.s, * testsuite/ld-powerpc/tprelbad.d: New test. * testsuite/ld-powerpc/powerpc.exp: Run them. gold/ * powerpc.cc (Target_powerpc): Add tprel_opt_ and accessors. (Target_powerpc::Scan::local): Sanity check tprel high relocs. (Target_powerpc::Scan::global): Likewise. (Target_powerpc::Relocate::relocate): Control tprel optimisation with tprel_opt_ and enable for 32-bit.
2020-08-24Remove "memory exhausted" messagesAlan Modra10-79/+50
Since we use xcalloc to set up hash table memory, htab_create won't ever return a failure. * config/tc-aarch64.c (md_begin): Don't bother checking for out of memory failure from str_htab_create. * config/tc-arc.c (arc_insert_opcode, md_begin): Likewise. (arc_extcorereg, arc_stralloc): Likewise. * config/tc-arm.c (md_begin): Likewise. * config/tc-cr16.c (initialise_reg_hash_table, md_begin): Likewise. * config/tc-cris.c (md_begin): Likewise. * config/tc-crx.c (md_begin): Likewise. * config/tc-pdp11.c (md_begin): Likewise. * config/tc-score.c (s3_build_reg_hsh, s3_begin): Likewise. * config/tc-score7.c (s7_build_reg_hsh, s7_begin): Likewise.
2020-08-24gcc-4 -Og false positive "may be used uninitialised"Alan Modra4-7/+16
binutils/ * readelf.c (dump_section_as_strings) Avoid false positive "may be used uninitialised". gas/ * config/tc-arm.c (move_or_literal_pool): Avoid false positive "may be used uninitialised". (opcode_lookup): Likewise.
2020-08-24PR26526, 5014c2d22b2 breaks compiling the Linux kernel for ARMAlan Modra2-1/+7
PR 26526 * symbols.c (local_symbol_convert): Clear out xtra.
2020-08-24CSKY: Add ck803r2 series cpu.Cooper Qu8-10/+89
gas/ * config/tc-csky.c (CSKY_ISA_803R2): New. (csky_archs): Add ck803r2 series. (md_begin): Fix warning about -medsp. (csky_get_freg_val): Support lowercase of fpu register name. * testsuite/gas/csky/cskyv2_ck803r2.s: New file. * testsuite/gas/csky/cskyv2_ck803r2.d: New file. include/ * csky.h (CSKYV2_ISA_3E3R2): New. opcodes/ * csky-opc.h (csky_v2_opcodes): Add instruction bnezad.
2020-08-24Automatic date update in version.inGDB Administrator1-1/+1