author Nathan Froyd <>
Wed, 15 Nov 2017 14:53:16 -0400
changeset 443801 402cad93aa6ece010f3c834b9d20e431c4ee8f8b
parent 406638 faae5fbdd01ddaf171810c446a645ea00085aa54
child 508167 67b2bddb5884ec728f0887eedf2caa05a28feca2
permissions -rw-r--r--
Bug 1325632 - part 5 - ensure that we compile with -fno-sized-deallocation when possible; r=chmanchester We currently turn off the C++14 sized-deallocation facility on MSVC, and we'd like to ensure we do the same thing for clang and gcc. To do so, we add new functionality to moz.configure for checking and adding compilation flags, similar to the facility for checking and adding warning flags. The newly added facility is then used to add -fno-sized-deallocation to the compilation flags, when the option is supported. Once we do this, we can't define the sized deallocation functions in mozalloc.h; the compiler will complain that we are using -fno-sized-deallocation, yet defining these special functions that we'll never use. These functions were added for MinGW, where we needed to compile with C++14 ahead of other platforms to be compatible with MSVC headers. But they're no longer necessary, though they would be if we removed -fno-sized-deallocation; the compiler will complain if we do that and we'll add them back at that point.

dnl Local autoconf macros used with mozilla
dnl The contents of this file are under the Public Domain.

builtin(include, build/autoconf/hotfixes.m4)dnl
builtin(include, build/autoconf/acwinpaths.m4)dnl
builtin(include, build/autoconf/hooks.m4)dnl
builtin(include, build/autoconf/config.status.m4)dnl
builtin(include, build/autoconf/toolchain.m4)dnl
builtin(include, build/autoconf/nspr.m4)dnl
builtin(include, build/autoconf/nspr-build.m4)dnl
builtin(include, build/autoconf/nss.m4)dnl
builtin(include, build/autoconf/pkg.m4)dnl
builtin(include, build/autoconf/codeset.m4)dnl
builtin(include, build/autoconf/altoptions.m4)dnl
builtin(include, build/autoconf/mozprog.m4)dnl
builtin(include, build/autoconf/mozheader.m4)dnl
builtin(include, build/autoconf/lto.m4)dnl
builtin(include, build/autoconf/frameptr.m4)dnl
builtin(include, build/autoconf/compiler-opts.m4)dnl
builtin(include, build/autoconf/expandlibs.m4)dnl
builtin(include, build/autoconf/arch.m4)dnl
builtin(include, build/autoconf/android.m4)dnl
builtin(include, build/autoconf/zlib.m4)dnl
builtin(include, build/autoconf/icu.m4)dnl
builtin(include, build/autoconf/clang-plugin.m4)dnl
builtin(include, build/autoconf/alloc.m4)dnl
builtin(include, build/autoconf/ios.m4)dnl
builtin(include, build/autoconf/sanitize.m4)dnl


# Read the user's .mozconfig script.  We can't do this in
# autoconf puts the argument parsing code above anything
# expanded from, and we need to get the configure options
# from .mozconfig in place before that argument parsing code.