summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* gold: aarch64 split stack supportusers/azanella/aarch64-split-stackAdhemerval Zanella2018-02-0710-7/+563
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds gold support for split-stack function calling non-split function on aarch64. gold/ChangeLog: * gold/aarch64.c (AArch64_insn_utilities::aarch64_movn_decode_imm): New function. (AArch64_insn_utilities::aarch64_movk_decode_imm): Likewise. (AArch64_insn_utilities::clz_hwi): Likewise. (AArch64_insn_utilities::aarch64_bitmask_imm): Likewise. (Target_aarch64::do_calls_non_split): Likewise. * gold/testsuite/Makefile.am [DEFAULT_TARGET_AARCH64] (check_SCRIPTS): add split_aarch64.sh. [DEFAULT_TARGET_AARCH64] (check_DATA): Add split_aarch64_{1,2,3,4,r) tests. [DEFAULT_TARGET_AARCH64] (SPLIT_DEFSYMS): New rule. [DEFAULT_TARGET_AARCH64] (split_aarch64_1.o): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_2.o): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_3.o): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_4.o): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_r.o): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_n.o): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_1): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_2): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_2.stdout): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_3.stdout): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_4): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_4.stdout): Likewise. [DEFAULT_TARGET_AARCH64] (split_aarch64_r.stdout): Likewise. [DEFAULT_TARGET_AARCH64] (MOSTLYCLEANFILES): Likewise. * gold/testsuite/split_aarch64.sh: New file. * gold/testsuite/split_aarch64_1.s: Likewise. * gold/testsuite/split_aarch64_2.s: Likewise. * gold/testsuite/split_aarch64_3.s: Likewise. * gold/testsuite/split_aarch64_4.s: Likewise. * gold/testsuite/split_aarch64_n.s: Likewise.
* Revert "PowerPC PLT speculative execution barriers"Alan Modra2018-02-0716-202/+72
| | | | | | This reverts most of commit 1be5d8d3bb. Left in place are addition of --no-plt-align to some ppc32 ld tests and the ld.texinfo --no-plt-thread-safe fix.
* RISC-V: Eliminate spurious error w/ reloc truncated messageJim Wilson2018-02-062-0/+6
| | | | | | bfd/ * elfnn-riscv.c (riscv_elf_relocate_section): Return TRUE if used callback to report an error.
* Automatic date update in version.inGDB Administrator2018-02-071-1/+1
|
* Remove some $ARCH_read_pc and $ARCH_write_pcYao Qi2018-02-067-85/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nowadays, gdbarch_read_pc is called in this way, if (gdbarch_read_pc_p (gdbarch)) pc_val = gdbarch_read_pc (gdbarch, regcache); /* Else use per-frame method on get_current_frame. */ else if (gdbarch_pc_regnum (gdbarch) >= 0) { ULONGEST raw_val; if (regcache_cooked_read_unsigned (regcache, gdbarch_pc_regnum (gdbarch), &raw_val) == REG_UNAVAILABLE) some ports don't have to define its own gdbarch read_pc method if the pc value is simply a unsigned value from "pc" register. The same rule applies to regcache_write_pc. This patch removes these $ARCH_read_pc and $ARCH_write_pc functions. gdb: 2018-02-06 Yao Qi <yao.qi@linaro.org> * ft32-tdep.c (ft32_read_pc): Remove. (ft32_write_pc): Remove. (ft32_gdbarch_init): Update. * m32r-tdep.c (m32r_read_pc): Remove. (m32r_gdbarch_init): Update. * mep-tdep.c (mep_read_pc): Remove. (mep_gdbarch_init): Update. * microblaze-tdep.c (microblaze_write_pc): Remove. (microblaze_gdbarch_init): Update. * mn10300-tdep.c (mn10300_read_pc): Remove. (mn10300_write_pc): Remove. (mn10300_gdbarch_init): Update. * moxie-tdep.c (moxie_read_pc): Remove. (moxie_write_pc): Remove. (moxie_gdbarch_init): Update.
* Fix PR ld/22263 on SPARC.Eric Botcazou2018-02-0610-183/+376
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is -fpie -pie generating dynamic relocations in the text section, simply because no TLS transitions are applied in PIE mode. The meat of the patch is to turn calls to bfd_link_pic (info) in TLS-related code into !bfd_link_executable (info) and there are quite a lot of them... bfd/ * elfxx-sparc.c (sparc_elf_tls_transition): Turn call to bfd_link_pic into call to !bfd_link_executable and tidy up. (_bfd_sparc_elf_check_relocs): Fix formatting and tidy up. <R_SPARC_TLS_LE_HIX22>: Turn call to bfd_link_pic into call to !bfd_link_executable. <R_SPARC_TLS_IE_HI22>: Likewise. <GOT relocations>: Remove useless code, tidy and merge blocks. <R_SPARC_TLS_GD_CALL>: Turn call to bfd_link_pic into call to !bfd_link_executable. <R_SPARC_WPLT30>: Tidy up. (_bfd_sparc_elf_gc_mark_hook): Turn call to bfd_link_pic into call to !bfd_link_executable. (allocate_dynrelocs): Likewise. (_bfd_sparc_elf_relocate_section): Fix formatting and tidy up. <R_SPARC_TLS_GD_HI22>: Merge into... <R_SPARC_TLS_GD_LO10>: ...this. Adjust 4th argument in call to sparc_elf_tls_transition and remove redundant code. <R_SPARC_TLS_LDM_HI22>: Turn call to bfd_link_pic into call to !bfd_link_executable. <R_SPARC_TLS_LDO_HIX22>: Likewise. <R_SPARC_TLS_LE_HIX22>: Likewise. Tidy up. <R_SPARC_TLS_LDM_CALL>: Likewise. <R_SPARC_TLS_GD_CALL>: Likewise. Tidy up. <R_SPARC_TLS_GD_ADD>: Likewise. <R_SPARC_TLS_LDM_ADD>: Likewise. <R_SPARC_TLS_LDO_ADD>: Likewise. <R_SPARC_TLS_IE_LD>: Likewise. ld/ * testsuite/ld-elf/tls.exp (AFLAGS_PIC): Define on SPARC. (pr22263-1): Pass AFLAGS_PIC to the assembler. * testsuite/ld-sparc/tlspie32.s: Add test for other 3 transitions. * testsuite/ld-sparc/tlspie32.dd: Adjust to above. * testsuite/ld-sparc/tlspie64.s: Add test for other 3 transitions. * testsuite/ld-sparc/tlspie64.dd: Adjust to above.
* Treat OP_F77_UNDETERMINED_ARGLIST as OP_FUNCALLYao Qi2018-02-062-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When I debug some fortran expression parsing, I got (gdb) set debug expression 1 (gdb) p intvla(5,5,5) Dump of expression @ 0x205fa80, before conversion to prefix form: Language fortran, 19 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_VAR_VALUE 40 (............... 1 <unknown 31863232> 31863232 .1.............. .... 14 BINOP_REM 5 ................ 15 OP_LONG 38 &............... 16 OP_F77_UNDETERMINED_ARGLIST 48 0............... 17 BINOP_MUL 3 ................ 18 OP_F77_UNDETERMINED_ARGLIST 48 0............... Dump of expression @ 0x205fa80, after conversion to prefix form: Expression: `Invalid expression ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This patch fixes this problem by handling OP_F77_UNDETERMINED_ARGLIST in the same way as handling OP_FUNCALL. With this patch applied, the output looks better, (gdb) p intvla (5,5,5) Dump of expression @ 0x2d75590, before conversion to prefix form: Language fortran, 19 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_VAR_VALUE 40 (............... .... 16 OP_F77_UNDETERMINED_ARGLIST 48 0............... 17 BINOP_MUL 3 ................ 18 OP_F77_UNDETERMINED_ARGLIST 48 0............... Dump of expression @ 0x2d75590, after conversion to prefix form: Expression: `vla_primitives::intvla (5, 5, 5)' Language fortran, 19 elements, 16 bytes each. 0 OP_F77_UNDETERMINED_ARGLIST Number of args: 3 3 OP_VAR_VALUE Block @0x297e1c0, symbol @0x297cd50 (intvla) 7 OP_LONG Type @0x2976900 (int), value 5 (0x5) 11 OP_LONG Type @0x2976900 (int), value 5 (0x5) 15 OP_LONG Type @0x2976900 (int), value 5 (0x5) gdb: 2018-02-06 Yao Qi <yao.qi@linaro.org> * expprint.c (print_subexp_standard): Handle OP_F77_UNDETERMINED_ARGLIST. (dump_subexp_body_standard): Likewise.
* Fix up one ChangeLog entry dateYao Qi2018-02-061-2/+3
| | | | | | The patch was committed on 5th Feb, and the first line of ChangeLog entry is too long. The max line length is 74. https://sourceware.org/gdb/wiki/ContributionChecklist#Properly_Formatted_GNU_ChangeLog
* Improve the find_nearest_line function for the MIPS target so that it tries ↵Nick Clifton2018-02-062-6/+29
| | | | | | | | | harder to find a function name. PR 22789 * elfxx-mips.c (_bfd_mips_elf_find_nearest_line): If the dwarf functions failed to find the function name, try the generic elf find function instead.
* Fix GCC 8's -Wstringop-overflow on bfd/coff-rs6000.cSergio Durigan Junior2018-02-062-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | GCC 8 will bring a new warning option which will detect possible overflow and truncation on string manipulation functions. For more details, see: https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00471.html While compiling BFD with it, I can see one place on bfd/coff-rs6000.c where the warning is triggered. This: (void) strncpy (fhdr.magic, XCOFFARMAG, SXCOFFARMAG); will not include the trailing NUL on fhdr.magic, but that's fine because it's a magic number. The fix is trivial: just use memcpy instead. OK to push? 2018-02-06 Sergio Durigan Junior <sergiodj@redhat.com> * coff-rs6000.c (xcoff_write_archive_contents_old): Use 'memcpy' instead of 'strncpy' when writing the magic number.
* Replace reachable assertion with a test and return of NULL.Nick Clifton2018-02-062-1/+21
| | | | | | | | | | PR 22793 * readelf.c (find_section): Replace assertion with test and return of NULL. (find_section_by_address): Add test of section header table existance. (find_section_by_type): Likewise. (find_section_in_set): Likewise.
* Prevent attempts to call strncpy with a zero-length field by chacking the ↵Nick Clifton2018-02-062-5/+24
| | | | | | | | | size of debuglink sections. PR 22794 * opncls.c (bfd_get_debug_link_info_1): Check the size of the section before attempting to read it in. (bfd_get_alt_debug_link_info): Likewise.
* Allow the find_abstract_instance_name() function in the BFD library to also ↵Paul Carroll2018-02-062-10/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | return file and line number information. The nm utility supports -l for using debug information to obtain file and line information for each symbol, if available. We have a tool that consumes this information and displays it. This identified a problem with the 'nm' utility. When a source is compiled with -O2, functions can be inlined. The compiler also produces an uninlined copy of the function, normally for linking to other object files. In the case of DWARF2 debug information, the compiler generates debug information to describe a function. If that function is inlined, the compiler then references that debug information from the inlined and uninlined copies of the routine through the use of the DW_AT_abstract_origin reference. When nm is used on such a file, it is not able to find file and line information because that information is present in the common debug information and not at each actual implementation of the function. The 'nm' utility only retrieves the name of the function from the abstract origin debug information and no more. What I am proposing is to modify the find_abstract_instance_name() function (which I renamed to find_abstract_instance() ) to return the name of the function as well as any file and line information. The routine is already parsing all of the debug information in the abstract instance, so it is easy to pick up the file and line information at that time. If, for some reason, the file and line information is not present, the routine behaves as before. For example, if I have a simple test case: int foo(int j) { if (j < 15) j += j << 2; else j += j << 6; return j; } int main (int argc,char **argv) { int i = argc; i += foo(i); return i; } If that test case is compiled with -O2 and then 'nm -l' reads that executable, it currently produces this symbol output (ignoring a lot of library symbols): 8048400 T foo 080482e0 T main /scratch/pcarroll/its254/test/mytest.c:12 If I modify 'nm' to return file and line information for abstract instances, it produces the following output: 08048400 T foo /scratch/pcarroll/its254/test/mytest.c:1 080482e0 T main /scratch/pcarroll/its254/test/mytest.c:12 -------------------------------------------------------------------------- bfd * bfd/dwarf2.c (find_abstract_name): Modified to return file and line information in addition to name, if they can be found.
* Automatic date update in version.inGDB Administrator2018-02-061-1/+1
|
* ppc64: Fix stwux encodingJan Kratochvil2018-02-051-1/+1
| | | | | | | | | | | | | | | | | | | With gcc-8.0.1-0.9.fc28.x86_64 I get: ../../gdb/rs6000-tdep.c: In function 'CORE_ADDR skip_prologue(gdbarch*, CORE_ADDR, CORE_ADDR, rs6000_framedata*)': ../../gdb/rs6000-tdep.c:1911:34: error: bitwise comparison always evaluates to false [-Werror=tautological-compare] else if ((op & 0xfc1f016a) == 0x7c01016e) ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/com.ibm.aix.alangref/idalangref_stwux_stux_instrs.htm says bit 21 - 30 = 183 Those are bits 1..10 in normal bit order: 183<<1 = 0x16e gdb/ChangeLog 2018-02-04 Jan Kratochvil <jan.kratochvil@redhat.com> * rs6000-tdep.c (skip_prologue): Fix stwux encoding.
* [PR22764][LD][AARCH64]Allow R_AARCH64_ABS16 and R_AARCH64_ABS32 against ↵Renlin Li2018-02-058-5/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | absolution symbol or undefine symbol in shared object. The assumption that R_AARCH64_ABS16 and R_AARCH64_ABS32 relocation in LP64 abi will be used to generate an address does not hold for absolute symbol. In this case, it is a value fixed at static linking time. The condition to check the relocations is relax to allow absolute symbol and undefined symbol case. bfd/ 2018-02-05 Renlin Li <renlin.li@arm.com> PR ld/22764 * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Relax the R_AARCH64_ABS32 and R_AARCH64_ABS16 for absolute symbol. Apply the check for writeable section as well. ld/ 2018-02-05 Renlin Li <renlin.li@arm.com> PR ld/22764 * testsuite/ld-aarch64/emit-relocs-258.s: Define symbol as an address. * testsuite/ld-aarch64/emit-relocs-259.s: Likewise. * testsuite/ld-aarch64/aarch64-elf.exp: Run new test. * testsuite/ld-aarch64/pr22764.s: New. * testsuite/ld-aarch64/pr22764.d: New.
* Remove myself as a write-after-approval GDB maintainer.Antoine Tremblay2018-02-051-1/+0
| | | | | | | Since I'll be leaving Ericsson. gdb/ * MAINTAINERS (Write After Approval): Remove Antoine Tremblay.
* x86: Remove the unused _GLOBAL_OFFSET_TABLE_H.J. Lu2018-02-0521-242/+372
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since _GLOBAL_OFFSET_TABLE_ may be referenced implicitly on x86, checking ref_regular_nonweak leaves the unused _GLOBAL_OFFSET_TABLE_ in output. This patch checks explicit GOT references instead. ld-i386/discarded1.s and ld-x86-64/discarded1.s are updated to avoid linker optimization which removes GOT references. bfd/ PR ld/22782 * elf32-i386.c (elf_i386_check_relocs): Set got_referenced if _GLOBAL_OFFSET_TABLE_ is referenced or GOT is needed to resolve undefined weak symbol to 0. * elf64-x86-64.c (elf_x86_64_check_relocs): Set got_referenced if _GLOBAL_OFFSET_TABLE_ is referenced. * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Check got_referenced instead of ref_regular_nonweak. Remove the unused _GLOBAL_OFFSET_TABLE_ from symbol table. * elfxx-x86.h (elf_x86_link_hash_table): Add got_referenced. ld/ PR ld/22782 * testsuite/ld-i386/discarded1.s: Replace mov with div. * testsuite/ld-x86-64/discarded1.s: Likewise. * testsuite/ld-i386/i386.exp: Run pr22782. * testsuite/ld-i386/load1-nacl.d: Updated for removing _GLOBAL_OFFSET_TABLE_ from output. * testsuite/ld-i386/load1.d: Likewise. * testsuite/ld-x86-64/load1a-nacl.d: Likewise. * testsuite/ld-x86-64/load1a.d: Likewise. * testsuite/ld-x86-64/load1b-nacl.d: Likewise. * testsuite/ld-x86-64/load1b.d: Likewise. * testsuite/ld-i386/pr22782.d: New file. * testsuite/ld-i386/pr22782.s: Likewise. * testsuite/ld-x86-64/pr22782.s: Likewise. * testsuite/ld-x86-64/pr22782a.d: Likewise. * testsuite/ld-x86-64/pr22782b.d: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run pr22782a and pr22782b.
* Use visitors for make_gdb_typeAlan Hayward2018-02-052-224/+272
| | | | | | | | | | | | | | | | | | | Remove the make_gdb_type functions from the tdesc_type_ classes. Replace with a static make_gdb_type function that uses a element visitor called gdb_type_creator. gdb/ * target-descriptions.c (tdesc_element_visitor) Add empty implementations. (tdesc_type): Move make_gdb_type from here. (tdesc_type_builtin): Likewise. (tdesc_type_vector): Likewise. (tdesc_type_with_fields): Move make_gdb_type_ functions from here. (make_gdb_type_struct): Move from tdesc_type_with_fields. (make_gdb_type_union): Likewise. (make_gdb_type_flags): Likewise. (make_gdb_type_enum): Likewise. (make_gdb_type): New function. (tdesc_register_type): Use static make_gdb_type.
* RISC-V/GAS: Correct an `expr' global shadowing error for pre-4.8 GCCMaciej W. Rozycki2018-02-052-3/+8
| | | | | | | | | | | | | | | | | | Correct a commit f0531ed6a429 ("Compress loads/stores with implicit 0 offset.") regression and remove a `-Wshadow' compilation error: cc1: warnings being treated as errors .../gas/config/tc-riscv.c: In function 'riscv_handle_implicit_zero_offset': .../gas/config/tc-riscv.c:1194: error: declaration of 'expr' shadows a global declaration .../gas/expr.h:180: error: shadowed declaration is here make[4]: *** [tc-riscv.o] Error 1 which for versions of GCC before 4.8 prevents GAS for RISC-V targets from being built. See also GCC PR c/53066. gas/ * config/tc-riscv.c (riscv_handle_implicit_zero_offset): Rename `expr' parameter to `ep'.
* RISC-V/BFD: Correct a missing initializer error with pre-4.7 GCCMaciej W. Rozycki2018-02-052-1/+7
| | | | | | | | | | | | | | | | | | | Correct a commit 9d06997adb88 ("RISC-V: Relax RISCV_PCREL_* to RISCV_GPREL_*") regression and remove a `-Wmissing-field-initializers' compilation error: cc1: warnings being treated as errors .../bfd/elfnn-riscv.c: In function '_bfd_riscv_relax_pc': .../bfd/elfnn-riscv.c:3117: error: missing initializer .../bfd/elfnn-riscv.c:3117: error: (near initialization for 'hi_reloc.hi_addend') make[4]: *** [elf64-riscv.lo] Error 1 which for versions of GCC before 4.7 prevents support for RISC-V targets from being built. See also GCC PR c/36750. bfd/ * elfnn-riscv.c (_bfd_riscv_relax_pc): Use `memset' to initialize `hi_reloc'.
* MIPS/BFD: Correctly report unsupported `.reginfo' section sizeMaciej W. Rozycki2018-02-0513-1/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Report an error when an unsupported `.reginfo' section size is found in `_bfd_mips_elf_section_processing', removing an assertion that triggers at elfxx-mips.c:7105 in GAS when assembling input like: .section .reginfo .word 0xdeadbeef and in `objcopy --rename-section' when renaming an incorrectly sized section to `.reginfo'. bfd/ * elfxx-mips.c (_bfd_mips_elf_section_processing): For SHT_MIPS_REGINFO sections don't assert the correct size and report an error instead. binutils/ * testsuite/binutils-all/mips/mips-reginfo.d: New test. * testsuite/binutils-all/mips/mips-reginfo-n32.d: New test. * testsuite/binutils-all/mips/mips-reginfo.s: New test source. * testsuite/binutils-all/mips/mips.exp: Run the new tests. gas/ * testsuite/gas/mips/reginfo-2.d: New test. * testsuite/gas/mips/reginfo-2-n32.d: New test. * testsuite/gas/mips/reginfo-2.l: New test stderr output. * testsuite/gas/mips/reginfo-2.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests.
* ELF/BFD: Propagate the return status from backend section processingMaciej W. Rozycki2018-02-052-1/+7
| | | | | | | | | | | Fix the issue of any failure from `->elf_backend_section_processing' not being propagated by `_bfd_elf_write_object_contents'. The MIPS `_bfd_mips_elf_section_processing' handler can actually potentially fail, however the caller currently ignores that. bfd/ * elf.c (_bfd_elf_write_object_contents): Propagate a failure status from `->elf_backend_section_processing'.
* binutils/testsuite: Support stderr options with `run_dump_test'Maciej W. Rozycki2018-02-053-43/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | Add support for the `error', `error_output', `warning' and `warning_output' options for `run_dump_test' input files, based on the version of the procedure in ld/testsuite/lib/ld-lib.exp and providing compatible semantics. These options apply to PROG under test and let test cases specify output expected on stderr as well as express a requirement for PROG to exit unsuccessfully. Messages to match against can be supplied either inline or fetched from a named file. Update procedure description in the introductory comment accordingly. As the exit status from `remote_exec' is regrettably lost in our default implementation of `binutils_run', which is user-overridable, avoid changing this procedure's API and use a global `binutils_run_status' variable to pass the status up to the caller, similarly to how `binutils_run_failed' is handled. Document the new variable in the respective introductory comments. binutils/ * testsuite/config/default.exp (binutils_run): Document `binutils_run_status'. * testsuite/lib/utils-lib.exp (default_binutils_run): Likewise, and set it. (run_dump_test): Add `error', `error_output', `warning' and `warning_output' options. Update documentation accordingly.
* Updated Brazillian portuguese and Russian translationNick Clifton2018-02-058-280/+282
|
* Align natural-format register values to the same columnRuslan Kabatsayev2018-02-052-10/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, commands such as "info reg", "info all-reg", as well as register window in the TUI print badly aligned columns, like here: eax 0x1 1 ecx 0xffffd3e0 -11296 edx 0xffffd404 -11260 ebx 0xf7fa5ff4 -134586380 esp 0xffffd390 0xffffd390 ebp 0xffffd3c8 0xffffd3c8 esi 0x0 0 edi 0x0 0 eip 0x8048b60 0x8048b60 <main+16> eflags 0x286 [ PF SF IF ] cs 0x23 35 ss 0x2b 43 ds 0x2b 43 es 0x2b 43 fs 0x0 0 gs 0x63 99 After this patch, these commands print the third column values consistently aligned one under another, provided the second column is not too long. Originally, the third column was (attempted to be) aligned using a simple tab character. This patch changes the alignment to spaces only. The tests checking the output and expecting the single tab have been fixed in a previous patch, so this change doesn't break any. gdb/ChangeLog: * infcmd.c (default_print_one_register_info): Align natural-format column values consistently one under another. (pad_to_column): New function.
* Move comment in gdb/dwarf2read.c::dwarf2_physnameJoel Brobecker2018-02-042-8/+12
| | | | | | | | | | | This commit just moves a comment right next to where it is actually relevant. No actual code change. gdb/ChangeLog: * dwarf2read.c (dwarf2_physname): Move commment. Tested by rebuilding GDB.
* Automatic date update in version.inGDB Administrator2018-02-051-1/+1
|
* ld/testsuite: Replace -Sw with -SW for readelfH.J. Lu2018-02-0410-9/+21
| | | | | | | | | | | | | | -Sw is a typo. It should be -SW for readelf. * testsuite/ld-i386/lea1d.d: Replace -Sw with -SW. * testsuite/ld-i386/lea1e.d: Likewise. * testsuite/ld-i386/lea1f.d: Likewise. * testsuite/ld-x86-64/lea1g.d: Likewise. * testsuite/ld-x86-64/lea1h.d: Likewise. * testsuite/ld-x86-64/lea1i.d: Likewise. * testsuite/ld-x86-64/lea1j.d: Likewise. * testsuite/ld-x86-64/lea1k.d: Likewise. * testsuite/ld-x86-64/lea1l.d: Likewise.
* Automatic date update in version.inGDB Administrator2018-02-041-1/+1
|
* gdb/testsuite: Remove use of dejagnu cleanup procAndrew Burgess2018-02-033-3/+5
| | | | | | | | | | | The 'cleanup' proc has been removed from dejagnu (Feb 15 2016). The proc has not done anything useful since at least 2001 so removing these calls should be harmless. gdb/testsuite/ChangeLog: * config/sid.exp (gdb_target_sid): Remove use of cleanup. * config/sim.exp (gdb_target_sim): Remove use of cleanup.
* Remove PROVIDE() qualifiers from definition of __CTOR_LIST__ and ↵Nick Clifton2018-02-034-8/+56
| | | | | | | | | | | | __DTOR_LIST__ symbols in PE linker scripts. PR 22762 * scripttempl/pe.sc: Remove PROVIDE()s from __CTOR_LIST__ and __DTOR_LIST__ symbols. Add a comment explaining why this is necessary. * scripttemp/pep.sc: Likewise. * ld.texinfo (PROVIDE): Add a note about the effect of common symbols.
* Disable -shared support in nios2-elf-ld.Sandra Loosemore2018-02-022-1/+4
| | | | | | 2018-02-03 Sandra Loosemore <sandra@codesourcery.com> * emulparams/nios2elf.sh (GENERATE_SHLIB_SCRIPT): Don't set.
* Add support for DWARF-4 line number tables.Cary Coutant2018-02-023-1/+20
| | | | | | | | | | | Reads the maximum_operations_per_instruction field, added in DWARF-4 to the line number program header. gold/ * PR gold/22776 * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Add support for DWARF-4 line number tables. * dwarf_reader.h (Sized_dwarf_line_info::max_ops_per_insn): New field.
* Automatic date update in version.inGDB Administrator2018-02-031-1/+1
|
* RISC-V: Fix --wrap and relaxation conflict.Jim Wilson2018-02-022-9/+49
| | | | | | | | | | | bfd/ PR ld/22756 * elfnn-riscv.c (riscv_relax_delete_bytes): New parameter link_info. If link_info->wrap_hash, check for a duplicate symbol and ignore. (_bfd_riscv_relax_call, bfd_riscv_relax_lui, _bfd_riscv_relax_tls_le): Pass new argument to riscv_relax_delete_bytes. (_bfd_riscv_relax_align, _bfd_riscv_relax_delete): Likewise. Remove ATTRIBUTE_UNUSED from link_info parameter.
* MI: Allow non-raw varobj evaluationLeszek Swirski via gdb-patches2018-02-027-2/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the MI variable object expression evaluation, with the -var-evaluate-expression command, recursively call pretty printers, to match the output of normal expression printing. Consider the following code: struct Foo { int val; }; struct Wrapper { Foo foo; }; int main() { Wrapper w; w.foo.val = 23; } and this pretty printer file: import gdb.printing class FooPrinter: def __init__(self, val): self.val = val def to_string(self): return "Foo" + str(self.val["val"]) class WrapperPrinter: def __init__(self, val): self.val = val def to_string(self): return self.val["foo"] test_printer = gdb.printing.RegexpCollectionPrettyPrinter("test") test_printer.add_printer('Foo', '^Foo$', FooPrinter) test_printer.add_printer('Wrapper', '^Wrapper$', WrapperPrinter) gdb.printing.register_pretty_printer(None, test_printer) Setting a breakpoint at the end of the function, we call the following commands: -enable-pretty-printing ^done -var-create var_w @ w ^done,name="var_w",numchild="0",value="{val = 23}",type="Wrapper",dynamic="1",has_more="0" -var-create var_w_foo @ w.foo ^done,name="var_w_foo",numchild="0",value="Foo23",type="Foo",dynamic="1",has_more="0" -var-evaluate-expression var_w ^done,value="{val = 23}" -var-evaluate-expression var_w_foo ^done,value="Foo23" -data-evaluate-expression w ^done,value="Foo23" -data-evaluate-expression w.foo ^done,value="Foo23" So, in the -var-evaluate-expression var_w case, we print the "raw" value of w.foo, while in the -data-evaluate-expression w case, we print the pretty printed w.foo value. After this patch, all of the above print "Foo23". gdb/ChangeLog: * varobj.c (varobj_formatted_print_options): Allow recursive pretty printing if pretty printing is enabled. gdb/testsuite/ChangeLog: * gdb.python/py-prettyprint.c (struct to_string_returns_value_inner, struct to_string_returns_value_wrapper): New. (main): Add tsrvw variable. * gdb.python/py-prettyprint.py (ToStringReturnsValueInner, ToStringReturnsValueWrapper): New classes. (register_pretty_printers): Register new pretty-printers. * gdb.python/py-prettyprint.exp (run_lang_tests): Test printing recursive pretty printer. * gdb.python/py-mi.exp: Likewise.
* binutils/riscv: Register names in DWARF outputAndrew Burgess2018-02-024-0/+40
| | | | | | | | | | | | | | | Adds a register name table for RiscV so that objdump and readelf can both use better register names. binutils/ChangeLog: * dwarf.c (dwarf_regnames_riscv): New register name table. (init_dwarf_regnames_riscv): New function. (init_dwarf_regnames): Add call to initialise RiscV register names. * dwarf.h (init_dwarf_regnames_riscv): Declare. * objdump.c (dump_dwarf): Add call to initialise RiscV register names.
* LD/testsuite: Pass $AFLAGS_PIC to GAS for PIC assemblyMaciej W. Rozycki2018-02-022-55/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add $AFLAGS_PIC flags for PIC assembly to a number of tests missing them and remove `tic6x-*-*' XFAIL annotations from them, previously added to paper over: .../ld-new: warning: generating a shared library containing non-PID code error messages produced due to `-mpic -mpid=near' GAS options having not been used. Such errors now do not happen anymore, removing: XFAIL: Build shared library for pr14170 XFAIL: PR ld/21703 shared XFAIL: Build shared library for broken linker script test XFAIL: Build pr17068.so XFAIL: -Bsymbolic-functions XFAIL: Build pr20995.so XFAIL: Build pr22374 shared library with `tic6x-elf' and `tic6x-uclinux' targets. These tests now pass all except for: FAIL: PR ld/21703 shared which is now due to a different reason, as follows: extra regexps in .../ld/testsuite/ld-elf/pr21703-shared.sd starting with "^Symbol table '\.dynsym' contains [0-9]+ entries:$" EOF from dump.out FAIL: PR ld/21703 shared The addition of $AFLAGS_PIC requires the affected test cases to use the `list' command rather than `{}' characters to create a list, to avoid the quoting property `{}' also have in TCL. Consequently the change is slightly more extensive than it could otherwise be. ld/ * testsuite/ld-elf/shared.exp: Add $AFLAGS_PIC throughout to PIC assembly builds where missing and remove `tic6x-*-*' XFAIL markings accordingly.
* PowerPC64, don't relocate nopsAlan Modra2018-02-022-4/+14
| | | | | | | | | | | This fixes a "bug" in that nops emitted as part of code optimization were being relocated. As it happens the relocation value was always zero so the nop wasn't changed. Whew! I've also moved the use of "howto" later since I was caught out in some recent code changes with the howto not matching r_type. * elf64-ppc.c (ppc64_elf_relocate_section): Don't relocate nops emitted for toc sequence optimization. Set and use "howto" later.
* Do not classify C struct members as a filenameLeszek Swirski2018-02-015-24/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is existing logic in C/C++ expression parsing to avoid classifying names as a filename when they are a field on the this object. This change extends this logic to also avoid classifying names after a struct-op (-> or .) as a filename, which otherwise causes a syntax error. Thus, it is now possible in the file #include <map> struct D { void map(); } D d; to call (gdb) print d.map() where previously this would have been a syntax error. Tested on gdb.cp/*.exp gdb/ChangeLog: * c-exp.y (lex_one_token, classify_name, yylex): Don't classify names after a structop as a filename gdb/testsuite/ChangeLog: * gdb.cp/filename.cc, gdb.cp/filename.exp: Test that member functions with the same name as an include file are parsed correctly.
* Automatic date update in version.inGDB Administrator2018-02-021-1/+1
|
* Rewrite arm_record_coproc_data_proc and arm_record_data_proc_misc_ld_strYao Qi2018-02-012-172/+334
| | | | | | | | | | | | | | When I triage some reverse debugging test fails on arm-linux, I find arm_record_coproc_data_proc and arm_record_data_proc_misc_ld_str is not friendly to instruction encoding on ARM ARM. This patch rewrites them, in a way match more closely to the manual. gdb: 2018-02-01 Yao Qi <yao.qi@linaro.org> * arm-tdep.c (arm_record_data_proc_misc_ld_str): Rewrite it. (arm_record_coproc_data_proc): Likewise.
* set ret signed in arm_record_extension_spaceYao Qi2018-02-012-1/+5
| | | | | | | | | | Variable 'ret' should be int rather than unsigned, as it can be -1. gdb: 2018-02-01 Yao Qi <yao.qi@linaro.org> * arm-tdep.c (arm_record_extension_space): Change ret to signed.
* Fix gdb.base/attach.exp fails when gdb is configured --with-sysroot=/Yao Qi2018-02-012-9/+11
| | | | | | | | | | | | | | | | | | | | | | | I see some test fails in gdb.base/attach.exp when gdb is configured --with-sysroot=/. FAIL: gdb.base/attach.exp: attach2, with no file FAIL: gdb.base/attach.exp: load file manually, after attach2 (re-read) (got interactive prompt) FAIL: gdb.base/attach.exp: attach when process' a.out not in cwd If gdb is configured this way, sysroot is "/" in default, and if binfile is a absolute path, the regexp pattern $sysroot$escapedbinfile is incorrect. There are different ways to fix it, but I don't want to complicate the test, so I choose this naive way. gdb/testsuite: 2018-02-01 Yao Qi <yao.qi@linaro.org> * gdb.base/attach.exp (do_attach_tests): Set sysroot to "\[^\r\n\]*".
* Fix compile time warnings building the binutils with clang.Simon Marchi2018-02-015-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bfdI would like to fix instances of the following warning, when building with clang with no special CFLAGS other than -g3 -O0. /home/emaisin/src/binutils-gdb/bfd/elflink.c:5425:45: error: performing pointer arithmetic on a null pointer has undefined behavior [-Werror,-Wnull-pointer-arithmetic] return (struct elf_link_hash_entry *) 0 - 1; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ Replacing those with "(struct elf_link_hash_entry *) -1" gets rid of the warning. I wanted to check that it didn't change the resulting code, so I tried to build this: $ cat test.c int *before() { return (int *) 0 - 1; } int *after() { return (int *) - 1; } $ gcc -c test.c -g $ objdump -d test.o test.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <before>: 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 c7 c0 fc ff ff ff mov $0xfffffffffffffffc,%rax b: 5d pop %rbp c: c3 retq 000000000000000d <after>: d: 55 push %rbp e: 48 89 e5 mov %rsp,%rbp 11: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax 18: 5d pop %rbp 19: c3 retq This shows that the previous code doesn't actually return -1 as the function documentation says, but the new one does, so it's kind of a bugfix. bfd * elf64-ppc.c (ppc64_elf_archive_symbol_lookup): Avoid pointer arithmetic on NULL pointer. * elflink.c (_bfd_elf_archive_symbol_lookup, elf_link_add_archive_symbols): Likewise. ld * ldexp.c (fold_name, exp_fold_tree_1): Avoid pointer arithmetic on NULL pointer.
* PR22769, crash when running 32-bit objdump on corrupted fileAlan Modra2018-02-012-2/+11
| | | | | | PR 22769 * objdump.c (load_specific_debug_section): Check for overflow when adding one to section size for a string section terminator.
* Automatic date update in version.inGDB Administrator2018-02-011-1/+1
|
* Fix testsuite/ld-elf/pr21964-5.cH.J. Lu2018-01-312-1/+5
| | | | | | Mark my_var as used. Otherwise it fails at -O2. * testsuite/ld-elf/pr21964-5.c (my_var): Mark as used.
* Fix for prologue processing on PowerPCNikola Prica2018-01-316-2/+117
| | | | | | | | | | | | | | | | | | | | | | One of conditions in skip_prologue() was never visited if there was mflr instruction that moves the link register to a register different than r0. This condition expects non shifted value of `lr_reg`. Previously offset of link register was never saved for registers different than r0. gdb/ChangeLog: 2018-01-31 Nikola Prica <nikola.prica@rt-rk.com> * rs6000-tdep.c (skip_prologue): Remove shifting for lr_reg and assign shifted lr_reg to fdata->lr_register when lr_reg is set. gdb/testsuite/ChangeLog: 2018-01-31 Nikola Prica <nikola.prica@rt-rk.com> * gdb.arch/powerpc-prologue-frame.s: New file. * gdb.arch/powerpc-prologue-frame.c: Likewise. * gdb.arch/powerpc-prologue-frame.exp: Likewise.