Add support for displaying extension to DWARF2 used by Unified Parallel C
authorNick Clifton <nickc@redhat.com>
Tue, 10 Dec 2002 17:48:27 +0000 (17:48 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 10 Dec 2002 17:48:27 +0000 (17:48 +0000)
compiler.

binutils/ChangeLog
binutils/NEWS
binutils/readelf.c
include/elf/ChangeLog
include/elf/dwarf2.h

index 573830b..ec9ca63 100644 (file)
@@ -1,3 +1,10 @@
+2002-12-10  James Cownie <jcownie@etnus.com>
+
+       * readelf.h (get_TAG_name, get_AT_name,
+       read_and_display_attr_value): Add support for UPC extenstions to
+       DWARF2 spec.
+       * NEWS: Mention this new support.
+
 2002-12-08  Alan Modra  <amodra@bigpond.net.au>
 
        * NEWS: Mention that bfd no longer declares a "boolean" type.
index 9a34ecb..74042b1 100644 (file)
@@ -1,5 +1,8 @@
 -*- text -*-
 
+* readelf can handle the extensions to the DWARF2 spec used by the Unified
+  Parallel C compiler.
+
 * BFD no longer declares a "boolean" type, to avoid clashes with other
   headers that declare the same.  Users of BFD should replace boolean,
   false and true, with int, 0 and 1, or define their own boolean type.
index 6a5732a..461d63f 100644 (file)
@@ -6735,6 +6735,10 @@ get_TAG_name (tag)
     case DW_TAG_unspecified_type:      return "DW_TAG_unspecified_type";
     case DW_TAG_partial_unit:          return "DW_TAG_partial_unit";
     case DW_TAG_imported_unit:         return "DW_TAG_imported_unit";
+      /* UPC values.  */
+    case DW_TAG_upc_shared_type:        return "DW_TAG_upc_shared_type";
+    case DW_TAG_upc_strict_type:        return "DW_TAG_upc_strict_type";
+    case DW_TAG_upc_relaxed_type:       return "DW_TAG_upc_relaxed_type";
     default:
       {
        static char buffer[100];
@@ -6847,6 +6851,8 @@ get_AT_name (attribute)
     case DW_AT_body_begin:             return "DW_AT_body_begin";
     case DW_AT_body_end:               return "DW_AT_body_end";
     case DW_AT_GNU_vector:             return "DW_AT_GNU_vector";
+      /* UPC extension.  */
+    case DW_AT_upc_threads_scaled:     return "DW_AT_upc_threads_scaled";
     default:
       {
        static char buffer[100];
@@ -7933,6 +7939,8 @@ read_and_display_attr_value (attribute, form, data, cu_offset, pointer_size)
        case DW_LANG_Fortran95:         printf ("(Fortran 95)"); break;
          /* MIPS extension.  */
        case DW_LANG_Mips_Assembler:    printf ("(MIPS assembler)"); break;
+         /* UPC extension.  */
+       case DW_LANG_Upc:               printf ("(Unified Parallel C)"); break;
        default:
          printf ("(Unknown: %lx)", uvalue);
          break;
index bba6fd5..1dd7fd5 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-10  James Cownie <jcownie@etnus.com>
+
+       * dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type,
+       DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc):
+       Define.
+
 2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
 
        * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
index 6463b5a..9c8ce4e 100644 (file)
@@ -87,7 +87,7 @@ typedef struct
 }
 DWARF2_Internal_PubNames;
 
-/* Strcuture found in .debug_info section.  */
+/* Structure found in .debug_info section.  */
 typedef struct
 {
   unsigned char  cu_length        [4];
@@ -194,7 +194,11 @@ enum dwarf_tag
     DW_TAG_function_template = 0x4102, /* For C++.  */
     DW_TAG_class_template = 0x4103,    /* For C++.  */
     DW_TAG_GNU_BINCL = 0x4104,
-    DW_TAG_GNU_EINCL = 0x4105
+    DW_TAG_GNU_EINCL = 0x4105,
+    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
+    DW_TAG_upc_shared_type = 0x8765,
+    DW_TAG_upc_strict_type = 0x8766,
+    DW_TAG_upc_relaxed_type = 0x8767
   };
 
 #define DW_TAG_lo_user 0x4080
@@ -309,7 +313,7 @@ enum dwarf_attribute
     DW_AT_call_column   = 0x57,
     DW_AT_call_file     = 0x58,
     DW_AT_call_line     = 0x59,
-    /* SGI/MIPS Extensions.  */
+    /* SGI/MIPS extensions.  */
     DW_AT_MIPS_fde = 0x2001,
     DW_AT_MIPS_loop_begin = 0x2002,
     DW_AT_MIPS_tail_loop_begin = 0x2003,
@@ -329,8 +333,10 @@ enum dwarf_attribute
     DW_AT_body_begin = 0x2105,
     DW_AT_body_end   = 0x2106,
     DW_AT_GNU_vector = 0x2107,
-    /* VMS Extensions.  */
-    DW_AT_VMS_rtnbeg_pd_address = 0x2201
+    /* VMS extensions.  */
+    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
+    /* UPC extension.  */
+    DW_AT_upc_threads_scaled = 0x3210
   };
 
 #define DW_AT_lo_user  0x2000  /* Implementation-defined range start.  */
@@ -678,7 +684,9 @@ enum dwarf_source_language
     DW_LANG_Ada95 = 0x000d,
     DW_LANG_Fortran95 = 0x000e,
     /* MIPS.  */
-    DW_LANG_Mips_Assembler = 0x8001
+    DW_LANG_Mips_Assembler = 0x8001,
+    /* UPC.  */
+    DW_LANG_Upc = 0x8765
   };
 
 #define DW_LANG_lo_user 0x8000 /* Implementation-defined range start.  */