In https://llvm.org/bugs/show_bug.cgi?id=26090, we changed the default
behavior of clang-cl to accept unknown command line arguments. This
patch removes the Firefox workaround for this issue.
When adding a backend, we currently have to add them in three different
places so that they appear in the right places.
Instead, keep the list in a single place.
This is a partial revert of bug 1214462 part2. We don't need FFmpeg support on Android or Windows anymore; instead the functionality is provided by the FFVPX PDM.
Remove support for FFmpeg on Windows.
Several JS engine header files, notable RootingAPI.h, do:
class JS_PUBLIC_API(...) { ... };
which sticks __declspec(dllimport) on the type. clang-cl warns us that
it doesn't implement that, but since we're compiling with clang-cl as an
interesting side project, rather than shipping releases with it, we can
ignore that warning.
This is a partial revert of bug 1214462 part2. We don't need FFmpeg support on Android or Windows anymore; instead the functionality is provided by the FFVPX PDM.
Remove support for FFmpeg on Windows.
This is a partial revert of bug 1214462 part2. We don't need FFmpeg support on Android or Windows anymore; instead the functionality is provided by the FFVPX PDM.
Remove support for FFmpeg on Windows.
The leading 'v' was intended to distinguish the detected from
the literal version string, but this is non-obvious, and could
be confused with the git tag convention.
Instead, make the strings match, but put the detected version
first since it's what configure is likely to act on.
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.