[tbb-commits] [tor-browser-bundle/master] Revert "Bug 13893: Make Tor Browser compatible with EMET"
gk at torproject.org
gk at torproject.org
Mon Oct 17 11:53:39 UTC 2016
commit 48b0c33bf651baaaa972e81490b3896dd332437e
Author: Georg Koppen <gk at torproject.org>
Date: Mon Oct 17 11:52:19 2016 +0000
Revert "Bug 13893: Make Tor Browser compatible with EMET"
This reverts commit 0348263efd1cb8a9eca8737f3dc7734ef75e0966.
Firefox is not ready for GCC 6 yet. See #20381 for further details.
---
gitian/descriptors/windows/gitian-utils.yml | 7 -
gitian/patches/gcc_62_1.patch | 23 -
gitian/patches/gcc_62_2.patch | 1198 ---------------------------
gitian/versions.alpha | 6 +-
gitian/versions.nightly | 6 +-
5 files changed, 6 insertions(+), 1234 deletions(-)
diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml
index d3598e2..9c31834 100644
--- a/gitian/descriptors/windows/gitian-utils.yml
+++ b/gitian/descriptors/windows/gitian-utils.yml
@@ -35,8 +35,6 @@ files:
- "nsis.tar.bz2"
- "nsis-debian.tar.xz"
- "nsis-missing-unistd-include.patch"
-- "gcc_62_1.patch"
-- "gcc_62_2.patch"
script: |
INSTDIR="$HOME/install"
source versions
@@ -81,11 +79,6 @@ script: |
mkdir gcc
cd gcc
tar -xjvf ../gcc.tar.bz2
- cd gcc-*
- # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77459.
- patch -p1 < ~/build/gcc_62_1.patch
- patch -p1 < ~/build/gcc_62_2.patch
- cd ..
# We don't want to link against msvcrt.dll due to bug 9084.
i686-w64-mingw32-g++ -dumpspecs > ~/build/msvcr100.spec
sed 's/msvcrt/msvcr100/' -i ~/build/msvcr100.spec
diff --git a/gitian/patches/gcc_62_1.patch b/gitian/patches/gcc_62_1.patch
deleted file mode 100644
index 7ca36d8..0000000
--- a/gitian/patches/gcc_62_1.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 1ec6206ea80ceb5df843ea0bc4ef04d9ab17257e Mon Sep 17 00:00:00 2001
-From: Georg Koppen <gk at torproject.org>
-Date: Wed, 14 Sep 2016 12:53:19 +0000
-Subject: [PATCH 1/2] Revert "2015-09-17 Catherine Moore
- <clm at codesourcery.com>"
-
-This reverts commit a63a17505346bb3a91ce3de6fe238264c4d849ac.
-
-diff --git a/libstdc++-v3/src/c++11/debug.cc b/libstdc++-v3/src/c++11/debug.cc
-index f25304c..308802e 100644
---- a/libstdc++-v3/src/c++11/debug.cc
-+++ b/libstdc++-v3/src/c++11/debug.cc
-@@ -32,7 +32,6 @@
- #include <debug/safe_local_iterator.h>
-
- #include <cassert>
--#include <cstdio>
-
- #include <algorithm> // for std::min
- #include <functional> // for _Hash_impl
---
-2.9.3
-
diff --git a/gitian/patches/gcc_62_2.patch b/gitian/patches/gcc_62_2.patch
deleted file mode 100644
index 7dbd826..0000000
--- a/gitian/patches/gcc_62_2.patch
+++ /dev/null
@@ -1,1198 +0,0 @@
-From 0fbc32fdb5e0119877b0fd608d8855af0e4e376e Mon Sep 17 00:00:00 2001
-From: Georg Koppen <gk at torproject.org>
-Date: Wed, 14 Sep 2016 12:54:30 +0000
-Subject: [PATCH 2/2] =?UTF-8?q?Revert=20"2015-09-17=20=20Fran=C3=A7ois=20D?=
- =?UTF-8?q?umont=20=20<fdumont at gcc.gnu.org>"?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This reverts commit 426075db14da88357dd104345b5edea369f1d5c6.
-
-diff --git a/libstdc++-v3/include/debug/formatter.h b/libstdc++-v3/include/debug/formatter.h
-index 72db612..7d4f027 100644
---- a/libstdc++-v3/include/debug/formatter.h
-+++ b/libstdc++-v3/include/debug/formatter.h
-@@ -132,13 +132,6 @@ namespace __gnu_debug
-
- class _Error_formatter
- {
-- // Tags denoting the type of parameter for construction
-- struct _Is_iterator { };
-- struct _Is_iterator_value_type { };
-- struct _Is_sequence { };
-- struct _Is_instance { };
--
-- public:
- /// Whether an iterator is constant, mutable, or unknown
- enum _Constness
- {
-@@ -160,6 +153,13 @@ namespace __gnu_debug
- __last_state
- };
-
-+ // Tags denoting the type of parameter for construction
-+ struct _Is_iterator { };
-+ struct _Is_iterator_value_type { };
-+ struct _Is_sequence { };
-+ struct _Is_instance { };
-+
-+ public:
- // A parameter that may be referenced by an error message
- struct _Parameter
- {
-@@ -375,16 +375,15 @@ namespace __gnu_debug
-
- void
- _M_print_field(const _Error_formatter* __formatter,
-- const char* __name) const _GLIBCXX_DEPRECATED;
-+ const char* __name) const;
-
- void
-- _M_print_description(const _Error_formatter* __formatter)
-- const _GLIBCXX_DEPRECATED;
-+ _M_print_description(const _Error_formatter* __formatter) const;
- };
-
- template<typename _Iterator>
-- _Error_formatter&
-- _M_iterator(const _Iterator& __it, const char* __name = 0)
-+ const _Error_formatter&
-+ _M_iterator(const _Iterator& __it, const char* __name = 0) const
- {
- if (_M_num_parameters < std::size_t(__max_parameters))
- _M_parameters[_M_num_parameters++] = _Parameter(__it, __name,
-@@ -393,59 +392,57 @@ namespace __gnu_debug
- }
-
- template<typename _Iterator>
-- _Error_formatter&
-+ const _Error_formatter&
- _M_iterator_value_type(const _Iterator& __it,
-- const char* __name = 0)
-+ const char* __name = 0) const
- {
-- if (_M_num_parameters < __max_parameters)
-+ if (_M_num_parameters < std::size_t(__max_parameters))
- _M_parameters[_M_num_parameters++] =
- _Parameter(__it, __name, _Is_iterator_value_type());
- return *this;
- }
-
-- _Error_formatter&
-- _M_integer(long __value, const char* __name = 0)
-+ const _Error_formatter&
-+ _M_integer(long __value, const char* __name = 0) const
- {
-- if (_M_num_parameters < __max_parameters)
-+ if (_M_num_parameters < std::size_t(__max_parameters))
- _M_parameters[_M_num_parameters++] = _Parameter(__value, __name);
- return *this;
- }
-
-- _Error_formatter&
-- _M_string(const char* __value, const char* __name = 0)
-+ const _Error_formatter&
-+ _M_string(const char* __value, const char* __name = 0) const
- {
-- if (_M_num_parameters < __max_parameters)
-+ if (_M_num_parameters < std::size_t(__max_parameters))
- _M_parameters[_M_num_parameters++] = _Parameter(__value, __name);
- return *this;
- }
-
- template<typename _Sequence>
-- _Error_formatter&
-- _M_sequence(const _Sequence& __seq, const char* __name = 0)
-+ const _Error_formatter&
-+ _M_sequence(const _Sequence& __seq, const char* __name = 0) const
- {
-- if (_M_num_parameters < __max_parameters)
-+ if (_M_num_parameters < std::size_t(__max_parameters))
- _M_parameters[_M_num_parameters++] = _Parameter(__seq, __name,
- _Is_sequence());
- return *this;
- }
-
- template<typename _Type>
-- _Error_formatter&
-- _M_instance(const _Type& __inst, const char* __name = 0)
-+ const _Error_formatter&
-+ _M_instance(const _Type& __inst, const char* __name = 0) const
- {
-- if (_M_num_parameters < __max_parameters)
-+ if (_M_num_parameters < std::size_t(__max_parameters))
- _M_parameters[_M_num_parameters++] = _Parameter(__inst, __name,
- _Is_instance());
- return *this;
- }
-
-- _Error_formatter&
-- _M_message(const char* __text)
-+ const _Error_formatter&
-+ _M_message(const char* __text) const
- { _M_text = __text; return *this; }
-
-- // Kept const qualifier for backward compatibility, to keep the same
-- // exported symbol.
-- _Error_formatter&
-+ const _Error_formatter&
- _M_message(_Debug_msg_id __id) const throw ();
-
- _GLIBCXX_NORETURN void
-@@ -453,38 +450,40 @@ namespace __gnu_debug
-
- template<typename _Tp>
- void
-- _M_format_word(char*, int, const char*, _Tp)
-- const throw () _GLIBCXX_DEPRECATED;
-+ _M_format_word(char*, int, const char*, _Tp) const throw ();
-
- void
-- _M_print_word(const char* __word) const _GLIBCXX_DEPRECATED;
-+ _M_print_word(const char* __word) const;
-
- void
-- _M_print_string(const char* __string) const _GLIBCXX_DEPRECATED;
-+ _M_print_string(const char* __string) const;
-
- private:
-- _Error_formatter(const char* __file, unsigned int __line)
-- : _M_file(__file), _M_line(__line), _M_num_parameters(0), _M_text(0)
-- { }
-+ _Error_formatter(const char* __file, std::size_t __line)
-+ : _M_file(__file), _M_line(__line), _M_num_parameters(0), _M_text(0),
-+ _M_max_length(78), _M_column(1), _M_first_line(true), _M_wordwrap(false)
-+ { _M_get_max_length(); }
-
- void
-- _M_get_max_length() const throw () _GLIBCXX_DEPRECATED;
-+ _M_get_max_length() const throw ();
-
- enum { __max_parameters = 9 };
-
- const char* _M_file;
-- unsigned int _M_line;
-- _Parameter _M_parameters[__max_parameters];
-- unsigned int _M_num_parameters;
-- const char* _M_text;
-+ std::size_t _M_line;
-+ mutable _Parameter _M_parameters[__max_parameters];
-+ mutable std::size_t _M_num_parameters;
-+ mutable const char* _M_text;
-+ mutable std::size_t _M_max_length;
-+ enum { _M_indent = 4 } ;
-+ mutable std::size_t _M_column;
-+ mutable bool _M_first_line;
-+ mutable bool _M_wordwrap;
-
- public:
-- static _Error_formatter&
-- _M_at(const char* __file, unsigned int __line)
-- {
-- static _Error_formatter __formatter(__file, __line);
-- return __formatter;
-- }
-+ static _Error_formatter
-+ _M_at(const char* __file, std::size_t __line)
-+ { return _Error_formatter(__file, __line); }
- };
- } // namespace __gnu_debug
-
-diff --git a/libstdc++-v3/src/c++11/debug.cc b/libstdc++-v3/src/c++11/debug.cc
-index 308802e..8f7eaa3 100644
---- a/libstdc++-v3/src/c++11/debug.cc
-+++ b/libstdc++-v3/src/c++11/debug.cc
-@@ -22,19 +22,18 @@
- // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- // <http://www.gnu.org/licenses/>.
-
--#include <bits/move.h>
--#include <bits/stl_iterator_base_types.h>
--
--#include <debug/formatter.h>
-+#include <debug/debug.h>
- #include <debug/safe_base.h>
- #include <debug/safe_unordered_base.h>
- #include <debug/safe_iterator.h>
- #include <debug/safe_local_iterator.h>
--
-+#include <algorithm>
- #include <cassert>
--
--#include <algorithm> // for std::min
--#include <functional> // for _Hash_impl
-+#include <cstring>
-+#include <cctype>
-+#include <cstdio>
-+#include <cstdlib>
-+#include <functional>
-
- #include <cxxabi.h> // for __cxa_demangle
-
-@@ -525,123 +524,37 @@ namespace __gnu_debug
-
- namespace
- {
-- using _Error_formatter = __gnu_debug::_Error_formatter;
-- using _Parameter = __gnu_debug::_Error_formatter::_Parameter;
--
-- template<typename _Tp>
-- int
-- format_word(char* buf, int n, const char* fmt, _Tp s)
-- { return std::min(__builtin_snprintf(buf, n, fmt, s), n - 1); }
--
-- void
-- get_max_length(std::size_t& max_length)
-- {
-- const char* nptr = std::getenv("GLIBCXX_DEBUG_MESSAGE_LENGTH");
-- if (nptr)
-- {
-- char* endptr;
-- const unsigned long ret = std::strtoul(nptr, &endptr, 0);
-- if (*nptr != '\0' && *endptr == '\0')
-- max_length = ret;
-- }
-- }
--
-- struct PrintContext
-- {
-- PrintContext()
-- : _M_max_length(78), _M_column(1), _M_first_line(true), _M_wordwrap(false)
-- { get_max_length(_M_max_length); }
--
-- std::size_t _M_max_length;
-- enum { _M_indent = 4 } ;
-- std::size_t _M_column;
-- bool _M_first_line;
-- bool _M_wordwrap;
-- };
--
-- void
-- print_word(PrintContext& ctx, const char* word,
-- std::ptrdiff_t count = -1)
-- {
-- size_t length = count >= 0 ? count : __builtin_strlen(word);
-- if (length == 0)
-- return;
--
-- // Consider first '\n' at begining cause it impacts column.
-- if (word[0] == '\n')
-- {
-- fprintf(stderr, "\n");
-- ctx._M_column = 1;
-- ++word;
-- --length;
--
-- if (length == 0)
-- return;
-- }
--
-- size_t visual_length
-- = isspace(word[length - 1]) ? length - 1 : length;
-- if (visual_length == 0
-- || !ctx._M_wordwrap
-- || (ctx._M_column + visual_length < ctx._M_max_length)
-- || (visual_length >= ctx._M_max_length && ctx._M_column == 1))
-- {
-- // If this isn't the first line, indent
-- if (ctx._M_column == 1 && !ctx._M_first_line)
-- {
-- char spacing[ctx._M_indent + 1];
-- for (int i = 0; i < ctx._M_indent; ++i)
-- spacing[i] = ' ';
-- spacing[ctx._M_indent] = '\0';
-- fprintf(stderr, "%s", spacing);
-- ctx._M_column += ctx._M_indent;
-- }
--
-- int written = fprintf(stderr, "%s", word);
--
-- if (word[length - 1] == '\n')
-- {
-- ctx._M_first_line = false;
-- ctx._M_column = 1;
-- }
-- else
-- ctx._M_column += written;
-- }
-- else
-- {
-- print_word(ctx, "\n", 1);
-- print_word(ctx, word, count);
-- }
-- }
--
- void
-- print_type(PrintContext& ctx,
-- const type_info* info,
-- const char* unknown_name)
-+ print_type(const __gnu_debug::_Error_formatter* __formatter,
-+ const type_info* __info,
-+ const char* __unknown_name)
- {
-- if (!info)
-- print_word(ctx, unknown_name);
-+ if (!__info)
-+ __formatter->_M_print_word(__unknown_name);
- else
- {
-- int status;
-- char* demangled_name =
-- __cxxabiv1::__cxa_demangle(info->name(), NULL, NULL, &status);
-- print_word(ctx, status == 0 ? demangled_name : info->name());
-- free(demangled_name);
-+ int __status;
-+ char* __demangled_name =
-+ __cxxabiv1::__cxa_demangle(__info->name(), NULL, NULL, &__status);
-+ __formatter->_M_print_word(__status == 0
-+ ? __demangled_name : __info->name());
-+ free(__demangled_name);
- }
- }
-
- bool
-- print_field(PrintContext& ctx,
-- const char* name, const _Parameter::_Type& type)
-+ print_field(
-+ const __gnu_debug::_Error_formatter* __formatter,
-+ const char* __name,
-+ const __gnu_debug::_Error_formatter::_Parameter::_Type& __variant)
- {
-- if (__builtin_strcmp(name, "name") == 0)
-+ if (strcmp(__name, "name") == 0)
- {
-- assert(type._M_name);
-- print_word(ctx, type._M_name);
-+ assert(__variant._M_name);
-+ __formatter->_M_print_word(__variant._M_name);
- }
-- else if (__builtin_strcmp(name, "type") == 0)
-- print_type(ctx, type._M_type, "<unknown type>");
-+ else if (strcmp(__name, "type") == 0)
-+ print_type(__formatter, __variant._M_type, "<unknown type>");
- else
- return false;
-
-@@ -649,17 +562,21 @@ namespace
- }
-
- bool
-- print_field(PrintContext& ctx,
-- const char* name, const _Parameter::_Instance& inst)
-+ print_field(
-+ const __gnu_debug::_Error_formatter* __formatter,
-+ const char* __name,
-+ const __gnu_debug::_Error_formatter::_Parameter::_Instance& __variant)
- {
-- const _Parameter::_Type& type = inst;
-- if (print_field(ctx, name, type))
-+ const __gnu_debug::_Error_formatter::_Parameter::_Type& __type = __variant;
-+ if (print_field(__formatter, __name, __type))
- { }
-- else if (__builtin_strcmp(name, "address") == 0)
-+ else if (strcmp(__name, "address") == 0)
- {
-- char buf[64];
-- int ret = __builtin_sprintf(buf, "%p", inst._M_address);
-- print_word(ctx, buf, ret);
-+ const int __bufsize = 64;
-+ char __buf[__bufsize];
-+ __formatter->_M_format_word(__buf, __bufsize, "%p",
-+ __variant._M_address);
-+ __formatter->_M_print_word(__buf);
- }
- else
- return false;
-@@ -668,390 +585,278 @@ namespace
- }
-
- void
-- print_field(PrintContext& ctx, const _Parameter& param, const char* name)
-- {
-- assert(param._M_kind != _Parameter::__unused_param);
-- const int bufsize = 64;
-- char buf[bufsize];
--
-- const auto& variant = param._M_variant;
-- switch (param._M_kind)
-- {
-- case _Parameter::__iterator:
-- {
-- const auto& iterator = variant._M_iterator;
-- if (print_field(ctx, name, iterator))
-- { }
-- else if (__builtin_strcmp(name, "constness") == 0)
-- {
-- static const char*
-- constness_names[_Error_formatter::__last_constness] =
-- {
-- "<unknown>",
-- "constant",
-- "mutable"
-- };
-- print_word(ctx, constness_names[iterator._M_constness]);
-- }
-- else if (__builtin_strcmp(name, "state") == 0)
-- {
-- static const char*
-- state_names[_Error_formatter::__last_state] =
-- {
-- "<unknown>",
-- "singular",
-- "dereferenceable (start-of-sequence)",
-- "dereferenceable",
-- "past-the-end",
-- "before-begin"
-- };
-- print_word(ctx, state_names[iterator._M_state]);
-- }
-- else if (__builtin_strcmp(name, "sequence") == 0)
-- {
-- assert(iterator._M_sequence);
-- int written = __builtin_sprintf(buf, "%p", iterator._M_sequence);
-- print_word(ctx, buf, written);
-- }
-- else if (__builtin_strcmp(name, "seq_type") == 0)
-- print_type(ctx, iterator._M_seq_type, "<unknown seq_type>");
-- else
-- assert(false);
-- }
-- break;
--
-- case _Parameter::__sequence:
-- if (!print_field(ctx, name, variant._M_sequence))
-- assert(false);
-- break;
--
-- case _Parameter::__integer:
-- if (__builtin_strcmp(name, "name") == 0)
-- {
-- assert(variant._M_integer._M_name);
-- print_word(ctx, variant._M_integer._M_name);
-- }
-- else
-- assert(false);
-- break;
--
-- case _Parameter::__string:
-- if (__builtin_strcmp(name, "name") == 0)
-- {
-- assert(variant._M_string._M_name);
-- print_word(ctx, variant._M_string._M_name);
-- }
-- else
-- assert(false);
-- break;
--
-- case _Parameter::__instance:
-- if (!print_field(ctx, name, variant._M_instance))
-- assert(false);
-- break;
--
-- case _Parameter::__iterator_value_type:
-- if (!print_field(ctx, name, variant._M_iterator_value_type))
-- assert(false);
-- break;
--
-- default:
-- assert(false);
-- break;
-- }
-- }
--
-- void
-- print_description(PrintContext& ctx, const _Parameter::_Type& type)
-+ print_description(
-+ const __gnu_debug::_Error_formatter* __formatter,
-+ const __gnu_debug::_Error_formatter::_Parameter::_Type& __variant)
- {
-- if (type._M_name)
-+ if (__variant._M_name)
- {
-- const int bufsize = 64;
-- char buf[bufsize];
-- int written
-- = format_word(buf, bufsize, "\"%s\"", type._M_name);
-- print_word(ctx, buf, written);
-+ const int __bufsize = 64;
-+ char __buf[__bufsize];
-+ __formatter->_M_format_word(__buf, __bufsize, "\"%s\"",
-+ __variant._M_name);
-+ __formatter->_M_print_word(__buf);
- }
-
-- print_word(ctx, " {\n");
-+ __formatter->_M_print_word(" {\n");
-
-- if (type._M_type)
-+ if (__variant._M_type)
- {
-- print_word(ctx, " type = ");
-- print_type(ctx, type._M_type, "<unknown type>");
-- print_word(ctx, ";\n");
-+ __formatter->_M_print_word(" type = ");
-+ print_type(__formatter, __variant._M_type, "<unknown type>");
-+ __formatter->_M_print_word(";\n");
- }
- }
-
-+
- void
-- print_description(PrintContext& ctx, const _Parameter::_Instance& inst)
-+ print_description(
-+ const __gnu_debug::_Error_formatter* __formatter,
-+ const __gnu_debug::_Error_formatter::_Parameter::_Instance& __variant)
- {
-- const int bufsize = 64;
-- char buf[bufsize];
-+ const int __bufsize = 64;
-+ char __buf[__bufsize];
-
-- if (inst._M_name)
-+ if (__variant._M_name)
- {
-- int written
-- = format_word(buf, bufsize, "\"%s\" ", inst._M_name);
-- print_word(ctx, buf, written);
-+ __formatter->_M_format_word(__buf, __bufsize, "\"%s\" ",
-+ __variant._M_name);
-+ __formatter->_M_print_word(__buf);
- }
-
-- int written
-- = __builtin_sprintf(buf, "@ 0x%p {\n", inst._M_address);
-- print_word(ctx, buf, written);
-+ __formatter->_M_format_word(__buf, __bufsize, "@ 0x%p {\n",
-+ __variant._M_address);
-+ __formatter->_M_print_word(__buf);
-
-- if (inst._M_type)
-+ if (__variant._M_type)
- {
-- print_word(ctx, " type = ");
-- print_type(ctx, inst._M_type, "<unknown type>");
-+ __formatter->_M_print_word(" type = ");
-+ print_type(__formatter, __variant._M_type, "<unknown type>");
- }
- }
-+}
-
-+namespace __gnu_debug
-+{
- void
-- print_description(PrintContext& ctx, const _Parameter& param)
-+ _Error_formatter::_Parameter::
-+ _M_print_field(const _Error_formatter* __formatter, const char* __name) const
- {
-- const int bufsize = 128;
-- char buf[bufsize];
-+ assert(this->_M_kind != _Parameter::__unused_param);
-+ const int __bufsize = 64;
-+ char __buf[__bufsize];
-
-- const auto& variant = param._M_variant;
-- switch (param._M_kind)
-- {
-- case _Parameter::__iterator:
-+ switch (_M_kind)
-+ {
-+ case __iterator:
-+ if (print_field(__formatter, __name, _M_variant._M_iterator))
-+ { }
-+ else if (strcmp(__name, "constness") == 0)
- {
-- const auto& ite = variant._M_iterator;
--
-- print_word(ctx, "iterator ");
-- print_description(ctx, ite);
--
-- if (ite._M_type)
-- {
-- if (ite._M_constness != _Error_formatter::__unknown_constness)
-- {
-- print_word(ctx, " (");
-- print_field(ctx, param, "constness");
-- print_word(ctx, " iterator)");
-- }
--
-- print_word(ctx, ";\n");
-- }
--
-- if (ite._M_state != _Error_formatter::__unknown_state)
-+ static const char* __constness_names[__last_constness] =
- {
-- print_word(ctx, " state = ");
-- print_field(ctx, param, "state");
-- print_word(ctx, ";\n");
-- }
--
-- if (ite._M_sequence)
-+ "<unknown>",
-+ "constant",
-+ "mutable"
-+ };
-+ __formatter->_M_print_word(__constness_names[_M_variant.
-+ _M_iterator.
-+ _M_constness]);
-+ }
-+ else if (strcmp(__name, "state") == 0)
-+ {
-+ static const char* __state_names[__last_state] =
- {
-- print_word(ctx, " references sequence ");
-- if (ite._M_seq_type)
-- {
-- print_word(ctx, "with type '");
-- print_field(ctx, param, "seq_type");
-- print_word(ctx, "' ");
-- }
--
-- int written
-- = __builtin_sprintf(buf, "@ 0x%p\n", ite._M_sequence);
-- print_word(ctx, buf, written);
-- }
--
-- print_word(ctx, "}\n", 2);
-+ "<unknown>",
-+ "singular",
-+ "dereferenceable (start-of-sequence)",
-+ "dereferenceable",
-+ "past-the-end",
-+ "before-begin"
-+ };
-+ __formatter->_M_print_word(__state_names[_M_variant.
-+ _M_iterator._M_state]);
- }
-- break;
--
-- case _Parameter::__sequence:
-- print_word(ctx, "sequence ");
-- print_description(ctx, variant._M_sequence);
--
-- if (variant._M_sequence._M_type)
-- print_word(ctx, ";\n", 2);
--
-- print_word(ctx, "}\n", 2);
-- break;
--
-- case _Parameter::__instance:
-- print_word(ctx, "instance ");
-- print_description(ctx, variant._M_instance);
--
-- if (variant._M_instance._M_type)
-- print_word(ctx, ";\n", 2);
--
-- print_word(ctx, "}\n", 2);
-- break;
--
-- case _Parameter::__iterator_value_type:
-- print_word(ctx, "iterator::value_type ");
-- print_description(ctx, variant._M_iterator_value_type);
-- print_word(ctx, "}\n", 2);
-- break;
--
-- default:
-- break;
-- }
-+ else if (strcmp(__name, "sequence") == 0)
-+ {
-+ assert(_M_variant._M_iterator._M_sequence);
-+ __formatter->_M_format_word(__buf, __bufsize, "%p",
-+ _M_variant._M_iterator._M_sequence);
-+ __formatter->_M_print_word(__buf);
-+ }
-+ else if (strcmp(__name, "seq_type") == 0)
-+ print_type(__formatter, _M_variant._M_iterator._M_seq_type,
-+ "<unknown seq_type>");
-+ else
-+ assert(false);
-+ break;
-+ case __sequence:
-+ if (!print_field(__formatter, __name, _M_variant._M_sequence))
-+ assert(false);
-+ break;
-+ case __integer:
-+ if (strcmp(__name, "name") == 0)
-+ {
-+ assert(_M_variant._M_integer._M_name);
-+ __formatter->_M_print_word(_M_variant._M_integer._M_name);
-+ }
-+ else
-+ assert(false);
-+ break;
-+ case __string:
-+ if (strcmp(__name, "name") == 0)
-+ {
-+ assert(_M_variant._M_string._M_name);
-+ __formatter->_M_print_word(_M_variant._M_string._M_name);
-+ }
-+ else
-+ assert(false);
-+ break;
-+ case __instance:
-+ if (!print_field(__formatter, __name, _M_variant._M_instance))
-+ assert(false);
-+ break;
-+ case __iterator_value_type:
-+ if (!print_field(__formatter, __name, _M_variant._M_iterator_value_type))
-+ assert(false);
-+ break;
-+ default:
-+ assert(false);
-+ break;
-+ }
- }
-
- void
-- print_string(PrintContext& ctx, const char* string,
-- const _Parameter* parameters, std::size_t num_parameters)
-+ _Error_formatter::_Parameter::
-+ _M_print_description(const _Error_formatter* __formatter) const
- {
-- const char* start = string;
-- const int bufsize = 128;
-- char buf[bufsize];
-- int bufindex = 0;
-+ const int __bufsize = 128;
-+ char __buf[__bufsize];
-
-- while (*start)
-+ switch (_M_kind)
- {
-- if (isspace(*start))
-- {
-- buf[bufindex++] = *start++;
-- buf[bufindex] = '\0';
-- print_word(ctx, buf, bufindex);
-- bufindex = 0;
-- continue;
-- }
-+ case __iterator:
-+ __formatter->_M_print_word("iterator ");
-+ print_description(__formatter, _M_variant._M_iterator);
-
-- if (*start != '%')
-+ if (_M_variant._M_iterator._M_type)
- {
-- // Normal char.
-- buf[bufindex++] = *start++;
-- continue;
-- }
--
-- if (*++start == '%')
-- {
-- // Escaped '%'
-- buf[bufindex++] = *start++;
-- continue;
-+ if (_M_variant._M_iterator._M_constness != __unknown_constness)
-+ {
-+ __formatter->_M_print_word(" (");
-+ _M_print_field(__formatter, "constness");
-+ __formatter->_M_print_word(" iterator)");
-+ }
-+ __formatter->_M_print_word(";\n");
- }
-
-- // We are on a parameter property reference, we need to flush buffer
-- // first.
-- if (bufindex != 0)
-+ if (_M_variant._M_iterator._M_state != __unknown_state)
- {
-- buf[bufindex] = '\0';
-- print_word(ctx, buf, bufindex);
-- bufindex = 0;
-+ __formatter->_M_print_word(" state = ");
-+ _M_print_field(__formatter, "state");
-+ __formatter->_M_print_word(";\n");
- }
-
-- // Get the parameter number
-- assert(*start >= '1' && *start <= '9');
-- size_t param_index = *start - '0' - 1;
-- assert(param_index < num_parameters);
-- const auto& param = parameters[param_index];
--
-- // '.' separates the parameter number from the field
-- // name, if there is one.
-- ++start;
-- if (*start != '.')
-+ if (_M_variant._M_iterator._M_sequence)
- {
-- assert(*start == ';');
-- ++start;
-- if (param._M_kind == _Parameter::__integer)
-+ __formatter->_M_print_word(" references sequence ");
-+ if (_M_variant._M_iterator._M_seq_type)
- {
-- int written
-- = __builtin_sprintf(buf, "%ld",
-- param._M_variant._M_integer._M_value);
-- print_word(ctx, buf, written);
-+ __formatter->_M_print_word("with type `");
-+ _M_print_field(__formatter, "seq_type");
-+ __formatter->_M_print_word("' ");
- }
-- else if (param._M_kind == _Parameter::__string)
-- print_string(ctx, param._M_variant._M_string._M_value,
-- parameters, num_parameters);
-- continue;
-- }
-
-- // Extract the field name we want
-- const int max_field_len = 16;
-- char field[max_field_len];
-- int field_idx = 0;
-- ++start;
-- while (*start != ';')
-- {
-- assert(*start);
-- assert(field_idx < max_field_len - 1);
-- field[field_idx++] = *start++;
-+ __formatter->_M_format_word(__buf, __bufsize, "@ 0x%p\n",
-+ _M_variant._M_iterator._M_sequence);
-+ __formatter->_M_print_word(__buf);
- }
-- ++start;
-- field[field_idx] = '\0';
-
-- print_field(ctx, param, field);
-- }
-+ __formatter->_M_print_word("}\n");
-+ break;
-+ case __sequence:
-+ __formatter->_M_print_word("sequence ");
-+ print_description(__formatter, _M_variant._M_sequence);
-
-- // Might need to flush.
-- if (bufindex)
-- {
-- buf[bufindex] = '\0';
-- print_word(ctx, buf, bufindex);
-+ if (_M_variant._M_sequence._M_type)
-+ __formatter->_M_print_word(";\n");
-+
-+ __formatter->_M_print_word("}\n");
-+ break;
-+ case __instance:
-+ __formatter->_M_print_word("instance ");
-+ print_description(__formatter, _M_variant._M_instance);
-+
-+ if (_M_variant._M_instance._M_type)
-+ __formatter->_M_print_word(";\n");
-+
-+ __formatter->_M_print_word("}\n");
-+ break;
-+ case __iterator_value_type:
-+ __formatter->_M_print_word("iterator::value_type ");
-+ print_description(__formatter, _M_variant._M_iterator_value_type);
-+ __formatter->_M_print_word("}\n");
-+ break;
-+ default:
-+ break;
- }
- }
--}
-
--namespace __gnu_debug
--{
-- _Error_formatter&
-+ const _Error_formatter&
- _Error_formatter::_M_message(_Debug_msg_id __id) const throw ()
-- {
-- return const_cast<_Error_formatter*>(this)
-- ->_M_message(_S_debug_messages[__id]);
-- }
-+ { return this->_M_message(_S_debug_messages[__id]); }
-
- void
- _Error_formatter::_M_error() const
- {
-- const int bufsize = 128;
-- char buf[bufsize];
-+ const int __bufsize = 128;
-+ char __buf[__bufsize];
-
- // Emit file & line number information
-- bool go_to_next_line = false;
-- PrintContext ctx;
-+ _M_column = 1;
-+ _M_wordwrap = false;
- if (_M_file)
- {
-- int written = format_word(buf, bufsize, "%s:", _M_file);
-- print_word(ctx, buf, written);
-- go_to_next_line = true;
-+ _M_format_word(__buf, __bufsize, "%s:", _M_file);
-+ _M_print_word(__buf);
-+ _M_column += strlen(__buf);
- }
-
- if (_M_line > 0)
- {
-- int written = __builtin_sprintf(buf, "%u:", _M_line);
-- print_word(ctx, buf, written);
-- go_to_next_line = true;
-+ _M_format_word(__buf, __bufsize, "%u:", _M_line);
-+ _M_print_word(__buf);
-+ _M_column += strlen(__buf);
- }
-
-- if (go_to_next_line)
-- print_word(ctx, "\n", 1);
--
-- if (ctx._M_max_length)
-- ctx._M_wordwrap = true;
--
-- print_word(ctx, "Error: ");
-+ if (_M_max_length)
-+ _M_wordwrap = true;
-+ _M_print_word("error: ");
-
- // Print the error message
- assert(_M_text);
-- print_string(ctx, _M_text, _M_parameters, _M_num_parameters);
-- print_word(ctx, ".\n", 2);
-+ _M_print_string(_M_text);
-+ _M_print_word(".\n");
-
- // Emit descriptions of the objects involved in the operation
-- ctx._M_first_line = true;
-- ctx._M_wordwrap = false;
-- bool has_header = false;
-- for (unsigned int i = 0; i < _M_num_parameters; ++i)
-+ _M_wordwrap = false;
-+ bool __has_noninteger_parameters = false;
-+ for (unsigned int __i = 0; __i < _M_num_parameters; ++__i)
- {
-- switch (_M_parameters[i]._M_kind)
-+ switch (_M_parameters[__i]._M_kind)
- {
- case _Parameter::__iterator:
- case _Parameter::__sequence:
- case _Parameter::__instance:
- case _Parameter::__iterator_value_type:
-- if (!has_header)
-+ if (!__has_noninteger_parameters)
- {
-- print_word(ctx, "\nObjects involved in the operation:\n");
-- has_header = true;
-+ _M_first_line = true;
-+ _M_print_word("\nObjects involved in the operation:\n");
-+ __has_noninteger_parameters = true;
- }
-- print_description(ctx, _M_parameters[i]);
-+ _M_parameters[__i]._M_print_description(this);
- break;
--
- default:
- break;
- }
-@@ -1060,39 +865,172 @@ namespace __gnu_debug
- abort();
- }
-
-- // Deprecated methods kept for backward compatibility.
-- void
-- _Error_formatter::_Parameter::_M_print_field(
-- const _Error_formatter*, const char*) const
-- { }
--
-- void
-- _Error_formatter::_Parameter::_M_print_description(const _Error_formatter*) const
-- { }
--
- template<typename _Tp>
- void
-- _Error_formatter::_M_format_word(char*, int, const char*, _Tp)
-- const throw ()
-- { }
-+ _Error_formatter::_M_format_word(char* __buf,
-+ int __n __attribute__ ((__unused__)),
-+ const char* __fmt, _Tp __s) const throw ()
-+ {
-+#ifdef _GLIBCXX_USE_C99
-+ std::snprintf(__buf, __n, __fmt, __s);
-+#else
-+ std::sprintf(__buf, __fmt, __s);
-+#endif
-+ }
-
- void
-- _Error_formatter::_M_print_word(const char*) const
-- { }
-+ _Error_formatter::_M_print_word(const char* __word) const
-+ {
-+ if (!_M_wordwrap)
-+ {
-+ fprintf(stderr, "%s", __word);
-+ return;
-+ }
-+
-+ size_t __length = strlen(__word);
-+ if (__length == 0)
-+ return;
-+
-+ size_t __visual_length
-+ = __word[__length - 1] == '\n' ? __length - 1 : __length;
-+ if (__visual_length == 0
-+ || (_M_column + __visual_length < _M_max_length)
-+ || (__visual_length >= _M_max_length && _M_column == 1))
-+ {
-+ // If this isn't the first line, indent
-+ if (_M_column == 1 && !_M_first_line)
-+ {
-+ char __spacing[_M_indent + 1];
-+ for (int i = 0; i < _M_indent; ++i)
-+ __spacing[i] = ' ';
-+ __spacing[_M_indent] = '\0';
-+ fprintf(stderr, "%s", __spacing);
-+ _M_column += _M_indent;
-+ }
-+
-+ fprintf(stderr, "%s", __word);
-+
-+ if (__word[__length - 1] == '\n')
-+ {
-+ _M_first_line = false;
-+ _M_column = 1;
-+ }
-+ else
-+ _M_column += __length;
-+ }
-+ else
-+ {
-+ _M_print_word("\n");
-+ _M_print_word(__word);
-+ }
-+ }
-
- void
-- _Error_formatter::_M_print_string(const char*) const
-- { }
-+ _Error_formatter::
-+ _M_print_string(const char* __string) const
-+ {
-+ const char* __start = __string;
-+ const char* __finish = __start;
-+ const int __bufsize = 128;
-+ char __buf[__bufsize];
-+
-+ while (*__start)
-+ {
-+ if (*__start != '%')
-+ {
-+ // [__start, __finish) denotes the next word
-+ __finish = __start;
-+ while (isalnum(*__finish))
-+ ++__finish;
-+ if (__start == __finish)
-+ ++__finish;
-+ if (isspace(*__finish))
-+ ++__finish;
-+
-+ const ptrdiff_t __len = __finish - __start;
-+ assert(__len < __bufsize);
-+ memcpy(__buf, __start, __len);
-+ __buf[__len] = '\0';
-+ _M_print_word(__buf);
-+ __start = __finish;
-+
-+ // Skip extra whitespace
-+ while (*__start == ' ')
-+ ++__start;
-+
-+ continue;
-+ }
-+
-+ ++__start;
-+ assert(*__start);
-+ if (*__start == '%')
-+ {
-+ _M_print_word("%");
-+ ++__start;
-+ continue;
-+ }
-+
-+ // Get the parameter number
-+ assert(*__start >= '1' && *__start <= '9');
-+ size_t __param_index = *__start - '0' - 1;
-+ assert(__param_index < _M_num_parameters);
-+ const auto& __param = _M_parameters[__param_index];
-+
-+ // '.' separates the parameter number from the field
-+ // name, if there is one.
-+ ++__start;
-+ if (*__start != '.')
-+ {
-+ assert(*__start == ';');
-+ ++__start;
-+ __buf[0] = '\0';
-+ if (__param._M_kind == _Parameter::__integer)
-+ {
-+ _M_format_word(__buf, __bufsize, "%ld",
-+ __param._M_variant._M_integer._M_value);
-+ _M_print_word(__buf);
-+ }
-+ else if (__param._M_kind == _Parameter::__string)
-+ _M_print_string(__param._M_variant._M_string._M_value);
-+ continue;
-+ }
-+
-+ // Extract the field name we want
-+ enum { __max_field_len = 16 };
-+ char __field[__max_field_len];
-+ int __field_idx = 0;
-+ ++__start;
-+ while (*__start != ';')
-+ {
-+ assert(*__start);
-+ assert(__field_idx < __max_field_len-1);
-+ __field[__field_idx++] = *__start++;
-+ }
-+ ++__start;
-+ __field[__field_idx] = 0;
-+
-+ __param._M_print_field(this, __field);
-+ }
-+ }
-
- void
- _Error_formatter::_M_get_max_length() const throw ()
-- { }
-+ {
-+ const char* __nptr = std::getenv("GLIBCXX_DEBUG_MESSAGE_LENGTH");
-+ if (__nptr)
-+ {
-+ char* __endptr;
-+ const unsigned long __ret = std::strtoul(__nptr, &__endptr, 0);
-+ if (*__nptr != '\0' && *__endptr == '\0')
-+ _M_max_length = __ret;
-+ }
-+ }
-
- // Instantiations.
- template
- void
- _Error_formatter::_M_format_word(char*, int, const char*,
-- const void*) const;
-+ const void*) const;
-
- template
- void
-@@ -1101,10 +1039,10 @@ namespace __gnu_debug
- template
- void
- _Error_formatter::_M_format_word(char*, int, const char*,
-- std::size_t) const;
-+ std::size_t) const;
-
- template
- void
- _Error_formatter::_M_format_word(char*, int, const char*,
-- const char*) const;
-+ const char*) const;
- } // namespace __gnu_debug
---
-2.9.3
-
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index f0b32d9..898e781 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -25,7 +25,7 @@ LIBEVENT_TAG=release-2.0.22-stable
CMAKE_TAG=v2.8.12.2
LLVM_TAG=8f188e0ea735ac9383a65a0d1c846eb790c2ec74 # r247539
CLANG_TAG=592b43b609b42cffd1531a700c140e10766bf049 # r247539
-MINGW_TAG=4e270fefffda8f8123c0d64b77a6855dc3c732b1 # fix Fx compilation
+MINGW_TAG=a0cd5afeb60be3be0860e9a203314c10485bb9b8
PYPTLIB_TAG=pyptlib-0.0.6
OBFSPROXY_TAG=obfsproxy-0.2.12
LIBFTE_TAG=85ef8ae58dbf0d02ea26b627e343784b5574c428 # sketch master with fix
@@ -49,7 +49,7 @@ GMP_VER=5.1.3
FIREFOX_LANG_VER=$FIREFOX_VERSION
FIREFOX_LANG_BUILD=build1
BINUTILS_VER=2.24
-GCC_VER=6.2.0
+GCC_VER=5.1.0
CLANG_VER=r247539
PYTHON_VER=2.7.5
PYCRYPTO_VER=2.6.1
@@ -117,7 +117,7 @@ GO14_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
GO_HASH=6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00
NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7
NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a
-GCC_HASH=9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5
+GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad
STIXMATHFONT_HASH=e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8
NOTOEMOJIFONT_HASH=415dc6290378574135b64c808dc640c1df7531973290c4970c51fdeb849cb0c5
NOTOJPFONT_HASH=3e8146c4ce0945f255cb9dbc12b392380af80bd117e0a60eae555c99c7e618da
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 20c4ae4..f6dbb68 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -32,7 +32,7 @@ LIBEVENT_TAG=release-2.0.22-stable
CMAKE_TAG=v2.8.12.2
LLVM_TAG=8f188e0ea735ac9383a65a0d1c846eb790c2ec74 # r247539
CLANG_TAG=592b43b609b42cffd1531a700c140e10766bf049 # r247539
-MINGW_TAG=4e270fefffda8f8123c0d64b77a6855dc3c732b1 # fix Fx compilation
+MINGW_TAG=a0cd5afeb60be3be0860e9a203314c10485bb9b8
PYPTLIB_TAG=master
OBFSPROXY_TAG=master
LIBFTE_TAG=master
@@ -56,7 +56,7 @@ GMP_VER=5.1.3
FIREFOX_LANG_VER=$FIREFOX_VERSION
FIREFOX_LANG_BUILD=build1
BINUTILS_VER=2.24
-GCC_VER=6.2.0
+GCC_VER=5.1.0
CLANG_VER=r247539
PYTHON_VER=2.7.5
PYCRYPTO_VER=2.6.1
@@ -124,7 +124,7 @@ GO14_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
GO_HASH=6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00
NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7
NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a
-GCC_HASH=9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5
+GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad
STIXMATHFONT_HASH=e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8
NOTOEMOJIFONT_HASH=415dc6290378574135b64c808dc640c1df7531973290c4970c51fdeb849cb0c5
NOTOJPFONT_HASH=3e8146c4ce0945f255cb9dbc12b392380af80bd117e0a60eae555c99c7e618da
More information about the tbb-commits
mailing list