Bug 976896 - Port STL_FLAGS to moz.build; r=mshal
authorEhsan Akhgari <ehsan@mozilla.com>
Tue, 04 Mar 2014 19:39:06 -0500
changeset 177305 7d223c2e7fa9fe18c4380679df63cc9db41a63bc
parent 177304 8b872592e44140baa088e3af474eaca9eb1d2701
child 177306 3784de966811121594fcf279c254f495742d7bc9
push idunknown
push userunknown
push dateunknown
reviewersmshal
bugs976896
milestone30.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 976896 - Port STL_FLAGS to moz.build; r=mshal
b2g/app/Makefile.in
b2g/app/moz.build
browser/app/Makefile.in
browser/app/moz.build
build/stlport/Makefile.in
build/stlport/moz.build
build/unix/stdc++compat/Makefile.in
build/unix/stdc++compat/moz.build
config/config.mk
dom/plugins/ipc/hangui/Makefile.in
dom/plugins/ipc/hangui/moz.build
dom/plugins/test/testplugin/testplugin.mk
dom/plugins/test/testplugin/testplugin.mozbuild
embedding/tests/winEmbed/Makefile.in
embedding/tests/winEmbed/moz.build
gfx/angle/src/libEGL/Makefile.in
gfx/angle/src/libEGL/moz.build
gfx/angle/src/libGLESv2/Makefile.in
gfx/angle/src/libGLESv2/moz.build
media/omx-plugin/Makefile.in
media/omx-plugin/froyo/Makefile.in
media/omx-plugin/froyo/moz.build
media/omx-plugin/gb/Makefile.in
media/omx-plugin/gb/moz.build
media/omx-plugin/gb235/Makefile.in
media/omx-plugin/gb235/moz.build
media/omx-plugin/hc/Makefile.in
media/omx-plugin/hc/moz.build
media/omx-plugin/kk/Makefile.in
media/omx-plugin/kk/moz.build
media/omx-plugin/lib/froyo/libstagefright/Makefile.in
media/omx-plugin/lib/froyo/libstagefright/moz.build
media/omx-plugin/lib/gb/libstagefright/Makefile.in
media/omx-plugin/lib/gb/libstagefright/moz.build
media/omx-plugin/lib/gb/libstagefright_color_conversion/Makefile.in
media/omx-plugin/lib/gb/libstagefright_color_conversion/moz.build
media/omx-plugin/lib/gb/libutils/Makefile.in
media/omx-plugin/lib/gb/libutils/moz.build
media/omx-plugin/lib/gb235/libstagefright/Makefile.in
media/omx-plugin/lib/gb235/libstagefright/moz.build
media/omx-plugin/lib/hc/libstagefright/Makefile.in
media/omx-plugin/lib/hc/libstagefright/moz.build
media/omx-plugin/lib/ics/libstagefright/Makefile.in
media/omx-plugin/lib/ics/libstagefright/moz.build
media/omx-plugin/lib/ics/libutils/Makefile.in
media/omx-plugin/lib/ics/libutils/moz.build
media/omx-plugin/lib/ics/libvideoeditorplayer/Makefile.in
media/omx-plugin/lib/ics/libvideoeditorplayer/moz.build
media/omx-plugin/moz.build
memory/build/replace_malloc.h
memory/mozalloc/Makefile.in
memory/mozalloc/moz.build
memory/replace/defs.mk
memory/replace/dmd/Makefile.in
memory/replace/dmd/moz.build
memory/replace/dummy/moz.build
memory/replace/jemalloc/moz.build
memory/replace/moz.build
mfbt/Makefile.in
mfbt/moz.build
mfbt/tests/Makefile.in
mfbt/tests/moz.build
mobile/android/app/Makefile.in
mobile/android/app/moz.build
mozglue/android/Makefile.in
mozglue/android/moz.build
mozglue/build/Makefile.in
mozglue/build/moz.build
mozglue/linker/Makefile.in
mozglue/linker/moz.build
mozglue/tests/Makefile.in
mozglue/tests/moz.build
profile/dirserviceprovider/src/Makefile.in
profile/dirserviceprovider/src/moz.build
python/mozbuild/mozbuild/frontend/emitter.py
python/mozbuild/mozbuild/frontend/sandbox_symbols.py
python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build
python/mozbuild/mozbuild/test/backend/test_recursivemake.py
python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build
python/mozbuild/mozbuild/test/frontend/test_emitter.py
security/sandbox/Makefile.in
security/sandbox/moz.build
security/sandbox/win/src/sandboxbroker/Makefile.in
security/sandbox/win/src/sandboxbroker/moz.build
testing/mochitest/ssltunnel/Makefile.in
testing/mochitest/ssltunnel/moz.build
toolkit/components/maintenanceservice/Makefile.in
toolkit/components/maintenanceservice/moz.build
toolkit/crashreporter/breakpad-windows-libxul/Makefile.in
toolkit/crashreporter/breakpad-windows-libxul/moz.build
toolkit/crashreporter/breakpad-windows-standalone/Makefile.in
toolkit/crashreporter/breakpad-windows-standalone/moz.build
toolkit/crashreporter/client/Makefile.in
toolkit/crashreporter/client/moz.build
toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
toolkit/crashreporter/injector/Makefile.in
toolkit/crashreporter/injector/moz.build
toolkit/mozapps/update/updater/Makefile.in
toolkit/mozapps/update/updater/moz.build
tools/trace-malloc/lib/Makefile.in
tools/trace-malloc/lib/moz.build
webapprt/gtk2/Makefile.in
webapprt/gtk2/moz.build
webapprt/mac/Makefile.in
webapprt/mac/moz.build
webapprt/win/Makefile.in
webapprt/win/moz.build
widget/gonk/libdisplay/Makefile.in
widget/gonk/libdisplay/moz.build
widget/gonk/nativewindow/Makefile.in
widget/gonk/nativewindow/moz.build
xpcom/glue/nomozalloc/Makefile.in
xpcom/glue/nomozalloc/moz.build
xpcom/glue/standalone/Makefile.in
xpcom/glue/standalone/moz.build
xpcom/glue/standalone/staticruntime/Makefile.in
xpcom/glue/standalone/staticruntime/moz.build
xpcom/glue/staticruntime/Makefile.in
xpcom/glue/staticruntime/moz.build
xulrunner/app/Makefile.in
xulrunner/app/moz.build
xulrunner/stub/Makefile.in
xulrunner/stub/moz.build
--- a/b2g/app/Makefile.in
+++ b/b2g/app/Makefile.in
@@ -23,18 +23,16 @@ LIBS += \
 ifeq ($(ANDROID_VERSION),$(findstring $(ANDROID_VERSION),17 18 19))
 LIBS += \
   -lgui \
   -lsuspend \
   $(NULL)
 endif
 endif
 
-STL_FLAGS=
-
 LIBS += $(JEMALLOC_LIBS)
 
 LIBS += \
   $(XPCOM_STANDALONE_GLUE_LDOPTS) \
   $(NULL)
 
 ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
 LIBS += \
--- a/b2g/app/moz.build
+++ b/b2g/app/moz.build
@@ -36,8 +36,10 @@ LOCAL_INCLUDES += [
 ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
     LOCAL_INCLUDES += [
         '/widget/gonk/libdisplay',
     ]
 
     LDFLAGS += ['-Wl,--export-dynamic']
+
+DISABLE_STL_WRAPPING = True
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -21,18 +21,16 @@ DEFINES += \
   $(NULL)
 
 ifdef LIBXUL_SDK #{
 PREF_JS_EXPORTS += $(srcdir)/profile/channel-prefs.js
 endif #} LIBXUL_SDK
 
 # Build a binary bootstrapping with XRE_main
 
-STL_FLAGS=
-
 LIBS += \
 	$(XPCOM_STANDALONE_GLUE_LDOPTS) \
 	$(NULL)
 
 ifdef MOZ_LINKER
 LIBS += $(MOZ_ZLIB_LIBS)
 endif
 
--- a/browser/app/moz.build
+++ b/browser/app/moz.build
@@ -47,8 +47,10 @@ if CONFIG['OS_ARCH'] == 'WINNT':
 # As we use the CRT heap, the default size is too large and wastes VM.
 #
 # The default heap size is 1MB on Win32.
 # The heap will grow if need be.
 #
 # Set it to 256k.  See bug 127069.
 if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
     LDFLAGS += ['/HEAP:0x40000']
+
+DISABLE_STL_WRAPPING = True
--- a/build/stlport/Makefile.in
+++ b/build/stlport/Makefile.in
@@ -1,14 +1,13 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MODULES = stlport
-STL_FLAGS =
 
 # Force to build a static library, instead of a fake library, without
 # installing it in dist/lib.
 LIBRARY = $(LIB_PREFIX)$(LIBRARY_NAME).$(LIB_SUFFIX)
 
 include $(topsrcdir)/config/rules.mk
 
 CXXFLAGS += -fuse-cxa-atexit
--- a/build/stlport/moz.build
+++ b/build/stlport/moz.build
@@ -47,8 +47,9 @@ SOURCES += [
 ]
 
 DEFINES['_GNU_SOURCE'] = True
 
 LOCAL_INCLUDES += [
     'stlport',
 ]
 
+DISABLE_STL_WRAPPING = True
--- a/build/unix/stdc++compat/Makefile.in
+++ b/build/unix/stdc++compat/Makefile.in
@@ -1,11 +1,10 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS =
 NO_EXPAND_LIBS = 1
 
 include $(topsrcdir)/config/rules.mk
 
 CXXFLAGS += -DMOZ_LIBSTDCXX_VERSION=$(MOZ_LIBSTDCXX_TARGET_VERSION)
 HOST_CXXFLAGS += -DMOZ_LIBSTDCXX_VERSION=$(MOZ_LIBSTDCXX_HOST_VERSION)
--- a/build/unix/stdc++compat/moz.build
+++ b/build/unix/stdc++compat/moz.build
@@ -12,8 +12,10 @@ if CONFIG['MOZ_LIBSTDCXX_HOST_VERSION']:
     HOST_LIBRARY_NAME = 'host_stdc++compat'
     HOST_SOURCES += [
         'stdc++compat.cpp',
     ]
 
 FORCE_STATIC_LIB = True
 
 NO_PGO = True
+
+DISABLE_STL_WRAPPING = True
--- a/config/config.mk
+++ b/config/config.mk
@@ -585,17 +585,17 @@ OS_COMPILE_CMFLAGS += -fobjc-exceptions
 OS_COMPILE_CMMFLAGS += -fobjc-exceptions
 ifeq ($(MOZ_WIDGET_TOOLKIT),uikit)
 OS_COMPILE_CMFLAGS += -fobjc-abi-version=2 -fobjc-legacy-dispatch
 OS_COMPILE_CMMFLAGS += -fobjc-abi-version=2 -fobjc-legacy-dispatch
 endif
 endif
 
 COMPILE_CFLAGS	= $(VISIBILITY_FLAGS) $(DEFINES) $(INCLUDES) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(RTL_FLAGS) $(OS_CPPFLAGS) $(OS_COMPILE_CFLAGS) $(CFLAGS) $(MOZBUILD_CFLAGS) $(EXTRA_COMPILE_FLAGS)
-COMPILE_CXXFLAGS = $(STL_FLAGS) $(VISIBILITY_FLAGS) $(DEFINES) $(INCLUDES) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(RTL_FLAGS) $(OS_CPPFLAGS) $(OS_COMPILE_CXXFLAGS) $(CXXFLAGS) $(MOZBUILD_CXXFLAGS) $(EXTRA_COMPILE_FLAGS)
+COMPILE_CXXFLAGS = $(if $(DISABLE_STL_WRAPPING),,$(STL_FLAGS)) $(VISIBILITY_FLAGS) $(DEFINES) $(INCLUDES) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(RTL_FLAGS) $(OS_CPPFLAGS) $(OS_COMPILE_CXXFLAGS) $(CXXFLAGS) $(MOZBUILD_CXXFLAGS) $(EXTRA_COMPILE_FLAGS)
 COMPILE_CMFLAGS = $(OS_COMPILE_CMFLAGS) $(MOZBUILD_CMFLAGS) $(EXTRA_COMPILE_FLAGS)
 COMPILE_CMMFLAGS = $(OS_COMPILE_CMMFLAGS) $(MOZBUILD_CMMFLAGS) $(EXTRA_COMPILE_FLAGS)
 ASFLAGS += $(EXTRA_ASSEMBLER_FLAGS)
 
 ifndef CROSS_COMPILE
 HOST_CFLAGS += $(RTL_FLAGS)
 endif
 
@@ -895,12 +895,12 @@ LOCAL_INCLUDES += \
   $(NULL)
 
 ifeq (WINNT,$(OS_TARGET))
 # These get set via VC project file settings for normal GYP builds.
 DEFINES += -DUNICODE -D_UNICODE
 LOCAL_INCLUDES += -I'$(MOZ_DIRECTX_SDK_PATH)/include'
 endif
 
-STL_FLAGS=
+DISABLE_STL_WRAPPING := 1
 # Skip most Mozilla-specific include locations.
 INCLUDES = -I. $(LOCAL_INCLUDES) -I$(DEPTH)/dist/include
 endif
--- a/dom/plugins/ipc/hangui/Makefile.in
+++ b/dom/plugins/ipc/hangui/Makefile.in
@@ -1,13 +1,9 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 OS_LIBS = $(call EXPAND_LIBNAME,comctl32)
 
-STL_FLAGS = \
-  -D_HAS_EXCEPTIONS=0 \
-  $(NULL)
-
 MOZ_GLUE_LDFLAGS =
 
 include $(topsrcdir)/config/rules.mk
--- a/dom/plugins/ipc/hangui/moz.build
+++ b/dom/plugins/ipc/hangui/moz.build
@@ -10,13 +10,16 @@ PROGRAM = 'plugin-hang-ui'
 
 UNIFIED_SOURCES += [
     'MiniShmChild.cpp',
     'PluginHangUIChild.cpp',
 ]
 include('/ipc/chromium/chromium-config.mozbuild')
 
 DEFINES['NS_NO_XPCOM'] = True
+DEFINES['_HAS_EXCEPTIONS'] = 0
+
+DISABLE_STL_WRAPPING = True
 
 if CONFIG['GNU_CC']:
     WIN32_EXE_LDFLAGS += ['-municode']
 
 RCINCLUDE = 'HangUIDlg.rc'
--- a/dom/plugins/test/testplugin/testplugin.mk
+++ b/dom/plugins/test/testplugin/testplugin.mk
@@ -1,16 +1,13 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-# Don't use STL wrappers; nptest isn't Gecko code
-STL_FLAGS =
-
 ifeq ($(MOZ_WIDGET_TOOLKIT),qt)
 include $(topsrcdir)/config/config.mk
 CXXFLAGS        += $(MOZ_QT_CFLAGS)
 CFLAGS          += $(MOZ_QT_CFLAGS)
 EXTRA_DSO_LDOPTS = \
                 $(MOZ_QT_LIBS) \
                 $(XLDFLAGS) \
                 $(XLIBS)
--- a/dom/plugins/test/testplugin/testplugin.mozbuild
+++ b/dom/plugins/test/testplugin/testplugin.mozbuild
@@ -37,12 +37,15 @@ elif toolkit == 'windows':
         relative_path + '/nptest_windows.cpp',
     ]
 
 FORCE_SHARED_LIB = True
 
 # must link statically with the CRT; nptest isn't Gecko code
 USE_STATIC_LIBS = True
 
+# Don't use STL wrappers; nptest isn't Gecko code
+DISABLE_STL_WRAPPING = True
+
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     RCFILE  = 'nptest.rc'
     RESFILE = 'nptest.res'
     DEFFILE = SRCDIR + '/nptest.def'
--- a/embedding/tests/winEmbed/Makefile.in
+++ b/embedding/tests/winEmbed/Makefile.in
@@ -27,13 +27,11 @@
 #
 # ***** END LICENSE BLOCK *****
 
 LIBS = \
 	$(DEPTH)/profile/dirserviceprovider/src/$(LIB_PREFIX)profdirserviceprovidersa_s.$(LIB_SUFFIX) \
 	$(XPCOM_STANDALONE_GLUE_LDOPTS) \
 	$(NULL)
 
-STL_FLAGS=
-
 OS_LIBS		+= $(call EXPAND_LIBNAME,ole32 comdlg32 shell32 version)
 
 include $(topsrcdir)/config/rules.mk
--- a/embedding/tests/winEmbed/moz.build
+++ b/embedding/tests/winEmbed/moz.build
@@ -26,8 +26,10 @@ else:
     # This is the heap returned by GetProcessHeap().
     # As we use the CRT heap, the default size is too large and wastes VM.
     #
     # The default heap size is 1MB on Win32.
     # The heap will grow if need be.
     #
     # Set it to 256k.  See bug 127069.
     LDFLAGS += ['/HEAP:0x40000']
+
+DISABLE_STL_WRAPPING = True
--- a/gfx/angle/src/libEGL/Makefile.in
+++ b/gfx/angle/src/libEGL/Makefile.in
@@ -1,15 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-# ANGLE uses the STL, so we can't use our derpy STL wrappers.
-STL_FLAGS =
-
 ifndef GNU_CC
 # Enable unwind semantics for exception handlers in response to warning C4530.
 OS_CPPFLAGS += -EHsc
 endif
 
 # Below is a transcription of the EGL target from build_angle.gypi.
 # Target: 'libEGL'
 #   Links with: 'libGLESv2'
--- a/gfx/angle/src/libEGL/moz.build
+++ b/gfx/angle/src/libEGL/moz.build
@@ -40,8 +40,11 @@ for var in ('LIBEGL_EXPORTS', 'ANGLE_BUI
 
 if not CONFIG['MOZ_DEBUG']:
     DEFINES['_SECURE_SCL'] = 0
 
 DEFINES['ANGLE_COMPILE_OPTIMIZATION_LEVEL'] = 'D3DCOMPILE_OPTIMIZATION_LEVEL1'
 
 RCFILE = SRCDIR + '/libEGL.rc'
 DEFFILE = SRCDIR + '/libEGL.def'
+
+# ANGLE uses the STL, so we can't use our derpy STL wrappers.
+DISABLE_STL_WRAPPING = True
--- a/gfx/angle/src/libGLESv2/Makefile.in
+++ b/gfx/angle/src/libGLESv2/Makefile.in
@@ -1,15 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-# ANGLE uses the STL, so we can't use our derpy STL wrappers.
-STL_FLAGS =
-
 ifndef GNU_CC
 # Enable unwind semantics for exception handlers in response to warning C4530.
 OS_CPPFLAGS += -EHsc
 endif
 
 # End build_angle.gypi transcription.
 
 include $(topsrcdir)/config/rules.mk
--- a/gfx/angle/src/libGLESv2/moz.build
+++ b/gfx/angle/src/libGLESv2/moz.build
@@ -194,8 +194,11 @@ for var in ('LIBGLESV2_EXPORTS', 'ANGLE_
 
 if not CONFIG['MOZ_DEBUG']:
     DEFINES['_SECURE_SCL'] = 0
 
 DEFINES['ANGLE_COMPILE_OPTIMIZATION_LEVEL'] = 'D3DCOMPILE_OPTIMIZATION_LEVEL1'
 
 RCFILE = SRCDIR + '/libGLESv2.rc'
 DEFFILE = SRCDIR + '/libGLESv2.def'
+
+# ANGLE uses the STL, so we can't use our derpy STL wrappers.
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/Makefile.in
+++ b/media/omx-plugin/Makefile.in
@@ -7,19 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),gonk)
 EXTRA_DSO_LDOPTS += \
                -lutils -lstagefright -lmedia -lstagefright_omx -lbinder -lui \
                -lhardware -lcutils \
 		$(NULL)
 else
--- a/media/omx-plugin/froyo/Makefile.in
+++ b/media/omx-plugin/froyo/Makefile.in
@@ -7,19 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		-L$(DEPTH)/media/omx-plugin/lib/froyo/libstagefright \
 		-lstagefright \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libstagefright_color_conversion \
--- a/media/omx-plugin/froyo/moz.build
+++ b/media/omx-plugin/froyo/moz.build
@@ -13,8 +13,10 @@ LIBRARY_NAME = 'omxpluginfroyo'
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '../../../content/media/plugins',
     '../include/froyo',
     '../include/froyo/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/gb/Makefile.in
+++ b/media/omx-plugin/gb/Makefile.in
@@ -7,19 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libstagefright \
 		-lstagefright \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libstagefright_color_conversion \
--- a/media/omx-plugin/gb/moz.build
+++ b/media/omx-plugin/gb/moz.build
@@ -13,8 +13,10 @@ LIBRARY_NAME = 'omxplugingb'
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '../../../content/media/plugins',
     '../include/gb',
     '../include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/gb235/Makefile.in
+++ b/media/omx-plugin/gb235/Makefile.in
@@ -7,19 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		-L$(DEPTH)/media/omx-plugin/lib/gb235/libstagefright \
 		-lstagefright \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libstagefright_color_conversion \
--- a/media/omx-plugin/gb235/moz.build
+++ b/media/omx-plugin/gb235/moz.build
@@ -13,8 +13,10 @@ LIBRARY_NAME = 'omxplugingb235'
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '../../../content/media/plugins',
     '../include/gb',
     '../include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/hc/Makefile.in
+++ b/media/omx-plugin/hc/Makefile.in
@@ -7,19 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		-L$(DEPTH)/media/omx-plugin/lib/hc/libstagefright \
 		-lstagefright \
 		$(NULL)
--- a/media/omx-plugin/hc/moz.build
+++ b/media/omx-plugin/hc/moz.build
@@ -13,8 +13,10 @@ LIBRARY_NAME = 'omxpluginhc'
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '../../../content/media/plugins',
     '../include/gb',
     '../include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/kk/Makefile.in
+++ b/media/omx-plugin/kk/Makefile.in
@@ -7,19 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/ics/libutils \
 		-lutils \
 		-L$(DEPTH)/media/omx-plugin/lib/ics/libstagefright \
 		-lstagefright \
 		-L$(DEPTH)/media/omx-plugin/lib/ics/libvideoeditorplayer \
--- a/media/omx-plugin/kk/moz.build
+++ b/media/omx-plugin/kk/moz.build
@@ -13,8 +13,10 @@ LIBRARY_NAME = 'omxpluginkk'
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '../../../content/media/plugins',
     '../include/ics',
     '../include/ics/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/froyo/libstagefright/Makefile.in
+++ b/media/omx-plugin/lib/froyo/libstagefright/Makefile.in
@@ -7,17 +7,14 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		$(NULL)
--- a/media/omx-plugin/lib/froyo/libstagefright/moz.build
+++ b/media/omx-plugin/lib/froyo/libstagefright/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'stagefright'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/froyo',
     '/media/omx-plugin/include/froyo/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/gb/libstagefright/Makefile.in
+++ b/media/omx-plugin/lib/gb/libstagefright/Makefile.in
@@ -7,17 +7,14 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		$(NULL)
--- a/media/omx-plugin/lib/gb/libstagefright/moz.build
+++ b/media/omx-plugin/lib/gb/libstagefright/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'stagefright'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/gb',
     '/media/omx-plugin/include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/gb/libstagefright_color_conversion/Makefile.in
+++ b/media/omx-plugin/lib/gb/libstagefright_color_conversion/Makefile.in
@@ -7,17 +7,14 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 # EXTRA_DSO_LDOPTS += \
 # 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 # 		-lutils \
 # 		$(NULL)
--- a/media/omx-plugin/lib/gb/libstagefright_color_conversion/moz.build
+++ b/media/omx-plugin/lib/gb/libstagefright_color_conversion/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'stagefright_color_conver
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/gb',
     '/media/omx-plugin/include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
deleted file mode 100644
--- a/media/omx-plugin/lib/gb/libutils/Makefile.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2012 Mozilla Foundation and Mozilla contributors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
--- a/media/omx-plugin/lib/gb/libutils/moz.build
+++ b/media/omx-plugin/lib/gb/libutils/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'utils'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/gb',
     '/media/omx-plugin/include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/gb235/libstagefright/Makefile.in
+++ b/media/omx-plugin/lib/gb235/libstagefright/Makefile.in
@@ -7,17 +7,14 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		$(NULL)
--- a/media/omx-plugin/lib/gb235/libstagefright/moz.build
+++ b/media/omx-plugin/lib/gb235/libstagefright/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'stagefright'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/gb',
     '/media/omx-plugin/include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/hc/libstagefright/Makefile.in
+++ b/media/omx-plugin/lib/hc/libstagefright/Makefile.in
@@ -7,17 +7,14 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/gb/libutils \
 		-lutils \
 		$(NULL)
--- a/media/omx-plugin/lib/hc/libstagefright/moz.build
+++ b/media/omx-plugin/lib/hc/libstagefright/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'stagefright'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/gb',
     '/media/omx-plugin/include/gb/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/ics/libstagefright/Makefile.in
+++ b/media/omx-plugin/lib/ics/libstagefright/Makefile.in
@@ -7,17 +7,14 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 EXTRA_DSO_LDOPTS += \
 		-L$(DEPTH)/media/omx-plugin/lib/ics/libutils \
 		-lutils \
 		$(NULL)
--- a/media/omx-plugin/lib/ics/libstagefright/moz.build
+++ b/media/omx-plugin/lib/ics/libstagefright/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'stagefright'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/ics',
     '/media/omx-plugin/include/ics/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
deleted file mode 100644
--- a/media/omx-plugin/lib/ics/libutils/Makefile.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2012 Mozilla Foundation and Mozilla contributors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
--- a/media/omx-plugin/lib/ics/libutils/moz.build
+++ b/media/omx-plugin/lib/ics/libutils/moz.build
@@ -14,8 +14,10 @@ LIBRARY_NAME = 'utils'
 
 FORCE_SHARED_LIB = True
 
 LOCAL_INCLUDES += [
     '/media/omx-plugin/include/ics',
     '/media/omx-plugin/include/ics/media/stagefright/openmax',
 ]
 
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/lib/ics/libvideoeditorplayer/Makefile.in
+++ b/media/omx-plugin/lib/ics/libvideoeditorplayer/Makefile.in
@@ -7,16 +7,13 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Don't use STL wrappers; this isn't Gecko code
-STL_FLAGS =
-
 include $(topsrcdir)/config/rules.mk
 
 INCLUDES        += \
                 -I$(topsrcdir)/media/omx-plugin/include/ics \
                 $(NULL)
--- a/media/omx-plugin/lib/ics/libvideoeditorplayer/moz.build
+++ b/media/omx-plugin/lib/ics/libvideoeditorplayer/moz.build
@@ -8,8 +8,11 @@ NO_DIST_INSTALL = True
 if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'gonk':
     SOURCES += [
         'libvideoeditorplayer.cpp',
     ]
 
 LIBRARY_NAME = 'videoeditorplayer'
 
 FORCE_SHARED_LIB = True
+
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/media/omx-plugin/moz.build
+++ b/media/omx-plugin/moz.build
@@ -48,8 +48,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk
              'frameworks/base/include/media/',
              'frameworks/base/include/media/stagefright/openmax',
              'frameworks/base/media/libstagefright/include',
              'frameworks/base/native/include',
              'system/core/include',
              'hardware/libhardware/include',
          ]
     ]
+
+# Don't use STL wrappers; this isn't Gecko code
+DISABLE_STL_WRAPPING = True
--- a/memory/build/replace_malloc.h
+++ b/memory/build/replace_malloc.h
@@ -49,17 +49,18 @@
  * Building a replace-malloc library is like rocket science. It can end up
  * with things blowing up, especially when trying to use complex types, and
  * even more especially when these types come from XPCOM or other parts of the
  * Mozilla codebase.
  * It is recommended to add the following to a replace-malloc implementation's
  * Makefile.in:
  *   MOZ_GLUE_LDFLAGS = # Don't link against mozglue
  *   WRAP_LDFLAGS = # Never wrap malloc function calls with -Wl,--wrap
- *   STL_FLAGS = # Avoid STL wrapping
+ * and the following to the implementation's moz.build:
+ *   DISABLE_STL_WRAPPING = True # Avoid STL wrapping
  *
  * If your replace-malloc implementation lives under memory/replace, these
  * are taken care of by memory/replace/defs.mk.
  */
 
 /* Implementing a replace-malloc library is incompatible with using mozalloc. */
 #define MOZ_NO_MOZALLOC 1
 
--- a/memory/mozalloc/Makefile.in
+++ b/memory/mozalloc/Makefile.in
@@ -1,17 +1,12 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS	=
-ifdef _MSC_VER
-STL_FLAGS	= -D_HAS_EXCEPTIONS=0
-endif
-
 DIST_INSTALL 	= 1
 
 ifneq (,$(filter WINNT,$(OS_ARCH)))
 SDK_LIBRARY = $(IMPORT_LIBRARY)
 else
 SDK_LIBRARY = $(SHARED_LIBRARY)
 endif
--- a/memory/mozalloc/moz.build
+++ b/memory/mozalloc/moz.build
@@ -17,16 +17,17 @@ if CONFIG['MOZ_MSVC_STL_WRAP__RAISE'] or
     build_msvc_wrappers = 1
 else:
     build_msvc_wrappers = 0
 
 if CONFIG['WRAP_STL_INCLUDES']:
     if CONFIG['GNU_CXX']:
         EXPORTS.mozilla += ['throw_gcc.h']
     elif CONFIG['_MSC_VER']:
+        DEFINES['_HAS_EXCEPTIONS'] = 0
         if build_msvc_wrappers:
             EXPORTS.mozilla += [
                 'msvc_raise_wrappers.h',
                 'msvc_throw_wrapper.h',
                 'throw_msvc.h',
             ]
             SOURCES += [
                 'msvc_raise_wrappers.cpp',
@@ -64,8 +65,10 @@ else:
     FORCE_SHARED_LIB = True
 
 # The strndup declaration in string.h is in an ifdef __USE_GNU section
 DEFINES['_GNU_SOURCE'] = True
 
 TEST_TOOL_DIRS += ['tests']
 
 GENERATED_INCLUDES += ['/xpcom']
+
+DISABLE_STL_WRAPPING = True
--- a/memory/replace/defs.mk
+++ b/memory/replace/defs.mk
@@ -1,3 +1,2 @@
 MOZ_GLUE_LDFLAGS = # Don't link against mozglue
 WRAP_LDFLAGS = # Never wrap malloc function calls with -Wl,--wrap
-STL_FLAGS = # Avoid STL wrapping
--- a/memory/replace/dmd/Makefile.in
+++ b/memory/replace/dmd/Makefile.in
@@ -2,13 +2,11 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Disable mozglue.
 WRAP_LDFLAGS 	=
 MOZ_GLUE_LDFLAGS=
 
-STL_FLAGS 	=
-
 ifeq ($(OS_ARCH),WINNT)
 OS_LIBS         += $(call EXPAND_LIBNAME,dbghelp)
 endif
--- a/memory/replace/dmd/moz.build
+++ b/memory/replace/dmd/moz.build
@@ -21,8 +21,10 @@ SOURCES += [
 LIBRARY_NAME = 'dmd'
 
 FORCE_SHARED_LIB = True
 
 DEFINES['MOZ_NO_MOZALLOC'] = True
 
 if CONFIG['MOZ_OPTIMIZE']:
     DEFINES['MOZ_OPTIMIZE'] = True
+
+DISABLE_STL_WRAPPING = True
--- a/memory/replace/dummy/moz.build
+++ b/memory/replace/dummy/moz.build
@@ -7,8 +7,10 @@ NO_DIST_INSTALL = True
 
 SOURCES += [
     'dummy_replace_malloc.c',
 ]
 
 LIBRARY_NAME = 'replace_malloc'
 
 FORCE_SHARED_LIB = True
+
+DISABLE_STL_WRAPPING = True
--- a/memory/replace/jemalloc/moz.build
+++ b/memory/replace/jemalloc/moz.build
@@ -23,8 +23,10 @@ LIBRARY_NAME = 'replace_jemalloc'
 FORCE_SHARED_LIB = True
 
 DEFINES['MOZ_JEMALLOC3'] = True
 DEFINES['MOZ_REPLACE_JEMALLOC'] = True
 
 GENERATED_INCLUDES += ['../../jemalloc/src/include']
 if CONFIG['_MSC_VER']:
     LOCAL_INCLUDES += ['/memory/jemalloc/src/include/msvc_compat']
+
+DISABLE_STL_WRAPPING = True
--- a/memory/replace/moz.build
+++ b/memory/replace/moz.build
@@ -2,8 +2,10 @@
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Build jemalloc3 as a replace-malloc lib when building with mozjemalloc
 if not CONFIG['MOZ_JEMALLOC']:
     DIRS += ['jemalloc']
+
+DISABLE_STL_WRAPPING = True
--- a/mfbt/Makefile.in
+++ b/mfbt/Makefile.in
@@ -1,5 +1,3 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-STL_FLAGS =
--- a/mfbt/moz.build
+++ b/mfbt/moz.build
@@ -84,8 +84,10 @@ UNIFIED_SOURCES = [
 DEFINES['IMPL_MFBT'] = True
 
 # Compression.cpp cannot be built in unified mode because it pulls in Windows system headers.
 # Decimal.cpp doesn't build in unified mode with gcc.
 SOURCES += [
     'Compression.cpp',
     'decimal/Decimal.cpp',
 ]
+
+DISABLE_STL_WRAPPING = True
--- a/mfbt/tests/Makefile.in
+++ b/mfbt/tests/Makefile.in
@@ -1,14 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS =
-
 # in order to prevent rules.mk from trying to link to libraries that are
 # not available to MFBT, we have to reset these MOZ_GLUE*_LDFLAGS before including it
 # and LIBS_ after including it. For WRAP_LDFLAGS, it shouldn't matter.
 # See later comments in bug 732875.
 
 MOZ_GLUE_PROGRAM_LDFLAGS=
 MOZ_GLUE_LDFLAGS =
 WRAP_LDFLAGS=
--- a/mfbt/tests/moz.build
+++ b/mfbt/tests/moz.build
@@ -24,8 +24,10 @@ CPP_UNIT_TESTS += [
 
 if not CONFIG['MOZ_ASAN']:
     CPP_UNIT_TESTS += [
         'TestPoisonArea.cpp',
     ]
 
 # Since we link directly with MFBT object files, define IMPL_MFBT
 DEFINES['IMPL_MFBT'] = True
+
+DISABLE_STL_WRAPPING = True
--- a/mobile/android/app/Makefile.in
+++ b/mobile/android/app/Makefile.in
@@ -3,18 +3,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 dist_dest = $(DIST)/$(APP_NAME).app
 
 PREF_JS_EXPORTS = $(srcdir)/mobile.js
 
 ifndef LIBXUL_SDK
 ifneq (Android,$(OS_TARGET))
-STL_FLAGS=
-
 LIBS += \
   $(XPCOM_STANDALONE_GLUE_LDOPTS) \
   $(NULL)
 
 endif
 endif #LIBXUL_SDK
 
 # Make sure the standalone glue doesn't try to get libxpcom.so from mobile/app.
--- a/mobile/android/app/moz.build
+++ b/mobile/android/app/moz.build
@@ -9,16 +9,17 @@ if not CONFIG['LIBXUL_SDK']:
         PROGRAM = CONFIG['MOZ_APP_NAME']
         DEFINES['XPCOM_GLUE'] = True
         GENERATED_INCLUDES += ['/build']
         LOCAL_INCLUDES += [
             '/toolkit/xre',
             '/xpcom/base',
             '/xpcom/build',
         ]
+        DISABLE_STL_WRAPPING = True
 
 for var in ('APP_NAME', 'APP_VERSION'):
     DEFINES[var] = CONFIG['MOZ_%s' % var]
 
 for var in ('MOZ_UPDATER', 'MOZ_APP_UA_NAME'):
     DEFINES[var] = CONFIG[var]
 
 if CONFIG['MOZ_PKG_SPECIAL']:
--- a/mozglue/android/Makefile.in
+++ b/mozglue/android/Makefile.in
@@ -1,14 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS=
-
 include $(topsrcdir)/config/rules.mk
 
 prcpucfg.h: $(topsrcdir)/nsprpub/pr/include/md/_linux.cfg
 	cp $< $@
 
 $(OBJS): prcpucfg.h
 
 GARBAGE += \
--- a/mozglue/android/moz.build
+++ b/mozglue/android/moz.build
@@ -43,8 +43,10 @@ LOCAL_INCLUDES += [
     '/security/nss/lib/pki',
     '/security/nss/lib/smime',
     '/security/nss/lib/softoken',
     '/security/nss/lib/ssl',
     '/security/nss/lib/util',
     '/toolkit/components/startup',
     '/xpcom/build',
 ]
+
+DISABLE_STL_WRAPPING = True
--- a/mozglue/build/Makefile.in
+++ b/mozglue/build/Makefile.in
@@ -45,18 +45,16 @@ ifneq (,$(filter -DEFAULTLIB:mozcrt,$(MO
 NO_INSTALL_IMPORT_LIBRARY = 1
 endif
 
 
 EXTRA_DSO_LDOPTS += \
 	$(call EXPAND_LIBNAME,version) \
 	$(NULL)
 
-STL_FLAGS=
-
 endif
 
 ifeq (Darwin_1,$(OS_TARGET)_$(MOZ_REPLACE_MALLOC))
 EXTRA_DSO_LDOPTS += \
   -Wl,-U,_replace_init \
   -Wl,-U,_replace_malloc \
   -Wl,-U,_replace_posix_memalign \
   -Wl,-U,_replace_aligned_alloc \
--- a/mozglue/build/moz.build
+++ b/mozglue/build/moz.build
@@ -27,16 +27,17 @@ if CONFIG['OS_TARGET'] == 'Android':
         'BionicGlue.cpp',
     ]
 
 if CONFIG['OS_TARGET'] == 'WINNT':
     SOURCES += [
         'WindowsDllBlocklist.cpp',
     ]
     DEFFILE = 'mozglue.def'
+    DISABLE_STL_WRAPPING = True
 
 if CONFIG['MOZ_NUWA_PROCESS']:
     EXPORTS.ipc += [
         'Nuwa.h',
     ]
     SOURCES += [
         'Nuwa.cpp',
     ]
--- a/mozglue/linker/Makefile.in
+++ b/mozglue/linker/Makefile.in
@@ -1,14 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS =
-
 HOST_LIBS = -lz
 
 include $(topsrcdir)/config/rules.mk
 
 ifeq (arm,$(TARGET_CPU))
 ifdef MOZ_THUMB2
 HOST_CXXFLAGS += -DTARGET_THUMB
 else
--- a/mozglue/linker/moz.build
+++ b/mozglue/linker/moz.build
@@ -19,8 +19,10 @@ HOST_SOURCES += [
     'szip.cpp',
 ]
 
 HOST_PROGRAM = 'szip'
 
 FINAL_LIBRARY = 'mozglue'
 
 DEFINES['IMPL_MFBT'] = True
+
+DISABLE_STL_WRAPPING = True
--- a/mozglue/tests/Makefile.in
+++ b/mozglue/tests/Makefile.in
@@ -1,15 +1,13 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
 ifdef MOZ_LINKER
-STL_FLAGS =
-
 # Only link against the linker, not mozglue
 MOZ_GLUE_PROGRAM_LDFLAGS =
 MOZ_GLUE_LDFLAGS =
 LIBS += $(call EXPAND_LIBNAME_PATH,linker,../linker)
 
 EXTRA_LIBS = $(MOZ_ZLIB_LIBS)
 endif
 
--- a/mozglue/tests/moz.build
+++ b/mozglue/tests/moz.build
@@ -10,8 +10,9 @@ if CONFIG['MOZ_LINKER']:
     SOURCES += [
         'ShowSSEConfig.cpp',
         'TestZip.cpp',
     ]
     SIMPLE_PROGRAMS += [
         'TestZip',
     ]
     LOCAL_INCLUDES += ['../linker']
+    DISABLE_STL_WRAPPING = True
deleted file mode 100644
--- a/profile/dirserviceprovider/src/Makefile.in
+++ /dev/null
@@ -1,7 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-include $(topsrcdir)/config/rules.mk
-
-STL_FLAGS =
--- a/profile/dirserviceprovider/src/moz.build
+++ b/profile/dirserviceprovider/src/moz.build
@@ -8,8 +8,10 @@ UNIFIED_SOURCES += ['nsProfileDirService
 if CONFIG['MOZ_PROFILELOCKING']:
     UNIFIED_SOURCES += ['nsProfileLock.cpp']
 
 LIBRARY_NAME = 'profdirserviceprovidersa_s'
 
 FORCE_STATIC_LIB = True
 
 DEFINES['XPCOM_GLUE'] = 1
+
+DISABLE_STL_WRAPPING = True
--- a/python/mozbuild/mozbuild/frontend/emitter.py
+++ b/python/mozbuild/mozbuild/frontend/emitter.py
@@ -212,16 +212,17 @@ class TreeMetadataEmitter(LoggingMixin):
         # Proxy some variables as-is until we have richer classes to represent
         # them. We should aim to keep this set small because it violates the
         # desired abstraction of the build definition away from makefiles.
         passthru = VariablePassthru(sandbox)
         varlist = [
             'ANDROID_GENERATED_RESFILES',
             'ANDROID_RES_DIRS',
             'CPP_UNIT_TESTS',
+            'DISABLE_STL_WRAPPING',
             'EXPORT_LIBRARY',
             'EXTRA_ASSEMBLER_FLAGS',
             'EXTRA_COMPILE_FLAGS',
             'EXTRA_COMPONENTS',
             'EXTRA_JS_MODULES',
             'EXTRA_PP_COMPONENTS',
             'EXTRA_PP_JS_MODULES',
             'FAIL_ON_WARNINGS',
--- a/python/mozbuild/mozbuild/frontend/sandbox_symbols.py
+++ b/python/mozbuild/mozbuild/frontend/sandbox_symbols.py
@@ -173,16 +173,21 @@ VARIABLES = {
         and read the frontend file there. If there is no frontend file, an error
         is raised.
 
         Values are relative paths. They can be multiple directory levels
         above or below. Use ``..`` for parent directories and ``/`` for path
         delimiters.
         """, None),
 
+    'DISABLE_STL_WRAPPING': (bool, bool,
+        """Disable the wrappers for STL which allow it to work with C++ exceptions
+        disabled.
+        """, 'binaries'),
+
     'EXPORT_LIBRARY': (bool, bool,
         """Install the library to the static libraries folder.
         """, None),
 
     'EXTRA_COMPONENTS': (StrictOrderingOnAppendList, list,
         """Additional component files to distribute.
 
        This variable contains a list of files to copy into
--- a/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build
+++ b/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build
@@ -42,8 +42,10 @@ RCINCLUDE = 'bar.rc'
 DEFFILE = 'baz.def'
 
 USE_STATIC_LIBS = True
 
 CFLAGS += ['-fno-exceptions', '-w']
 CXXFLAGS += ['-fcxx-exceptions', '-include foo.h']
 LDFLAGS += ['-framework Foo', '-x']
 WIN32_EXE_LDFLAGS += ['-subsystem:console']
+
+DISABLE_STL_WRAPPING = True
--- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
+++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
@@ -264,16 +264,19 @@ class TestRecursiveMakeBackend(BackendTe
             ],
             'CPP_UNIT_TESTS': [
                 'CPP_UNIT_TESTS += foo.cpp',
             ],
             'CSRCS': [
                 'CSRCS += bar.c',
                 'CSRCS += foo.c',
             ],
+            'DISABLE_STL_WRAPPING': [
+                'DISABLE_STL_WRAPPING := 1',
+            ],
             'EXTRA_COMPONENTS': [
                 'EXTRA_COMPONENTS += bar.js',
                 'EXTRA_COMPONENTS += foo.js',
             ],
             'EXTRA_PP_COMPONENTS': [
                 'EXTRA_PP_COMPONENTS += bar.pp.js',
                 'EXTRA_PP_COMPONENTS += foo.pp.js',
             ],
--- a/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build
+++ b/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build
@@ -48,8 +48,10 @@ RCINCLUDE = 'bar.rc'
 DEFFILE = 'baz.def'
 
 USE_STATIC_LIBS = True
 
 CFLAGS += ['-fno-exceptions', '-w']
 CXXFLAGS += ['-fcxx-exceptions', '-include foo.h']
 LDFLAGS += ['-framework Foo', '-x']
 WIN32_EXE_LDFLAGS += ['-subsystem:console']
+
+DISABLE_STL_WRAPPING = True
--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
@@ -146,16 +146,17 @@ class TestEmitterBasic(unittest.TestCase
         self.assertEqual(len(objs), 1)
         self.assertIsInstance(objs[0], VariablePassthru)
 
         wanted = dict(
             ASFILES=['fans.asm', 'tans.s'],
             CMMSRCS=['fans.mm', 'tans.mm'],
             CSRCS=['fans.c', 'tans.c'],
             CPP_UNIT_TESTS=['foo.cpp'],
+            DISABLE_STL_WRAPPING=True,
             EXPORT_LIBRARY=True,
             EXTRA_COMPONENTS=['fans.js', 'tans.js'],
             EXTRA_PP_COMPONENTS=['fans.pp.js', 'tans.pp.js'],
             EXTRA_JS_MODULES=['bar.jsm', 'foo.jsm'],
             EXTRA_PP_JS_MODULES=['bar.pp.jsm', 'foo.pp.jsm'],
             FAIL_ON_WARNINGS=True,
             FORCE_SHARED_LIB=True,
             HOST_CPPSRCS=['fans.cpp', 'tans.cpp'],
--- a/security/sandbox/Makefile.in
+++ b/security/sandbox/Makefile.in
@@ -1,10 +1,9 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 ifeq ($(OS_ARCH),WINNT)
-STL_FLAGS =
 MOZ_GLUE_LDFLAGS =
 endif
 
 include $(topsrcdir)/config/rules.mk
--- a/security/sandbox/moz.build
+++ b/security/sandbox/moz.build
@@ -123,8 +123,10 @@ elif CONFIG['OS_ARCH'] == 'WINNT':
     for var in ('UNICODE', '_UNICODE', 'NS_NO_XPCOM', 'SANDBOX_EXPORTS',
                 'NOMINMAX', '_CRT_RAND_S', 'CHROMIUM_SANDBOX_BUILD'):
         DEFINES[var] = True
 
     LOCAL_INCLUDES += ['/security/sandbox/chromium/base/shim']
     LOCAL_INCLUDES += ['/security/sandbox/chromium']
     LOCAL_INCLUDES += ['/security']
     LOCAL_INCLUDES += ['/nsprpub']
+
+    DISABLE_STL_WRAPPING = True
--- a/security/sandbox/win/src/sandboxbroker/Makefile.in
+++ b/security/sandbox/win/src/sandboxbroker/Makefile.in
@@ -1,13 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 MOZ_GLUE_LDFLAGS =
-STL_FLAGS =
 
 SHARED_LIBRARY_LIBS += \
 	../../../$(LIB_PREFIX)sandbox_s.$(LIB_SUFFIX) \
 	$(NSPR_LIBS) \
 	$(NULL)
 
 OS_LIBS += $(call EXPAND_LIBNAME,dbghelp)
--- a/security/sandbox/win/src/sandboxbroker/moz.build
+++ b/security/sandbox/win/src/sandboxbroker/moz.build
@@ -22,8 +22,9 @@ for var in ('UNICODE', '_UNICODE', 'NS_N
     DEFINES[var] = True
 
 LOCAL_INCLUDES += [
     '/security',
     '/security/sandbox',
     '/security/sandbox/chromium',
 ]
 
+DISABLE_STL_WRAPPING = True
--- a/testing/mochitest/ssltunnel/Makefile.in
+++ b/testing/mochitest/ssltunnel/Makefile.in
@@ -1,14 +1,10 @@
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-# This isn't XPCOM code, but it wants to use STL, so disable the STL
-# wrappers
-STL_FLAGS =
-
 LIBS = \
   $(NSPR_LIBS) \
   $(NSS_LIBS) \
   $(MOZALLOC_LIB) \
   $(NULL)
--- a/testing/mochitest/ssltunnel/moz.build
+++ b/testing/mochitest/ssltunnel/moz.build
@@ -4,8 +4,12 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 PROGRAM = 'ssltunnel'
 
 SOURCES += [
     'ssltunnel.cpp',
 ]
+
+# This isn't XPCOM code, but it wants to use STL, so disable the STL
+# wrappers
+DISABLE_STL_WRAPPING = True
--- a/toolkit/components/maintenanceservice/Makefile.in
+++ b/toolkit/components/maintenanceservice/Makefile.in
@@ -3,17 +3,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIST_PROGRAM = maintenanceservice$(BIN_SUFFIX)
 
 # Don't link the maintenanceservice against mozglue.dll. See bug 687139 and
 # bug 725876
 MOZ_GLUE_LDFLAGS =
 MOZ_GLUE_PROGRAM_LDFLAGS =
-STL_FLAGS=
 
 ifeq ($(OS_ARCH),WINNT)
 LIBS += $(call EXPAND_LIBNAME_PATH,updatecommon-standalone,../../mozapps/update/common-standalone)
 else
 LIBS += $(call EXPAND_LIBNAME_PATH,updatecommon,../../mozapps/update/common)
 endif
 
 OS_LIBS += $(call EXPAND_LIBNAME,comctl32 ws2_32 shell32)
--- a/toolkit/components/maintenanceservice/moz.build
+++ b/toolkit/components/maintenanceservice/moz.build
@@ -29,8 +29,10 @@ LOCAL_INCLUDES += [
 ]
 
 USE_STATIC_LIBS = True
 
 if CONFIG['_MSC_VER']:
     WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
 
 RCINCLUDE = 'maintenanceservice.rc'
+
+DISABLE_STL_WRAPPING = True
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-windows-libxul/Makefile.in
+++ /dev/null
@@ -1,5 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-STL_FLAGS =
--- a/toolkit/crashreporter/breakpad-windows-libxul/moz.build
+++ b/toolkit/crashreporter/breakpad-windows-libxul/moz.build
@@ -23,8 +23,10 @@ include('/toolkit/crashreporter/google-b
 include('/toolkit/crashreporter/google-breakpad/src/client/windows/handler/objs.mozbuild')
 include('/toolkit/crashreporter/google-breakpad/src/client/windows/sender/objs.mozbuild')
 include('/toolkit/crashreporter/google-breakpad/src/client/windows/crash_generation/objs.mozbuild')
 
 SOURCES += objs_common
 SOURCES += objs_crash_generation
 SOURCES += objs_handler
 SOURCES += objs_sender
+
+DISABLE_STL_WRAPPING = True
--- a/toolkit/crashreporter/breakpad-windows-standalone/Makefile.in
+++ b/toolkit/crashreporter/breakpad-windows-standalone/Makefile.in
@@ -1,7 +1,5 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MOZ_GLUE_LDFLAGS =
-
-STL_FLAGS =
--- a/toolkit/crashreporter/breakpad-windows-standalone/moz.build
+++ b/toolkit/crashreporter/breakpad-windows-standalone/moz.build
@@ -17,8 +17,10 @@ include('/toolkit/crashreporter/google-b
 include('/toolkit/crashreporter/google-breakpad/src/client/windows/handler/objs.mozbuild')
 include('/toolkit/crashreporter/google-breakpad/src/client/windows/crash_generation/objs.mozbuild')
 
 SOURCES += objs_common
 SOURCES += objs_crash_generation
 SOURCES += objs_handler
 
 USE_STATIC_LIBS = True
+
+DISABLE_STL_WRAPPING = True
--- a/toolkit/crashreporter/client/Makefile.in
+++ b/toolkit/crashreporter/client/Makefile.in
@@ -1,17 +1,13 @@
 # vim:set ts=8 sw=8 sts=8 noet:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-# Don't use the STL wrappers in the crashreporter clients; they don't
-# link with -lmozalloc, and it really doesn't matter here anyway.
-STL_FLAGS =
-
 ifneq ($(OS_TARGET),Android)
 DIST_PROGRAM = crashreporter$(BIN_SUFFIX)
 
 # Don't link the updater against libmozglue.
 MOZ_GLUE_LDFLAGS =
 MOZ_GLUE_PROGRAM_LDFLAGS =
 endif
 
--- a/toolkit/crashreporter/client/moz.build
+++ b/toolkit/crashreporter/client/moz.build
@@ -39,8 +39,12 @@ elif CONFIG['OS_ARCH'] == 'SunOS':
 if CONFIG['MOZ_ENABLE_GTK']:
     UNIFIED_SOURCES += [
         'crashreporter_gtk_common.cpp',
         'crashreporter_linux.cpp',
         'crashreporter_unix_common.cpp'
     ]
 
 RCINCLUDE = 'crashreporter.rc'
+
+# Don't use the STL wrappers in the crashreporter clients; they don't
+# link with -lmozalloc, and it really doesn't matter here anyway.
+DISABLE_STL_WRAPPING = True
--- a/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
+++ b/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
@@ -5,9 +5,9 @@
 ifneq (Android,$(OS_TARGET))
 else
 TARGET_LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/crashreporter/google-breakpad/src/common/android/include/
 endif
 
 include $(topsrcdir)/config/rules.mk
 
 # See https://bugzilla.mozilla.org/show_bug.cgi?id=741348#c11
-file_id.$(OBJ_SUFFIX): STL_FLAGS=
+file_id.$(OBJ_SUFFIX): DISABLE_STL_WRAPPING := 1
--- a/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
+++ b/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
@@ -7,17 +7,17 @@
 UNIFIED_SOURCES += [
     'elfutils.cc',
     'guid_creator.cc',
     'linux_libc_support.cc',
     'memory_mapped_file.cc',
     'safe_readlink.cc',
 ]
 
-# file_id.cc cannot be built in unified mode because it uses a custom STL_FLAGS
+# file_id.cc cannot be built in unified mode because it uses a custom DISABLE_STL_WRAPPING
 SOURCES += [
     'file_id.cc',
 ]
 
 if CONFIG['OS_TARGET'] != 'Android':
     UNIFIED_SOURCES += [
         'http_upload.cc',
     ]
--- a/toolkit/crashreporter/injector/Makefile.in
+++ b/toolkit/crashreporter/injector/Makefile.in
@@ -1,8 +1,7 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS =
 MOZ_GLUE_LDFLAGS =
 
 include $(topsrcdir)/config/rules.mk
--- a/toolkit/crashreporter/injector/moz.build
+++ b/toolkit/crashreporter/injector/moz.build
@@ -19,8 +19,10 @@ LOCAL_INCLUDES += [
 ]
 
 USE_STATIC_LIBS = True
 
 if CONFIG['GNU_CC']:
     LDFLAGS += ['-Wl,-e,_DummyEntryPoint@12']
 else:
     LDFLAGS += ['-ENTRY:DummyEntryPoint']
+
+DISABLE_STL_WRAPPING = True
--- a/toolkit/mozapps/update/updater/Makefile.in
+++ b/toolkit/mozapps/update/updater/Makefile.in
@@ -28,17 +28,16 @@ OS_CXXFLAGS += $(TK_CFLAGS)
 OS_LIBS += $(TK_LIBS)
 endif
 
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 OS_LIBS += -framework Cocoa
 endif
 
 ifeq (gonk,$(MOZ_WIDGET_TOOLKIT)) #{
-STL_FLAGS =
 OS_LIBS += -lcutils -lsysutils
 # clear out all the --wrap flags and remove dependency on mozglue for Gonk
 WRAP_LDFLAGS :=
 endif #}
 
 ifndef MOZ_WINCONSOLE
 ifdef MOZ_DEBUG
 MOZ_WINCONSOLE = 1
--- a/toolkit/mozapps/update/updater/moz.build
+++ b/toolkit/mozapps/update/updater/moz.build
@@ -39,16 +39,17 @@ if CONFIG['MOZ_ENABLE_GTK']:
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     have_progressui = 1
 elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
     have_progressui = 1
     SOURCES += [
         'automounter_gonk.cpp',
         'progressui_gonk.cpp',
     ]
+    DISABLE_STL_WRAPPING = True
 
 if have_progressui == 0:
     SOURCES += [
         'progressui_null.cpp',
     ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     SOURCES += [
deleted file mode 100644
--- a/tools/trace-malloc/lib/Makefile.in
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-STL_FLAGS	=
--- a/tools/trace-malloc/lib/moz.build
+++ b/tools/trace-malloc/lib/moz.build
@@ -25,8 +25,10 @@ if CONFIG['OS_ARCH'] == 'WINNT':
 FINAL_LIBRARY = 'xpcom_core'
 
 if CONFIG['WRAP_SYSTEM_INCLUDES']:
     DEFINES['WRAP_SYSTEM_INCLUDES'] = True
 
 DEFINES['MOZ_NO_MOZALLOC'] = True
 
 DEFFILE = SRCDIR + '/tm.def'
+
+DISABLE_STL_WRAPPING = True
--- a/webapprt/gtk2/Makefile.in
+++ b/webapprt/gtk2/Makefile.in
@@ -1,14 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
-STL_FLAGS=
-
 LIBS = \
   $(XPCOM_STANDALONE_GLUE_LDOPTS) \
   $(MOZ_GTK2_LIBS) \
   $(NULL)
 
 NSDISTMODE = copy
 
 PROGRAMS_DEST = $(DIST)/bin
--- a/webapprt/gtk2/moz.build
+++ b/webapprt/gtk2/moz.build
@@ -15,8 +15,10 @@ FAIL_ON_WARNINGS = True
 DEFINES['XPCOM_GLUE'] = True
 
 GENERATED_INCLUDES += ['/build']
 LOCAL_INCLUDES += [
     '/toolkit/xre',
     '/xpcom/base',
     '/xpcom/build',
 ]
+
+DISABLE_STL_WRAPPING = True
--- a/webapprt/mac/Makefile.in
+++ b/webapprt/mac/Makefile.in
@@ -6,18 +6,16 @@
 # shouldn't get 755 perms need $(IFLAGS1) for either way of calling nsinstall.
 NSDISTMODE = copy
 
 # Don't create a dependency on mozglue, which is impossible (difficult?)
 # to dynamically link into our executable, as we copy it to arbitrary locations.
 MOZ_GLUE_LDFLAGS =
 MOZ_GLUE_PROGRAM_LDFLAGS =
 
-STL_FLAGS=
-
 LIBS = \
   $(XPCOM_STANDALONE_GLUE_LDOPTS) \
   $(NULL)
 
 PROGRAMS_DEST = $(DIST)/bin
 
 include $(topsrcdir)/config/rules.mk
 
--- a/webapprt/mac/moz.build
+++ b/webapprt/mac/moz.build
@@ -13,8 +13,10 @@ SOURCES += [
 DEFINES['XPCOM_GLUE'] = True
 
 GENERATED_INCLUDES += ['/build']
 LOCAL_INCLUDES += [
     '/toolkit/xre',
     '/xpcom/base',
     '/xpcom/build',
 ]
+
+DISABLE_STL_WRAPPING = True
--- a/webapprt/win/Makefile.in
+++ b/webapprt/win/Makefile.in
@@ -1,18 +1,16 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Don't create a dependency on mozglue, which is impossible (difficult?)
 # to dynamically link into our executable, as we copy it to arbitrary locations.
 MOZ_GLUE_LDFLAGS =
 
-STL_FLAGS=
-
 LIBS = \
   $(XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS) \
   $(NULL)
 
 ifndef MOZ_WINCONSOLE
 ifdef MOZ_DEBUG
 MOZ_WINCONSOLE = 1
 else
--- a/webapprt/win/moz.build
+++ b/webapprt/win/moz.build
@@ -36,8 +36,10 @@ if CONFIG['_MSC_VER']:
 # The default heap size is 1MB on Win32.
 # The heap will grow if need be.
 #
 # Set it to 256k.  See bug 127069.
 if not CONFIG['GNU_CC']:
     LDFLAGS += ['/HEAP:0x40000']
 
 RCINCLUDE = 'webapprt.rc'
+
+DISABLE_STL_WRAPPING = True
--- a/widget/gonk/libdisplay/Makefile.in
+++ b/widget/gonk/libdisplay/Makefile.in
@@ -7,18 +7,16 @@
 #     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-STL_FLAGS=
-
 include $(topsrcdir)/config/rules.mk
 
 CXXFLAGS += \
 	-I$(ANDROID_SOURCE)/hardware/libhardware/include \
 	-I$(ANDROID_SOURCE)/hardware/libhardware_legacy/include \
 	-I$(ANDROID_SOURCE)/frameworks/native/include/gui \
 	-I$(ANDROID_SOURCE)/frameworks/native/opengl/include \
 	-I$(ANDROID_SOURCE)/system/core/libsuspend/include \
--- a/widget/gonk/libdisplay/moz.build
+++ b/widget/gonk/libdisplay/moz.build
@@ -38,8 +38,10 @@ elif CONFIG['ANDROID_VERSION'] and CONFI
 
 LIBRARY_NAME = 'display'
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FORCE_STATIC_LIB = True
 
 DEFINES['XPCOM_GLUE'] = True
+
+DISABLE_STL_WRAPPING = True
deleted file mode 100644
--- a/widget/gonk/nativewindow/Makefile.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2013 Mozilla Foundation and Mozilla contributors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-STL_FLAGS=
-
-include $(topsrcdir)/config/rules.mk
--- a/widget/gonk/nativewindow/moz.build
+++ b/widget/gonk/nativewindow/moz.build
@@ -69,8 +69,10 @@ if CONFIG['MOZ_B2G_CAMERA'] or CONFIG['M
             'FakeSurfaceComposer.cpp',
         ]
 
 FAIL_ON_WARNINGS = True
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
+
+DISABLE_STL_WRAPPING = True
--- a/xpcom/glue/nomozalloc/Makefile.in
+++ b/xpcom/glue/nomozalloc/Makefile.in
@@ -1,18 +1,15 @@
 # vim:set ts=8 sw=8 sts=8 noet:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 DIST_INSTALL	= 1
 
-# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
-STL_FLAGS       =
-
 include $(topsrcdir)/config/rules.mk
 
 ifdef _MSC_VER
 # Don't include directives about which CRT to use
 OS_COMPILE_CXXFLAGS += -Zl
 OS_COMPILE_CFLAGS += -Zl
 endif
--- a/xpcom/glue/nomozalloc/moz.build
+++ b/xpcom/glue/nomozalloc/moz.build
@@ -34,8 +34,11 @@ DEFINES['MOZ_NO_MOZALLOC'] = True
 LOCAL_INCLUDES += [
     '../../build',
 ]
 
 # Pretend we're statically linking the CRT, even though we might not be: this
 # avoids "msvcrp" and assembly dependencies from creeping into the directives
 # for this library on Windows.
 USE_STATIC_LIBS = True
+
+# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
+DISABLE_STL_WRAPPING = True
--- a/xpcom/glue/standalone/Makefile.in
+++ b/xpcom/glue/standalone/Makefile.in
@@ -1,18 +1,15 @@
 # vim:set ts=8 sw=8 sts=8 noet:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 DIST_INSTALL	= 1
 
-# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
-STL_FLAGS	=
-
 include $(topsrcdir)/config/rules.mk
 
 ifdef _MSC_VER
 # Don't include directives in obj files about which CRT to use
 OS_COMPILE_CXXFLAGS += -Zl
 OS_COMPILE_CFLAGS += -Zl
 endif
--- a/xpcom/glue/standalone/moz.build
+++ b/xpcom/glue/standalone/moz.build
@@ -37,8 +37,10 @@ DEFINES['XPCOM_GLUE'] = True
 
 if CONFIG['TARGET_XPCOM_ABI']:
     DEFINES['TARGET_XPCOM_ABI'] = '"%s"' % CONFIG['TARGET_XPCOM_ABI']
 
 LOCAL_INCLUDES += [
     '../../build',
 ]
 
+# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
+DISABLE_STL_WRAPPING = True
--- a/xpcom/glue/standalone/staticruntime/Makefile.in
+++ b/xpcom/glue/standalone/staticruntime/Makefile.in
@@ -1,17 +1,14 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 DIST_INSTALL	= 1
 
-# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
-STL_FLAGS	=
-
 include $(topsrcdir)/config/rules.mk
 
 ifdef _MSC_VER
 # Don't include directives in obj files about which CRT to use
 OS_COMPILE_CXXFLAGS += -Zl
 OS_COMPILE_CFLAGS += -Zl
 endif
--- a/xpcom/glue/standalone/staticruntime/moz.build
+++ b/xpcom/glue/standalone/staticruntime/moz.build
@@ -31,8 +31,11 @@ if CONFIG['TARGET_XPCOM_ABI']:
     DEFINES['TARGET_XPCOM_ABI'] = '"%s"' % CONFIG['TARGET_XPCOM_ABI']
 
 LOCAL_INCLUDES += [
     '../../../build',
 ]
 
 # Statically link to the CRT on Windows
 USE_STATIC_LIBS = True
+
+# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
+DISABLE_STL_WRAPPING = True
--- a/xpcom/glue/staticruntime/Makefile.in
+++ b/xpcom/glue/staticruntime/Makefile.in
@@ -1,18 +1,15 @@
 # vim:set ts=8 sw=8 sts=8 noet:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 DIST_INSTALL	= 1
 
-# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
-STL_FLAGS	=
-
 include $(topsrcdir)/config/rules.mk
 
 ifdef _MSC_VER
 # Don't include directives about which CRT to use
 OS_COMPILE_CXXFLAGS += -Zl
 OS_COMPILE_CFLAGS += -Zl
 endif
--- a/xpcom/glue/staticruntime/moz.build
+++ b/xpcom/glue/staticruntime/moz.build
@@ -29,8 +29,11 @@ if CONFIG['TARGET_XPCOM_ABI']:
     DEFINES['TARGET_XPCOM_ABI'] = '"%s"' % CONFIG['TARGET_XPCOM_ABI']
 
 LOCAL_INCLUDES += [
     '../../build',
 ]
 
 # Statically link to the CRT on Windows
 USE_STATIC_LIBS = True
+
+# Don't use STL wrappers here (i.e. wrapped <new>); they require mozalloc
+DISABLE_STL_WRAPPING = True
--- a/xulrunner/app/Makefile.in
+++ b/xulrunner/app/Makefile.in
@@ -3,18 +3,16 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 PREF_JS_EXPORTS = $(srcdir)/xulrunner.js
 GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js)
 
 DEFINES += -DAB_CD=$(AB_CD)
 
-STL_FLAGS=
-
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 TK_LIBS := -framework Cocoa $(TK_LIBS)
 endif
 
 LIBS += \
   $(XPCOM_STANDALONE_GLUE_LDOPTS) \
   $(NULL)
 
--- a/xulrunner/app/moz.build
+++ b/xulrunner/app/moz.build
@@ -40,8 +40,10 @@ if CONFIG['_MSC_VER']:
 # The heap will grow if need be.
 #
 # Set it to 256k.  See bug 127069.
 if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
     LDFLAGS += ['/HEAP:0x40000']
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     RCINCLUDE = 'splash.rc'
+
+DISABLE_STL_WRAPPING = True
--- a/xulrunner/stub/Makefile.in
+++ b/xulrunner/stub/Makefile.in
@@ -1,17 +1,15 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Don't create a dependency on mozglue
 MOZ_GLUE_LDFLAGS =
 
-STL_FLAGS=
-
 LIBS = \
   $(XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS) \
   $(NULL)
 
 # Need to link with CoreFoundation on Mac
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 LIBS            += \
 		$(TK_LIBS) \
--- a/xulrunner/stub/moz.build
+++ b/xulrunner/stub/moz.build
@@ -32,8 +32,10 @@ if CONFIG['OS_ARCH'] == 'WINNT':
     LOCAL_INCLUDES += ['/toolkit/xre']
 
 if CONFIG['_MSC_VER']:
     WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     DEFINES['MOZ_XULRUNNER'] = True
     RCINCLUDE = 'xulrunner-stub.rc'
+
+DISABLE_STL_WRAPPING = True