Commit ae07881b authored by serge-sans-paille's avatar serge-sans-paille
Browse files

Bug 1883940 - Replace MOZ_CXX11 autoconf macro by a moz.configure check r=glandium

parent e09c4cd6
Loading
Loading
Loading
Loading
+0 −34
Original line number Diff line number Diff line
@@ -81,37 +81,3 @@ AC_PROG_CXX

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
])
+32 −0
Original line number Diff line number Diff line
@@ -114,3 +114,35 @@ with only_when(moz_use_pthreads):
        compilation_flags.cxxflags.extend(pthread_flags.cflags)

    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),
    )
+1 −2
Original line number Diff line number Diff line
@@ -90,8 +90,7 @@ if CONFIG["OS_ARCH"] == "WINNT":
            "synchronization",
        ]

if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
    OS_LIBS += ["atomic"]
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]

if CONFIG["TARGET_OS"] == "iOS":
    OS_LIBS += ["-framework BrowserEngineCore"]
+0 −7
Original line number Diff line number Diff line
@@ -429,13 +429,6 @@ if test -n "$COMPILE_ENVIRONMENT"; then
fi

if test -z "$SKIP_COMPILER_CHECKS"; then
dnl Checks for typedefs, structures, and compiler characteristics.
dnl ========================================================

AC_LANG_CPLUSPLUS

MOZ_CXX11


dnl ========================================================
dnl Put your C++ language/feature checks below
+1 −2
Original line number Diff line number Diff line
@@ -90,7 +90,6 @@ OS_LIBS += CONFIG['REALTIME_LIBS']
if CONFIG['OS_TARGET'] != 'WINNT':
    OS_LIBS += ['m']

if CONFIG['MOZ_NEEDS_LIBATOMIC']:
    OS_LIBS += ['atomic']
OS_LIBS += CONFIG["LIBATOMIC_LIBS"]

include("../ffvpxcommon.mozbuild")
Loading