This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [binutils commit] DWARF-5: Extend bfd/dwarf2.c parse_comp_unit()
On Tue, Jul 4, 2017 at 1:10 AM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> On Tue, 04 Jul 2017 06:03:25 +0200, Alan Modra wrote:
>> On Sat, Jul 01, 2017 at 12:57:02PM +0200, Jan Kratochvil wrote:
>> > 2017-07-01 Jan Kratochvil <jan.kratochvil@redhat.com>
>> >
>> > * dwarf2.c (struct dwarf2_debug): Add fields dwarf_line_str_buffer and
>> > dwarf_line_str_size.
>> > (struct attr_abbrev): Add field implicit_const.
>> > (dwarf_debug_sections): Add .debug_line_str.
>> > (enum dwarf_debug_section_enum): Add debug_line_str and debug_max.
>> > (dwarf_debug_section_assert): Add static assertion.
>> > (read_indirect_line_string): New.
>> > (read_abbrevs): Support DW_FORM_implicit_const.
>> > (is_str_attr): Support DW_FORM_line_strp.
>> > (read_attribute_value): Support DW_FORM_line_strp and
>> > DW_FORM_implicit_const.
>> > (read_attribute): Support DW_FORM_implicit_const.
>> > (line_info_add_include_dir, line_info_add_include_dir_stub):
>> > (line_info_add_file_name, read_formatted_entries): New.
>> > (decode_line_info, parse_comp_unit): Support DWARF 5.
>> > (_bfd_dwarf2_cleanup_debug_info): Free dwarf_line_str_buffer.
>>
>> OK.
>
> Checked in:
> 0041f7df741692954ebc112c69e5326afb0115ba
>
I checked in this patch for GCC 4.2 build and will backport it
to binutils 2.29.
--
H.J.
From 4a5c1e39e009d765cc094694fc1f1db8d52cc74c Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 5 Jul 2017 08:58:00 -0700
Subject: [PATCH] Fix build with GCC 4.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fix GCC 4.2 warnings like:
cc1: warnings being treated as errors
binutils-gdb/bfd/dwarf2.c:1844: warning: declaration of ‘time’ shadows a global declaration
/usr/include/time.h:187: warning: shadowed declaration is here
binutils-gdb/bfd/dwarf2.c: In function ‘line_info_add_file_name’:
binutils-gdb/bfd/dwarf2.c:1854: warning: declaration of ‘time’ shadows a global declaration
/usr/include/time.h:187: warning: shadowed declaration is here
bfd/
* dwarf2.c (line_info_add_include_dir_stub): Replace time with
xtime.
(line_info_add_file_name): Likewise.
(decode_line_info): Likewise.
binutils/
* dwarf.c (display_debug_names): Replace index with xindex.
---
bfd/dwarf2.c | 13 +++++++------
binutils/dwarf.c | 16 +++++++++-------
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 5e674d4..04a2585 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -1841,7 +1841,7 @@ line_info_add_include_dir (struct line_info_table *table, char *cur_dir)
static bfd_boolean
line_info_add_include_dir_stub (struct line_info_table *table, char *cur_dir,
unsigned int dir ATTRIBUTE_UNUSED,
- unsigned int time ATTRIBUTE_UNUSED,
+ unsigned int xtime ATTRIBUTE_UNUSED,
unsigned int size ATTRIBUTE_UNUSED)
{
return line_info_add_include_dir (table, cur_dir);
@@ -1851,7 +1851,8 @@ line_info_add_include_dir_stub (struct line_info_table *table, char *cur_dir,
static bfd_boolean
line_info_add_file_name (struct line_info_table *table, char *cur_file,
- unsigned int dir, unsigned int time, unsigned int size)
+ unsigned int dir, unsigned int xtime,
+ unsigned int size)
{
if ((table->num_files % FILE_ALLOC_CHUNK) == 0)
{
@@ -1869,7 +1870,7 @@ line_info_add_file_name (struct line_info_table *table, char *cur_file,
table->files[table->num_files].name = cur_file;
table->files[table->num_files].dir = dir;
- table->files[table->num_files].time = time;
+ table->files[table->num_files].time = xtime;
table->files[table->num_files].size = size;
table->num_files++;
return TRUE;
@@ -2206,18 +2207,18 @@ decode_line_info (struct comp_unit *unit, struct dwarf2_debug *stash)
/* Read file name table. */
while ((cur_file = read_string (abfd, line_ptr, line_end, &bytes_read)) != NULL)
{
- unsigned int dir, time, size;
+ unsigned int dir, xtime, size;
line_ptr += bytes_read;
dir = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
line_ptr += bytes_read;
- time = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
+ xtime = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
line_ptr += bytes_read;
size = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
line_ptr += bytes_read;
- if (!line_info_add_file_name (table, cur_file, dir, time, size))
+ if (!line_info_add_file_name (table, cur_file, dir, xtime, size))
goto fail;
}
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 70aa011..5cada37 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -7887,13 +7887,14 @@ display_debug_names (struct dwarf_section *section, void *file)
abbrevptr += bytes_read;
for (;;)
{
- const dwarf_vma index = read_uleb128 (abbrevptr, &bytes_read,
- abbrev_table_end);
+ const dwarf_vma xindex = read_uleb128 (abbrevptr,
+ &bytes_read,
+ abbrev_table_end);
abbrevptr += bytes_read;
const dwarf_vma form = read_uleb128 (abbrevptr, &bytes_read,
abbrev_table_end);
abbrevptr += bytes_read;
- if (index == 0 && form == 0)
+ if (xindex == 0 && form == 0)
break;
}
}
@@ -7965,17 +7966,18 @@ display_debug_names (struct dwarf_section *section, void *file)
printf (" %s", get_TAG_name (dwarf_tag));
for (;;)
{
- const dwarf_vma index = read_uleb128 (abbrevptr, &bytes_read,
- abbrev_table_end);
+ const dwarf_vma xindex = read_uleb128 (abbrevptr,
+ &bytes_read,
+ abbrev_table_end);
abbrevptr += bytes_read;
const dwarf_vma form = read_uleb128 (abbrevptr, &bytes_read,
abbrev_table_end);
abbrevptr += bytes_read;
- if (index == 0 && form == 0)
+ if (xindex == 0 && form == 0)
break;
if (tagno >= 0)
- printf (" %s", get_IDX_name (index));
+ printf (" %s", get_IDX_name (xindex));
entryptr = read_and_display_attr_value (0, form, 0, entryptr,
unit_end, 0, 0,
offset_size,
--
2.9.4