[PATCH] gold: Skip address size and segment selector for DWARF5

H.J. Lu hjl.tools@gmail.com
Wed Jan 27 18:05:35 GMT 2021


On Wed, Jan 27, 2021 at 9:59 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> The .debug_line secton in DWARF5 has a byte for address size and a byte
> for segment selector after DWARF version.  Skip them for DWARF5.
>
>         PR gold/27246
>         * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog):
>         Skip address size and segment selector for DWARF5.
> ---
>  gold/dwarf_reader.cc | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc
> index 487376965db..f0e6b89bde2 100644
> --- a/gold/dwarf_reader.cc
> +++ b/gold/dwarf_reader.cc
> @@ -1658,6 +1658,10 @@ Sized_dwarf_line_info<size, big_endian>::read_header_prolog(
>    header_.version = elfcpp::Swap_unaligned<16, big_endian>::readval(lineptr);
>    lineptr += 2;
>
> +  // Skip address size and segment selector for DWARF5.
> +  if (header_.version >= 5)
> +    lineptr += 2;
> +
>    if (header_.offset_size == 4)
>      header_.prologue_length = elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr);
>    else
> --
> 2.29.2
>

This patch fixes the gold crash.  But there is no real DWARF5 support in gold.

-- 
H.J.


More information about the Binutils mailing list