aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-07-27S12Z: Remove ELF_TARGET_ID macroJohn Darrington2-1/+4
* elf32-s12z.c (ELF_TARGET_ID): Don't define.
2018-07-27Add functions and macros to read and write 24 bit values.John Darrington3-2/+57
* libbfd.c (bfd_getb24, bfd_getl24): New functions. (bfd_get_24, bfd_put_24): New macros. * bfd-in2.h: Regenerate.
2018-07-27S12Z: Remove inappropriate comment.John Darrington2-1/+5
* elf32-s12z.c (s12z_elf_set_mach_from_flags): Remove comment.
2018-07-27S12Z: Emit uninitialized data in the .bss segmentJohn Darrington2-0/+6
* scripttempl/elfm9s12z.sc: Put input sections called .common into the .bss segment.
2018-07-27S12Z: Emit initialized data segment image.John Darrington2-3/+7
* scripttempl/elfm9s12z.sc: Emit the data_section at the end of text.
2018-07-27MIPS/GAS: Correct the AFL_ASE_MASK macroChenghua Xu2-1/+6
Fix an issue with commit 8095d2f70e1a ("MIPS/GAS: Split Loongson MMI Instructions from loongson2f/3a"), AFL_ASE_MASK should be 0x0006ffff instead of 0x0004ffff. 2018-07-27 Chenghua Xu <paul.hua.gm@gmail.com> Maciej W. Rozycki <macro@linux-mips.org> include/ * elf/mips.h (AFL_ASE_MASK): Correct typo.
2018-07-27Re: PowerPC Improve support for Gekko & BroadwayAlan Modra2-6/+12
PowerPC has replaced use of "long" for insns with "int64_t", in preparation for 64-bit power10 insns. * ppc-opc.c (insert_sprbat): Correct function parameter and return type. (extract_sprbat): Likewise, variable too.
2018-07-27Automatic date update in version.inGDB Administrator1-1/+1
2018-07-26Fix Cygwin compilation after target_ops C++ conversion.Jon Turney2-4/+9
After f6ac5f3d "Convert struct target_ops to C++", we need to explicitly use the global namespace when calling ::close() from windows_nat_target methods, as that object has a close() method. gdb/ChangeLog: 2018-07-14 Jon Turney <jon.turney@dronecode.org.uk> * windows-nat.c (windows_nat_target::create_inferior): Update to call close() in global namespace.
2018-07-26x86: Initialize broadcast_op.bytes to 0H.J. Lu2-0/+6
* config/tc-i386.c (check_VecOperations): Initialize broadcast_op.bytes to 0.
2018-07-26Make psymbols and psymtabs independent of the program spaceTom Tromey11-356/+280
This patch finally makes partial symbols and partial symtabs independent of the program space. Specifically: It changes add_psymbol_to_list to accept a section index, and changes the psymbol readers to pass this. At the same time it removes the code to add the objfile's section offset to the psymbol. It adds an objfile argument to the psymtab textlow and texthigh accessors and changes some code to use the raw variants instead. It removes the "relocate" method from struct quick_symbol_functions, as it is no longer needed any more. It changes partial_symbol::address so that the relevant offset is now applied at the point of use. gdb/ChangeLog 2018-07-26 Tom Tromey <tom@tromey.com> * dwarf-index-write.c (add_address_entry): Don't add objfile offsets. * dbxread.c (find_stab_function): Rename from find_stab_function_addr. Return a bound_minimal_symbol. (read_dbx_symtab): Use raw_text_low, raw_text_high. Don't add objfile offsets. (end_psymtab): Use raw_text_low, raw_text_high, MSYMBOL_VALUE_RAW_ADDRESS. (read_ofile_symtab): Update. (process_one_symbol): Update. * dwarf2read.c (create_addrmap_from_index): Don't add objfile offsets. (dw2_relocate): Remove. (dw2_find_pc_sect_symtab): Bias PC by the text offset before searching addrmap. (dwarf2_gdb_index_functions, dwarf2_debug_names_functions): Update. (process_psymtab_comp_unit_reader, add_partial_symbol) (add_partial_subprogram, dwarf2_ranges_read): Update. (load_partial_dies): Update. (add_address_entry): Don't add objfile offsets. (dwarf2_build_include_psymtabs): Update. (create_addrmap_from_aranges): Don't add objfile offsets. (dw2_find_pc_sect_compunit_symtab): Update. * mdebugread.c (parse_symbol): Don't add objfile offsets. (parse_lines): Remove 'pst' parameter, replace with 'textlow'. Update. (parse_partial_symbols): Don't add objfile offsets. Use raw_text_low, raw_text_high. Update. (handle_psymbol_enumerators, psymtab_to_symtab_1): Update. * objfiles.c (objfile_relocate1): Don't relocate psymtabs_addrmap or call 'relocate' quick function. Clear psymbol_map. * psympriv.h (struct partial_symbol) <address>: Add section offset. <set_unrelocated_address>: Rename from set_address. <raw_text_low, raw_text_high>: New methods. <text_low, text_high>: Add objfile parameter. (add_psymbol_to_bcache): Add 'section' parameter. Call set_unrelocated_address. * psymtab.c (find_pc_sect_psymtab_closer, find_pc_sect_psymtab) (find_pc_psymbol): Update. (fixup_psymbol_section, relocate_psymtabs): Remove. (dump_psymtab, psym_functions): Update. (add_psymbol_to_bcache, add_psymbol_to_list): Add 'section' parameter. (maintenance_info_psymtabs, maintenance_check_psymtabs): Update. (start_psymtab_common): Update. * symfile-debug.c (debug_qf_relocate): Remove. (debug_sym_quick_functions): Update. * symfile.h (struct quick_symbol_functions) <relocate>: Remove. * xcoffread.c (scan_xcoff_symtab): Don't add objfile offsets. Update.
2018-07-26Add validity bits for psymtab high and low fieldsTom Tromey5-11/+30
Right now some psymtab code checks whether a psymtab's textlow or texthigh fields are valid by comparing against 0. I imagine this is mildly wrong in the current environment, but once psymtabs are relocated dynamically, it will no longer be correct, because it will be much more normal to see a psymtab with a textlow of zero -- this will just mean it appears at the start of the text section. This patch introduces validity bits to handle this situation more nicely, and changes users of the code to follow. gdb/ChangeLog 2018-07-26 Tom Tromey <tromey@redhat.com> * dbxread.c (end_psymtab): Use text_high_valid and text_low_valid. * mdebugread.c (parse_partial_symbols): Use text_low_valid. (psymtab_to_symtab_1): Use text_high_valid and text_low_valid. * psympriv.h (struct partial_symtab) <m_text_low, m_text_high>: Update comment. <text_low_valid, text_high_valid>: New fields. <set_text_low, set_text_high>: Update. * xcoffread.c (scan_xcoff_symtab): Use text_low_valid.
2018-07-26Introduce accessors for psymtab high and low fieldsTom Tromey7-97/+150
This introduces accessors for the partial symbol table textlow and texthigh fields. This lets us later arrange to relocate these values at their point of use. I did this conversion by renaming the fields. I didn't rename the fields back afterward, thinking that on the off chance that someone has a patch touching this area, then a merge would helpfully break their compile. I looked at making the fields private, but this interferes with the memset in allocate_psymtab, and I didn't want to chase this down. This conversion can be done later if need be. gdb/ChangeLog 2018-07-26 Tom Tromey <tom@tromey.com> * dbxread.c (read_dbx_symtab, end_psymtab, read_ofile_symtab): Update. * dwarf2read.c (dwarf2_create_include_psymtab): Don't initialize textlow and texthigh fields. (process_psymtab_comp_unit_reader, dwarf2_build_include_psymtabs): Update. * mdebugread.c (parse_lines, parse_partial_symbols) (psymtab_to_symtab_1): Update. * psympriv.h (struct partial_symtab) <m_text_low, m_text_high>: Rename fields. Update comment. Now private. <text_low, text_high, set_text_low, set_text_high>: New methods. * psymtab.c (find_pc_sect_psymtab_closer, find_pc_sect_psymtab) (find_pc_sect_psymbol, relocate_psymtabs, dump_psymtab) (start_psymtab_common, maintenance_info_psymtabs) (maintenance_check_psymtabs): Update. * xcoffread.c (xcoff_end_psymtab): Don't initialize textlow and texthigh fields. (scan_xcoff_symtab): Update.
2018-07-26Introduce partial_symbol::addressTom Tromey3-20/+53
This introduces a partial_symbol::address method. This method takes an objfile argument. This is necessary so that we can later relocate a partial symbol at its point of use. It also adds an accessor to compute the unrelocated value; and a method to be used for setting the field. Note that the new method doesn't actually perform any relocation yet. That will come in a subsequent patch. However, the comments are written to reflect the intended, rather than the temporary, semantics. gdb/ChangeLog 2018-07-26 Tom Tromey <tromey@redhat.com> * psympriv.h (struct partial_symbol) <unrelocated_address, address, set_address>: New methods. * psymtab.c (find_pc_sect_psymtab_closer, find_pc_sect_psymbol) (fixup_psymbol_section, relocate_psymtabs): Update. (print_partial_symbols): Add 'objfile' parameter. Update. (dump_psymtab, add_psymbol_to_bcache, psym_fill_psymbol_map): Update.
2018-07-26Change representation of psymbol to flush out accessorsTom Tromey4-101/+115
This is the psymbol analog to the patch to change the representation of minimal symbols: https://sourceware.org/ml/gdb-patches/2013-10/msg00524.html It has the same rationale: namely, that we're going to change the code to apply psymbol offsets at runtime. This will be done by adding an argument to the SYMBOL_VALUE_ADDRESS macro -- but since we can't convert all the symbol types at once, we need a new approach. Because gdb now is in C++, this patch changes partial_symbol to inherit from general_symbol_info, rather than renaming the field. This simplifies code in some places. Also, as noted before, these macros implement a kind of "phony polymorphism" that is not actually useful in practice; so this patch removes the macros in favor of simply referring directly to members. In a few cases -- obj_section in this patch and the symbol address in the future -- methods will be used instead. Note that this removes the blanket memset from add_psymbol_to_bcache. This hasn't really been needed since bcache was modified to allow holes in objects and since psymtab took advantage of that. This deletion was required due to changing partial_symbol to derive from general_symbol_info. gdb/ChangeLog 2018-07-26 Tom Tromey <tom@tromey.com> * dwarf-index-write.c (write_psymbols, debug_names::insert) (debug_names::write_psymbols): Update. * psympriv.h (struct partial_symbol): Derive from general_symbol_info. <obj_section>: New method. (PSYMBOL_DOMAIN, PSYMBOL_CLASS): Remove.n * psymtab.c (find_pc_sect_psymtab_closer, find_pc_sect_psymtab) (find_pc_sect_psymbol, fixup_psymbol_section) (match_partial_symbol, lookup_partial_symbol, relocate_psymtabs) (print_partial_symbols, recursively_search_psymtabs) (compare_psymbols, psymbol_hash, psymbol_compare) (add_psymbol_to_bcache, maintenance_check_psymtabs) (psymbol_name_matches, psym_fill_psymbol_map): Update.
2018-07-26Remove dead code in end_psymtabTom Tromey2-7/+5
I noticed that there is a bit of dead code in end_psymtab. This deletes it. Normally I would investigate a fix for the code. However, considering that the code has been this way a long time (since the first import to sourceware) and considering that dbxread.c is not as important any more, I think it's safe to just consider that there's no bug. gdb/ChangeLog 2018-07-26 Tom Tromey <tromey@redhat.com> * dbxread.c (end_psymtab): Remove dead code.
2018-07-26[gdb/testsuite] Add comment in gdb.base/vla-optimized-out.cTom de Vries2-0/+7
2018-07-26 Tom de Vries <tdevries@suse.de> * gdb.base/vla-optimized-out.c: Add comment about origin of test-case.
2018-07-26PowerPC Improve support for Gekko & BroadwayAlex Chadwick12-13/+323
This is a relatively straightforward patch to improve support for the IBM Gekko and IBM Broadway processors. Broadway is functionally equivalent to the IBM 750CL, while Gekko's functionality is a subset of theirs. The patch simplifies this reality and adds -mgekko and -mbroadway as aliases for -m750cl. I didn't feel it was worth wasting a PPC_OPCODE_* bit to differentiate Gekko. The patch adds a number of simplified mnemonics for special purpose register access. Notably, Broadway adds 4 additional IBAT and DBAT registers but these are not assigned sequential SPR numbers. gas/ * config/tc-ppc.c (md_show_usage): Add -mgekko and -mbroadway. * doc/as.texi (Target PowerPC options): Add -mgekko and -mbroadway. * doc/c-ppc.texi (PowerPC-Opts): Likewise. * testsuite/gas/ppc/broadway.d, * testsuite/gas/ppc/broadway.s: New test for broadway. * testsuite/gas/ppc/ppc.exp: Run new test. include/ * opcode/ppc.h (PPC_OPCODE_750): Adjust comment. opcodes/ * ppc-dis.c (ppc_opts): Add -mgekko and -mbroadway. (powerpc_init_dialect): Handle bfd_mach_ppc_750. * ppc-opc.c (insert_sprbat, extract_sprbat): New functions to support disjointed BAT. (powerpc_operands): Allow extra bit in SPRBAT_MASK. Add SPRGQR. (XSPRGQR_MASK, GEKKO, BROADWAY): Define. (powerpc_opcodes): Add 750cl extended mnemonics for spr access.
2018-07-26Re: Enhance powerpc ld -r --relaxAlan Modra2-3/+7
git commit 491993044ba6 broke the powerpc vxworks testsuite. * testsuite/ld-powerpc/vxworks-relax-2.rd: Update for 2018-07-25 ppc_elf_relax_section changes.
2018-07-26gdb: Add switch to disable DWARF stack unwindersAndrew Burgess11-2/+106
Add a maintenance command to disable the DWARF stack unwinders. Normal users would not need this feature, but it is useful to allow extended testing of fallback stack unwinding strategies, for example, prologue scanners. This is a partial implementation of the idea discussed in pr gdb/8434, which talks about a generic ability to disable any frame unwinder. Being able to arbitrarily disable any frame unwinder would be a more complex patch, and I was unsure how useful such a feature would really be, however, I can see (and have) a real need to disable DWARF unwinders. That's why this patch only targets that specific set of unwinders. If in the future we find ourselves adding more switches to disable different unwinders, then we should probably move to a more generic solution, and remove this patch. gdb/ChangeLog: * dwarf2-frame-tailcall.c (tailcall_frame_sniffer): Exit early if DWARF unwinders are disabled. * dwarf2-frame.c: Add dwarf2read.h include. (dwarf2_frame_sniffer): Exit early if DWARF unwinders are disabled. (dwarf2_frame_unwinders_enabled_p): Define. (show_dwarf_unwinders_enabled_p): New function. (_initialize_dwarf2_frame): Register switch to control DWARF unwinder use. * dwarf2-frame.h (dwarf2_frame_unwinders_enabled_p): Declare. * dwarf2read.c (set_dwarf_cmdlist): Remove static keyword. (show_dwarf_cmdlist): Remove static keyword. * dwarf2read.h (set_dwarf_cmdlist): Declare. (show_dwarf_cmdlist): Declare. * NEWS: Document new feature. gdb/doc/ChangeLog: * gdb.texinfo (Maintenance Commands): Add description of maintenance command to control dwarf unwinders. gdb/testsuite/ChangeLog: * gdb.base/maint.exp: Add check that dwarf unwinders control flag is visible.
2018-07-26Implement PowerPC64 .localentry for value 1Alan Modra10-31/+106
This adds support for ".localentry 1", a new st_other STO_PPC64_LOCAL_MASK encoding that signifies a function with a single entry point like ".localentry 0", but unlike a ".localentry 0" function does not preserve r2. include/ * elf/ppc64.h: Specify byte offset to local entry for values of two to six in STO_PPC64_LOCAL_MASK. Clarify r2 return value for such functions when entering via global entry point. Specify meaning of a value of one in STO_PPC64_LOCAL_MASK. bfd/ * elf64-ppc.c (ppc64_elf_size_stubs): Use a ppc_stub_long_branch_r2off for calls to symbols with STO_PPC64_LOCAL_MASK bits set to 1. gas/ * config/tc-ppc.c (ppc_elf_localentry): Allow .localentry values of 1 and 7 to directly set value into STO_PPC64_LOCAL_MASK bits. ld/testsuite/ * ld-powerpc/elfv2.s: Add .localentry f5,1 testcase. * ld-powerpc/elfv2exe.d: Update. * ld-powerpc/elfv2so.d: Update.
2018-07-26Automatic date update in version.inGDB Administrator1-1/+1
2018-07-26[gdb/breakpoints] Fix sigsegv in info prog at exec catchpointTom de Vries5-1/+80
With the test-case contained in this patch and compiled for debug we run into a segfault with trunk gdb: ... $ gdb catch-follow-exec -batch -ex "catch exec" \ -ex "set follow-exec-mode new" -ex "run" -ex "info prog" Catchpoint 1 (exec) process xxx is executing new program: /usr/bin/ls [New inferior 2 (process 0)] [New process xxx] Thread 2.1 "ls" hit Catchpoint 1 (exec'd /usr/bin/ls), in _start () from /lib64/ld-linux-x86-64.so.2 Segmentation fault (core dumped) ... The patch fixes the segfault by returning an error in info_program_command if get_last_target_status returns minus_one_ptid. The test-case is non-standard, because the standard approach runs into PR23368, a problem with gdb going to the background. Build and reg-tested on x86_64-linux. 2018-07-26 Tom de Vries <tdevries@suse.de> PR breakpoints/23366 * infcmd.c (info_program_command): Handle ptid == minus_one_ptid. * gdb.base/catch-follow-exec.c: New test. * gdb.base/catch-follow-exec.exp: New file.
2018-07-25x86: Expand Broadcast to 3 bitsH.J. Lu6-409/+521
Expand Broadcast to 3 bits so that the number of bytes to broadcast can be computed as 1 << (Broadcast - 1). Use it to simplify x86 assembler. gas/ * config/tc-i386.c (Broadcast_Operation): Add bytes. (build_evex_prefix): Use i.broadcast->bytes. (match_broadcast_size): New function. (check_VecOperands): Use the broadcast field to compute the number of bytes to broadcast directly. Set i.broadcast->bytes. Use match_broadcast_size. opcodes/ * i386-gen.c (adjust_broadcast_modifier): New function. (process_i386_opcode_modifier): Add an argument for operands. Adjust the Broadcast value based on operands. (output_i386_opcode): Pass operand_types to process_i386_opcode_modifier. (process_i386_opcodes): Pass NULL as operands to process_i386_opcode_modifier. * i386-opc.h (BYTE_BROADCAST): New. (WORD_BROADCAST): Likewise. (DWORD_BROADCAST): Likewise. (QWORD_BROADCAST): Likewise. (i386_opcode_modifier): Expand broadcast to 3 bits. * i386-tbl.h: Regenerated.
2018-07-26[gdb/symtab] Warn about unresolved DW_AT_upper_bound/DW_AT_countTom de Vries2-2/+22
This patch generates a warning if DW_AT_upper_bound or DW_AT_count is defined, but can't be translated. This is triggered for current gcc in lto mode for vla test-cases. Build and reg-tested on x86_64-linux. 2018-07-26 Tom de Vries <tdevries@suse.de> * dwarf2read.c (read_subrange_type): Warn if DW_AT_upper_bound or DW_AT_count can't be translated to a dynamic prop.
2018-07-25[gdb/exp] Fix exception when printing optimized out vlaTom de Vries4-1/+66
When compiling vla-optimized-out.c with -O3 and a recent gcc, and trying to print the vla a in f1, we run into this gdb exception: ... Cannot find matching parameter at DW_TAG_call_site 0x4003be at main ... This is a regression introduced by 42dc7699a2 "[gdb/exp] Fix printing of type of optimized out vla". This patch fixes the regression by wrapping the ctx.eval call in dwarf2_locexpr_baton_eval in try/catch, similar to what is done in dwarf2_evaluate_loc_desc_full. Build and reg-tested on x86_64-linux. 2018-07-25 Tom de Vries <tdevries@suse.de> * dwarf2loc.c (dwarf2_locexpr_baton_eval): Wrap ctx.eval call in try/catch. * gdb.base/vla-optimized-out-o3.exp: New file. Reuse vla-optimized-out.c.
2018-07-25Notify about breakpoint modification when enabling/disabling single locationJan Vrany5-0/+103
When a single breakpoint location enableness was modified by a CLI command, observers were not notified about it. This issue is now fixed. gdb/ChangeLog: * breakpoint.c (enable_disable_bp_num_loc): Notify observers. gdb/testsuite/ChangeLog: * gdb.mi/mi-breakpoint-location-ena-dis.cc: New file. * gdb.mi/mi-breakpoint-location-ena-dis.exp: New file.
2018-07-25list Tom Tromey as GDB Global MaintainerJoel Brobecker2-0/+5
gdb/ChangeLog: * MAINTAINERS (Global Maintainers): Add Tom Tromey.
2018-07-25Clarify doc for .arch/.cpuThomas Preud'homme2-2/+10
Documentation for .arch and .cpu directives currently says that it accepts the same name as -march/-mcpu command-line options respectively. However it only accept the architecture/CPU part of those options: it does not accept specifying an extension which is done via .arch_extension. This patch clarifies that the extension is not accepted. 2018-07-25 Thomas Preud'homme <thomas.preudhomme@linaro.org> gas/ * doc/c-arm.texi (.arch directive): Clarify that name must not include an extension. (.cpu directive): Likewise.
2018-07-25Fix potential memory leaks in some of the binutils source files.Nick Clifton4-61/+120
* rdcoff.c (parse_coff_struct_type): Free fields array upon early exit. (parse_coff_enum_type): Free names and vals arrays upon early exit. * rddbg.c (read_section_stabs_debugging_info): Free shandle and strings and stabs arrays upon early exit. * readelf.c (get_32bit_section_headers): Free shdrs structure upon early exit. (get_64bit_section_headers): Likewise. (get_32bit_elf_symbols): Generate an error if multiple symbol table index sections are associated with the same symbol section. (get_64bit_elf_symbols): Likewise. (process_dynamic_section): Generate an error if there are multiple dynamic symbol table sections, multiple dynamic string tables or multiple dynamic symbol information sections.
2018-07-25Enhance powerpc ld -r --relaxAlan Modra7-24/+81
One of the ill effects of ld -r is to mash together sections. That can result in reduced icache performance at runtime due to unexpected movement of code. Another problem is that sections can become too large to link on targets that have limited relative addressing. ld -r --relax attempts to overcome the large section problem for branches by inserting trampolines, but the powerpc support added lots of unnecessary trampolines. This patch trims them somewhat. bfd/ * elf32-ppc.c (ppc_elf_relax_section): Ignore common or undef locals. Avoid trashing toff with added when used as a symbol index. Ignore R_PPC_PLTREL24 addends in unused example code. Avoid creating unnecessary fixups when relocatable. ld/ * testsuite/ld-powerpc/big.s: New file. * testsuite/ld-powerpc/relaxrl.d: New test. * testsuite/ld-powerpc/powerpc.exp: Run new test. * testsuite/ld-powerpc/relaxr.d: Adjust.
2018-07-25Suppress string diagnostics for pre-release GCCAlan Modra7-14/+24
Extends commit 898ade12ee8 to cover other targets. * elf32-arm.c (elf32_arm_nabi_write_core_note): Disable -Wstringop-truncation warning for gcc-8.0 too. * elf32-ppc.c (ppc_elf_write_core_note): Likewise. * elf64-ppc.c (ppc64_elf_write_core_note): Likewise. * elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewise. * elf32-s390.c (elf_s390_write_core_note): Comment fix. * elf64-s390.c (elf_s390_write_core_note): Likewise.
2018-07-25Automatic date update in version.inGDB Administrator1-1/+1
2018-07-24Set CU language before processing any DIEs (symtab/23010 et al)Keith Seitz2-6/+31
This patch is another attempt at really fixing the multitude of assertions being seen where symbols of one language are being added to symbol lists of another language. In this specific case, the backtrace command (thread apply all bt full) that is looking for the compunit containing the PC of the thread. That calls get_prev_frame several times. This function calls (eventually) dwarf2_frame_prev_register. That eventually ends up calling find_pc_compunit_symtab. In this function (find_pc_sect_compunit_symtab actually), we loop over all compunits, calling the "quick" function dw2_find_pc_sect_compunit_symtab. That function calls dw2_instantiate_symtab to read in all the CU's symbols. Now the fun begins. dw2_do_instantiate_symtab queues the per_cu for reading, using a default "pretend" language of language_minimal with the expectation that this will be set later. The DIEs of this (only queued) CU are then processed. The first DIE is DW_TAG_compile_unit. That's handled by read_file_scope. (Nearly) The first thing read_file_scope does is: get_scope_pc_bounds (die, &lowpc, &highpc, cu); This function loops over the children of the current DIE (a compile_unit), looking for bounds. The first such child is a subprogram, and we attempt to get its bounds. We use dwarf2_attr to get at DW_AT_high_pc. This subprogram has DW_AT_specification set, so dwarf_attr (via follow_die_ref/follow_die_offset) will follow that, but follow_die_offset *also* attempts to load the containing CU for the spec DIE. That spec DIE lives inside a CU that is a partial_unit and has no language attribute. So it simply inherits the language from the CU that elicited the read. [That all happens in follow_die_offset.] The original CU's language is still language_minimal -- we haven't gotten to the line in read_file_scope that actually sets the language yet! And that is the cause of these problems. The call to prepare_one_comp_unit needs to be the *first* thing that is done when reading a CU so that the CU's language can be recorded (and inherited by any referenced partial_units). Since a test reproducer for this has been so elusive, this patch also adds a wrapper function around add_symbol_to_list which asserts when adding a symbol of one language to a list containing symbols of a different language. gdb/ChangeLog: 2017-07-24 Keith Seitz <keiths@redhat.com> PR symtab/23010 * dwarf2read.c (dw2_add_symbol_to_list): New function. (fixup_go_packaging, new_symbol): Use dw2_add_symbol_to_list instead of add_symbol_to_list. (read_file_scope): Call prepare_one_comp_unit before reading any other DIEs.
2018-07-24Fix indentation in scoped_mmap.hSimon Marchi2-19/+24
gdb/ChangeLog: * common/scoped_mmap.h (class scoped_mmap): Fix indentation.
2018-07-24Remove some unnecessary declarations and configuryTom Tromey5-53/+8
configure checks for declarations of free, malloc, and realloc; but the results are only used in a single spot: utils.c. I think these checks are long since obsolete, so this patch removes them. Grepping the entire tree for these HAVE_DECL_ symbols, the only uses of possible interest to gdb come from bfd/sysdep.h; but this is not (nor should be) included by gdb. (And furthermore I think the code there is probably also obsolete.) gdb/ChangeLog 2018-07-24 Tom Tromey <tom@tromey.com> * utils.c (malloc, realloc, free): Don't declare. * configure, config.in: Rebuild. * configure.ac: Don't check for declarations of free, malloc, or realloc.
2018-07-24x86: Use unsigned int to iterate through vector operandsH.J. Lu2-5/+11
Use unsigned int to iterate through multi-length vector operands to avoid sign-extension. * config/tc-i386.c (build_vex_prefix): Use unsigned int to iterate through multi-length vector operands. (build_evex_prefix): Likewise.
2018-07-24Updated French translation for ld/ and Swedish translation for binutils/Nick Clifton5-1281/+6287
bin * po/sv.po: Updated Swedish translation. ld * po/fr.po: Updated French translation.
2018-07-24PR23431, Messages composed from pieces can't be properly translatedAlan Modra3-10/+33
PR 23431 * dwarf.c (display_formatted_table): Replace "what" parameter with "is_dir". Expand messages. Fix capitalisation. * testsuite/binutils-all/dw5.W: Update expected output.
2018-07-24PR23430, Indices misspelledAlan Modra13-14/+46
PR 23430 include/ * elf/common.h (SHT_SYMTAB_SHNDX): Fix comment typo. bfd/ * dwarf2.c (dwarf_debug_section_enum): Fix comment typo. * elf.c (bfd_section_from_shdr, elf_sort_sections): Likewise. binutils/ * elfcomm.h (struct archive_info): Rename uses_64bit_indicies to uses_64bit_indices. * elfcomm.c (setup_archive): Update uses of above. * readelf.c (process_archive): Likewise. (get_section_type_name): Rename indicies to indices. (get_32bit_elf_symbols, get_64bit_elf_symbols): Likewise. (process_section_groups): Likewise. cpu/ * or1kcommon.cpu (spr-reg-indices): Fix description typo. opcodes/ * or1k-desc.h: Regenerate.
2018-07-24x86-64: correct AVX512F vcvtsi2s{d,s} handlingJan Beulich15-404/+453
Just like for their AVX counterparts and CVTSI2S{D,S}, a memory source here is ambiguous and hence - in source files should be qualified with a suitable suffix or operand size specifier (not doing so is an error in Intel mode, and will gain a diagnostic in AT&T mode in the future), - in disassembly should be properly suffixed (the Intel operand size specifiers were emitted correctly already).
2018-07-24Automatic date update in version.inGDB Administrator1-1/+1
2018-07-23xtensa: ld: convert tests to run_dump_testMax Filippov8-257/+38
Three tests with individual .exp files can be implemented in less verbose way with run_dump_test infrastructure. Convert them. ld/ 2018-07-23 Max Filippov <jcmvbkbc@gmail.com> * testsuite/ld-xtensa/coalesce.d: New file. * testsuite/ld-xtensa/coalesce.exp: Remove file. * testsuite/ld-xtensa/diff_overflow.d: New file. * testsuite/ld-xtensa/diff_overflow.exp: Remove file. * testsuite/ld-xtensa/lcall.d: New file. * testsuite/ld-xtensa/lcall.exp: Remove file. * testsuite/ld-xtensa/xtensa.exp (coalesce, diff_overflow) (lcall): New tests.
2018-07-23xtensa: ld: add tests for static linkage relaxationMax Filippov15-0/+249
ld/ 2018-07-23 Max Filippov <jcmvbkbc@gmail.com> * testsuite/ld-xtensa/relax-static-defs.s: New file. * testsuite/ld-xtensa/relax-static-local-pie.d: New file. * testsuite/ld-xtensa/relax-static-local-shared.d: New file. * testsuite/ld-xtensa/relax-static-local.s: New file. * testsuite/ld-xtensa/relax-static-pie.d: New file. * testsuite/ld-xtensa/relax-static-shared.d: New file. * testsuite/ld-xtensa/relax-static.s: New file. * testsuite/ld-xtensa/relax-undef-weak-local-pie.d: New file. * testsuite/ld-xtensa/relax-undef-weak-local-shared.d: New file. * testsuite/ld-xtensa/relax-undef-weak-local.s: New file. * testsuite/ld-xtensa/relax-undef-weak-pie.d: New file. * testsuite/ld-xtensa/relax-undef-weak-shared.d: New file. * testsuite/ld-xtensa/relax-undef-weak.s: New file. * testsuite/ld-xtensa/xtensa.exp: New file.
2018-07-23xtensa: ld: rename xtensa.exp to xtensa-linux.expMax Filippov2-0/+4
xtensa.exp in fact only checks xtensa*-*-linux* configurations, rename it to xtensa-linux.exp to allow xtensa.exp to check xtensa*-*-*. ld/ 2018-07-23 Max Filippov <jcmvbkbc@gmail.com> * testsuite/ld-xtensa/xtensa.exp: Rename to xtensa-linux.exp.
2018-07-23xtensa: move dynamic relocations sections consistency checkMax Filippov2-11/+18
The function elf_xtensa_finish_dynamic_sections checks that sizes of sections .rela.dyn and .rela.plt match number of corresponding relocation records, but the check is only done when .rela.plt is non-empty, so, e.g. it is never run for the static PIE. Rearrange the test so that .rela.dyn and .rela.plt are checked always. bfd/ 2018-07-23 Max Filippov <jcmvbkbc@gmail.com> * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Move relocation sections consistency check to always check both .rela.dyn and .rela.plt when they exist. Rearrange variable definition and assignment places.
2018-07-23xtensa: fix relaxation of undefined weak references in shared objectsMax Filippov2-1/+8
The change c451bb34ae8b ("xtensa: don't emit dynamic relocation for weak undefined symbol") didn't properly handle shrinking of relocation sections due to coalescing of references to a dynamic undefined weak symbol in a shared object, which resulted in the following assertion failure in ld when linking uClibc-ng libthread_db for xtensa: BFD (GNU Binutils) 2.31 internal error, aborting at elf32-xtensa.c:3269 in elf_xtensa_finish_dynamic_sections Shrink dynamic relocations section for dynamic undefined weak symbols when linking a shared object. bfd/ 2018-07-23 Max Filippov <jcmvbkbc@gmail.com> * elf32-xtensa.c (shrink_dynamic_reloc_sections): Shrink dynamic relocations section for dynamic undefined weak symbols when linking a shared object.
2018-07-23Avoid ubsan complaint in BFDTom Tromey2-2/+7
I built gdb with ubsan and ran the test suite. One complaint was due to bfd_get_elf_phdrs passing NULL to memcpy. This patch avoids the complaint. bfd/ChangeLog 2018-07-23 Tom Tromey <tom@tromey.com> * elf.c (bfd_get_elf_phdrs): Don't call memcpy with size 0.
2018-07-23x86: Add a test for missing broadcastH.J. Lu5-0/+19
For .intel_syntax noprefix vcvtps2qq xmm0, DWORD PTR [rax] we should get Error: broadcast is needed for operand of such type for `vcvtps2qq' * testsuite/gas/i386/inval-avx512f.s: Add a test for missing broadcast. * testsuite/gas/i386/x86-64-inval-avx512f.s: Likewise. * testsuite/gas/i386/inval-avx512f.l: Updated. * testsuite/gas/i386/x86-64-inval-avx512f.l: Likewise.
2018-07-23x86: Remove broadcast_not_on_src_operandH.J. Lu2-4/+6
Remove broadcast_not_on_src_operand since it is unused. * config/tc-i386.c (i386_error): Remove broadcast_not_on_src_operand. (match_template): Likewse.