Package: libstdc++6 Version: 4.9.0-7 Severity: important User: multiarch-de...@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