forked from mirrors/gecko-dev
Bug 1883940 - Replace MOZ_CXX11 autoconf macro by a moz.configure check r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D203781
This commit is contained in:
parent
e09c4cd6a4
commit
ae07881baa
10 changed files with 38 additions and 61 deletions
|
|
@ -81,37 +81,3 @@ AC_PROG_CXX
|
||||||
|
|
||||||
PATH=$_SAVE_PATH
|
PATH=$_SAVE_PATH
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([MOZ_CXX11],
|
|
||||||
[
|
|
||||||
dnl Updates to the test below should be duplicated further below for the
|
|
||||||
dnl cross-compiling case.
|
|
||||||
AC_LANG_CPLUSPLUS
|
|
||||||
if test "$GNU_CXX"; then
|
|
||||||
AC_CACHE_CHECK([whether 64-bits std::atomic requires -latomic],
|
|
||||||
ac_cv_needs_atomic,
|
|
||||||
AC_TRY_LINK(
|
|
||||||
[#include <cstdint>
|
|
||||||
#include <atomic>],
|
|
||||||
[ std::atomic<uint64_t> foo; foo = 1; ],
|
|
||||||
ac_cv_needs_atomic=no,
|
|
||||||
_SAVE_LIBS="$LIBS"
|
|
||||||
LIBS="$LIBS -latomic"
|
|
||||||
AC_TRY_LINK(
|
|
||||||
[#include <cstdint>
|
|
||||||
#include <atomic>],
|
|
||||||
[ std::atomic<uint64_t> foo; foo = 1; ],
|
|
||||||
ac_cv_needs_atomic=yes,
|
|
||||||
ac_cv_needs_atomic="do not know; assuming no")
|
|
||||||
LIBS="$_SAVE_LIBS"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
if test "$ac_cv_needs_atomic" = yes; then
|
|
||||||
MOZ_NEEDS_LIBATOMIC=1
|
|
||||||
else
|
|
||||||
MOZ_NEEDS_LIBATOMIC=
|
|
||||||
fi
|
|
||||||
AC_SUBST(MOZ_NEEDS_LIBATOMIC)
|
|
||||||
fi
|
|
||||||
AC_LANG_C
|
|
||||||
])
|
|
||||||
|
|
|
||||||
|
|
@ -114,3 +114,35 @@ with only_when(moz_use_pthreads):
|
||||||
compilation_flags.cxxflags.extend(pthread_flags.cflags)
|
compilation_flags.cxxflags.extend(pthread_flags.cflags)
|
||||||
|
|
||||||
set_config("MOZ_USE_PTHREADS", True)
|
set_config("MOZ_USE_PTHREADS", True)
|
||||||
|
|
||||||
|
|
||||||
|
with only_when(building_with_gnu_cc):
|
||||||
|
|
||||||
|
@template
|
||||||
|
def check_std_atomic_requirements(flag=None, when=None):
|
||||||
|
return try_link(
|
||||||
|
includes=["cstdint", "atomic"],
|
||||||
|
body="std::atomic<uint64_t> foo; foo = 1;",
|
||||||
|
flags=flag or [],
|
||||||
|
when=when,
|
||||||
|
)
|
||||||
|
|
||||||
|
is_libatomic_optional = check_std_atomic_requirements()
|
||||||
|
is_libatomic_required = check_std_atomic_requirements(
|
||||||
|
flag="-latomic", when=~is_libatomic_optional
|
||||||
|
)
|
||||||
|
|
||||||
|
@depends(is_libatomic_optional, is_libatomic_required)
|
||||||
|
@checking("whether 64-bits std::atomic requires -latomic")
|
||||||
|
def checking_needs_libatomic(is_libatomic_optional, is_libatomic_required):
|
||||||
|
if is_libatomic_optional:
|
||||||
|
return False
|
||||||
|
if is_libatomic_required:
|
||||||
|
return True
|
||||||
|
return "do not know; assuming no"
|
||||||
|
|
||||||
|
set_config(
|
||||||
|
"LIBATOMIC_LIBS",
|
||||||
|
["-latomic"],
|
||||||
|
when=depends(checking_needs_libatomic)(lambda c: c is True),
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -90,8 +90,7 @@ if CONFIG["OS_ARCH"] == "WINNT":
|
||||||
"synchronization",
|
"synchronization",
|
||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
|
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]
|
||||||
OS_LIBS += ["atomic"]
|
|
||||||
|
|
||||||
if CONFIG["TARGET_OS"] == "iOS":
|
if CONFIG["TARGET_OS"] == "iOS":
|
||||||
OS_LIBS += ["-framework BrowserEngineCore"]
|
OS_LIBS += ["-framework BrowserEngineCore"]
|
||||||
|
|
|
||||||
|
|
@ -429,13 +429,6 @@ if test -n "$COMPILE_ENVIRONMENT"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "$SKIP_COMPILER_CHECKS"; then
|
if test -z "$SKIP_COMPILER_CHECKS"; then
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
dnl ========================================================
|
|
||||||
|
|
||||||
AC_LANG_CPLUSPLUS
|
|
||||||
|
|
||||||
MOZ_CXX11
|
|
||||||
|
|
||||||
|
|
||||||
dnl ========================================================
|
dnl ========================================================
|
||||||
dnl Put your C++ language/feature checks below
|
dnl Put your C++ language/feature checks below
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,6 @@ OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||||
if CONFIG['OS_TARGET'] != 'WINNT':
|
if CONFIG['OS_TARGET'] != 'WINNT':
|
||||||
OS_LIBS += ['m']
|
OS_LIBS += ['m']
|
||||||
|
|
||||||
if CONFIG['MOZ_NEEDS_LIBATOMIC']:
|
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]
|
||||||
OS_LIBS += ['atomic']
|
|
||||||
|
|
||||||
include("../ffvpxcommon.mozbuild")
|
include("../ffvpxcommon.mozbuild")
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,7 @@ USE_LIBS += [
|
||||||
# The memory library defines this, so it's needed here too.
|
# The memory library defines this, so it's needed here too.
|
||||||
DEFINES["IMPL_MFBT"] = True
|
DEFINES["IMPL_MFBT"] = True
|
||||||
|
|
||||||
if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
|
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]
|
||||||
OS_LIBS += ["atomic"]
|
|
||||||
|
|
||||||
UNIFIED_SOURCES += [
|
UNIFIED_SOURCES += [
|
||||||
"/mfbt/double-conversion/double-conversion/bignum-dtoa.cc",
|
"/mfbt/double-conversion/double-conversion/bignum-dtoa.cc",
|
||||||
|
|
|
||||||
|
|
@ -79,8 +79,7 @@ USE_LIBS += [
|
||||||
# The memory library defines this, so it's needed here too.
|
# The memory library defines this, so it's needed here too.
|
||||||
DEFINES["IMPL_MFBT"] = True
|
DEFINES["IMPL_MFBT"] = True
|
||||||
|
|
||||||
if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
|
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]
|
||||||
OS_LIBS += ["atomic"]
|
|
||||||
|
|
||||||
OS_LIBS += CONFIG["DL_LIBS"]
|
OS_LIBS += CONFIG["DL_LIBS"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -205,8 +205,7 @@ SOURCES["lz4/xxhash.c"].flags += ["-Wno-unused-function"]
|
||||||
|
|
||||||
DisableStlWrapping()
|
DisableStlWrapping()
|
||||||
|
|
||||||
if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
|
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]
|
||||||
OS_LIBS += ["atomic"]
|
|
||||||
|
|
||||||
DEFINES["LZ4LIB_VISIBILITY"] = ""
|
DEFINES["LZ4LIB_VISIBILITY"] = ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -446,14 +446,6 @@ else
|
||||||
fi # COMPILE_ENVIRONMENT
|
fi # COMPILE_ENVIRONMENT
|
||||||
|
|
||||||
if test -z "$SKIP_COMPILER_CHECKS"; then
|
if test -z "$SKIP_COMPILER_CHECKS"; then
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
dnl ========================================================
|
|
||||||
AC_LANG_CPLUSPLUS
|
|
||||||
|
|
||||||
MOZ_CXX11
|
|
||||||
|
|
||||||
AC_LANG_C
|
|
||||||
|
|
||||||
|
|
||||||
dnl ========================================================
|
dnl ========================================================
|
||||||
dnl Put your C++ language/feature checks below
|
dnl Put your C++ language/feature checks below
|
||||||
|
|
|
||||||
|
|
@ -86,8 +86,7 @@ def Libxul(name, output_category=None):
|
||||||
|
|
||||||
Libxul_defines()
|
Libxul_defines()
|
||||||
|
|
||||||
if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
|
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]
|
||||||
OS_LIBS += ["atomic"]
|
|
||||||
|
|
||||||
# TouchBar-related classes are only available in the 10.12.2 SDK and later.
|
# TouchBar-related classes are only available in the 10.12.2 SDK and later.
|
||||||
# We need to weak link these classes until we've upgraded our SDK to at
|
# We need to weak link these classes until we've upgraded our SDK to at
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue