The main changes are to the warnings, which are as follows.
- Kept -Wall.
- Part of -Wall or on by default; remove all mentions:
* -Waddress
* -Wchar-subscripts
* -Wcomment
* -Wconversion-null
* -Wendif-labels
* -Wenum-compare
* -Wimplicit-function-declaration
* -Wint-to-pointer-cast
* -Wmissing-braces
* -Wmultichar
* -Wnonnull
* -Wparentheses
* -Wpointer-sign
* -Wpointer-to-int-cast (C only)
* -Wreorder
* -Wreturn-type
* -Wsequence-point
* -Wsign-compare (C++ only)
* -Wswitch
* -Wtrigraphs
* -Wuninitialized
* -Wunknown-pragmas
* -Wunused-label
* -Wunused-value
* -Wwrite-strings (C++ only)
- Part of -Wextra; kept where present, added where missing:
* -Wempty-body
* -Wignored-qualifiers (not added for C++ code; many fixes needed to enable)
* -Wtype-limits
- Part of -pedantic; kept where present, added where missing:
* -pointer-arith
- C++ only, kept:
* -Wno-invalid-offsetof
* -Woverloaded-virtual
- Clang-only, kept:
* -Wnon-literal-null-conversion (affected by a clang bug; see the big comment
in the code)
* -Wrange-loop-analysis (C++ only)
* -Wno-unused-local-typedef
- This no longer exists? I kept it to be safe:
* -Winline-new-delete
A consequence of this is that, when --enable-warnings-as-errors is on, in
directories which have ALLOW_COMPILER_WARNINGS specified we no longer have any
fatal warnings. (We previously did have all the explicitly-mentioned
-Werror=foo ones.) This is a sensible change; if we are going to allow warnings
in a directory we should allow all of them, not just some of them.
Other changes:
- Some C warnings incorrectly used the CXX macros. Fixes that.
- Moves comments about warnings closer to the lines where they are defined, to
make it easier to keep the comments consistent with the code.
- Reorders things a little, e.g. so that all enabled warnings are before all
disabled warnings.
The C and C++ warnings are now very similar, in both configure.in and
js/src/configure.in.
Limit ourselves to include paths for now, because there are tricky things
involved in making this globally.
While here, use shell_quote instead of manual quoting for those paths.
This might seem like going in the opposite direction of what we tend to do
to move to moz.build land, but those flags are irrelevant in many situations
and are better separated out.
Bug 758595 added a MOZ_SIGNING AC_DEFINE, used in the package manifest for
mac builds. Bug 1047584 changed mac signing in a way that removed the use
of MOZ_SIGNING, but the AC_DEFINE was left in configure.in, where it is now
unused. Remove it.
When we build universal binaries, we effectively cross-compile
from 64 to 32 bit darwin. Check for this and add the appropriate
target triplet to the definition of RUSTC.
Move the MacOS X 10.6 linkage check to after HAVE_64BIT_BUILD is defined.
This patch introduces a background service for downloading content from a
catalog (bug 1200291). This catalog ships with the application and contains
only fonts in this first version (MOZ_ANDROID_EXCLUDE_FONTS).
For now this service is disabled by default (MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE).
For build speed, for correct line numbers in errors, for faster development, for so many reasons.
Still a couple of cases left mostly in XUL files for different strings on Windows.
Bonus: The new lexical scope means ADDON_SIGNING and REQUIRE_SIGNING can just
be declared as regular constants and outside code can't get to them easily.
PKG_CHECK_MODULES sets the values, and AC_SUBST_LISTs them on its own.
No need to duplicate the values to variables local to configure.in to
then AC_SUBST/AC_SUBST_LIST them. Also, since bug 1224452, MOZ_PIXMAN_CFLAGS
needs to be an AC_SUBST_LIST instead of AC_SUBST.
We're going to change how e.g. CFLAGS are printed out in backend.mk, and
to fit that model, the data in the corresponding moz.build variables
need to be straightened up.
This patch moves the logic for selecting MOZ_WINCONSOLE out of individual
Makefile.in files and into configure. It also changes config.mk to only
pass -SUBSYSTEM:CONSOLE if MOZ_WINCONSOLE=1. The MSDN docs state that
in the absence of -SUBSYSTEM, the linker will select the proper subsystem
based on whether the program contains [w]main or [w]WinMain, so let it
do that.
One program (windbgdlg) needed a tweak to add a wmain for when MOZ_WINCONSOLE
is defined.
This patch leaves one instance in security/sandbox/win/wow_helper/Makefile.in,
that Makefile has its own separate bug.
Dehydra/Treehydra is unmaintained, broken (iirc), and obsoleted by clang
static analysis. We've removed parts of the build system support for it, but
not all. This is meant to remove the remains.