[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#752579: libstdc++6: arch-dependent file in "Multi-Arch: same" package



Package: libstdc++6
Version: 4.9.0-7
Severity: important
User: multiarch-devel@lists.alioth.debian.org
Usertags: multiarch

libstdc++6 is marked as "Multi-Arch: same", but the following file is architecture-dependent:

/usr/share/gcc-4.9/python/libstdcxx/v6/printers.py

MD5 sums of the files are:

1b83b0b9896053a8206a076826e33de2 on armel
12ca90f036a8ac1bde4a3f33a4f2f59c elsewhere

An example diff between i386 and armel is attached.

--
Jakub Wilk
diff -ur libstdc++6_4.9.0-7_i386/usr/share/gcc-4.9/python/libstdcxx/v6/printers.py libstdc++6_4.9.0-7_armel/usr/share/gcc-4.9/python/libstdcxx/v6/printers.py
--- libstdc++6_4.9.0-7_i386/usr/share/gcc-4.9/python/libstdcxx/v6/printers.py	2014-06-17 19:28:12.000000000 +0200
+++ libstdc++6_4.9.0-7_armel/usr/share/gcc-4.9/python/libstdcxx/v6/printers.py	2014-06-23 16:05:21.000000000 +0200
@@ -51,7 +51,7 @@
         # anything fancier here.
         field = typ.fields()[0]
         if not field.is_base_class:
-            raise ValueError("Cannot find type %s::%s" % (str(orig), name))
+            raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
         typ = field.type
 
 class SharedPointerPrinter:
@@ -97,7 +97,7 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
+        def next(self):
             if self.base == self.head:
                 raise StopIteration
             elt = self.base.cast(self.nodetype).dereference()
@@ -144,7 +144,7 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
+        def next(self):
             if self.base == 0:
                 raise StopIteration
             elt = self.base.cast(self.nodetype).dereference()
@@ -198,7 +198,7 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
+        def next(self):
             count = self.count
             self.count = self.count + 1
             if self.bitvec:
@@ -276,20 +276,20 @@
                 # Set the actual head to the first pair.
                 self.head  = self.head.cast (nodes[0].type)
             elif len (nodes) != 0:
-                raise ValueError("Top of tuple tree does not consist of a single node.")
+                raise ValueError, "Top of tuple tree does not consist of a single node."
             self.count = 0
 
         def __iter__ (self):
             return self
 
-        def __next__ (self):
+        def next (self):
             nodes = self.head.type.fields ()
             # Check for further recursions in the inheritance tree.
             if len (nodes) == 0:
                 raise StopIteration
             # Check that this iteration has an expected structure.
             if len (nodes) != 2:
-                raise ValueError("Cannot parse more than 2 nodes in a tuple tree.")
+                raise ValueError, "Cannot parse more than 2 nodes in a tuple tree."
 
             # - Left node is the next recursion parent.
             # - Right node is the actual class contained in the tuple.
@@ -353,7 +353,7 @@
     def __len__(self):
         return int (self.size)
 
-    def __next__(self):
+    def next(self):
         if self.count == self.size:
             raise StopIteration
         result = self.node
@@ -389,7 +389,7 @@
             return p.dereference()
     except:
         pass
-    raise ValueError("Unsupported implementation for %s" % str(node.type))
+    raise ValueError, "Unsupported implementation for %s" % str(node.type)
 
 # This is a pretty printer for std::_Rb_tree_iterator (which is
 # std::map::iterator), and has nothing to do with the RbtreeIterator
@@ -431,9 +431,9 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
+        def next(self):
             if self.count % 2 == 0:
-                n = next(self.rbiter)
+                n = self.rbiter.next()
                 n = n.cast(self.type).dereference()
                 n = get_value_from_Rb_tree_node(n)
                 self.pair = n
@@ -474,8 +474,8 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
-            item = next(self.rbiter)
+        def next(self):
+            item = self.rbiter.next()
             item = item.cast(self.type).dereference()
             item = get_value_from_Rb_tree_node(item)
             # FIXME: this is weird ... what to do?
@@ -553,7 +553,7 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
+        def next(self):
             if self.p == self.last:
                 raise StopIteration
 
@@ -591,7 +591,7 @@
 
         size = self.buffer_size * delta_n + delta_s + delta_e
 
-        return '%s with %d elements' % (self.typename, int (size))
+        return '%s with %d elements' % (self.typename, long (size))
 
     def children(self):
         start = self.val['_M_impl']['_M_start']
@@ -654,7 +654,7 @@
     def __iter__ (self):
         return self
 
-    def __next__ (self):
+    def next (self):
         if self.node == 0:
             raise StopIteration
         node = self.node.cast(self.node_type)
@@ -677,7 +677,7 @@
     def __iter__(self):
         return self
 
-    def __next__(self):
+    def next(self):
         if self.node == 0:
             raise StopIteration
         elt = self.node.cast(self.node_type).dereference()
@@ -706,10 +706,10 @@
         return '[%d]' % i
 
     def children (self):
-        counter = list(map (self.format_count, itertools.count()))
+        counter = itertools.imap (self.format_count, itertools.count())
         if self.typename.startswith('std::tr1'):
-            return list(zip (counter, Tr1HashtableIterator (self.hashtable())))
-        return list(zip (counter, StdHashtableIterator (self.hashtable())))
+            return itertools.izip (counter, Tr1HashtableIterator (self.hashtable()))
+        return itertools.izip (counter, StdHashtableIterator (self.hashtable()))
 
 class Tr1UnorderedMapPrinter:
     "Print a tr1::unordered_map"
@@ -741,15 +741,15 @@
         return '[%d]' % i
 
     def children (self):
-        counter = list(map (self.format_count, itertools.count()))
+        counter = itertools.imap (self.format_count, itertools.count())
         # Map over the hash table and flatten the result.
         if self.typename.startswith('std::tr1'):
-            data = self.flatten (list(map (self.format_one, Tr1HashtableIterator (self.hashtable()))))
+            data = self.flatten (itertools.imap (self.format_one, Tr1HashtableIterator (self.hashtable())))
             # Zip the two iterators together.
-            return list(zip (counter, data))
-        data = self.flatten (list(map (self.format_one, StdHashtableIterator (self.hashtable()))))
+            return itertools.izip (counter, data)
+        data = self.flatten (itertools.imap (self.format_one, StdHashtableIterator (self.hashtable())))
         # Zip the two iterators together.
-        return list(zip (counter, data))
+        return itertools.izip (counter, data)
         
 
     def display_hint (self):
@@ -767,7 +767,7 @@
         def __iter__(self):
             return self
 
-        def __next__(self):
+        def next(self):
             if self.base == 0:
                 raise StopIteration
             elt = self.base.cast(self.nodetype).dereference()
@@ -827,7 +827,7 @@
         # A small sanity check.
         # FIXME
         if not self.compiled_rx.match(name + '<>'):
-            raise ValueError('libstdc++ programming error: "%s" does not match' % name)
+            raise ValueError, 'libstdc++ programming error: "%s" does not match' % name
         printer = RxPrinter(name, function)
         self.subprinters.append(printer)
         self.lookup[name] = printer

Reply to: