Author: pluto                        Date: Sat Jun 23 19:05:37 2012 GMT
Module: packages                      Tag: rpm-4_5
---- Log message:
- add dwarf-4 support for debugedit, release 68.
  https://bugzilla.redhat.com/show_bug.cgi?id=707677

---- Files affected:
packages/rpm:
   rpm.spec (1.837.2.42.2.49.2.124 -> 1.837.2.42.2.49.2.125) , 
rpm-debugedit-dwarf4.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: packages/rpm/rpm.spec
diff -u packages/rpm/rpm.spec:1.837.2.42.2.49.2.124 
packages/rpm/rpm.spec:1.837.2.42.2.49.2.125
--- packages/rpm/rpm.spec:1.837.2.42.2.49.2.124 Sat Jun 23 13:48:24 2012
+++ packages/rpm/rpm.spec       Sat Jun 23 21:05:32 2012
@@ -58,7 +58,7 @@
 Summary(uk.UTF-8):     Менеджер пакетів від RPM
 Name:          rpm
 Version:       4.5
-Release:       67
+Release:       68
 License:       LGPL
 Group:         Base
 Source0:       %{name}-%{version}.tar.gz
@@ -188,6 +188,7 @@
 Patch104:      %{name}-glob.patch
 Patch105:      %{name}-am.patch
 Patch106:      %{name}-automake_1.12.patch
+Patch107:      %{name}-debugedit-dwarf4.patch
 URL:           http://rpm5.org/
 BuildRequires: autoconf >= 2.57
 BuildRequires: automake >= 1.4
@@ -822,6 +823,7 @@
 %patch104 -p1
 %patch105 -p1
 %patch106 -p1
+%patch107 -p1
 
 mv -f po/{sr,sr@Latn}.po
 rm -rf sqlite zlib popt
@@ -1497,6 +1499,10 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.837.2.42.2.49.2.125  2012/06/23 19:05:32  pluto
+- add dwarf-4 support for debugedit, release 68.
+  https://bugzilla.redhat.com/show_bug.cgi?id=707677
+
 Revision 1.837.2.42.2.49.2.124  2012/06/23 11:48:24  pluto
 - release 67 (switch to dwarf-4 debuginfo format, gcc-4.7 required).
 

================================================================
Index: packages/rpm/rpm-debugedit-dwarf4.patch
diff -u /dev/null packages/rpm/rpm-debugedit-dwarf4.patch:1.1.2.1
--- /dev/null   Sat Jun 23 21:05:38 2012
+++ packages/rpm/rpm-debugedit-dwarf4.patch     Sat Jun 23 21:05:32 2012
@@ -0,0 +1,124 @@
+--- rpm-4.5/tools/debugedit.c.orig     2012-06-23 20:54:51.748542754 +0200
++++ rpm-4.5/tools/debugedit.c  2012-06-23 20:56:12.045612104 +0200
+@@ -70,6 +70,10 @@
+ #include "hashtab.h"
+ 
+ #define DW_TAG_partial_unit 0x3c
++#define DW_FORM_sec_offset 0x17
++#define DW_FORM_exprloc 0x18
++#define DW_FORM_flag_present 0x19
++#define DW_FORM_ref_sig8 0x20
+ 
+ char *base_dir = NULL;
+ char *dest_dir = NULL;
+@@ -250,6 +254,7 @@ static struct
+ #define DEBUG_STR     8
+ #define DEBUG_FRAME   9
+ #define DEBUG_RANGES  10
++#define DEBUG_TYPES   11
+     { ".debug_info", NULL, NULL, 0, 0, 0 },
+     { ".debug_abbrev", NULL, NULL, 0, 0, 0 },
+     { ".debug_line", NULL, NULL, 0, 0, 0 },
+@@ -261,6 +266,7 @@ static struct
+     { ".debug_str", NULL, NULL, 0, 0, 0 },
+     { ".debug_frame", NULL, NULL, 0, 0, 0 },
+     { ".debug_ranges", NULL, NULL, 0, 0, 0 },
++    { ".debug_types", NULL, NULL, 0, 0, 0 },
+     { NULL, NULL, NULL, 0, 0, 0 }
+   };
+ 
+@@ -353,7 +359,8 @@ no_memory:
+               goto no_memory;
+           }
+         form = read_uleb128 (ptr);
+-        if (form == 2 || form > DW_FORM_indirect)
++        if (form == 2
++            || (form > DW_FORM_flag_present && form != DW_FORM_ref_sig8))
+           {
+             error (0, 0, "%s: Unknown DWARF DW_FORM_%d", dso->filename, form);
+             htab_delete (h);
+@@ -382,7 +389,6 @@ static char *
+ canonicalize_path (const char *s, char *d)
+ {
+   char *rv = d;
+-  const char *sroot;
+   char *droot;
+ 
+   if (IS_DIR_SEPARATOR (*s))
+@@ -398,7 +404,6 @@ canonicalize_path (const char *s, char *
+       s++;
+     }
+   droot = d;
+-  sroot = s;
+ 
+   while (*s)
+     {
+@@ -517,7 +522,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
+     }
+ 
+   value = read_16 (ptr);
+-  if (value != 2 && value != 3)
++  if (value != 2 && value != 3 && value != 4)
+     {
+       error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
+            value);
+@@ -533,8 +538,8 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t
+       return 1;
+     }
+   
+-  opcode_base = ptr[4];
+-  ptr = dir = ptr + 4 + opcode_base;
++  opcode_base = ptr[4 + (value >= 4)];
++  ptr = dir = ptr + 4 + (value >= 4) + opcode_base;
+   
+   /* dir table: */
+   value = 1;
+@@ -762,7 +767,8 @@ edit_attributes (DSO *dso, unsigned char
+       {
+         if (t->attr[i].attr == DW_AT_stmt_list)
+           {
+-            if (form == DW_FORM_data4)
++            if (form == DW_FORM_data4
++                || form == DW_FORM_sec_offset)
+               {
+                 list_offs = do_read_32_relocated (ptr);
+                 found_list_offs = 1;
+@@ -868,6 +874,8 @@ edit_attributes (DSO *dso, unsigned char
+             else
+               ptr += 4;
+             break;
++          case DW_FORM_flag_present:
++            break;
+           case DW_FORM_addr:
+             ptr += ptr_size;
+             break;
+@@ -882,10 +890,12 @@ edit_attributes (DSO *dso, unsigned char
+             break;
+           case DW_FORM_ref4:
+           case DW_FORM_data4:
++          case DW_FORM_sec_offset:
+             ptr += 4;
+             break;
+           case DW_FORM_ref8:
+           case DW_FORM_data8:
++          case DW_FORM_ref_sig8:
+             ptr += 8;
+             break;
+           case DW_FORM_sdata:
+@@ -914,6 +924,7 @@ edit_attributes (DSO *dso, unsigned char
+             form = DW_FORM_block1;
+             break;
+           case DW_FORM_block:
++          case DW_FORM_exprloc:
+             len = read_uleb128 (ptr);
+             form = DW_FORM_block1;
+             assert (len < UINT_MAX);
+@@ -1217,7 +1228,7 @@ edit_dwarf2 (DSO *dso)
+               }
+             
+             cu_version = read_16 (ptr);
+-            if (cu_version != 2 && cu_version != 3)
++            if (cu_version != 2 && cu_version != 3 && cu_version != 4)
+               {
+                 error (0, 0, "%s: DWARF version %d unhandled", dso->filename,
+                        cu_version);
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/packages/rpm/rpm.spec?r1=1.837.2.42.2.49.2.124&r2=1.837.2.42.2.49.2.125

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to