- Feb 19, 2021
-
-
Siddhesh Poyarekar authored
Renaming over existing files needs additional care to restore permissions and ownership, which may not always succeed. Additionally, other properties of the file such as extended attributes may be lost, making the operation flaky. For predictable results, resort to rename() only if the file does not exist, otherwise copy the file contents into the existing file. This ensures that no additional tricks are needed to retain file properties. This also allows dropping of the redundant set_times on the tmpfile in objcopy/strip since now we no longer rename over existing files. binutils/ * ar.c (write_archive): Remove TARGET_STAT. Adjust call to SMART_RENAME. * arsup.c (ar_save): Likewise. * objcopy (strip_main): Don't copy TMPFD. Don't set times on temporary file and adjust call to SMART_RENAME. (copy_main): Likewise. * rename.c [!S_ISLNK]: Remove definitions. (try_preserve_permissions): Remove function. (smart_rename): Remove FD, PRESERVE_DATES arguments. Use rename system call only if TO does not exist. * bucomm.h (smart_rename): Adjust declaration.
-
GDB Administrator authored
-
Tom Tromey authored
This introduces a new method, expression::evaluate, and changes the top-level expression-evaluation functions to use it. Stack temporary handling is moved into this new method, which makes sense because that handling was only done when "*pos == 0". This patch avoids some temporary regressions related to stack temporary in the larger expression rewrite series. I've pulled it out separately because it seems like a reasonable change in its own right, and because it's better to avoid making that series even longer. Regression tested on x86-64 Fedora 32. gdb/ChangeLog 2021-02-18 Tom Tromey <tom@tromey.com> * expression.h (struct expression) <evaluate>: Declare method. * eval.c (evaluate_subexp): Simplify. (expression::evaluate): New method. (evaluate_expression, evaluate_type): Use expression::evaluate.
-
- Feb 18, 2021
-
-
Nick Clifton authored
* objcopy.c (merge_gnu_build_notes): Handle notes with a start address that is higher than the end address.
-
Andrew Burgess authored
Restrict the test gdb.arch/i386-biarch-core.exp to only run on suitable targets. gdb/testsuite/ChangeLog: * gdb.arch/i386-biarch-core.exp: Add target check.
-
Andrew Burgess authored
In this commit: commit ace667e5 Date: Mon Jul 18 21:00:00 2016 +0100 ld: Restore file offset after a plugin fails to claim a file I inadvertently left in a stray fprintf call. Removed in this commit. ld/ChangeLog: * testplugin.c (record_read_length): Remove debug fprintf.
-
Marco Barisione authored
The descriptions for most options printed by gdb --help end with a full stop but, before this patch, not the ones for --args and --interpreter. This makes the line containing --args a bit longer but still not longer than the previously longest line, that is the one for the --tty option. gdb/ChangeLog: * main.c (print_gdb_help): Add full stops at the end of the descriptions for the --args and --interpreter options.
-
Nelson Chu authored
Make the opcode/riscv-opc.c and include/opcode/riscv.h tidy, move the spec versions stuff to bfd/cpu-riscv.h. Also move the csr stuff and ext_version_table to gas/config/tc-riscv.c for internal use. To avoid too many repeated code, define general RISCV_GET_SPEC_NAME/SPEC_CLASS macros. Therefore, assembler/dis-assembler/linker/gdb can get all spec versions related stuff from cpu-riscv.h and cpu-riscv.c, since the stuff are defined there uniformly. bfd/ * Makefile.am: Added cpu-riscv.h. * Makefile.in: Regenerated. * po/SRC-POTFILES.in: Regenerated. * cpu-riscv.h: Added to support spec versions controlling. Also added extern arrays and functions for cpu-riscv.c. (enum riscv_spec_class): Define all spec classes here uniformly. (struct riscv_spec): Added for all specs. (RISCV_GET_SPEC_CLASS): Added to reduce repeated code. (RISCV_GET_SPEC_NAME): Likewise. (RISCV_GET_ISA_SPEC_CLASS): Added to get ISA spec class. (RISCV_GET_PRIV_SPEC_CLASS): Added to get privileged spec class. (RISCV_GET_PRIV_SPEC_NAME): Added to get privileged spec name. * cpu-riscv.c (struct priv_spec_t): Replaced with struct riscv_spec. (riscv_get_priv_spec_class): Replaced with RISCV_GET_PRIV_SPEC_CLASS. (riscv_get_priv_spec_name): Replaced with RISCV_GET_PRIV_SPEC_NAME. (riscv_priv_specs): Moved below. (riscv_get_priv_spec_class_from_numbers): Likewise, updated. (riscv_isa_specs): Moved from include/opcode/riscv.h. * elfnn-riscv.c: Included cpu-riscv.h. (riscv_merge_attributes): Initialize in_priv_spec and out_priv_spec. * elfxx-riscv.c: Included cpu-riscv.h and opcode/riscv.h. (RISCV_UNKNOWN_VERSION): Moved from include/opcode/riscv.h. * elfxx-riscv.h: Removed extern functions to cpu-riscv.h. gas/ * config/tc-riscv.c: Included cpu-riscv.h. (enum riscv_csr_clas): Moved from include/opcode/riscv.h. (struct riscv_csr_extra): Likewise. (struct riscv_ext_version): Likewise. (ext_version_table): Moved from opcodes/riscv-opc.c. (default_isa_spec): Updated type to riscv_spec_class. (default_priv_spec): Likewise. (riscv_set_default_isa_spec): Updated. (init_ext_version_hash): Likewise. (riscv_init_csr_hash): Likewise, also fixed indent. include/ * opcode/riscv.h: Moved stuff and make the file tidy. opcodes/ * riscv-dis.c: Included cpu-riscv.h, and removed elfxx-riscv.h. (default_priv_spec): Updated type to riscv_spec_class. (parse_riscv_dis_option): Updated. * riscv-opc.c: Moved stuff and make the file tidy. -
Kevin Buettner authored
This commit fixes a libstdc++ assertion failure encountered when running gdb.base/completion.exp. In order to see this problem, GDB must be built with the follow CFLAGS and CXXFLAGS as part of the configure line: CFLAGS='-D_GLIBCXX_DEBUG' CXXFLAGS='-D_GLIBCXX_DEBUG' (Also, this problem was encountered using Fedora rawhide. It might not be reproducible in Fedora versions prior to Fedora 34.) Using the gdb.base/completion.exp test program, the problem can be observed as follows: [kev@rawhide-1 gdb]$ ./gdb -q testsuite/outputs/gdb.base/completion/completion Reading symbols from testsuite/outputs/gdb.base/completion/completion... (gdb) start Temporary breakpoint 1 at 0x401179: file ../../worktree-master/gdb/testsuite/gdb.base/break.c, line 43. Starting program: testsuite/outputs/gdb.base/completion/completion Temporary breakpoint 1, main (argc=1, argv=0x7fffffffd718, envp=0x7fffffffd728) at ../../worktree-master/gdb/testsuite/gdb.base/break.c:43 43 if (argc == 12345) { /* an unlikely value < 2^16, in case uninited */ /* set breakpoint 6 here */ (gdb) p <TAB>/usr/include/c++/11/string_view:211: constexpr const value_type& std::basic_string_view<_CharT, _Traits>::operator[](std::basic_string_view<_CharT, _Traits>::size_type) const [with _CharT = char; _Traits = std::char_traits<char>; std::basic_string_view<_CharT, _Traits>::const_reference = const char&; std::basic_string_view<_CharT, _Traits>::size_type = long unsigned int]: Assertion '__pos < this->_M_len' failed. Aborted (core dumped) (Note that I added "<TAB>" to make it clear where the tab key was pressed.) gdb/ChangeLog: * ada-lang.c (ada_fold_name): Check for non-empty string prior to accessing it. (ada_lookup_name_info): Likewise. -
GDB Administrator authored
-
Lancelot SIX authored
Add the missing 'remote' in: - @item show remote interrupt-sequence - @item show remote interrupt-on-connect
-
- Feb 17, 2021
-
-
Alan Modra authored
* testsuite/gas/elf/section28.d: xfail h8300.
-
Alan Modra authored
There is a tiny error left in dwarf.c:read_leb128 after Nick fixed the signed overflow problem in code I wrote. It's to do with sleb128 values that have unnecessary excess bytes. For example, -1 is represented as 0x7f, the most efficient encoding, but also as 0xff,0x7f or 0xff,0xff,0x7f and so on. None of these sequences overflow any size signed value, but read_leb128 will report an overflow given enough excess bytes. This patch fixes that problem, and since the proper test for signed values with excess bytes can easily be adapted to also test a sleb byte with just some bits that overflow the result, I changed the code to not use signed right shifts. (The C standard ISO/IEC 9899:1999 6.5.7 says signed right shifts of negative values have an implementation defined value. A long time ago I even used a C compiler for a certain microprocessor that always did unsigned right shifts. Mind you, it is very unlikely to be compiling binutils with such a compiler.) bfd/ * wasm-module.c: Guard include of limits.h. (CHAR_BIT): Provide backup define. (wasm_read_leb128): Use CHAR_BIT to size "result" in bits. Correct signed overflow checking. opcodes/ * wasm32-dis.c: Include limits.h. (CHAR_BIT): Provide backup define. (wasm_read_leb128): Use CHAR_BIT to size "result" in bits. Correct signed overflow checking. binutils/ * dwarf.c: Include limits.h. (CHAR_BIT): Provide backup define. (read_leb128): Use CHAR_BIT to size "result" in bits. Correct signed overflow checking. * testsuite/binutils-all/pr26548.s, * testsuite/binutils-all/pr26548.d, * testsuite/binutils-all/pr26548e.d: New tests. * testsuite/binutils-all/readelf.exp: Run them. (readelf_test): Drop unused "xfails" parameter. Update all uses.
-
Nelson Chu authored
RISC-V only defines two float ABIs, soft-float and double-float, and the value of soft-float is 0x0. But 0x0 usually means unknown/default setting for many targets, and the non-ABI binary, which is generated by "ld/objcopy -b binary", also has the 0x0 elf header flags, this may be confused. We probably can define a new unknown/default ABI value to make them more clear, but that will need more bits in the elf header flags, and also need to discuss in the riscv psabi spec. Training linker have a default ABI setting, and can be changed by ld options or configure options is another solution, like what assemblr usually do. So all objects, including the binary files, will have explicit ABI setting. But the binary files will no longer be linked with any object, users need to recompile them with the exactly ABI they want. It may be inconvenience sometimes. Besides, I think linker doesn't need to know the default arch/abi so far, just set them according to the linked objects should be enough. Therefore, without changing the riscv psabi, and keep the non-ABI binary can be linked with any object, we don't check the ABI flags if no code section in the PR24389. Just that we find the first input non-ABI binary still cannot be linked with others in the PR27200. This patch fixs the problem by delaying the elf_flags_init(obfd) check, since the flags of non-ABI object with no code cannot be copyed to output BFD, we should skip it, even if it is the first linked object. However, there is a strange "break" at the end of loop in the PR24389. The "break" cause the ld testcase "Link with zlib-gabi compressed debug output 1" fails for rv64gc-linux toolchain, after applying the above change. The root cause is that - the "break" make linker only checks the "first" section of input BFD rather than the entire sections. I have checked that AARCH64 and ARM both have the "break" at the end of loop, but ARC doesn't. I suppose we should remove the "break" like what ARC do, or use a pair of braces for the if statement. I have passed the elf/linux toolchain regressions, so the change should be fine. bfd/ PR 27200 * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Delay copying the elf flags from input BFD to output BFD, until we have checked if the input BFD has no code section or not. Also fix the problem that we only check the first section rather than the entire sections for input BFD. -
GDB Administrator authored
-
Alok Kumar Sharma authored
Please consider output of objdump for the executable generated from pr13961.S ------------- Contents of the .debug_info section: ... <1><62>: Abbrev Number: 2 (DW_TAG_class_type) <63> DW_AT_name : foo2 <68> DW_AT_byte_size : 4 <69> DW_AT_decl_file : 1 <6a> DW_AT_decl_line : 1 <6b> DW_AT_sibling : <0x3f> !!! There is no DIE <0x3f> ... Contents of the .debug_types section: ... <1><25>: Abbrev Number: 8 (DW_TAG_class_type) !! Hand-inserted of size=5 <26> DW_AT_specification: <0x2a> <1><2a>: Abbrev Number: 2 (DW_TAG_class_type) <2b> DW_AT_name : foo <2f> DW_AT_byte_size : 4 <30> DW_AT_decl_file : 1 <31> DW_AT_decl_line : 1 <32> DW_AT_sibling : <0x3f> !!! There is no DIE <0x3f>, should be <44> <2><36>: Abbrev Number: 3 (DW_TAG_member) <37> DW_AT_name : bar <3b> DW_AT_decl_file : 1 <3c> DW_AT_decl_line : 4 <3d> DW_AT_type : <0x3f> !!! There is no DIE <0x3f> <41> DW_AT_data_member_location: 0 <42> DW_AT_accessibility: 1 (public) <2><43>: Abbrev Number: 0 <1><44>: Abbrev Number: 4 (DW_TAG_base_type) <45> DW_AT_byte_size : 4 <46> DW_AT_encoding : 5 (signed) <47> DW_AT_name : int ... --------------- The original assembly is generated from a source file and then modified to insert DIE, with that the subsequent DIE references should have been updated, which were not. It is now getting updated to replace hardcoded DIE references with label-calculated references. gdb/testsuite/ChangeLog: 2021-02-16 Alok Kumar Sharma <AlokKumar.Sharma@amd.com> * gdb.dwarf2/pr13961.S: Corrected invalide DIE references.
-
- Feb 16, 2021
-
-
H.J. Lu authored
Since SHF_GNU_RETAIN is allowed on all sections, strip SHF_GNU_RETAIN when checking incorrect section attributes. PR gas/27412 * config/obj-elf.c (obj_elf_change_section): Strip SHF_GNU_RETAIN when checking incorrect section attributes. * testsuite/gas/elf/elf.exp: Run section28 and section29. * testsuite/gas/elf/section28.d: New file. * testsuite/gas/elf/section28.s: Likewise. * testsuite/gas/elf/section29.d: Likewise. * testsuite/gas/elf/section29.s: Likewise.
-
Jan Beulich authored
CVTPI2PD with a memory operand, unlike CVTPI2PS, doesn't engage MMX logic. Therefore it - has a proper AVX equivalent (CVTDQ2PD) and hence can be subject to SSE2AVX translation and SSE checking, - should not record MMX use in the respective ELF note.
-
Jan Beulich authored
This undoes a change to md_assemble() that 32930e4e ("x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker") did without any explanation. This broke a CVTPI2PS property test that a subsequent test will add, and the updates to existing tests also demonstrate what was wrong: For example, AVX insns update the full YMM, even if a Vex128 variant is in use.
-
Jan Beulich authored
VZERO{ALL,UPPER} modify YMM registers despite having no operands. While {,V}{LD,ST}MXCSR don't modify XMM registers, MXCSR and XMMn collectively form underlying machine state. -
Jan Beulich authored
There's no need to run the exact same test twice. Move the tests which don't differ between 32- and 64-bit to the "Common tests" section.
-
Jan Beulich authored
There's no point having i386-gen's set_bitfield() to handle any aliases, now that we pass the opcode table through the C preprocessor anyway.
-
Jan Beulich authored
-
Jan Beulich authored
4.3-ish warns about a possibly uninitialized variable, which results in a build failure due to -Werror.
-
Alan Modra authored
* libbfd.c (_bfd_read_unsigned_leb128): Avoid excessive shift. (_bfd_safe_read_leb128, _bfd_read_signed_leb128): Likewise.
-
Alan Modra authored
PR 27426 * dwarf2dbg.c (allocate_filename_to_slot): Allocate the dirs array in another place.
-
Alan Modra authored
* read.c (demand_copy_C_string): Really check for embedded zeros.
-
GDB Administrator authored
-
- Feb 15, 2021
-
-
Andreas Krebbel authored
opcodes/ * s390-mkopc.c (main): Accept arch14 as cpu string. * s390-opc.txt: Add new arch14 instructions. include/ * opcode/s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_ARCH14. gas/ * config/tc-s390.c (s390_parse_cpu): New entry for arch14. * doc/c-s390.texi: Document arch14 march option. * testsuite/gas/s390/s390.exp: Run the arch14 related tests. * testsuite/gas/s390/zarch-arch14.d: New test. * testsuite/gas/s390/zarch-arch14.s: New test. -
Jan Beulich authored
"cp -p" has been observed to fail on Cygwin when the build tree is on a local drive but the sources are on a Samba share. We don't really need full copies of the files here - symlinks suffice.
-
Alan Modra authored
* objdump.c (load_specific_debug_section): Don't call bfd_cache_section_contents. Rearrange so that bfd_get_full_section_contents is not called on path where bfd_simple_get_relocated_section_contents is called. Don't set section->user_data. (free_debug_section): Always free section->start. Don't twiddle section flags. * readelf.c (load_specific_debug_section): Don't set user_data. * dwarf.h (struct dwarf_section): Remove use_data field. * dwarf.c (NO_ABBREVS, ABBREV): Adjust to suit.
-
Alan Modra authored
nds32_elf_get_relocated_section_contents uses nds32_get_section_contents to read sections contents, but nds32_get_section_contents has the wrong behaviour as it calls bfd_malloc_and_get_section. That function always mallocs its output buffer, whereas get_relocated_section_contents must support an already allocated buffer. bfd/ * elf32-nds32.c (nds32_get_section_contents): Replace bfd_malloc_and_get_section with bfd_get_full_section_contents. (nds32_elf_relax_delete_blanks): Init contents. (nds32_elf_relax_section, nds32_relax_fp_as_gp): Likewise. binutils/ * testsuite/binutils-all/compress.exp: Remove nds32 xfails. * testsuite/binutils-all/objdump.exp: Likewise.
-
Alan Modra authored
Use bfd_get_full_section_contents and tidy the start of this function to match current generic get_relocated_section_contents. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Use bfd_get_full_section_contents.
-
GDB Administrator authored
-
- Feb 14, 2021
-
-
Alan Modra authored
In particular, bfd_get_full_section_contents rather than bfd_get_section_contents so that compressed sections are handled properly. Necessary for mips if objdump is to not cache debug sections. * elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): Apply all fixes to bfd_generic_get_relocated_section_contents since this function was split out.
-
Alan Modra authored
Space for a NULL is there in every backend bfd_get_symtab_upper_bound or bfd_get_dynamic_symtab_upper_bound when the symbol count is non-zero, and placed as a terminator by bfd_canonicalize_symtab. Many backends even return a single NULL entry array for zero symbol count, and while there are a few that return a NULL array for no symbols, that case is handled fine in objdump. So don't have objdump add yet another NULL entry. * objdump.c (slurp_symtab): Don't add an extra entry for NULL to the symbol array. (slurp_dynamic_symtab): Likewise. (dump_bfd): Formatting. Copy terminating NULL from extra_syms.
-
Alan Modra authored
* Makefile.in: Regenerate. * doc/Makefile.in: Regenerate.
-
Alan Modra authored
"unresolved" as a test result means runtest returns an error, which can be confusing when there is no apparent error unless you look in .log files. In particular many tests are skipped without reporting an error if no target C compiler is found, but if a target C compiler is found but won't compile a testcase for some reason we used to mark the test as unresolved. Which is no more worthy of an error than when lacking a C compiler entirely. * testsuite/ld-cdtest/cdtest.exp, * testsuite/ld-checks/checks.exp, * testsuite/ld-elf/binutils.exp, * testsuite/ld-elf/compress.exp, * testsuite/ld-elf/dwarf.exp, * testsuite/ld-elf/exclude.exp, * testsuite/ld-elf/frame.exp, * testsuite/ld-elf/indirect.exp, * testsuite/ld-elf/linux-x86.exp, * testsuite/ld-elf/sec-to-seg.exp, * testsuite/ld-elf/tls_common.exp, * testsuite/ld-elfcomm/elfcomm.exp, * testsuite/ld-elfvers/vers.exp, * testsuite/ld-elfvsb/elfvsb.exp, * testsuite/ld-elfweak/elfweak.exp, * testsuite/ld-ifunc/binutils.exp, * testsuite/ld-mips-elf/mips-elf-flags.exp, * testsuite/ld-misc/defsym.exp, * testsuite/ld-mn10300/mn10300.exp, * testsuite/ld-plugin/lto.exp, * testsuite/ld-plugin/plugin.exp, * testsuite/ld-scripts/align.exp, * testsuite/ld-scripts/assert.exp, * testsuite/ld-scripts/crossref.exp, * testsuite/ld-scripts/defined.exp, * testsuite/ld-scripts/extern.exp, * testsuite/ld-scripts/log2.exp, * testsuite/ld-scripts/map-address.exp, * testsuite/ld-scripts/phdrs.exp, * testsuite/ld-scripts/phdrs2.exp, * testsuite/ld-scripts/script.exp, * testsuite/ld-scripts/section-flags.exp, * testsuite/ld-scripts/sizeof.exp, * testsuite/ld-scripts/weak.exp, * testsuite/ld-selective/selective.exp, * testsuite/ld-sh/sh.exp, * testsuite/ld-shared/shared.exp, * testsuite/ld-srec/srec.exp, * testsuite/ld-tic6x/tic6x.exp, * testsuite/ld-undefined/undefined.exp, * testsuite/ld-undefined/weak-undef.exp, * testsuite/lib/ld-lib.exp: Don't use unresolved except after perror. Instead report "unsupported" or "fail".
-
GDB Administrator authored
-
Mike Frysinger authored
This is needed to move to automake & its dejagnu-provided logic, and eventually by the unified sim logic. The $arch is used only to figure out which `run` program to use when running tests, and as we move to a single top-level build, we can delete this and use sim/run directly.
-