Practically speaking, this doesn't make a huge difference, because
libmozglue contains operator new/operator delete overrides. This will
enable inlining opportunities, though.
It is worth noting that there's equivalent code in
js/src/old-configure.in but it's left as is because it is actually no-op
at the moment. This will be fixed in bug 1829049.
The check for __EXCEPTIONS is replaced with __cpp_exceptions because the
former is defined for any type of exception, including ObjC exceptions,
while the latter is defined for C++ exceptions only.
Differential Revision: https://phabricator.services.mozilla.com/D175976
Practically speaking, this doesn't make a huge difference, because
libmozglue contains operator new/operator delete overrides. This will
enable inlining opportunities, though.
It is worth noting that there's equivalent code in
js/src/old-configure.in but it's left as is because it is actually no-op
at the moment. This will be fixed in bug 1829049.
The check for __EXCEPTIONS is replaced with __cpp_exceptions because the
former is defined for any type of exception, including ObjC exceptions,
while the latter is defined for C++ exceptions only.
Differential Revision: https://phabricator.services.mozilla.com/D175976
Bug 1796518 removed the build-id on local builds because it's faster to
do so, but it may be desirable to still have /some/ build-id, even if
it's random, so use a uuid on local builds instead of none at all.
Differential Revision: https://phabricator.services.mozilla.com/D166615
While we're here, make the setup more consistent across host/target
c/c++, and remove the C compiler warning flags from the C linker flags,
where they are irrelevant.
Differential Revision: https://phabricator.services.mozilla.com/D159358
This moves the manual addition of some flags from old-configure to
python configure, and disables the set of flags that still trigger a
bunch of warnings (which -Werror turns into bustage).
Differential Revision: https://phabricator.services.mozilla.com/D144406
- AC_HAVE_FUNCS is an alias to AC_CHECK_FUNCS, so it is covered.
- Nothing uses HAVE___CXA_DEMANGLE, so we don't explictly set it,
although we do need the result of whether __cxa_demangle is supported.
- No moz.build uses MOZ_DEMANGLE_SYMBOLS, so we only `set_define` it.
- We leave dladdr in old-configure because it needs to move along other
dl* things.
- The hotfix for AC_CHECK_FUNC is however not needed for dladdr, so we
remove it.
- We replace the forced HAVE_LOCALECONV on Windows with a check shared
with all platforms.
Differential Revision: https://phabricator.services.mozilla.com/D134858
- AC_HAVE_FUNCS is an alias to AC_CHECK_FUNCS, so it is covered.
- Nothing uses HAVE___CXA_DEMANGLE, so we don't explictly set it,
although we do need the result of whether __cxa_demangle is supported.
- No moz.build uses MOZ_DEMANGLE_SYMBOLS, so we only `set_define` it.
- We leave dladdr in old-configure because it needs to move along other
dl* things.
- The hotfix for AC_CHECK_FUNC is however not needed for dladdr, so we
remove it.
- We replace the forced HAVE_LOCALECONV on Windows with a check shared
with all platforms.
Differential Revision: https://phabricator.services.mozilla.com/D134858
AC_CHECK_FUNC doesn't automatically set HAVE_$function defines
(AC_CHECK_FUNCS does, confusing much?). Which means practically
speaking, the check is not useful. There _are_ #ifdef HAVE_FDATASYNC
in sqlite, but fdatasync is notably broken on older kernels, and while
lmdb has runtime workarounds for that, sqlite doesn't. It might be fine
to enable the sqlite code because those kernels are old, but this is
not a straightforward decision to make at the build system level, so
we'll handle that in a followup.
Differential Revision: https://phabricator.services.mozilla.com/D134855
HAVE_LCHOWN is only used in nsinstall.c, for a feature we don't use.
Moreover it would need to be tested with the host compiler/headers, but
function checks are tested with the target compiler/headers so it's not
necessarily accurate. Therefore, we just remove the check.
Differential Revision: https://phabricator.services.mozilla.com/D134854
While mingw builds don't require user32 and advapi32 explicitly, it doesn't
hurt for them to be there (and they're required for clang-cl build).
Likewise, while clang-builds don't require uuid and userenv explicitly
because they're pulled in via #pragmas in the source code, mingw doesn't
support those #pragmas and needs them explicitly, which doesn't hurt the
clang-cl builds.
Differential Revision: https://phabricator.services.mozilla.com/D134737
While mingw builds don't require user32 and advapi32 explicitly, it doesn't
hurt for them to be there (and they're required for clang-cl build).
Likewise, while clang-builds don't require uuid and userenv explicitly
because they're pulled in via #pragmas in the source code, mingw doesn't
support those #pragmas and needs them explicitly, which doesn't hurt the
clang-cl builds.
Differential Revision: https://phabricator.services.mozilla.com/D134737
We don't support Android ARMv6 devices anymore, and even if we did,
we're not using the code that required 16k alignment anymore (on-demand
decompression of libraries).
Differential Revision: https://phabricator.services.mozilla.com/D134733
By upgrading the requirement to freetype 9.10.3 (actually 2.2.0,
released > 15 years ago ; the .pc version doesn't match the freetype
version), we ensure all supported versions of freetype have the things
we were checking for.
Differential Revision: https://phabricator.services.mozilla.com/D134565