aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-07-28S/390: Fix segfault when linking -shared -nostartfilesAndreas Krebbel2-3/+9
Regression-tested on s390x. bfd/ChangeLog: 2017-07-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * elf32-s390.c (elf_s390_finish_dynamic_sections): Add NULL pointer check for htab->elf.irelplt. * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
2017-07-28Make some improvements to how SORT_* specifiers and EXCLUDE_FILE specifiers ↵Andrew Burgess20-60/+244
are handled in the linker script grammar. * ldgram.y (ldgram_had_keep): Make static. (ldgram_vers_current_lang): Likewise. (filename_spec): New rule. (input_section_spec_no_keep): Use filename_spec. (wildcard_maybe_exclude): New rule. (wildcard_spec): Rename to... (section_name_spec): ...this. (section_NAME_list): Rename to... (section_name_list): ...this. (section_name_spec): Simplifiy and use wildcard_maybe_exclude. * ldlang.c (placed_commons): Delete. (lang_add_wild): No longer set placed_commons. (print_wild_statement): Use full names for SORT specifiers. * testsuite/ld-scripts/align.exp: Run new tests. * testsuite/ld-scripts/align3.d: New file. * testsuite/ld-scripts/align3.t: New file. * testsuite/ld-scripts/align4.d: New file. * testsuite/ld-scripts/align4.t: New file. * testsuite/ld-scripts/align5.d: New file. * testsuite/ld-scripts/align5.t: New file. * testsuite/ld-scripts/exclude-file-5.d: New file. * testsuite/ld-scripts/exclude-file-5.map: New file. * testsuite/ld-scripts/exclude-file-5.t: New file. * testsuite/ld-scripts/exclude-file-6.d: New file. * testsuite/ld-scripts/exclude-file-6.map: New file. * testsuite/ld-scripts/exclude-file-6.t: New file. * NEWS: Mention the changes.
2017-07-28Fix problems parsing RISCV architecture extenstions in the assembler.Andrew Waterman2-11/+13
* config/tc-riscv.c (riscv_set_arch): Handle the Q subset like all other subsets. Obviate use-after-free.
2017-07-28Automatic date update in version.inGDB Administrator1-1/+1
2017-07-27Add myself as a write-after-approval GDB maintainer.Xavier Roirand2-0/+5
gdb/Changelog: 2017-07-27 Xavier Roirand <roirand@adacore.com> * MAINTAINERS (Write After Approval): Add Xavier Roirand. Change-Id: Iee1dae7597da8f2c8c3098c14649ff400a81a388
2017-07-27Move AVR .promemx.* sections into higher memory.Georg-Johann Lay2-1/+9
PR ld/21849 * scripttempl/avr.sc: Split .progmemx.* from .progmem.* and locate former at a higher address.
2017-07-27Fix address violation issues encountered when parsing corrupt binaries.Nick Clifton6-39/+82
PR 21840 * mach-o.c (bfd_mach_o_read_symtab_strtab): Fail if the symtab size is -1. * nlmcode.h (nlm_swap_auxiliary_headers_in): Replace assertion with error return. * section.c (bfd_make_section_with_flags): Fail if the name or bfd are NULL. * vms-alpha.c (bfd_make_section_with_flags): Correct computation of end pointer. (evax_bfd_print_emh): Check for invalid string lengths.
2017-07-27Automatic date update in version.inGDB Administrator1-1/+1
2017-07-26Gold: Fix mips.cc for GCC 4.2H.J. Lu2-1/+6
GCC 4.2 fails to compile "(uint64_t) 0x800080008000" with error: integer constant is too large for ‘long’ type This patch adds "llu" suffix to 0x800080008000 for GCC 4.2. * mips.cc (Mips_relocate_functions): Add "llu" suffix to 0x800080008000.
2017-07-26Add "maint check xml-descriptions" to test builtin xml target descriptionsYao Qi11-0/+259
Now, GDB is able to dynamically create i386-linux target descriptions from features, instead of using pre-generated target descriptions. These pre-generated target descriptions are no longer used by GDB (note that they are still used by GDBserver). This patch add a new maint command "maint check xml-descriptions" to test dynamically generated tdesc are identical to these generated from xml files. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * cli/cli-cmds.c (maintenancechecklist): New variable. * gdbcmd.h (maintenancechecklist): Declare it. * i386-linux-tdep.c (_initialize_i386_linux_tdep) [GDB_SELF_TEST]: Call i386_linux_read_description with different masks. * maint.c (maintenance_check_command): New function. (_initialize_maint_cmds): Call add_prefix_cmd. * target-descriptions.c (tdesc_reg): override operator != and ==. (tdesc_type): Likewise. (tdesc_feature): Likewise. (target_desc): Likewise. [GDB_SELF_TEST] (selftests::record_xml_tdesc): New function. (maintenance_check_xml_descriptions): New function. (_initialize_target_descriptions) Add command "xml-descriptions". * target-descriptions.h (selftests::record_xml_tdesc): Declare. gdb/testsuite: 2017-07-26 Yao Qi <yao.qi@linaro.org> * gdb.gdb/unittest.exp: Invoke command "maintenance check xml-descriptions". gdb/doc: 2017-07-26 Yao Qi <yao.qi@linaro.org> * gdb.texinfo (Maintenance Commands): Document command "maint check xml-descriptions".
2017-07-26Lazily and dynamically create i386-linux target descriptionsYao Qi5-34/+112
Instead of using pre-generated target descriptions, this patch changes GDB to lazily and dynamically create target descriptions according to the target hardware capability (xcr0 in i386). This support any combination of target features. Some reg in target description has "regnum" attribute, so its register number is got from the attribute value instead from sequential allocation. <reg name="xmm0" bitsize="128" type="vec128" regnum="32"/> when target description is created, it should match the regnum, so this patch adds a new field m_next_regnum to track it, if attribute number is greater than the m_next_regnum, print the code to set register number explicitly. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * i386-linux-tdep.c: Don't include features/i386/i386-*linux.c. Include features/i386/32bit-*.c. (i386_linux_read_description): Generate target description if it doesn't exist. (_initialize_i386_linux_tdep): Don't call _initialize_tdesc_i386 functions. * features/i386/32bit-linux.c: Re-generated. * features/i386/32bit-sse.c: Likewise. * target-descriptions.c (print_c_feature::visit): Print code to set register number if needed. (print_c_feature) <m_next_regnum>: New field.
2017-07-26Generate c for feature instead of tdescYao Qi10-12/+425
This patch changes Makefile and command "maint print c-files" so that GDB can print c files for features instead target description. Previously, we feed GDB a target description xml file, which generate c files including multiple features. With this patch, in Makefile, we wrap each feature xml file, and create a temp target description which include only one feature. Then, adjust the target description printer for them, and print a c function for each given feature, so that we can use these c functions later to create target description in a flexible way. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * features/Makefile (CFILES): Rename with TDESC_CFILES. (FEATURE_XMLFILES): New. (FEATURE_CFILES): New. New rules. (clean-cfiles): Remove generated c files. * features/i386/32bit-avx.c: Generated. * features/i386/32bit-avx512.c: Generated. * features/i386/32bit-core.c: Generated. * features/i386/32bit-linux.c: Generated. * features/i386/32bit-mpx.c: Generated. * features/i386/32bit-pkeys.c: Generated. * features/i386/32bit-sse.c: Generated. * target-descriptions.c: Include algorithm. (tdesc_element_visitor): Add method visit_end. (print_c_tdesc): Implement visit_end. (print_c_tdesc:: m_filename_after_features): Move it to protected. (print_c_feature): New class. (maint_print_c_tdesc_cmd): Use print_c_feature if XML file name starts with "i386/32bit-".
2017-07-26Use visitor pattern for "maint print c-tdesc"Yao Qi96-558/+764
Target description can be modeled as a tree, the target description is the root node, features are children nodes, registers and types are grand-children nodes. So command "maint print c-tdesc" in effect traverse/visit each node, and print them in c. This can be implemented by visitor pattern, this is the first reason. Secondly, I want to this command prints c files in a different way for some specific xml files, but still print c files the same way for the rest of xml files. Third, I even want to print xml files from target descriptions, so that GDBserver can use it to reply GDB's query qXfer:features:read:target.xml. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * target-descriptions.c (tdesc_element_visitor): New class. (tdesc_element): New class. (tdesc_reg): Inherit from tdesc_element. (tdesc_reg::accept): New function. (tdesc_type): Inherit from tdesc_element. (tdesc_type::accept): New function. (tdesc_feature): Inherit from tdesc_element. (tdesc_feature::accept): New function. (target_desc): Inherit from tdesc_element. (target_desc::target_desc): New. (target_desc::~target_desc): New. (target_desc::accept): New. (allocate_target_description): Use new. (free_target_description): Use delete. (print_c_tdesc): New class. (maint_print_c_tdesc_cmd): Adjust. * features/aarch64.c: Re-generated. * features/arc-arcompact.c: Re-generated. * features/arc-v2.c: Re-generated. * features/arm/arm-with-iwmmxt.c: Re-generated. * features/arm/arm-with-m.c: Re-generated. * features/arm/arm-with-m-fpa-layout.c: Re-generated. * features/arm/arm-with-m-vfp-d16.c: Re-generated. * features/arm/arm-with-neon.c: Re-generated. * features/arm/arm-with-vfpv2.c: Re-generated. * features/arm/arm-with-vfpv3.c: Re-generated. * features/i386/amd64-avx-avx512.c: Re-generated. * features/i386/amd64-avx-avx512-linux.c: Re-generated. * features/i386/amd64-avx.c: Re-generated. * features/i386/amd64-avx-linux.c: Re-generated. * features/i386/amd64-avx-mpx-avx512-pku.c: Re-generated. * features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated. * features/i386/amd64-avx-mpx.c: Re-generated. * features/i386/amd64-avx-mpx-linux.c: Re-generated. * features/i386/amd64.c: Re-generated. * features/i386/amd64-linux.c: Re-generated. * features/i386/amd64-mpx.c: Re-generated. * features/i386/amd64-mpx-linux.c: Re-generated. * features/i386/i386-avx-avx512.c: Re-generated. * features/i386/i386-avx-avx512-linux.c: Re-generated. * features/i386/i386-avx.c: Re-generated. * features/i386/i386-avx-linux.c: Re-generated. * features/i386/i386-avx-mpx-avx512-pku.c: Re-generated. * features/i386/i386-avx-mpx-avx512-pku-linux.c: Re-generated. * features/i386/i386-avx-mpx.c: Re-generated. * features/i386/i386-avx-mpx-linux.c: Re-generated. * features/i386/i386.c: Re-generated. * features/i386/i386-linux.c: Re-generated. * features/i386/i386-mmx.c: Re-generated. * features/i386/i386-mmx-linux.c: Re-generated. * features/i386/i386-mpx.c: Re-generated. * features/i386/i386-mpx-linux.c: Re-generated. * features/i386/x32-avx-avx512.c: Re-generated. * features/i386/x32-avx-avx512-linux.c: Re-generated. * features/i386/x32-avx.c: Re-generated. * features/i386/x32-avx-linux.c: Re-generated. * features/i386/x32.c: Re-generated. * features/i386/x32-linux.c: Re-generated. * features/microblaze.c: Re-generated. * features/microblaze-with-stack-protect.c: Re-generated. * features/mips64-dsp-linux.c: Re-generated. * features/mips64-linux.c: Re-generated. * features/mips-dsp-linux.c: Re-generated. * features/mips-linux.c: Re-generated. * features/nds32.c: Re-generated. * features/nios2.c: Re-generated. * features/nios2-linux.c: Re-generated. * features/rs6000/powerpc-32.c: Re-generated. * features/rs6000/powerpc-32l.c: Re-generated. * features/rs6000/powerpc-403.c: Re-generated. * features/rs6000/powerpc-403gc.c : Re-generated. * features/rs6000/powerpc-405.c: Re-generated. * features/rs6000/powerpc-505.c: Re-generated. * features/rs6000/powerpc-601.c: Re-generated. * features/rs6000/powerpc-602.c: Re-generated. * features/rs6000/powerpc-603.c: Re-generated. * features/rs6000/powerpc-604.c: Re-generated. * features/rs6000/powerpc-64.c: Re-generated. * features/rs6000/powerpc-64l.c: Re-generated. * features/rs6000/powerpc-7400.c: Re-generated. * features/rs6000/powerpc-750.c: Re-generated. * features/rs6000/powerpc-860.c: Re-generated. * features/rs6000/powerpc-altivec32.c: Re-generated. * features/rs6000/powerpc-altivec32l.c: Re-generated. * features/rs6000/powerpc-altivec64.c: Re-generated. * features/rs6000/powerpc-altivec64l.c: Re-generated. * features/rs6000/powerpc-cell32l.c: Re-generated. * features/rs6000/powerpc-cell64l.c: Re-generated. * features/rs6000/powerpc-e500.c: Re-generated. * features/rs6000/powerpc-e500l.c: Re-generated. * features/rs6000/powerpc-isa205-32l.c: Re-generated. * features/rs6000/powerpc-isa205-64l.c: Re-generated. * features/rs6000/powerpc-isa205-altivec32l.c: Re-generated. * features/rs6000/powerpc-isa205-altivec64l.c: Re-generated. * features/rs6000/powerpc-isa205-vsx32l.c: Re-generated. * features/rs6000/powerpc-isa205-vsx64l.c: Re-generated. * features/rs6000/powerpc-vsx32.c: Re-generated. * features/rs6000/powerpc-vsx32l.c: Re-generated. * features/rs6000/powerpc-vsx64.c: Re-generated. * features/rs6000/powerpc-vsx64l.c: Re-generated. * features/rs6000/rs6000.c: Re-generated. * features/s390-linux32.c: Re-generated. * features/s390-linux32v1.c: Re-generated. * features/s390-linux32v2.c: Re-generated. * features/s390-linux64.c: Re-generated. * features/s390-linux64v1.c: Re-generated. * features/s390-linux64v2.c: Re-generated. * features/s390-te-linux64.c: Re-generated. * features/s390-tevx-linux64.c: Re-generated. * features/s390-vx-linux64.c: Re-generated. * features/s390x-linux64.c: Re-generated. * features/s390x-linux64v1.c: Re-generated. * features/s390x-linux64v2.c: Re-generated. * features/s390x-te-linux64.c: Re-generated. * features/s390x-tevx-linux64.c: Re-generated. * features/s390x-vx-linux64.c: Re-generated. * features/sparc/sparc32-solaris.c: Re-generated. * features/sparc/sparc64-solaris.c: Re-generated. * features/tic6x-c62x.c: Re-generated. * features/tic6x-c62x-linux.c: Re-generated. * features/tic6x-c64x.c: Re-generated. * features/tic6x-c64x-linux.c: Re-generated. * features/tic6x-c64xp.c: Re-generated. * features/tic6x-c64xp-linux.c: Re-generated.
2017-07-26Centralize i386 linux target descriptionsYao Qi4-35/+46
This patch moves all the tdesc_i386*_linux target descriptions to a function i386_linux_read_description, which returns the right target description according to xcr0. This also remove the duplication in getting target descriptions in corefile and native target. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * i386-linux-tdep.c (i386_linux_read_description): New function. (i386_linux_core_read_description): Call i386_linux_read_description. * i386-linux-tdep.h (i386_linux_read_description): Declare. (tdesc_i386_linux, tdesc_i386_mmx_linux): Remove declarations. (tdesc_i386_avx_linux, tdesc_i386_mpx_linux): Likewise (tdesc_i386_avx_mpx_linux, tdesc_i386_avx_avx512_linux): Likewise. (tdesc_i386_avx_mpx_avx512_pku_linux): Likewise. * x86-linux-nat.c (x86_linux_read_description): Call i386_linux_read_description.
2017-07-26Add optional argument to command "maint prints c-tdesc"Yao Qi6-14/+44
Nowadays, we need two steps to print c files for xml target description, that is, 1) read xml target description in, update the current tdesc, 2) visit the current tdesc, print the c file. It is unnecessary to involve in current tdesc, and some validations in each gdbarch are performed unnecessarily, which will reject some target descriptions if they are missing some mandatory feature. This patch adds an optional argument to "maint print c-tdesc", which is an XML file target description, so that we can combine the two steps above into one step, and don't have to involve in global current tdesc. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * NEWS: Mention it. * features/Makefile (%.c: %.xml): Pass the xml file name to command "maint print c-tdesc". * target-descriptions.c (maint_print_c_tdesc_cmd): Get file name from 'arg'. gdb/doc: 2017-07-26 Yao Qi <yao.qi@linaro.org> * gdb.texinfo (Maintenance Commands): Document optional argument of "maint print c-tdesc".
2017-07-26Class-fy target_descYao Qi2-27/+44
This patch adds ctor and dtor in target_desc. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * target-descriptions.c (target_desc): Add ctor and dtor. Do in-class initialization. (tdesc_create_feature): Call new instead of XCNEW. (free_target_description): Ue delete.
2017-07-26Add enum for result of fast_tracepoint_collectingSimon Marchi5-44/+91
I got confused by the result value of fast_tracepoint_collecting, while it sounds like it would return true/false (whether the thread is collecting or not), it actually returns: 0: not collecting 1: in the jump pad, before the relocated instruction 2: in the jump pad, at or after the relocated instruction To avoid confusion, I think it would be nice to make it return an enum. If you can help find a shorter but still relavant name, it would be awesome. Otherwise, we'll go with that, fast_tpoint_collect_result, which is at least consistent with the existing fast_tpoint_collect_status. gdb/gdbserver/ChangeLog: * tracepoint.h (enum class fast_tpoint_collect_result): New enumeration. (fast_tracepoint_collecting): Change return type to fast_tpoint_collect_result. * tracepoint.c (fast_tracepoint_collecting): Likewise. * linux-low.h: Include tracepoint.h. (struct lwp_info) <collecting_fast_tracepoint>: Change type to fast_tpoint_collect_result. * linux-low.c (handle_tracepoints): Adjust. (linux_fast_tracepoint_collecting): Change return type to fast_tpoint_collect_result. (maybe_move_out_of_jump_pad, linux_wait_for_event_filtered, linux_wait_1, stuck_in_jump_pad_callback, lwp_signal_can_be_delivered, linux_resume_one_lwp_throw, proceed_one_lwp): Adjust to type change.
2017-07-26Automatic date update in version.inGDB Administrator1-1/+1
2017-07-25Fix two NetBSD-specific typos in the configure.nat conversion.John Baldwin2-1/+6
- Add the '-lkvm' library requirement for NetBSD/sparc64. - Fix spelling of 'nbsdelf' host. gdb/Changelog: * configure.nat: Add "-lkvm" for NetBSD/sparc64 and fix typo.
2017-07-25Make amd64_x32_init_abi and amd64_init_abi argument constantYao Qi3-4/+12
gdb: 2017-07-25 Yao Qi <yao.qi@linaro.org> * amd64-tdep.c (amd64_init_abi): Make argument default_tdesc constant. (amd64_x32_init_abi): Likewise. * amd64-tdep.h (amd64_init_abi): Update declaration. (amd64_x32_init_abi): Likewise.
2017-07-25Fix thinko in previous change to elf32-msp430.cNick Clifton1-2/+4
2017-07-25Fix typos in error and option messages in OPCODES library.Nick Clifton5-37/+81
PR 21739 opcodes * arc-opc.c (insert_rhv2): Use lower case first letter in error message. (insert_r0): Likewise. (insert_r1): Likewise. (insert_r2): Likewise. (insert_r3): Likewise. (insert_sp): Likewise. (insert_gp): Likewise. (insert_pcl): Likewise. (insert_blink): Likewise. (insert_ilink1): Likewise. (insert_ilink2): Likewise. (insert_ras): Likewise. (insert_rbs): Likewise. (insert_rcs): Likewise. (insert_simm3s): Likewise. (insert_rrange): Likewise. (insert_r13el): Likewise. (insert_fpel): Likewise. (insert_blinkel): Likewise. (insert_pclel): Likewise. (insert_nps_bitop_size_2b): Likewise. (insert_nps_imm_offset): Likewise. (insert_nps_imm_entry): Likewise. (insert_nps_size_16bit): Likewise. (insert_nps_##NAME##_pos): Likewise. (insert_nps_##NAME): Likewise. (insert_nps_bitop_ins_ext): Likewise. (insert_nps_##NAME): Likewise. (insert_nps_min_hofs): Likewise. (insert_nps_##NAME): Likewise. (insert_nps_rbdouble_64): Likewise. (insert_nps_misc_imm_offset): Likewise. * riscv-dis.c (print_riscv_disassembler_options): Fix typo in option description. gas * testsuite/gas/arc/add_s-err.s: Update expected error message.
2017-07-25Catch exceptions thrown from gdbarch_skip_prologueYao Qi5-108/+154
PR 21555 is caused by the exception during the prologue analysis when re-set a breakpoint. (gdb) bt #0 memory_error_message (err=TARGET_XFER_E_IO, gdbarch=0x153db50, memaddr=93824992233232) at ../../binutils-gdb/gdb/corefile.c:192 #1 0x00000000005718ed in memory_error (err=TARGET_XFER_E_IO, memaddr=memaddr@entry=93824992233232) at ../../binutils-gdb/gdb/corefile.c:220 #2 0x00000000005719d6 in read_memory_object (object=object@entry=TARGET_OBJECT_CODE_MEMORY, memaddr=93824992233232, memaddr@entry=1, myaddr=myaddr@entry=0x7fffffffd0a0 "P\333S\001", len=len@entry=1) at ../../binutils-gdb/gdb/corefile.c:259 #3 0x0000000000571c6e in read_code (len=1, myaddr=0x7fffffffd0a0 "P\333S\001", memaddr=<optimized out>) at ../../binutils-gdb/gdb/corefile.c:287 #4 read_code_unsigned_integer (memaddr=memaddr@entry=93824992233232, len=len@entry=1, byte_order=byte_order@entry=BFD_ENDIAN_LITTLE) at ../../binutils-gdb/gdb/corefile.c:362 #5 0x000000000041d4a0 in amd64_analyze_prologue (gdbarch=gdbarch@entry=0x153db50, pc=pc@entry=93824992233232, current_pc=current_pc@entry=18446744073709551615, cache=cache@entry=0x7fffffffd1e0) at ../../binutils-gdb/gdb/amd64-tdep.c:2310 #6 0x000000000041e404 in amd64_skip_prologue (gdbarch=0x153db50, start_pc=93824992233232) at ../../binutils-gdb/gdb/amd64-tdep.c:2459 #7 0x000000000067bfb0 in skip_prologue_sal (sal=sal@entry=0x7fffffffd4e0) at ../../binutils-gdb/gdb/symtab.c:3628 #8 0x000000000067c4d8 in find_function_start_sal (sym=sym@entry=0x1549960, funfirstline=1) at ../../binutils-gdb/gdb/symtab.c:3501 #9 0x000000000060999d in symbol_to_sal (result=result@entry=0x7fffffffd5f0, funfirstline=<optimized out>, sym=sym@entry=0x1549960) at ../../binutils-gdb/gdb/linespec.c:3860 .... #16 0x000000000054b733 in location_to_sals (b=b@entry=0x15792d0, location=0x157c230, search_pspace=search_pspace@entry=0x1148120, found=found@entry=0x7fffffffdc64) at ../../binutils-gdb/gdb/breakpoint.c:14211 #17 0x000000000054c1f5 in breakpoint_re_set_default (b=0x15792d0) at ../../binutils-gdb/gdb/breakpoint.c:14301 #18 0x00000000005412a9 in breakpoint_re_set_one (bint=bint@entry=0x15792d0) at ../../binutils-gdb/gdb/breakpoint.c:14412 This problem can be fixed by - either each prologue analyzer doesn't throw exception, - or catch the exception thrown from gdbarch_skip_prologue, I choose the latter because the former needs to fix *every* prologue analyzer to not throw exception. This error can be reproduced by changing reread.exp. The test reread.exp has already test that breakpoint can be reset correctly after the executable is re-read. This patch extends this test by compiling test c file with and without -fPIE. (gdb) run ^M The program being debugged has been started already.^M Start it from the beginning? (y or n) y^M x86_64/gdb/testsuite/outputs/gdb.base/reread/reread' has changed; re-reading symbols. Error in re-setting breakpoint 1: Cannot access memory at address 0x555555554790^M Error in re-setting breakpoint 2: Cannot access memory at address 0x555555554790^M Starting program: /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/outputs/gdb.base/reread/reread ^M This is foo^M [Inferior 1 (process 27720) exited normally]^M (gdb) FAIL: gdb.base/reread.exp: opts= "-fPIE" "ldflags=-pie" : run to foo() second time (the program exited) This patch doesn't re-indent the code, to keep the patch simple. gdb: 2017-07-25 Yao Qi <yao.qi@linaro.org> PR gdb/21555 * arch-utils.c (gdbarch_skip_prologue_noexcept): New function. * arch-utils.h (gdbarch_skip_prologue_noexcept): Declare. * infrun.c: Include arch-utils.h (handle_step_into_function): Call gdbarch_skip_prologue_noexcept. (handle_step_into_function_backward): Likewise. * symtab.c (skip_prologue_sal): Likewise. gdb/testsuite: 2017-07-25 Yao Qi <yao.qi@linaro.org> PR gdb/21555 * gdb.base/reread.exp: Wrap the whole test with two kinds of compilation flags, with -fPIE and without -fPIE.
2017-07-25[ARM] Access FPSCR on vfpv2Yao Qi2-2/+11
GDB can fetch or store FPSCR on vfpv3, which has 32 VFP registers, but fail to do so on vfpv2, which has 16 VFP registers. GDB code is incorrect for vfpv2, else if (tdep->vfp_register_count > 0 && regno >= ARM_D0_REGNUM && regno <= ARM_D0_REGNUM + tdep->vfp_register_count) while FPSCR register number is defined as ARM_D0_REGNUM + 32. ARM_D0_REGNUM, /* VFP double-precision registers. */ ARM_D31_REGNUM = ARM_D0_REGNUM + 31, ARM_FPSCR_REGNUM, The code above uses "<=" rather than "<", in order to put FPSCR in the range, but it is only correct when tdep->vfp_register_count is 32. On vpfv2, it is 16, and FPSCR is out of the range, so fetch_vfp_regs or store_vfp_regs are not called. gdb: 2017-07-25 Yao Qi <yao.qi@linaro.org> PR tdep/21717 * arm-linux-nat.c (arm_linux_fetch_inferior_registers): Update condition for FPSCR. (arm_linux_store_inferior_registers): Likewise.
2017-07-25Updated French translation for the BFD library.Nick Clifton2-2065/+4139
2017-07-25Add a linker branch optimization for the MSP430.Benjamin Green2-2/+9
PR 21824 * elf32-msp430.c (msp430_elf_relax_section): Allow conversion of 16-bit absolute branches into 10-bit pc-relative branches on the MSP430 as well as the MSP430X.
2017-07-25oops - add changelog entry accidentally omitted from previous delta.Nick Clifton1-0/+7
2017-07-25Stop readelf from returning an error status if asked to dump an emoty section.Nick Clifton1-5/+7
PR 21820 * readelf.c (dump_section_as_strings): Do not fail if the section was empty. (dump_section_as_bytes): Likewise.
2017-07-25__tls_get_addr_opt stub eh_frame infoAlan Modra7-84/+166
Since the __tls_get_addr_opt stub saves LR and makes a call, eh_frame info should be generated to describe how to unwind through the stub. The patch also changes the way the backend iterates over stubs, from looking at all sections in stub_bfd to which all dynamic sections are attached as well, to iterating over the group list, which gets just the stub sections. Most binaries will have just one or two stub groups, so this is a little faster. bfd/ * elf64-ppc.c (struct map_stub): Add tls_get_addr_opt_bctrl. (stub_eh_frame_size): New function. (ppc_size_one_stub): Set group tls_get_addr_opt_bctrl. (group_sections): Init group tls_get_addr_opt_bctrl. (ppc64_elf_size_stubs): Update sizing and initialization of .eh_frame. Iteration over stubs via group list. (ppc64_elf_build_stubs): Iterate over stubs via group list. (ppc64_elf_finish_dynamic_sections): Update finalization of .eh_frame. ld/ * testsuite/ld-powerpc/tlsopt5.s: Add cfi. * testsuite/ld-powerpc/tlsopt5.d: Update. * testsuite/ld-powerpc/tlsopt5.wf: New file. * testsuite/ld-powerpc/powerpc.exp: Perform new tlsopt5 test.
2017-07-25Automatic date update in version.inGDB Administrator1-1/+1
2017-07-24s390-vregs.exp: Fix Tcl error after non-zero-pad patchAndreas Arnez2-8/+16
s390-vregs.exp yields a Tcl error: ERROR: can't read "i": no such variable while executing "expr $a_high * ($i + 1) * $a_high " (procedure "hex128" line 2) invoked from within "hex128 $a_high $a_low $b_high $b_low" ... This is a regression, caused by commit 30a254669b16b8 -- "Don't always zero pad in print_*_chars". That patch introduced a new procedure "hex128" for formatting a 128-bit value as hex, but it accidentally moved the calculation of the 128-bit value into that new procedure as well instead of leaving it in the original context. This is fixed. gdb/testsuite/ChangeLog: * gdb.arch/s390-vregs.exp: Calculate parameters to hex128 in the calling context. (hex128): Drop erroneous calculation of parameters.
2017-07-24[AArch64] Fix the bit pattern order in the comments in auto-generated fileJiong Wang3-1689/+1699
The bit pattern comment in "aarch64_opcode_lookup_1" is reversed. This patch fixed this. opcode/ * aarch64-gen.c (print_decision_tree_1): Reverse the index of PATTERN to correct the print. * aarch64-dis-2.c: Regenerated.
2017-07-24Fix another memory access error triggered by attempting to parse a corrupt ↵Nick Clifton2-0/+5
binary. PR 21813 (alpha_vms_object_p): Check for a truncated record.
2017-07-24Fix address violation errors parsing corrupt binary files.Nick Clifton10-24/+118
PR 21813 binutils* rddbg.c (read_symbol_stabs_debugging_info): Check for an empty string whilst concatenating symbol names. bfd * mach-o.c (bfd_mach_o_canonicalize_relocs): Pass the base address of the relocs to the canonicalize_one_reloc routine. * mach-o.h (struct bfd_mach_o_backend_data): Update the prototype for the _bfd_mach_o_canonicalize_one_reloc field. * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add res_base parameter. Use to check for corrupt pair relocs. * mach-o-aarch64.c (bfd_mach_o_arm64_canonicalize_one_reloc): Likewise. * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Likewise. * mach-o-x86-64.c (bfd_mach_o_x86_64_canonicalize_one_reloc): Likewise. * vms-alpha.c (_bfd_vms_slurp_eihd): Make sure that there is enough data in the record before attempting to parse it. (_bfd_vms_slurp_eeom): Likewise. (_bfd_vms_slurp_egsd): Check for an invalid section index. (image_set_ptr): Likewise. (alpha_vms_slurp_relocs): Likewise.
2017-07-24Stop the generation of mapping symbols in the debug sections of ARM and ↵Nick Clifton3-1/+18
AArch64 binaries. PR 21809 * config/tc-aarch64.c (aarch64_init_frag): Do not set a mapping state for frags in debug sections. * config/tc-arm.c (arm_init_frag): Likewise.
2017-07-24Improve "unrecognized relocation" error messages to add the suggestion that ↵Nick Clifton9-51/+69
the linker might be out of date. PR 21803 * reloc.c (_bfd_unrecognized_reloc): New function. Reports an unrecognized reloc and sets the bfd_error value. * libbfd.h: Regenerate. * elf32-arm.c (elf32_arm_final_link_relocate): Use the new function. * elf32-i386.c (elf_i386_relocate_section): Likewise. * elf32-tilepro.c (tilepro_elf_relocate_section): Likewise. * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Likewise. * elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.
2017-07-24[ARC] Fix big-endian ld tests errors.claziss4-5/+13
A set of small patches that are fixing big-endian observed errors. ld/ 2017-07-24 Claudiu Zissulescu <claziss@synopsys.com> * testsuite/ld-arc/jli-overflow.d: Force testing for little endian. * testsuite/ld-arc/tls_gd-01.d: Fix string to match bigendian systems. * testsuite/ld-arc/tls_ie-01.d: Fix test for bigendian systems.
2017-07-24Automatic date update in version.inGDB Administrator1-1/+1
2017-07-24* dwarf2dbg.c (dwarf2dbg_final_check): Rename local variable exp from expr.Hans-Peter Nilsson2-5/+10
Trying to build (for mmix-knuth-mmixware but I don't think that matters) yields the following (repeatable on e.g. CompileFarm gcc20 sporting gcc-4.7.2 as default): gcc -DHAVE_CONFIG_H -I. -I/home/hp/binutils/src/gas -I. -I/home/hp/binutils/src/gas -I../bfd -I/home/hp/binutils/src/gas/config -I/home/hp/binutils/src/gas/../include -I/home/hp/binutils/src/gas/.. -I/home/hp/binutils/src/gas/../bfd -DLOCALEDIR="\"/usr/local/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -Wwrite-strings -I/home/hp/binutils/src/gas/../zlib -g -O2 -MT dwarf2dbg.o -MD -MP -MF .deps/dwarf2dbg.Tpo -c -o dwarf2dbg.o /home/hp/binutils/src/gas/dwarf2dbg.c cc1: warnings being treated as errors /home/hp/binutils/src/gas/dwarf2dbg.c: In function 'dwarf2dbg_final_check': /home/hp/binutils/src/gas/dwarf2dbg.c:2246: error: declaration of 'expr' shadows a global declaration /home/hp/binutils/src/gas/expr.h:180: error: shadowed declaration is here make[4]: *** [dwarf2dbg.o] Error 1 IIRC this is a false namespace clash and the warning is not observable with a new-enough gcc. Committed as obvious. brgds, H-P PS. Idea: -Wcompiler; warn about constructs problematic with e.g. old gcc. 1/2 ;-)
2017-07-23Correct eh_frame info for __glink_PLTresolveAlan Modra4-3/+15
My PPC64_OPT_LOCALENTRY patch of June 1, git commit f378ab099d, and the later gold change, git commit 7ee7ff7015, added an insn in __glink_PLTresolve which needs a corresponding adjustment in the eh_frame info for asynchronous exceptions to unwind correctly. It would have been OK for both ABIs to use +5 for the advance before restore of LR, since we can put the DW_CFA_restore_extended on any insn after the actual restore and before the r12/r0 copy is clobbered, but it's slightly better to delay as much as possible. There are then more addresses where fewer CFA program insns are executed. bfd/ * elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to restore of LR. gold/ * powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to restore of LR. (glink_eh_frame_fde_64v1): Advance to restore of LR at latest possible insn.
2017-07-23Automatic date update in version.inGDB Administrator1-1/+1
2017-07-22Use std::vector in struct catch_syscall_inferior_dataTom Tromey2-31/+25
This changes struct catch_syscall_inferior_data to use a std::vector rather than a VEC. It also changes it to be allocated with new and destroyed with delete. ChangeLog 2017-07-22 Tom Tromey <tom@tromey.com> * break-catch-syscall.c (struct catch_syscall_inferior_data) <syscalls_counts>: Now a std::vector. (get_catch_syscall_inferior_data): Use "new". (catch_syscall_inferior_data_cleanup): Use "delete". (insert_catch_syscall, remove_catch_syscall) (clear_syscall_counts): Update.
2017-07-22Use std::vector in syscall_catchpointTom Tromey2-79/+50
This changes syscall_catchpoint to use a std::vector rather than a VEC for "syscalls_to_be_caught". This simplifies the code a bit. ChangeLog 2017-07-22 Tom Tromey <tom@tromey.com> * break-catch-syscall.c (syscall_catchpoint) <syscalls_to_be_caught>: Now a std::vector<int> (~syscall_catchpoint): Remove. (insert_catch_syscall, remove_catch_syscall) (breakpoint_hit_catch_syscall, print_one_catch_syscall) (print_mention_catch_syscall, print_recreate_catch_syscall): Update. (create_syscall_event_catchpoint): Change type of "filter" parameter. (catch_syscall_split_args): Return a std::vector. (catch_syscall_command_1, catching_syscall_number_1): Update.
2017-07-22C++-ify break-catch-throwTom Tromey2-27/+23
This changes exception_catchpoint's "exception_rx' member to be a std::string, and updating the users. ChangeLog 2017-07-22 Tom Tromey <tom@tromey.com> * break-catch-throw.c (struct exception_catchpoint) <exception_rx>: Now a std::string. (~exception_catchpoint): Remove. (print_one_detail_exception_catchpoint): Update. (handle_gnu_v3_exceptions): Change type of except_rx. (extract_exception_regexp): Return a std::string. (catch_exception_command_1): Update.
2017-07-22C++-ify break-catch-sigTom Tromey2-104/+74
This changes signal_catchpoint to be more of a C++ class, using std::vector and updating the users. ChangeLog 2017-07-22 Tom Tromey <tom@tromey.com> * break-catch-sig.c (gdb_signal_type): Remove typedef. (struct signal_catchpoint) <signals_to_be_caught>: Now a std::vector. <catch_all>: Now a bool. (~signal_catchpoint): Remove. (signal_catchpoint_insert_location) (signal_catchpoint_remove_location) (signal_catchpoint_breakpoint_hit, signal_catchpoint_print_one) (signal_catchpoint_print_mention) (signal_catchpoint_print_recreate) (signal_catchpoint_explains_signal): Update. (create_signal_catchpoint): Change type of "filter" and "catch_all". (catch_signal_split_args): Return a std::vector. Change type of "catch_all". (catch_signal_command): Update.
2017-07-22Automatic date update in version.inGDB Administrator1-1/+1
2017-07-22gdb.python/py-unwind: Disable stack protectionSimon Marchi2-1/+11
[I made some typo fixes but forgot to amend my commit before sending the patch, hence this v2.] I see the following failure on Ubuntu 16.04's gcc 5.4.0: Running /home/emaisin/src/binutils-gdb/gdb/testsuite/gdb.python/py-unwind.exp ... FAIL: gdb.python/py-unwind.exp: continue to breakpoint: break backtrace-broken FAIL: gdb.python/py-unwind.exp: Backtrace restored by unwinder (pattern 1) The problem is that the test expects a very particular stack layout. When stack protection is enabled, it adds a canary value which looks like an additional local variable. This makes the test complain about a bad stack layout and fail. The simple solution is to disable stack protection for that test using -fno-stack-protector. I checked older compilers (gcc 4.4, clang 3.5) and they support that flag, so I don't think it's necessary to probe for whether the compiler supports it. Maybe a better solution would be to change the test to make it cope with different stack layouts (perhaps it could save addresses of stuff in some global variables which GDB/the unwinder would read). I'll go with the simple solution for now though. gdb/testsuite/ChangeLog: * gdb.python/py-unwind.exp: Disable stack protection when building test file.
2017-07-21Updated French translation for the binutils subdirectory.Nick Clifton2-1826/+4102
* po/fr.po: Updated French translation.
2017-07-21Fix typo in warning message.Nick Clifton1-1/+1
PR 21810 * dwarf.c (display_gdb_index): Fix typo in warning message.
2017-07-21Remove unused variables in dwarf parser.Simon Marchi2-8/+6
* dwarf.c (last_pointer_size, warned_about_missing_comp_units): Remove. (load_debug_info): Remove assignments to those two variables.