aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-05-08xtensa ignores option --no-link-relaxAlan Modra2-3/+10
md_begin happens after md_parse_option. * config/tc-xtensa.c (opt_linkrelax): New variable. (md_parse_option): Set it here. (md_begin): Copy opt_linkrelax to linkrelax.
2019-05-08PR24520, gprof fails to read compressed debug dataAlan Modra2-0/+7
PR 24520 * corefile.c (core_init): Set BFD_DECOMPRESS.
2019-05-08Automatic date update in version.inGDB Administrator1-1/+1
2019-05-07xfail locview tests on mep that use complex relocs for view numbersAlexandre Oliva3-2/+9
Expressions that compute view numbers that aren't simplified early enough to a constant end up being selected for representation as complex relocations, enabled on mep-* targets. It would be possible to recognize such expressions, that can resolve to constants, but this problem was hit before, in preexisting tests, so xfail the new hits similarly. The new hits were caused by yesterday's patch to dwarf2dbg.c: views in the beginning of subsections are now computed later, based on the final views or previous subsections in the same section. for gas/ChangeLog * testsuite/gas/elf/dwarf2-18.d: Xfail mep-*. * testsuite/gas/elf/dwarf2-19.d: Likewise.
2019-05-07[gdb/testsuite] Fix ls_host return in index-cache.expTom de Vries2-1/+5
When adding a debug print here in index-cache.exp: ... proc_with_prefix test_cache_disabled { cache_dir } { lassign [ls_host $cache_dir] ret files_before + puts "before: '$files_before'" + exit ... we have: ... files_before: '' ... When further adding: ... proc_with_prefix test_cache_disabled { cache_dir } { + exec touch $cache_dir/foo.1 $cache_dir/foo.2 $cache_dir/foo.3 ... we have: ... files_before: 'foo.1' ... while we're expecting file_before to contain foo.[123]. Fix this by making the return statement in ls_host return a list rather than a string (in accordance with the ls_host documentation), after which we have: ... files_before: 'foo.1 foo.2 foo.3' ... Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries <tdevries@suse.de> * gdb.base/index-cache.exp (ls_host): Fix return statement.
2019-05-07[gdb/testsuite] Fix .debug_aranges in watch-loc.cTom de Vries2-1/+10
When running gdb.dlang/watch-loc.exp with target board cc-with-debug-names, we run into: ... FAIL: gdb.dlang/watch-loc.exp: disassemble _Dmain (GDB internal error) ... in more detail: ... (gdb) disassemble _Dmain gdb/dwarf2read.c:5293: internal-error: \ compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \ bound_minimal_symbol, CORE_ADDR, obj_section*, int): \ Assertion `result != NULL' failed. ... The problem is that the .debug_aranges section in watch-loc.c contains a debug_info_offset which is set to 0: ... asm ( " .pushsection .debug_aranges,\"\",%progbits\n" " .4byte .Laranges_end - .Laranges_start\n" ".Laranges_start:\n" " .2byte 0x2\n" " .4byte 0\n" ... while the compilation unit at offset 0 in the .debug_section in the executable is in fact not the compilation unit generated from watch-loc-dw.S. [ Note: this is a non-trivial test-case. The file watch-loc-dw.S contains a .debug_info section, but not an .debug_aranges section or any actual code. The file watch-loc.c contains code and a .debug_aranges section, but no other debug section. So, the intent for the .debug_aranges section in watch-loc.c is to refer to a compilation unit in the .debug_info section in watch-loc-dw.S. ] This happens when linked in object files contain dwarf info and are placed in the .debug_info section before the compilation units generated from watch-loc.c and watch-loc-dw.S. Fix this by defining the debug_info_offset field using a label .Lcu1_begin that defines the start of an empty .debug_section compilation unit: ... asm ( + " .pushsection .debug_info,\"\",%progbits\n" + ".Lcu1_begin:" + " .popsection\n" " .pushsection .debug_aranges,\"\",%progbits\n" " .4byte .Laranges_end - .Laranges_start \n" ".Laranges_start:\n" " .2byte 0x2\n" - " .4byte 0\n" + " .4byte .Lcu1_begin\n" ... which during linking merges with the start of the .debug_info section of watch-loc-dw.S. Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries <tdevries@suse.de> PR testsuite/24522 * gdb.dlang/watch-loc.c: Fix debug_info_offset in .debug_aranges section.
2019-05-07[gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.STom de Vries2-1/+7
When running gdb.dwarf2/dw2-case-insensitive.exp with target board cc-with-debug-names, we run into: ... FAIL: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off \ (GDB internal error) ... in more detail: ... (gdb) info functions fUnC_lang gdb/dwarf2read.c:5293: internal-error: \ compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \ bound_minimal_symbol, CORE_ADDR, obj_section*, int): \ Assertion `result != NULL' failed. ... The problem is that the .debug_aranges section in dw2-case-insensitive-debug.S contains a debug_info_offset which is set to 0: ... .section .debug_aranges,"",@progbits .4byte .Laranges_end - .Laranges_start .Laranges_start: .2byte 0x2 .4byte 0 ... while the compilation unit at offset 0 in the .debug_section of the executable is in fact not the compilation unit generated from dw2-case-insensitive-debug.S. This happens when linked in object files contain dwarf info and are placed in the .debug_info section before the compilation unit generated from dw2-case-insensitive-debug.S. Fix this by defining the debug_info_offset field using the label .Lcu1_begin that defines the start of the compilation unit: ... - .4byte 0 + .4byte .Lcu1_begin ... Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries <tdevries@suse.de> PR testsuite/24522 * gdb.dwarf2/dw2-case-insensitive-debug.S: Fix debug_info_offset in .debug_aranges section.
2019-05-07[gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assemblerTom de Vries2-4/+7
When running gdb.dwarf2/multidictionary.exp with target board cc-with-dwz and current dwz, we run into a dwz abort: ... gdb compile failed, gdb/contrib/cc-with-tweaks.sh: line 188: 11484 Aborted \ (core dumped) $DWZ "$output_file" > /dev/null 2>&1 UNTESTED: gdb.dwarf2/multidictionary.exp: multidictionary.exp ... The dwz abort (PR dwz/24169) is caused by an invalid DW_FORM_ref_addr in the multidictionary binary. The multidictionary binary is build from multidictionary.S which is generated using the dwarf assembler, and multidictionary.S contains dwarf for 3 compilation units. In multidictionary0.o (generated from multidictionary.S), we find a concrete formal parameter DIE: ... <2><dc>: Abbrev Number: 4 (DW_TAG_formal_parameter) <dd> DW_AT_abstract_origin: <0xa6> ... referring to an abstract formal parameter DIE at 0xa6: ... <2><a6>: Abbrev Number: 8 (DW_TAG_formal_parameter) <a7> DW_AT_name : msg <ab> DW_AT_type : <0x92> ... but in the multidictionary binary the concrete formal parameter DIE is still referring to 0xa6: ... <2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter) <1a4> DW_AT_abstract_origin: <0xa6> ... while the abstract formal parameter DIE has moved to 0x16d: ... <2><16d>: Abbrev Number: 8 (DW_TAG_formal_parameter) <16e> DW_AT_name : msg <172> DW_AT_type : <0x159> ... The concrete formal parameter DIE is specified in multidictionary.S like this: ... .Llabel21: .uleb128 4 .4byte .Llabel17 - .Lcu1_begin ... The problem is that the .Lcu1_begin label is assumed to mark the start of the .debug_info section in the executable, but in fact it marks the start of the first compilation unit from multidictionary.S in the executable. Usually these two entities are the same, but they are not when linked in object files contain dwarf info and are placed in the .debug_info section before the compilation units generated from multidictionary.S. Fix this in the dwarf assembler by generating instead the label itself: ... .Llabel21: .uleb128 4 .4byte .Llabel17 ... resulting in a relocation in the object file: ... Offset Info Type Sym. Value Sym. Name + Addend 0000000000dd 00040000000a R_X86_64_32 0000000000000000 .debug_info + a6 ... and resulting in the correct offset in the executable: ... <2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter) <1a4> DW_AT_abstract_origin: <0x16d> ... Tested on x86_64-linux with native and cc-with-dwz. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries <tdevries@suse.de> PR testsuite/24159 * lib/dwarf.exp: Fix handling of DW_FORM_ref_addr.
2019-05-07Tidy use_complex_relocs_forAlan Modra2-22/+18
Since I was looking at this I decided to fix the formatting, and used an old C switch statements trick to factor out common code. * symbols.c (use_complex_relocs_for): Formatting. Factor out X_add_symbol tests.
2019-05-06Fix scoped_mmap includesTom Tromey3-3/+6
I noticed that scoped_mmap.h included config.h, and that scoped_mmap.c included defs.h. This patch fixes both of these problems. Tested by the buildbot. gdb/ChangeLog 2019-05-06 Tom Tromey <tom@tromey.com> * common/scoped_mmap.c: Include common-defs.h. * common/scoped_mmap.h: Don't include config.h.
2019-05-07Automatic date update in version.inGDB Administrator1-1/+1
2019-05-06Fix regression caused by recently added syscall restart codeKevin Buettner2-0/+7
This line of code... *(int64_t *) ptr = *(int32_t *) ptr; ...in linux-x86-low.c is not needed (and does not work correctly) within a 32-bit executable. I added an __x86_64__ ifdef (which is used extensively elsewhere in the file for like purposes) to prevent this code from being included in 32-bit builds. It fixes the following regressions when running on native i686-pc-linux-gnu: FAIL: gdb.server/abspath.exp: continue to main FAIL: gdb.server/connect-without-multi-process.exp: multiprocess=auto: continue to main FAIL: gdb.server/connect-without-multi-process.exp: multiprocess=off: continue to main FAIL: gdb.server/ext-restart.exp: restart: run to main FAIL: gdb.server/ext-restart.exp: run to main FAIL: gdb.server/ext-run.exp: continue to main FAIL: gdb.server/ext-wrapper.exp: print d FAIL: gdb.server/ext-wrapper.exp: restart: print d FAIL: gdb.server/ext-wrapper.exp: restart: run to marker FAIL: gdb.server/ext-wrapper.exp: run to marker FAIL: gdb.server/no-thread-db.exp: continue to breakpoint: after tls assignment FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c FAIL: gdb.server/run-without-local-binary.exp: run test program until the end FAIL: gdb.server/server-kill.exp: continue to breakpoint: after server_pid assignment FAIL: gdb.server/server-kill.exp: tstatus FAIL: gdb.server/server-run.exp: continue to main gdb/gdbserver/ChangeLog: * linux-x86-low.c (x86_fill_gregset): Don't compile 64-bit sign extension code on 32-bit builds.
2019-05-06Add load-link, store-conditional paired EVA instructionsFaraz Shahbazker11-4/+124
Add paired load-link and store-conditional instructions to the EVA ASE for MIPS32R6[1]. These instructions are optional within the EVA ASE. Their presence is indicated by the XNP bit in the Config5 register. [1] "MIPS Architecture for Programmers Volume II-A: The MIPS32 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 230-231, pp. 357-360. gas/ * config/tc-mips.c (mips_set_ase): Handle ASE_EVA_R6. (macro) <M_LLWPE_AB, M_SCWPE_AB>: New cases. (mips_after_parse_args): Translate EVA to EVA_R6. * testsuite/gas/mips/ase-errors-1.s: Add new instructions. * testsuite/gas/mips/eva.s: Likewise. * testsuite/gas/mips/ase-errors-1.l: Check errors for new instructions. * testsuite/gas/mips/mipsr6@eva.d: Check new test cases. include/ * opcode/mips.h (ASE_EVA_R6): New macro. (M_LLWPE_AB, M_SCWPE_AB): New enum values. opcodes/ * mips-dis.c (mips_calculate_combination_ases): Add ISA argument and set ASE_EVA_R6 appropriately. (set_default_mips_dis_options): Pass ISA to above. (parse_mips_dis_option): Likewise. * mips-opc.c (EVAR6): New macro. (mips_builtin_opcodes): Add llwpe, scwpe. Derived from patch authored by Andrew Bennett <andrew.bennett@imgtec.com>
2019-05-06sym->sy_value is not valid for struct local_symbolAlan Modra2-1/+6
Fixes this mep-elf error: gas/elf/dwarf2-19.s: Error: Unknown expression operator (enum 0) gas/elf/dwarf2-19.s: Error: cannot convert expression symbol .L2 to complex relocation * symbols.c (symbol_relc_make_sym): Do not access sym->sy_value directly.
2019-05-06[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}Tom de Vries3-8/+49
In gdb.base/index-cache.exp, handle the case that binfile contains either a .gdb_index or .debug_names index section. Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names. gdb/testsuite/ChangeLog: 2019-05-06 Tom de Vries <tdevries@suse.de> * lib/gdb.exp (exec_has_index_section): New proc. * gdb.base/index-cache.exp: Handle case that binfile contains an index section.
2019-05-06PicoJava weak undefined symbolsAlan Modra4-1/+9
This fixes the recently added ld-elf/pr24511 test failure on pj-elf. Incidentally, pj-elf has failed its gas "pj" test since 2005-12-22 (git commit 54758c3e39). I think that makes the target ripe for obsolescence. bfd/ * elf32-pj.c (pj_elf_reloc): Don't report undefined weak as an error. ld/ * testsuite/ld-undefined/weak-undef.exp: Don't xfail pj.
2019-05-06PowerPC reloc symbols that shouldn't be adjustedAlan Modra7-17/+51
GOT and PLT relocs shouldn't have their symbols replaced with a section symbol plus added. Nor should the HIGHA TLS relocations, which failed to be caught by the range test in ppc_fix_adjustable. bfd/ * reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA), (BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA): Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry. gas/ * config/tc-ppc.c (ppc_fix_adjustable): Exclude all GOT and PLT relocs, and VLE sdarel relocs. * testsuite/gas/ppc/power4.d: Adjust.
2019-05-05[LVu] base subseg head view on prev subseg's tailAlexandre Oliva5-5/+107
Location views at borders between subsegments/subsections in the same segment/section are computed as if each new subsegment/subsection started with a forced view reset to zero, but the line number program does not introduce resets that are not explicitly requested, so if a subsegment ends at the same address another starts, the line number program will have a continuity of views at the border address, whereas the initial view number label in the latter subsegment will be miscomputed as zero. This patch delays the assignment of view expressions at subsegment heads to the time of chaining the frags of subsegments into a single segment, so that they are set based on the view at the end of the previous subsegment in the same segment. The line number program created for the test program had an unnecessary DW_LNS_advance_pc at the end. This patch also arranges for us not to emit it. for gas/ChangeLog * dwarf2dbg.c (set_or_check_view): Skip heads when assigning views of prior locs. (dwarf2_gen_line_info_1): Skip heads. (size_inc_line_addr, emit_inc_line_addr): Drop DW_LNS_advance_pc for zero addr delta. (dwarf2_finish): Assign views for heads of segments. * testsuite/gas/elf/dwarf2-19.d: New. * testsuite/gas/elf/dwarf2-19.s: New. * testsuite/gas/elf/elf.exp: Test it.
2019-05-06Automatic date update in version.inGDB Administrator1-1/+1
2019-05-05Automatic date update in version.inGDB Administrator1-1/+1
2019-05-04Remove a VEC from aarch64-tdep.cTom Tromey2-21/+22
This removes a VEC from aarch64-tdep.c, replacing it with a std::vector. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * aarch64-tdep.c (stack_item_t): Remove typedef and DEF_VEC. (struct aarch64_call_info): Add initializers. <si>: Now a std::vector. (pass_on_stack, aarch64_push_dummy_call): Update.
2019-05-04Remove a VEC from ppc-linux-nat.cTom Tromey2-28/+39
This replaces a VEC in ppc-linux-nat.c with a std::vector. gdb/ChangeLog 2019-05-04 Simon Marchi <simon.marchi@efficios.com> Tom Tromey <tom@tromey.com> * ppc-linux-nat.c (thread_points_p): Remove typedef and DEF_VEC. (ppc_threads): Now a std::vector. Now static. (hwdebug_find_thread_points_by_tid) (ppc_linux_nat_target::low_new_thread, ppc_linux_thread_exit): Update.
2019-05-04Change arc_tdesc_init to return boolTom Tromey2-9/+13
This changes arc_tdesc_init to return bool. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * arc-tdep.c (arc_tdesc_init): Return bool.
2019-05-04Use gdb_assert_not_reached in arm-linux-nat.cTom Tromey2-1/+6
This changes arm-linux-nat.c to use gdb_assert_not_reached rather than an assert of false. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * arm-linux-nat.c (arm_linux_nat_target::can_use_hw_breakpoint): Use gdb_assert_not_reached.
2019-05-04Use "false" in compile_cplus_convert_enumTom Tromey2-1/+6
This changes compile_cplus_convert_enum to use "false". Note that this variable is never modified, which seems like an error. I filed PR compile/24473 for this. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * compile/compile-cplus-types.c (compile_cplus_convert_enum): Use "false".
2019-05-04Use bool, true, and false in arc-tdep.cTom Tromey2-4/+8
This changes arc-tdep.c to use bool, true, and false. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * arc-tdep.c (arc_tdesc_init): Use bool.
2019-05-04Use "false" in select_frame_for_miTom Tromey2-1/+5
This changes select_frame_for_mi to use "false" rather than "FALSE". gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * stack.c (select_frame_for_mi): Use "false", not "FALSE".
2019-05-04Change valid_command_p to return boolTom Tromey2-3/+7
This changes valid_command_p to return bool. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * cli/cli-cmds.c (valid_command_p): Return bool.
2019-05-04Change valid_user_defined_cmd_name_p to return boolTom Tromey3-5/+10
This changes valid_user_defined_cmd_name_p to return bool. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * cli/cli-decode.c (valid_user_defined_cmd_name_p): Return bool. * command.h (valid_user_defined_cmd_name_p): Channge return type.
2019-05-04Fix incorrect use of 'is' operator for comparison in ↵Raul Tambre2-2/+8
python/lib/gdb/command/prompt.py The 'is' operator is not meant to be used for comparisons. It currently working is an implementation detail of CPython. CPython 3.8 has added a SyntaxWarning for this.
2019-05-04Don't derive partial_symbol from general_symbol_infoTom Tromey4-46/+72
This patch partly reverts commit 8a6d42345 ("Change representation of psymbol to flush out accessors"); specifically, it changes partial_symbol to no longer derive from general_symbol_info. The basic problem here is that the bcache compares objects bitwise, and this change made it less likely that the relevant fields in the psymbol would be fully initialized. This could be seen by running a test under valgrind on the Fedora-i686 buildbot. I considered a simpler patch, namely just zeroing the psymbol's "value" field in add_psymbol_to_bcache. However, it wasn't clear to me that this memset could not then be optimized away by the compiler. Regression tested by the buildbot. I think this should go in 8.3 as well. gdb/ChangeLog 2019-05-04 Tom Tromey <tom@tromey.com> * psymtab.c (psymbol_name_matches, match_partial_symbol) (lookup_partial_symbol, print_partial_symbols) (recursively_search_psymtabs, sort_pst_symbols, psymbol_hash) (psymbol_compare): Update. (add_psymbol_to_bcache): Clear the entire psymbol. (maintenance_check_psymtabs): Update. * psympriv.h (struct partial_symbol): Don't derive from general_symbol_info. <obj_section, unrelocated_address, address, set_unrelocated_address>: Update. <ginfo>: New member. * dwarf-index-write.c (write_psymbols, debug_names::insert) (debug_names::write_psymbols): Update.
2019-05-04[gdb/testsuite] Add cc-with-debug-names.expTom de Vries4-2/+40
Add a target board that makes it easy to run the test suite with a .debug_names section added to executables. gdb/ChangeLog: 2019-05-04 Tom de Vries <tdevries@suse.de> * contrib/cc-with-tweaks.sh: Support -n arg. gdb/testsuite/ChangeLog: 2019-05-04 Tom de Vries <tdevries@suse.de> * boards/cc-with-debug-names.exp: New file.
2019-05-04m32c padding with nopsAlan Modra11-35/+30
m32c_md_end attempted to pad out a code section with nops, but this was just plain wrong in many ways: - The padding didn't happen at all if the last section emitted wasn't a code section. - The padding went to the wrong place if subsections were used, and the last subseg used wasn't the highest numbered subseg. - Padding wasn't added to all code sections. - If the last section was empty, it was padded to 4 bytes. - The padding didn't go to a 4-byte alignment boundary, instead it effectively made the last instruction 4 bytes in size. - The padding didn't take into account that code sections may have contents other than machine instructions. So, rip it out and handle nop padding properly, also fixing .align .balign/.p2align in the middle of code. gas/ * config/tc-m32c.c (insn_size): Delete static var. (md_begin): Don't set it. (m32c_md_end): Delete. (md_assemble): Add insn_size auto var. * config/tc-m32c.h (md_end): Don't define. (m32c_md_end): Delete. (NOP_OPCODE, HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): Define. * testsuite/gas/all/align.d: Remove m32c from notarget list. * testsuite/gas/all/incbin.d: Likewise. * testsuite/gas/elf/dwarf2-11.d: Likewise. * testsuite/gas/macros/semi.d: Likewise. * testsuite/gas/all/gas.exp (do_comment): Similarly. ld/ * testsuite/ld-scripts/fill.d: Don't xfail m32c * testsuite/ld-scripts/fill16.d: Likewise.
2019-05-04PR24511, nm should not mark symbols in .init_array as "t"Alan Modra10-23/+88
This patch restricts the section names matched in coff_section_type, a function that translates section names to symbol type, and arranges to translate section flags to symbol type before looking at names. The latter change resulted in various test failures due to improper section flags being used in tests, and by the plugin support, so fix that too. The new test fails on many ELF targets that lack .init/fini_array in their scripts. I've just xfailed those. pru-elf oddly defines __init_array_begin rather than __init_array_start. I've left that target as a FAIL, and pj-elf too which reports an error for undefined weak symbols. bfd/ PR 24511 * syms.c (coff_section_type): Only allow '.', '$' and numeric following the standard section names. (bfd_decode_symclass): Prioritize section flag tests in decode_section_type before name tests in coff_section_type. * plugin.c (bfd_plugin_canonicalize_symtab): Init fake_section and fake_common_section using BFD_FAKE_SECTION. Use "fake" as their names and choose standard .text section flags for fake_section. ld/ PR 24511 * testsuite/ld-elf/pr14156a.d: Allow for .init/.fini being a data section on hppa64. * testsuite/ld-elf/pr14156b.d: Likewise. * testsuite/ld-scripts/pr18963.t: Map standard sections to set output section flags. * testsuite/ld-scripts/sane1.t: Likewise. * testsuite/ld-elf/init-fini-arrays.s: Reference __init_array_start and __fini_array_start. Define __start et al. * testsuite/ld-elf/pr24511.d: New test.
2019-05-04Fix leaks by clearing registers and frame caches.Philippe Waroquiers3-0/+12
Valgrind reports leaks such as the below in the tests: gdb.threads/corethreads.exp gdb.threads/gcore-thread.exp gdb.ada/task_switch_in_core.exp gdb.trace/tfile.exp gdb.base/siginfo-thread.exp ==12701== 1,123 (72 direct, 1,051 indirect) bytes in 1 blocks are definitely lost in loss record 2,928 of 3,247 ==12701== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344) ==12701== by 0x5CF771: get_thread_arch_aspace_regcache(ptid_t, gdbarch*, address_space*) (regcache.c:330) ==12701== by 0x5CF92A: get_thread_regcache (regcache.c:366) ==12701== by 0x5CF92A: get_current_regcache() (regcache.c:372) ==12701== by 0x4C7964: get_current_frame() (frame.c:1587) ==12701== by 0x4C7A3C: get_selected_frame(char const*) (frame.c:1651) ==12701== by 0x669EAD: print_thread_info_1(ui_out*, char const*, int, int, int) (thread.c:1151) ==12701== by 0x66A9A1: info_threads_command(char const*, int) (thread.c:1217) ==12701== by 0x40A878: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892) ... Fix these leaks by clearing registers and frame caches. This leak and fix is similar to the leak fixed by 799efbe8e01
2019-05-03Remove "struct" from foreach statementsTom Tromey9-12/+33
Some versions of gcc have a bug that causes for (struct mumble : something) ... to give a compiler error. We routinely work around this bug in gdb, but apparently had not done so in a while. This patch fixes the remaining known cases of this problem. gdb/ChangeLog 2019-05-03 Sandra Loosemore <sandra@codesourcery.com> Tom Tromey <tom@tromey.com> * dictionary.c (collate_pending_symbols_by_language): Remove "struct" from foreach. * symtab.c (lookup_global_symbol_from_objfile) (lookup_symbol_in_objfile_from_linkage_name): Remove "struct" from foreach. * ser-tcp.c (net_open): Remove "struct" from foreach. * objfiles.c (objfile_relocate, objfile_rebase) (objfile_has_symbols): Remove "struct" from foreach. * minsyms.c (lookup_minimal_symbol_by_pc_section): Remove "struct" from foreach. * dwarf2read.c (handle_struct_member_die): Remove "struct" from foreach. * darwin-nat.c (thread_info_from_private_thread_info): Remove "struct" from foreach. * ada-lang.c (create_excep_cond_exprs) (ada_exception_catchpoint_cond_string): Remove "struct" from foreach.
2019-05-04Automatic date update in version.inGDB Administrator1-1/+1
2019-05-03Fix cast of character to enum type in AdaTom Tromey6-3/+23
An internal bug report points out that, when a global character enum type is used, casting fails, like: (gdb) print global_char_enum'('F') $1 = 70 The bug here turns out to be that enumerators are qualified, so for example the mangled name might be "pck__QU48", rather than "QU48". This patch fixes the problem by only examining the suffix of the enumerator. This is ok because the type is already known, and because the mangling scheme ensures that there won't be clashes. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-03 Tom Tromey <tromey@adacore.com> * ada-exp.y (convert_char_literal): Check suffix of each enumerator. gdb/testsuite/ChangeLog 2019-05-03 Tom Tromey <tromey@adacore.com> * gdb.ada/char_enum/pck.ads (Global_Enum_Type): New type. * gdb.ada/char_enum/foo.adb: Use Global_Enum_Type. * gdb.ada/char_enum.exp: Add test.
2019-05-03Add noyywrap to ada-lex.lDilyan Palauzov3-8/+8
This patch comes from PR ada/21406. It adds the noyywrap option to ada-lex.l. This was already done (by the same author) for other .l files in the binutils-gdb tree, so it seems reasonably safe. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-03 Dilyan Palauzov <dilyan.palauzov@aegee.org> PR ada/21406: * ada-exp.y (yywrap): Don't define. * ada-lex.l (%option): Add noyywrap (yywrap): Remove.
2019-05-03[gdb/testsuite] Add cc-with-gdb-index.expTom de Vries2-0/+30
Add a target board cc-with-gdb-index.exp, to make it easy to run cc-with-tweaks with CC_WITH_TWEAKS_FLAGS='-i'. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-03 Tom de Vries <tdevries@suse.de> * boards/cc-with-gdb-index.exp: New file.
2019-05-03On MS-Windows, define _WIN32_WINNT in a single common place.Eli Zaretskii8-20/+28
This changeset defines _WIN32_WINNT to at least 0x0501, the level of Windows XP, unless defined to a higher level, in a single place. It then removes all the overrides of _WIN32_WINNT in individual files as no longer needed. Doing this also solves compilation of windows-nat.c with mingw.org's MinGW, as that file uses CONSOLE_FONT_INFO which needs the XP level to become exposed in the Windows headers, while mingw.org defaults to Windows 9X. gdb/ChangeLog: 2019-05-03 Eli Zaretskii <eliz@gnu.org> * common/common-defs.h [__MINGW32__ || __CYGWIN__]: Define _WIN32_WINNT to the XP level, unless already defined to a higher level. * unittests/parse-connection-spec-selftests.c: * ser-tcp.c: * common/netstuff.c [USE_WIN32API]: Remove the _WIN32_WINNT override. gdb/gdbserver/ChangeLog: 2019-05-03 Eli Zaretskii <eliz@gnu.org> * remote-utils.c: * gdbreplay.c [USE_WIN32API]: Remove the _WIN32_WINNT override.
2019-05-03Fix lookup of separate debug file on MS-Windows.Eli Zaretskii4-3/+42
If you put the separate debug file in a global debug directory, GDB on MS-Windows would fail to find it. This happens because we obtain the directory to look up the debug file by concatenating the debug directory name with the leading directories of the executable, and the latter includes the drive letter on MS-Windows. So we get an invalid file name like d:/usr/lib/debug/d:/usr/bin/foo.debug This commit fixes that by removing the colon of the drive letter, thus producing d:/usr/lib/debug/d/usr/bin/foo.debug gdb/ChangeLog: 2019-05-03 Eli Zaretskii <eliz@gnu.org> * symfile.c (find_separate_debug_file): Remove colon from the drive spec of DOS/Windows file names of the target, so that the file name produced from DEBUGDIR and the target's directory will be valid on DOS/Windows systems. gdb/doc/ChangeLog: 2019-05-03 Eli Zaretskii <eliz@gnu.org> * gdb.texinfo (Separate Debug Files): Document how the subdirectory of the global debug directory is computed on MS-Windows/MS-DOS.
2019-05-03Automatic date update in version.inGDB Administrator1-1/+1
2019-05-02gdb/rust: Handle printing structures containing stringsAndrew Burgess5-0/+30
When printing a rust structure that contains a string GDB can currently fail to read the fields that define the string. This is because GDB mistakenly treats a value that is the parent structure as though it is the structure that defines the string, and then fails to find the fields needed to extract a string. The solution is to create a new value to represent the string field of the parent value. gdb/ChangeLog: * rust-lang.c (val_print_struct): Handle printing structures containing strings. gdb/testsuite/ChangeLog: * gdb.rust/simple.exp: Add new test case. * gdb.rust/simple.rs (struct StringAtOffset): New struct. (main): Initialise an instance of the new struct.
2019-05-02i386: Issue a warning to IRET without suffix for .code16gccH.J. Lu5-7/+46
The .code16gcc directive to support 16-bit mode with 32-bit address. For IRET without a suffix, generate 16-bit IRET with a warning to return from an interrupt handler in 16-bit mode. PR gas/24485 * config/tc-i386.c (process_suffix): Issue a warning to IRET without a suffix for .code16gcc. * testsuite/gas/i386/jump16.s: Add tests for iretX. * testsuite/gas/i386/jump16.d: Updated. * testsuite/gas/i386/jump16.e: New file.
2019-05-02Remove _initialize_valarithTom Tromey2-5/+4
I noticed that _initialize_valarith is empty. This patch removes it. Because init.c is constructed at build time, there's no reason to keep empty initialization functions around, because there's no overhead to reintroducing them when needed. gdb/ChangeLog 2019-05-02 Tom Tromey <tromey@adacore.com> * valarith.c (_initialize_valarith): Remove.
2019-05-02Treat the .gnu.debuglink and .gnu.debugaltlink sections as debug sections ↵Nick Clifton2-0/+11
when reading them in from COFF/PE format files. PR 24493 * coffcode.h (styp_to_sec_flags): Treat .gnu.debuglink and .gnu.debugaltlink sections as debugging sections.
2019-05-02Automatic date update in version.inGDB Administrator1-1/+1
2019-05-01[BINUTILS, AArch64] Enable Transactional Memory ExtensionSudakshina Das16-1087/+1255
This patch enables the new Transactional Memory Extension added recently as part of Arm's new architecture technologies. We introduce a new optional extension "tme" to enable this. The following instructions are part of the extension: * tstart <Xt> * ttest <Xt> * tcommit * tcancel #<imm> The ISA for the above can be found here: https://developer.arm.com/docs/ddi0602/latest/base-instructions-alphabetic-order *** gas/ChangeLog *** 2019-05-01 Sudakshina Das <sudi.das@arm.com> * config/tc-aarch64.c (parse_operands): Add case for AARCH64_OPND_TME_UIMM16. (aarch64_features): Add "tme". * doc/c-aarch64.texi: Document the same. * testsuite/gas/aarch64/tme-invalid.d: New test. * testsuite/gas/aarch64/tme-invalid.l: New test. * testsuite/gas/aarch64/tme-invalid.s: New test. * testsuite/gas/aarch64/tme.d: New test. * testsuite/gas/aarch64/tme.s: New test. *** include/ChangeLog *** 2019-05-01 Sudakshina Das <sudi.das@arm.com> * opcode/aarch64.h (AARCH64_FEATURE_TME): New. (enum aarch64_opnd): Add AARCH64_OPND_TME_UIMM16. *** opcodes/ChangeLog *** 2019-05-01 Sudakshina Das <sudi.das@arm.com> * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Add case for AARCH64_OPND_TME_UIMM16. (aarch64_print_operand): Likewise. * aarch64-tbl.h (QL_IMM_NIL): New. (TME): New. (_TME_INSN): New. (struct aarch64_opcode): Add tstart, tcommit, ttest and tcancel.
2019-05-01Fix spelling mistakes in binutils testsuite.Matthew Malcomson3-2/+8
* testsuite/binutils-all/objdump.exp: Correct executable spelling. * testsuite/binutils-all/compress.exp: Likewise.