This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]