Bug 1278456 - Bump libstdc++ requirement to 3.4.16 (4.6.1). r?froydnj draft
authorMike Hommey <mh+mozilla@glandium.org>
Tue, 07 Jun 2016 13:51:05 +0900
changeset 376668 c44586acd1521edf3c354ec53b11f00446943c51
parent 376667 353ab3e4876c1c7ed3e60d91a411e1e3f62aaaeb
child 376669 5ff72c7753a63c812315f953a809da88990f1206
push id20634
push userbmo:mh+mozilla@glandium.org
push dateWed, 08 Jun 2016 12:25:06 +0000
reviewersfroydnj
bugs1278456
milestone50.0a1
Bug 1278456 - Bump libstdc++ requirement to 3.4.16 (4.6.1). r?froydnj Similarly to the considerations about glibc, the Linux compatibility matrix (https://developer.mozilla.org/en-US/Firefox/Linux_compatibility_matrix) tells us no distro with Gtk+3 3.4 has a version of libstdc++ older than 4.6. The data in the matrix doesn't go to that level of detail, but Ubuntu 12.04 LTS, being the only one with version 4.6 (others have at least 4.7), it's worth noting it has version 4.6.3. Which means we can safely require libstdc++ symbols version 3.4.16 (which were added in 4.6.1). This will allow us to remove a lot of the stdc++ compatibility hacks.
config/config.mk
--- a/config/config.mk
+++ b/config/config.mk
@@ -550,17 +550,17 @@ awk '$$8 ~ /@$(2)_/ { \
 END { \
 	if (found) { \
 		exit(1) \
 	} \
 }'
 endef
 
 ifneq (,$(MOZ_LIBSTDCXX_TARGET_VERSION)$(MOZ_LIBSTDCXX_HOST_VERSION))
-CHECK_STDCXX = $(call CHECK_SYMBOLS,$(1),GLIBCXX,libstdc++,v[1] > 3 || (v[1] == 3 && v[2] == 4 && v[3] > 10))
+CHECK_STDCXX = $(call CHECK_SYMBOLS,$(1),GLIBCXX,libstdc++,v[1] > 3 || (v[1] == 3 && v[2] == 4 && v[3] > 16))
 CHECK_GLIBC = $(call CHECK_SYMBOLS,$(1),GLIBC,libc,v[1] > 2 || (v[1] == 2 && v[2] > 12))
 endif
 
 ifeq (,$(filter $(OS_TARGET),WINNT Darwin))
 CHECK_TEXTREL = @$(TOOLCHAIN_PREFIX)readelf -d $(1) | grep TEXTREL > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_textrel | We do not want text relocations in libraries and programs' || true
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),android)