X-Git-Url: https://git.tld-linux.org/?p=packages%2Fgcc.git;a=blobdiff_plain;f=gcc-branch.diff;h=bc6fa31eb60a2d3a01141621fc9cc9074337b63b;hp=9ac75afeca31f10a9809ac19e7e0e707ee1ecc94;hb=69f33677e304f4dd322d3b72d960023c4b725097;hpb=73f608b1f67e6e0bea392424f49d12b57607b3d2
diff --git a/gcc-branch.diff b/gcc-branch.diff
index 9ac75af..bc6fa31 100644
--- a/gcc-branch.diff
+++ b/gcc-branch.diff
@@ -1,24106 +1,27 @@
-Index: libstdc++-v3/python/libstdcxx/v6/printers.py
-===================================================================
---- libstdc++-v3/python/libstdcxx/v6/printers.py (.../tags/gcc_4_8_3_release) (revision 217117)
-+++ libstdc++-v3/python/libstdcxx/v6/printers.py (.../branches/gcc-4_8-branch) (revision 217117)
-@@ -1,4 +1,4 @@
--# Pretty-printers for libstc++.
-+# Pretty-printers for libstdc++.
-
- # Copyright (C) 2008-2013 Free Software Foundation, Inc.
-
-@@ -18,7 +18,51 @@
- import gdb
- import itertools
- import re
-+import sys
-
-+### Python 2 + Python 3 compatibility code
-+
-+# Resources about compatibility:
-+#
-+# * : Documentation of the "six" module
-+
-+# FIXME: The handling of e.g. std::basic_string (at least on char)
-+# probably needs updating to work with Python 3's new string rules.
-+#
-+# In particular, Python 3 has a separate type (called byte) for
-+# bytestrings, and a special b"" syntax for the byte literals; the old
-+# str() type has been redefined to always store Unicode text.
-+#
-+# We probably can't do much about this until this GDB PR is addressed:
-+#
-+
-+if sys.version_info[0] > 2:
-+ ### Python 3 stuff
-+ Iterator = object
-+ # Python 3 folds these into the normal functions.
-+ imap = map
-+ izip = zip
-+ # Also, int subsumes long
-+ long = int
-+else:
-+ ### Python 2 stuff
-+ class Iterator:
-+ """Compatibility mixin for iterators
-+
-+ Instead of writing next() methods for iterators, write
-+ __next__() methods and use this mixin to make them work in
-+ Python 2 as well as Python 3.
-+
-+ Idea stolen from the "six" documentation:
-+
-+ """
-+
-+ def next(self):
-+ return self.__next__()
-+
-+ # In Python 2, we still need these from itertools
-+ from itertools import imap, izip
-+
- # Try to use the new-style pretty-printing if available.
- _use_gdb_pp = True
- try:
-@@ -51,7 +95,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:
-@@ -87,7 +131,7 @@
- class StdListPrinter:
- "Print a std::list"
-
-- class _iterator:
-+ class _iterator(Iterator):
- def __init__(self, nodetype, head):
- self.nodetype = nodetype
- self.base = head['_M_next']
-@@ -97,7 +141,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()
-@@ -135,7 +179,7 @@
- class StdSlistPrinter:
- "Print a __gnu_cxx::slist"
-
-- class _iterator:
-+ class _iterator(Iterator):
- def __init__(self, nodetype, head):
- self.nodetype = nodetype
- self.base = head['_M_head']['_M_next']
-@@ -144,7 +188,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()
-@@ -180,7 +224,7 @@
- class StdVectorPrinter:
- "Print a std::vector"
-
-- class _iterator:
-+ class _iterator(Iterator):
- def __init__ (self, start, finish, bitvec):
- self.bitvec = bitvec
- if bitvec:
-@@ -198,7 +242,7 @@
- def __iter__(self):
- return self
-
-- def next(self):
-+ def __next__(self):
- count = self.count
- self.count = self.count + 1
- if self.bitvec:
-@@ -265,7 +309,7 @@
- class StdTuplePrinter:
- "Print a std::tuple"
-
-- class _iterator:
-+ class _iterator(Iterator):
- def __init__ (self, head):
- self.head = head
-
-@@ -276,13 +320,13 @@
- # 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:
-@@ -289,7 +333,7 @@
- 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.
-@@ -341,7 +385,7 @@
- return self.visualizer.display_hint ()
- return None
-
--class RbtreeIterator:
-+class RbtreeIterator(Iterator):
- def __init__(self, rbtree):
- self.size = rbtree['_M_t']['_M_impl']['_M_node_count']
- self.node = rbtree['_M_t']['_M_impl']['_M_header']['_M_left']
-@@ -353,7 +397,7 @@
- def __len__(self):
- return int (self.size)
-
-- def next(self):
-+ def __next__(self):
- if self.count == self.size:
- raise StopIteration
- result = self.node
-@@ -405,7 +449,7 @@
- "Print a std::map or std::multimap"
-
- # Turn an RbtreeIterator into a pretty-print iterator.
-- class _iter:
-+ class _iter(Iterator):
- def __init__(self, rbiter, type):
- self.rbiter = rbiter
- self.count = 0
-@@ -414,9 +458,9 @@
- def __iter__(self):
- return self
-
-- def next(self):
-+ def __next__(self):
- if self.count % 2 == 0:
-- n = self.rbiter.next()
-+ n = next(self.rbiter)
- n = n.cast(self.type).dereference()['_M_value_field']
- self.pair = n
- item = n['first']
-@@ -447,7 +491,7 @@
- "Print a std::set or std::multiset"
-
- # Turn an RbtreeIterator into a pretty-print iterator.
-- class _iter:
-+ class _iter(Iterator):
- def __init__(self, rbiter, type):
- self.rbiter = rbiter
- self.count = 0
-@@ -456,8 +500,8 @@
- def __iter__(self):
- return self
-
-- def next(self):
-- item = self.rbiter.next()
-+ def __next__(self):
-+ item = next(self.rbiter)
- item = item.cast(self.type).dereference()['_M_value_field']
- # FIXME: this is weird ... what to do?
- # Maybe a 'set' display hint?
-@@ -522,7 +566,7 @@
- class StdDequePrinter:
- "Print a std::deque"
-
-- class _iter:
-+ class _iter(Iterator):
- def __init__(self, node, start, end, last, buffer_size):
- self.node = node
- self.p = start
-@@ -534,7 +578,7 @@
- def __iter__(self):
- return self
-
-- def next(self):
-+ def __next__(self):
- if self.p == self.last:
- raise StopIteration
-
-@@ -619,7 +663,7 @@
- def display_hint (self):
- return 'string'
-
--class Tr1HashtableIterator:
-+class Tr1HashtableIterator(Iterator):
- def __init__ (self, hash):
- self.node = hash['_M_bbegin']['_M_node']['_M_nxt']
- self.node_type = find_type(hash.type, '__node_type').pointer()
-@@ -627,7 +671,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)
-@@ -655,8 +699,8 @@
- return '[%d]' % i
-
- def children (self):
-- counter = itertools.imap (self.format_count, itertools.count())
-- return itertools.izip (counter, Tr1HashtableIterator (self.hashtable()))
-+ counter = imap (self.format_count, itertools.count())
-+ return izip (counter, Tr1HashtableIterator (self.hashtable()))
-
- class Tr1UnorderedMapPrinter:
- "Print a tr1::unordered_map"
-@@ -688,11 +732,11 @@
- return '[%d]' % i
-
- def children (self):
-- counter = itertools.imap (self.format_count, itertools.count())
-+ counter = imap (self.format_count, itertools.count())
- # Map over the hash table and flatten the result.
-- data = self.flatten (itertools.imap (self.format_one, Tr1HashtableIterator (self.hashtable())))
-+ data = self.flatten (imap (self.format_one, Tr1HashtableIterator (self.hashtable())))
- # Zip the two iterators together.
-- return itertools.izip (counter, data)
-+ return izip (counter, data)
-
- def display_hint (self):
- return 'map'
-@@ -700,7 +744,7 @@
- class StdForwardListPrinter:
- "Print a std::forward_list"
-
-- class _iterator:
-+ class _iterator(Iterator):
- def __init__(self, nodetype, head):
- self.nodetype = nodetype
- self.base = head['_M_next']
-@@ -709,7 +753,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()
-@@ -764,7 +808,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
-Index: libstdc++-v3/scripts/run_doxygen
-===================================================================
---- libstdc++-v3/scripts/run_doxygen (.../tags/gcc_4_8_3_release) (revision 217117)
-+++ libstdc++-v3/scripts/run_doxygen (.../branches/gcc-4_8-branch) (revision 217117)
-@@ -193,8 +193,15 @@
- if $do_latex; then
- cd ${outdir}/${mode}
-
-- # Also drop in the header file and style sheet
-- doxygen -w latex header.tex doxygen.sty
-+ # Grrr, Doxygen 1.8.x changed the -w latex options.
-+ need_footer=`doxygen -h | sed -n -e '/-w latex/s=.*footer.*=true=p'`
-+
-+ # Also drop in the header file (maybe footer file) and style sheet
-+ if $need_footer; then
-+ doxygen -w latex header.tex footer.tex doxygen.sty
-+ else
-+ doxygen -w latex header.tex doxygen.sty
-+ fi
-
- echo ::
- echo :: LaTeX pages begin with
-Index: libstdc++-v3/doc/xml/manual/containers.xml
-===================================================================
---- libstdc++-v3/doc/xml/manual/containers.xml (.../tags/gcc_4_8_3_release) (revision 217117)
-+++ libstdc++-v3/doc/xml/manual/containers.xml (.../branches/gcc-4_8-branch) (revision 217117)
-@@ -25,8 +25,9 @@
- list::size() is O(n)
-
-
-- Yes it is, and that's okay. This is a decision that we preserved
-- when we imported SGI's STL implementation. The following is
-+ Yes it is, and that was okay until the 2011 edition of the C++ standard.
-+ In future GCC will change it to O(1) but O(N) was a decision that we
-+ preserved when we imported SGI's STL implementation. The following is
- quoted from their FAQ:
-
-
-@@ -72,26 +73,6 @@
-
-
-
--vector
--
--
--
--
-- Space Overhead Management
--
--
-- In this
-- message to the list, Daniel Kostecky announced work on an
-- alternate form of std::vector
that would support
-- hints on the number of elements to be over-allocated. The design
-- was also described, along with possible implementation choices.
--
--
-- The first two alpha releases were announced here
-- and here.
--
--
--
-
-
-
-Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
-===================================================================
---- libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../tags/gcc_4_8_3_release) (revision 217117)
-+++ libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../branches/gcc-4_8-branch) (revision 217117)
-@@ -226,10 +226,12 @@
-
-
-
-+
- 18.8.6
- nested_exception
-- Y
--
-+ Partial
-+ Follows an earlier C++0x draft, not the final specification.
-+
-
-
- 18.9
-@@ -612,10 +614,11 @@
-
-
-
-+
- 20.6.12.4
- uninitialized_fill_n
-- Y
--
-+ Partial
-+ Returns void
.
-
-
- 20.6.13
-@@ -1119,10 +1122,13 @@
-
-
-
-+
- 21.4
- Class template basic_string
-- Y
--
-+ Partial
-+ Non-conforming Copy-On-Write implementation.
-+ Missing getline
overloads for rvalue streams.
-+
-
-
- 21.5
-@@ -1190,10 +1196,11 @@
-
-
-
-+
- 22.3.3.1
- Character classification
-- Y
--
-+ Partial
-+ Missing isblank
.
-
-
- 22.3.3.2
-@@ -1272,16 +1279,18 @@
-
-
-
-+
- 22.4.5.1
- Class template time_get
-- Y
--
-+ Partial
-+ Missing get
and do_get
-
-
-+
- 22.4.5.2
- Class template time_get_byname
-- Y
--
-+ Partial
-+ Likewise
-
-
- 22.4.5.3
-@@ -1434,8 +1443,10 @@
- 23.3.5
- Class template list
- Partial
-- insert
and erase
members do not
-- take const_iterator
arguments (N2350).
-+ O(N) size.
-+ insert
and erase
members do not
-+ take const_iterator
arguments (N2350).
-+
-
-
-
-@@ -1650,10 +1661,11 @@
-
-
-
-+
- 25.3
- Mutating sequence operations
-- Y
--
-+ Partial
-+ rotate
returns void
.
-
-
- 25.4
-@@ -2060,10 +2072,13 @@
-
-
-
-+
- 26.8
- C Library
-- Y
--
-+ Partial
-+ <ctgmath>
doesn't include
-+ <ccomplex>
-+
-
-
-
-@@ -2143,6 +2158,7 @@
- Missing move and swap operations on basic_ios
.
- Missing io_errc
and iostream_category
.
- ios_base::failure
is not derived from system_error
.
-+ Missing ios_base::hexfloat
.
-
-
-
-Index: libstdc++-v3/doc/html/index.html
-===================================================================
---- libstdc++-v3/doc/html/index.html (.../tags/gcc_4_8_3_release) (revision 217117)
-+++ libstdc++-v3/doc/html/index.html (.../branches/gcc-4_8-branch) (revision 217117)
-@@ -43,7 +43,7 @@
- - Locales
- locale
- Requirements
- Design
- Implementation
- Interacting with "C" locales
- Future
- Facets
- ctype
- Implementation
- Specializations
- Future
- codecvt
- Requirements
- Design
- wchar_t Size
- Support for Unicode
- Other Issues
- Implementation
- Use
- Future
- messages
- Requirements
- Design
- Implementation
- Models
- The GNU Model
- Use
- Future
9.
- Containers
-
--- Sequences
- list
- list::size() is O(n)
- vector
- Space Overhead Management
- Associative
- Insertion Hints
- bitset
- Size Variable
- Type String
- Unordered Associative
- Hash Code
- Hash Code Caching Policy
- Interacting with C
- Containers vs. Arrays
10.
-+- Sequences
- list
- list::size() is O(n)
- Associative
- Insertion Hints
- bitset
- Size Variable
- Type String
- Unordered Associative
- Hash Code
- Hash Code Caching Policy
- Interacting with C
- Containers vs. Arrays
10.
- Iterators
-
- - Predefined
- Iterators vs. Pointers
- One Past the End
11.
-@@ -162,4 +162,4 @@
-
- D.
- GNU General Public License version 3
-- E. GNU Free Documentation License- The GNU C++ Library API Reference
- Frequently Asked Questions