aboutsummaryrefslogtreecommitdiff
path: root/binutils
AgeCommit message (Collapse)AuthorFilesLines
2022-07-09Regenerate with automake-1.15.1Alan Modra3-482/+304
Until we update the recommended versions of autoconf/automake, files should be regenerated with automake-1.15.1 and autoconf-2.69. That's not because we think those versions are golden, and newer versions are bad. It's simply because maintainers want to be able to update configury files without trouble, and if someone regenerates files with automake-1.16.5 then --enable-maintainer-mode builds will hit errors: checking that generated files are newer than configure... configure.ac:26: error: version mismatch. This is Automake 1.15.1, configure.ac:26: but the definition used by this AM_INIT_AUTOMAKE configure.ac:26: comes from Automake 1.16.5. You should recreate configure.ac:26: aclocal.m4 with aclocal and run automake again. WARNING: 'automake-1.15' is probably too old. Correcting this requires regenerating the files by hand.
2022-07-08Update release README with new version numbersNick Clifton1-7/+7
2022-07-08Update version to 2.39.50 and regenerate filesNick Clifton5-2278/+2621
2022-07-08Add markers for 2.39 branchNick Clifton4-1/+9
2022-07-06Descriptive DWARF operations dump support for DW_AT_rankBhuvanendra Kumar N1-0/+1
DW_AT_rank is a dwarf-5 feature.
2022-07-05Support for location and range lists for split-dwarf and dwarf-5.Bhuvanendra Kumar N2-9/+34
Adding support for location and range lists for split-dwarf and dwarf-5. Following issues are taken care. 1. Display of the index values for DW_FORM_loclistx and DW_FORM_rnglistx. 2. Display of .debug_loclists.dwo and .debug_rnglists.dwo sections. * dwarf.c(read_and_display_attr_value): Handle DW_FORM_loclistx and DW_FORM_rnglistx for .dwo files. (process_debug_info): Load .debug_loclists.dwo and .debug_rnglists.dwo if exists. (load_separate_debug_files): Load .debug_loclists and .debug_rnglists if exists. Include 2 entries in debug_displays table. * dwarf.h (enum dwarf_section_display_enum): Include 2 entries.
2022-07-04objcopy: bfd_alloc orelocationAlan Modra3-24/+28
This fixes an inconsequential objcopy memory leak. I'd normally ignore reports of leaks like this one, that are merely one block or fewer per section processed, since objcopy soon exits and frees all memory. However I thought it worth providing support for allocating memory on a bfd objalloc in objcopy and other utils. PR 29233 * bucomm.c (bfd_xalloc): New function. * bucomm.h (bfd_xalloc): Declare. * objcopy.c (copy_relocations_in_section): Use it to allocate array of reloc pointers. Rewrite code stripping relocs to do without extra memory allocation.
2022-07-04Modified changes for split-dwarf and dwarf-5.Bhuvanendra Kumar N1-3/+9
* dwarf.c(process_debug_info): Include DW_TAG_skeleton_unit. (display_debug_str_offsets): While dumping .debug_str_offsets.dwo, pass proper str_offsets_base to fetch_indexed_string(). (load_separate_debug_files): Skip DWO ID dump for dwarf-5.
2022-07-01Add newline to the end of the rnglists displsy.Nick Clifton2-0/+5
2022-06-30Fix implementation of readelf's -wE and -wN options,Nick Clifton3-4/+18
* dwarf.c (dwarf_select_sections_by_name): If the entry's value is zero then clear the corresponding variable. (dwarf_select_sections_by_letters): Likewise. * testsuite/binutils-all/debuginfo.exp: Expect -WE and -wE debuginfod tests to fail.
2022-06-28windres: add quotes around preprocessor cmd if neededClément Chigot1-12/+14
This patch ensures that the gcc binary called by windres is quoted if needed. Otherwise, errors can occur if the gcc is under a folder having a name containing a space (eg "Program Files"). binutils/ * resrc.c (DEFAULT_PREPROCESSOR): Split into... (DEFAULT_PREPROCESSOR_CMD): that... (DEFAULT_PREPROCESSOR_ARGS): and that. (look_for_default): Add quotes around the command if needed. (read_rc_file): Adapt to new defines.
2022-06-28Fix the display of the idnex values for DW_FORM_loclistx and ↵Nick Clifton3-127/+183
DW_FORM_rnglistx. Correct the display of .debug.loclists sections. PR 29267 * dwarf.c (display_debug_rnglists): New function, broken out of.. (display_debug_ranges): ... here. (read_and_display_attr_value): Correct calculation of index displayed for DW_FORM_loclistx and DW_FORM_rnglistx. * testsuite/binutils-all/x86-64/pr26808.dump: Update expected output.
2022-06-27Replace a run-time assertion failure with a warning message when parsing ↵Nick Clifton2-1/+12
corrupt DWARF data. PR 29289 * dwarf.c (display_debug_names): Replace assert with a warning message.
2022-06-27Fix NULL pointer indirection when parsing corrupt DWARF data.Nick Clifton2-6/+12
PR 29290 * dwarf.c (read_and_display_attr_value): Check that debug_info_p is set before dereferencing it.
2022-06-27Stop bogus warnings about DWARF indexed string offsets being too big.Nick Clifton3-75/+26
* dwarf.c (fetch_indexed_string): Do not use length of first table in string section as the length of every table in the section. * testsuite/binutils-all/pr26112.r: Update expected output.
2022-06-27drop XC16x bitsJan Beulich1-14/+0
Commit 04f096fb9e25 ("Move the xc16x target to the obsolete list") moved the architecture from the "obsolete but still available" to the "obsolete / support removed" list in config.bfd, making the architecture impossible to enable (except maybe via "enable everything" options"). Note that I didn't touch */po/*.po{,t} on the assumption that these would be updated by some (half)automatic means.
2022-06-27Fix location list offset address dump under DW_AT_location (dwarf-5)Bhuvanendra Kumar N1-12/+26
For clang compiled objects with dwarf-5, location list offset address dump under DW_AT_location is corrected, where DW_FORM_loclistx is used. While dumping the location list offset, the address dumped is wrong where it was refering to .debug_addr instead of .debug_loclists * dwarf.c (fetch_indexed_value): Add base_address as parameter and use it to access the section offset. (read_and_display_attr_value): Handle DW_FORM_loclistx form separately. Pass loclists_base to fetch_indexed_value().
2022-06-22Binutils support for split-dwarf and dwarf-5Kumar N, Bhuvanendra3-15/+56
* dwarf.c (fetch_indexed_string): Added new parameter str_offsets_base to calculate the string offset. (read_and_display_attr_value): Read DW_AT_str_offsets_base attribute. (process_debug_info): While allocating memory and initializing debug_information, do it for do_debug_info also, if its true. (load_separate_debug_files): Load .debug_str_offsets if exists. * dwarf.h (struct debug_info): Add str_offsets_base field.
2022-06-22readelf: replace xmalloc with malloc in slurp_relr_relocsMarcus Nilsson2-1/+6
Using xmalloc makes the null check redundant since failing allocation will exit the program. Instead use malloc and let the error be conveyed up the call chain.
2022-06-22PR29270, DW_FORM_udata signed outputAlan Modra1-1/+5
PR 29270 * dwarf.c (read_and_display_attr_value): Output DW_FORM_udata as unsigned.
2022-06-21Binutils support for dwarf-5 (location and range lists related)Nick Clifton3-13/+51
* dwarf.h (struct debug_info): Add rnglists_base field. * dwarf.c (read_and_display_attr_value): Read attribute DW_AT_rnglists_base. (display_debug_rnglists_list): While handling DW_RLE_base_addressx, DW_RLE_startx_endx, DW_RLE_startx_length items, pass the proper parameter value to fetch_indexed_addr(), i.e. fetch the proper entry in .debug_addr section. (display_debug_ranges): Add rnglists_base to the .debug_rnglists base address. (load_separate_debug_files): Load .debug_addr section, if exists.
2022-06-20PR29262, memory leak in pr_function_typeAlan Modra1-5/+2
PR 29262 * prdbg.c (pr_function_type): Free "s" on failure path.
2022-06-20PR29261, memory leak in parse_stab_struct_fieldsAlan Modra1-1/+4
PR 29261 * stabs.c (parse_stab_struct_fields): Free "fields" on failure path.
2022-06-17PR29255, memory leak in make_tempdirAlan Modra1-9/+11
PR 29255 * bucomm.c (make_tempdir, make_tempname): Free template on all failure paths.
2022-06-17PR29254, memory leak in stab_demangle_v3_argAlan Modra1-1/+4
PR 29254 * stabs.c (stab_demangle_v3_arg): Free dt on failure path.
2022-06-16Always free matching vector from bfd_check_format_matchesAlan Modra9-48/+15
At least one place calling list_matching_formats failed to free the "matching" vector from bfd_check_format_matches afterwards. Fix that by calling free inside list_matching_formats. binutils/ * bucomm.c (list_matching_formats): Free arg. * addr2line.c (process_file): Adjust to suit. * ar.c (open_inarch, ranlib_touch): Likewise. * coffdump.c (main): Likewise. * nm.c (display_archive, display_file): Likewise. * objcopy.c (copy_file): Likewise. * objdump.c (display_object_bfd): Likewise. * size.c (display_bfd): Likewise. * srconv.c (main): Likewise. ld/ * ldlang.c (load_symbols): Free "matching".
2022-06-16Restore readelf -wFAlan Modra1-102/+59
Commit 94585d6d4495 resulted in readelf -wF failing with Unrecognized debug letter option 'F' binutils/ * dwarf.c (debug_dump_long_opts): Add letter. (debug_option_table): New, replacing.. (opts_table, letter_table): ..these. (dwarf_select_sections_by_names): Adjust to suit. Set do_debug_frames outside of loop. (dwarf_select_sections_by_letters): Similarly. gas/ * testsuite/gas/i386/ehinterp.d: Use readelf -wF.
2022-06-16PR29250, readelf erases CIE initial register stateAlan Modra1-37/+31
PR 29250 binutils/ * dwarf.c (display_debug_frames): Set col_type[reg] on sizing pass over FDE to cie->col_type[reg] if CIE specifies reg. Handle DW_CFA_restore and DW_CFA_restore_extended on second pass using the same logic. Remove unnecessary casts. Don't call frame_need_space on second pass over FDE. gas/ * testsuite/gas/i386/ehinterp.d, * testsuite/gas/i386/ehinterp.s: New test. * testsuite/gas/i386/i386.exp: Run it.
2022-06-14asan: applying zero offset to NULL pointerAlan Modra1-2/+3
* dwarf.c (fetch_indexed_string): Move initialisation of "curr" and "end" after checking for missing section.
2022-05-31Trailing spaces in objdump -r headerAlan Modra1-1/+1
git commit 202be274a4 went a little wild in removing trailing spaces in gas/testsuite/gas/i386/{secidx.d,secrel.d}, causing x86_64-w64-mingw32 +FAIL: i386 secrel reloc x86_64-w64-mingw32 +FAIL: i386 secidx reloc I could have just replaced the trailing space, but let's fix the objdump output instead. Touches lots of testsuite files.
2022-05-27Remove use of bfd_uint64_t and similarAlan Modra4-124/+35
Requiring C99 means that uses of bfd_uint64_t can be replaced with uint64_t, and similarly for bfd_int64_t, BFD_HOST_U_64_BIT, and BFD_HOST_64_BIT. This patch does that, removes #ifdef BFD_HOST_* and tidies a few places that print 64-bit values.
2022-05-26Re: Add bionutils support for DWARF v5's DW_OP_addrxNatarajan, Kavitha2-0/+169
Testsuite files belonging to commit 3ac9da49378c.
2022-05-25Add bionutils support for DWARF v5's DW_OP_addrx.Natarajan, Kavitha3-6/+76
2022-05-24PR29171, invalid read causing SIGSEGVAlan Modra1-4/+5
The fix here is to pass "section" down to read_and_display_attr_value. The test in read_and_display_attr_value is a little bit of hardening. PR 29171 * dwarf.c (display_debug_macro, display_debug_names): Pass section to read_and_display_attr_value2. (read_and_display_attr_value): Don't attempt to check for .dwo section name when section is NULL.
2022-05-24PR29170, divide by zero displaying fuzzed .debug_namesAlan Modra1-21/+24
PR 29170 * dwarf.c (display_debug_names): Don't attempt to display bucket clashes when bucket count is zero.
2022-05-24PR29169, invalid read displaying fuzzed .gdb_indexAlan Modra1-58/+22
PR 29169 * dwarf.c (display_gdb_index): Combine sanity checks. Calculate element counts, not word counts.
2022-05-20Stop readekf and objdump from aggressively following links.Nick Clifton8-66/+179
* dwarf.c (dwarf_select_sections_by_names): Return zero if no sections were selected. (dwarf_select_sections_by_letters): Likewise. * dwarf.h: (dwarf_select_sections_by_names): Update prototype. (dwarf_select_sections_by_letters): Update prototype. * objdump.c (might_need_separate_debug_info): New function. (dump_bfd): Call new function before attempting to load separate debug info files. (main): Do not enable dwarf section dumping for -WK or -WN. * readelf.c (parse_args): Do not enable dwarf section dumping for -wK or -wN. (might_need_separate_debug_info): New function. (process_object): Call new function before attempting to load separate debug info files. * testsuite/binutils-all/debuginfo.exp: Expect -WE and -wE debuginfod tests to pass. * testsuite/binutils-all/objdump.Wk: Add extra regexps. * testsuite/binutils-all/readelf.k: Add extra regexps.
2022-05-19Fix potentially uninitialised variables in the Windows toolsNick Clifton7-7/+19
2022-05-19COFF/PE: don't leave zero timestamp after objcopy / stripJan Beulich1-6/+8
Fill the timestamp field suitably for _bfd_XXi_only_swap_filehdr_out(). Instead of re-arranging the present if(), fold this logic with that of copying the optional header.
2022-05-18Add a --no-weak option to nm.Nick Clifton6-2/+74
PR 29135 * nm.c (non_weak): New variable. (filter_symbols): When non-weak is true, ignore weak symbols. (long_options): Add --no-weak. (usage): Mention --no-weak. (main): Handle -W/--no-weak. * doc/binutils.texi: Document new feature. * NEWS: Mention the new feature. * testsuite/binutils-all/nm.exp: Add test of new feature. * testsuite/binutils-all/no-weak.s: New test source file.
2022-05-12PR29142, segv in ar with empty archive and libdeps specifiedAlan Modra1-7/+9
PR 29142 * ar.c (main): Properly handle libdeps for zero file_count.
2022-05-11nm: use -U as an alias for --defines-only, in line with llvm-nmNick Clifton2-29/+40
2022-05-10Fix compiling binutils/resbin.c with Clang version 14Nick Clifton1-5/+3
2022-05-04Dwarf: rename yet another instance of "index"Jan Beulich1-3/+3
As before, on sufficiently old glibc this conflicts with a global identifier in the library headers. While there also zap the unusual padding by blanks.
2022-05-03Add a linker warning when creating potentially dangerous executable ↵Nick Clifton1-0/+2
segments. Add tests, options to disabke and configure switches to choose defaults.
2022-05-03objdump: fix styled printing of addressesAndrew Burgess1-4/+5
Previous work to add styled disassembler output missed a case in objdump_print_addr, which is fixed in this commit.
2022-04-25Emit a note warning the user that creating an executable stack because of a ↵Nick Clifton2-0/+7
missing .note.GNU-stack section is deprecated. PR 29072 bfd * elflink.c (bfd_elf_size_dynamic_sections): Display a note to the user that the current ehaviour of creating an executable stack because of a missing .note.GNU-stack section is deprecated and will be changed in a future release. binutils* testsuite/lib/binutils-common.exp (prune_warnings_extra): Filter out notes about the executable stacjk behaviour beign deprecated. ld * testsuite/ld-elf/pr29072.b.warn: Update to include the note about the linker's behaviour being depreccated.
2022-04-21prune .note.GNU-stack warning from testsuiteAlan Modra1-2/+3
binutils/ * testsuite/lib/binutils-common.exp (prune_warnings_extra): Remove .note.GNU-stack warning. (run_dump_test): Call prune_warnings for ld and objcopy output. ld/ * testsuite/ld-elf/elf.exp: Disable prune_warnings_extra temporarily around test for absent .note.GNU-stack * testsuite/ld-cris/globsymw2.s, * testsuite/ld-cris/warn3.d: Modify "is not implemented" message to avoid dejagnu prune_warnings.
2022-04-12Stop strip from removing debuglink sections.Nick Clifton2-2/+20
PR 28992 * objcopy.c (is_strip_section_1): Do not delete debuglink sections when stripping debug information.
2022-04-09Correct nds32 readelf reloc numbersAlan Modra1-7/+7
* readelf.c (is_32bit_abs_reloc, is_16bit_abs_reloc): Comment fixes. (is_none_reloc): Correct nds32 reloc numbers.