diff --git a/js/src/old-configure.in b/js/src/old-configure.in index bc7bd8033a4d..c50cbcb51be1 100644 --- a/js/src/old-configure.in +++ b/js/src/old-configure.in @@ -647,6 +647,7 @@ case "$target" in WIN32_CONSOLE_EXE_LDFLAGS=-mconsole WIN32_GUI_EXE_LDFLAGS=-mwindows else + TARGET_COMPILER_ABI=msvc HOST_CC='$(CC)' HOST_CXX='$(CXX)' if test "$AS_BIN"; then @@ -1234,6 +1235,32 @@ dnl Put your C++ language/feature checks below dnl ======================================================== AC_LANG_CPLUSPLUS +ARM_ABI_PREFIX= +if test "$GNU_CC"; then + if test "$CPU_ARCH" = "arm" ; then + AC_CACHE_CHECK(for ARM EABI, + ac_cv_gcc_arm_eabi, + [AC_TRY_COMPILE([], + [ +#if defined(__ARM_EABI__) + return 0; +#else +#error Not ARM EABI. +#endif + ], + ac_cv_gcc_arm_eabi="yes", + ac_cv_gcc_arm_eabi="no")]) + if test "$ac_cv_gcc_arm_eabi" = "yes"; then + HAVE_ARM_EABI=1 + ARM_ABI_PREFIX=eabi- + else + ARM_ABI_PREFIX=oabi- + fi + fi + + TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}" +fi + dnl See if a dynamic_cast to void* gives the most derived object. AC_CACHE_CHECK(for C++ dynamic_cast to void*, ac_cv_cpp_dynamic_cast_void_ptr, @@ -1312,6 +1339,11 @@ fi AC_HAVE_FUNCS(localeconv) fi # ! SKIP_COMPILER_CHECKS +TARGET_XPCOM_ABI= +if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then + TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}" +fi + dnl We can't run TRY_COMPILE tests on Windows, so hard-code some dnl features that Windows actually does support. @@ -2001,6 +2033,8 @@ AC_SUBST(HOST_AR_FLAGS) AC_SUBST(HOST_RANLIB) AC_SUBST(HOST_BIN_SUFFIX) +AC_SUBST(TARGET_XPCOM_ABI) + AC_SUBST(WRAP_LDFLAGS) AC_SUBST(MKSHLIB) AC_SUBST(MKCSHLIB) diff --git a/old-configure.in b/old-configure.in index 9d07d0f27f16..9af75ca7efe3 100644 --- a/old-configure.in +++ b/old-configure.in @@ -879,6 +879,7 @@ case "$target" in # function thunks need to be generated for cross-DLL calls. MOZ_FOLD_LIBS_FLAGS="-mnop-fun-dllimport" else + TARGET_COMPILER_ABI=msvc if test "$AS_BIN"; then AS="$(basename "$AS_BIN")" fi @@ -1646,6 +1647,32 @@ dnl Put your C++ language/feature checks below dnl ======================================================== AC_LANG_CPLUSPLUS +ARM_ABI_PREFIX= +if test "$GNU_CC"; then + if test "$CPU_ARCH" = "arm" ; then + AC_CACHE_CHECK(for ARM EABI, + ac_cv_gcc_arm_eabi, + [AC_TRY_COMPILE([], + [ +#if defined(__ARM_EABI__) + return 0; +#else +#error Not ARM EABI. +#endif + ], + ac_cv_gcc_arm_eabi="yes", + ac_cv_gcc_arm_eabi="no")]) + if test "$ac_cv_gcc_arm_eabi" = "yes"; then + HAVE_ARM_EABI=1 + ARM_ABI_PREFIX=eabi- + else + ARM_ABI_PREFIX=oabi- + fi + fi + + TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}" +fi + dnl See if a dynamic_cast to void* gives the most derived object. AC_CACHE_CHECK(for C++ dynamic_cast to void*, ac_cv_cpp_dynamic_cast_void_ptr, @@ -1789,6 +1816,12 @@ if test -n "${COMPILE_ENVIRONMENT}"; then MOZ_CHECK_ALLOCATOR fi +TARGET_XPCOM_ABI= +if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then + TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}" + AC_DEFINE_UNQUOTED(TARGET_XPCOM_ABI, ["${TARGET_XPCOM_ABI}"]) +fi + dnl We can't run TRY_COMPILE tests on Windows, so hard-code some dnl features that Windows actually does support. @@ -4806,6 +4839,7 @@ AC_SUBST(HOST_AR_FLAGS) AC_SUBST(HOST_RANLIB) AC_SUBST(HOST_BIN_SUFFIX) +AC_SUBST(TARGET_XPCOM_ABI) AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3) AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1) AC_SUBST(HAVE_X86_AVX2) diff --git a/toolkit/moz.configure b/toolkit/moz.configure index b11ebca8ff0c..f812eb5a65e6 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -1226,23 +1226,3 @@ def enable_asan_reporter(value): set_config('MOZ_ASAN_REPORTER', enable_asan_reporter) set_define('MOZ_ASAN_REPORTER', enable_asan_reporter) - -@depends(target, c_compiler) -def xpcom_abi(target, c_compiler): - if not c_compiler: - return '' - - if c_compiler.type in ('msvc', 'clang-cl'): - assert target.kernel == 'WINNT' - return '%s-msvc' % target.cpu - - assert c_compiler.type in ('gcc', 'clang') - # Everything else uses the gcc ABI. - return '%s-gcc3' % ('arm-eabi' if target.cpu == 'arm' else target.cpu,) - -@depends(xpcom_abi) -def xpcom_abi_quoted(abi): - return '"%s"' % abi - -set_config('TARGET_XPCOM_ABI', xpcom_abi) -set_define('TARGET_XPCOM_ABI', xpcom_abi_quoted)