Backed out 3 changesets (bug 1484184, bug 1484190, bug 1484191) for bustages on test_toolchain_configure.py. CLOSED TREE
authorNarcis Beleuzu <nbeleuzu@mozilla.com>
Mon, 20 Aug 2018 19:49:37 +0300
changeset 490194 2e949e5a9a62d0db0d33833e1e875f12f2969ac4
parent 490193 6129cb421151f9a4f6032a3a2e48a71209850711
child 490195 79082cb95664b59e9507d7099854bae30caa4921
push id1815
push userffxbld-merge
push dateMon, 15 Oct 2018 10:40:45 +0000
treeherdermozilla-release@18d4c09e9378 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1484184, 1484190, 1484191
milestone63.0a1
backs outdca5444170e0a59c7a3a5321bece62d717fb6c1a
1ef81d07bc5b94f6ff37954c204da264ee16e6b6
2a42fd4df1bb5ef0b16baf1782016c47abd1af60
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out 3 changesets (bug 1484184, bug 1484190, bug 1484191) for bustages on test_toolchain_configure.py. CLOSED TREE Backed out changeset dca5444170e0 (bug 1484190) Backed out changeset 1ef81d07bc5b (bug 1484184) Backed out changeset 2a42fd4df1bb (bug 1484191)
build/moz.configure/toolchain.configure
dom/base/test/gtest/TestMimeType.cpp
memory/mozalloc/moz.build
old-configure.in
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -928,29 +928,29 @@ def compiler(language, host_or_target, c
             raise FatalCheckError(
                 'Only clang/llvm 3.6 or newer is supported.')
 
         if info.type == 'msvc':
             if info.version < '19.13.26128':
                 raise FatalCheckError(
                     'This version (%s) of the MSVC compiler is not '
                     'supported.\n'
-                    'You must install Visual C++ 2017 Update 6 or '
-                    'Update 8 or later in order to build.\n'
+                    'You must install Visual C++ 2017 Update 6 in '
+                    'order to build.\n'
                     'See https://developer.mozilla.org/en/'
                     'Windows_Build_Prerequisites' % info.version)
 
             # MSVC version 15.7 and the previews for 15.8, at least,
             # can't build Firefox.
-            if info.version >= '19.14.0' and info.version < '19.15.0':
+            if info.version >= '19.14.0':
                 raise FatalCheckError(
                     'This version (%s) of the MSVC compiler is not '
                     'supported due to compiler bugs.\n'
-                    'You must install Visual C++ 2017 Update 6 or '
-                    'Update 8 or later in order to build.\n'
+                    'You must install Visual C++ 2017 Update 6 in '
+                    'order to build.\n'
                     'See https://developer.mozilla.org/en/'
                     'Windows_Build_Prerequisites' % info.version)
 
         if info.flags:
             raise FatalCheckError(
                 'Unknown compiler or compiler not supported.')
 
         return namespace(
--- a/dom/base/test/gtest/TestMimeType.cpp
+++ b/dom/base/test/gtest/TestMimeType.cpp
@@ -207,33 +207,26 @@ TEST(MimeType, DuplicateParameter2)
   UniquePtr<MimeType> parsed = MimeType::Parse(in);
   ASSERT_TRUE(parsed) << "Parsing succeeded";
   nsString out;
   parsed->Serialize(out);
   ASSERT_TRUE(out.Equals(NS_LITERAL_STRING("text/html;charset=\"()\""))) <<
     "Duplicate parameter #2";
 }
 
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4819)
-#endif
 TEST(MimeType, NonAlphanumericParametersAreQuoted)
 {
   const auto in = NS_LITERAL_STRING("text/html;test=\x00FF\\;charset=gbk");
   UniquePtr<MimeType> parsed = MimeType::Parse(in);
   ASSERT_TRUE(parsed) << "Parsing succeeded";
   nsString out;
   parsed->Serialize(out);
   ASSERT_TRUE(out.Equals(NS_LITERAL_STRING("text/html;test=\"\x00FF\\\\\";charset=gbk"))) <<
     "Non-alphanumeric parameters are quoted";
 }
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
 
 TEST(MimeType, ParameterQuotedIfHasLeadingWhitespace1)
 {
   const auto in = NS_LITERAL_STRING("text/html;charset= g\\\"bk");
   UniquePtr<MimeType> parsed = MimeType::Parse(in);
   ASSERT_TRUE(parsed) << "Parsing succeeded";
   nsAutoString out;
   parsed->Serialize(out);
--- a/memory/mozalloc/moz.build
+++ b/memory/mozalloc/moz.build
@@ -11,19 +11,20 @@ EXPORTS.mozilla += [
     'mozalloc_oom.h',
 ]
 
 if CONFIG['WRAP_STL_INCLUDES']:
     if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
         EXPORTS.mozilla += ['throw_gcc.h']
     elif CONFIG['CC_TYPE'] in ('msvc', 'clang-cl'):
         DEFINES['_HAS_EXCEPTIONS'] = 0
-        SOURCES += [
-            'msvc_raise_wrappers.cpp',
-        ]
+        if CONFIG['MOZ_MSVC_STL_WRAP_RAISE']:
+            SOURCES += [
+                'msvc_raise_wrappers.cpp',
+            ]
 
 if CONFIG['OS_TARGET'] == 'WINNT':
     # Keep this file separate to avoid #include'ing windows.h everywhere.
     SOURCES += [
         'winheap.cpp',
     ]
 
 UNIFIED_SOURCES += [
--- a/old-configure.in
+++ b/old-configure.in
@@ -276,18 +276,45 @@ case "$target" in
             ;;
         aarch64-*)
             MIDL_FLAGS="${MIDL_FLAGS} -env arm64"
             ;;
         esac
 
         unset _MSVC_VER_FILTER
 
-        WRAP_STL_INCLUDES=1
-        STL_FLAGS="-I${DIST}/stl_wrappers"
+        AC_CACHE_CHECK(for overridable _RAISE,
+                       ac_cv_have__RAISE,
+            [
+                AC_LANG_SAVE
+                AC_LANG_CPLUSPLUS
+                _SAVE_CXXFLAGS="$CXXFLAGS"
+                CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
+                AC_TRY_COMPILE([#include <xstddef>
+                                #undef _RAISE
+                                #define _RAISE(x) externallyDefinedFunction((x).what())
+                                #include <vector>
+                               ],
+                               [std::vector<int> v; return v.at(1);],
+                               ac_cv_have__RAISE="no",
+                               ac_cv_have__RAISE="yes")
+                CXXFLAGS="$_SAVE_CXXFLAGS"
+                AC_LANG_RESTORE
+            ])
+        if test "$ac_cv_have__RAISE" = "yes"; then
+            WRAP_STL_INCLUDES=1
+            MOZ_MSVC_STL_WRAP_RAISE=1
+            AC_DEFINE(MOZ_MSVC_STL_WRAP_RAISE)
+        else
+            AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK.  Please file a bug describing this error and your build configuration.])
+        fi
+
+        if test "$WRAP_STL_INCLUDES" = "1"; then
+            STL_FLAGS="-I${DIST}/stl_wrappers"
+        fi
         CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0"
         CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0"
     else
         # Check w32api version
         _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
         _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
         AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
         AC_TRY_COMPILE([#include <w32api.h>],
@@ -363,16 +390,17 @@ AC_SUBST(MIDL_FLAGS)
 AC_SUBST(_MSC_VER)
 
 AC_SUBST(GNU_AS)
 AC_SUBST(GNU_CC)
 AC_SUBST(GNU_CXX)
 
 AC_SUBST_LIST(STL_FLAGS)
 AC_SUBST(WRAP_STL_INCLUDES)
+AC_SUBST(MOZ_MSVC_STL_WRAP_RAISE)
 
 dnl ========================================================
 dnl Checks for programs.
 dnl ========================================================
 if test "$COMPILE_ENVIRONMENT"; then
 
 dnl ========================================================
 dnl = Mac OS X SDK support