Bug 1536307 - Bump libstdc++ requirement to 4.7. r=froydnj
authorMike Hommey <mh+mozilla@glandium.org>
Mon, 25 Mar 2019 12:40:25 +0000
changeset 466035 576cae2c48239f1e2dafaeb1234b2a2ee9b64bc3
parent 466034 f4066420a83b4d176b9d5a70fa2a30b8f22f0e9a
child 466036 ec2ef453e55bcdf81104b728880c934c1b4bffc1
push id112550
push userrgurzau@mozilla.com
push dateTue, 26 Mar 2019 09:57:15 +0000
treeherdermozilla-inbound@b8be99473610 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1536307, 1278456
milestone68.0a1
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
Bug 1536307 - Bump libstdc++ requirement to 4.7. r=froydnj Last time we updated the requirements was in bug 1278456, after we switched to GTK+3. While it might be worth checking what would be a reasonable requirement, the immediate problem is that updating ANGLE hits a snag with a libstdc++ 4.7 symbol, and the only main distro release that bumping to that version would make us not support anymore is Ubuntu 12.04 LTS, EOLed 2 years ago (April 2017). Bumping to some even newer version would need more consideration. Desupporting Ubuntu 12.04 LTS at this point is almost a no-brainer. Differential Revision: https://phabricator.services.mozilla.com/D23979
build/unix/stdc++compat/stdc++compat.cpp
python/mozbuild/mozbuild/action/check_binary.py
--- a/build/unix/stdc++compat/stdc++compat.cpp
+++ b/build/unix/stdc++compat/stdc++compat.cpp
@@ -4,35 +4,27 @@
 
 #include <ostream>
 #include <istream>
 #include <string>
 #include <stdarg.h>
 #include <stdio.h>
 #include <mozilla/Assertions.h>
 
-/* GLIBCXX_3.4.8  is from gcc 4.1.1 (111691)
-   GLIBCXX_3.4.9  is from gcc 4.2.0 (111690)
-   GLIBCXX_3.4.10 is from gcc 4.3.0 (126287)
-   GLIBCXX_3.4.11 is from gcc 4.4.0 (133006)
-   GLIBCXX_3.4.12 is from gcc 4.4.1 (147138)
-   GLIBCXX_3.4.13 is from gcc 4.4.2 (151127)
-   GLIBCXX_3.4.14 is from gcc 4.5.0 (151126)
-   GLIBCXX_3.4.15 is from gcc 4.6.0 (160071)
-   GLIBCXX_3.4.16 is from gcc 4.6.1 (172240)
+/* GLIBCXX_3.4.16 is from gcc 4.6.1 (172240)
    GLIBCXX_3.4.17 is from gcc 4.7.0 (174383)
    GLIBCXX_3.4.18 is from gcc 4.8.0 (190787)
    GLIBCXX_3.4.19 is from gcc 4.8.1 (199309)
    GLIBCXX_3.4.20 is from gcc 4.9.0 (199307)
    GLIBCXX_3.4.21 is from gcc 5.0 (210290)
    GLIBCXX_3.4.22 is from gcc 6.0 (222482)
 
 This file adds the necessary compatibility tricks to avoid symbols with
-version GLIBCXX_3.4.16 and bigger, keeping binary compatibility with
-libstdc++ 4.6.1.
+version GLIBCXX_3.4.17 and bigger, keeping binary compatibility with
+libstdc++ 4.7.
 
 WARNING: all symbols from this file must be defined weak when they
 overlap with libstdc++.
 */
 
 #define GLIBCXX_VERSION(a, b, c) (((a) << 16) | ((b) << 8) | (c))
 
 #if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 18)
--- a/python/mozbuild/mozbuild/action/check_binary.py
+++ b/python/mozbuild/mozbuild/action/check_binary.py
@@ -17,17 +17,17 @@ from mozbuild.util import memoize
 from mozpack.executables import (
     get_type,
     ELF,
     MACHO,
     UNKNOWN,
 )
 
 
-STDCXX_MAX_VERSION = Version('3.4.16')
+STDCXX_MAX_VERSION = Version('3.4.17')
 GLIBC_MAX_VERSION = Version('2.12')
 LIBGCC_MAX_VERSION = Version('4.8')
 
 HOST = {
     'MOZ_LIBSTDCXX_VERSION':
         buildconfig.substs.get('MOZ_LIBSTDCXX_HOST_VERSION'),
     'platform': buildconfig.substs['HOST_OS_ARCH'],
     'readelf': 'readelf',