зеркало из https://github.com/mozilla/gecko-dev.git
226 строки
6.4 KiB
Diff
226 строки
6.4 KiB
Diff
|
diff --git a/configure b/configure
|
||
|
--- a/configure
|
||
|
+++ b/configure
|
||
|
@@ -6904,27 +6904,70 @@ if test "x${enable_tls}" = "x1" ; then
|
||
|
#define JEMALLOC_TLS
|
||
|
_ACEOF
|
||
|
|
||
|
elif test "x${force_tls}" = "x1" ; then
|
||
|
as_fn_error $? "Failed to configure TLS, which is mandatory for correct function" "$LINENO" 5
|
||
|
fi
|
||
|
|
||
|
|
||
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program using __builtin_ffsl is compilable" >&5
|
||
|
+$as_echo_n "checking whether a program using __builtin_ffsl is compilable... " >&6; }
|
||
|
+if ${je_cv_gcc_builtin_ffsl+:} false; then :
|
||
|
+ $as_echo_n "(cached) " >&6
|
||
|
+else
|
||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
+/* end confdefs.h. */
|
||
|
+
|
||
|
+#include <stdio.h>
|
||
|
+#include <strings.h>
|
||
|
+#include <string.h>
|
||
|
+
|
||
|
+int
|
||
|
+main ()
|
||
|
+{
|
||
|
+
|
||
|
+ {
|
||
|
+ int rv = __builtin_ffsl(0x08);
|
||
|
+ printf("%d\n", rv);
|
||
|
+ }
|
||
|
+
|
||
|
+ ;
|
||
|
+ return 0;
|
||
|
+}
|
||
|
+_ACEOF
|
||
|
+if ac_fn_c_try_link "$LINENO"; then :
|
||
|
+ je_cv_gcc_builtin_ffsl=yes
|
||
|
+else
|
||
|
+ je_cv_gcc_builtin_ffsl=no
|
||
|
+fi
|
||
|
+rm -f core conftest.err conftest.$ac_objext \
|
||
|
+ conftest$ac_exeext conftest.$ac_ext
|
||
|
+fi
|
||
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $je_cv_gcc_builtin_ffsl" >&5
|
||
|
+$as_echo "$je_cv_gcc_builtin_ffsl" >&6; }
|
||
|
+
|
||
|
+if test "x${je_cv_gcc_builtin_ffsl}" == "xyes" ; then
|
||
|
+ $as_echo "#define JEMALLOC_INTERNAL_FFSL __builtin_ffsl" >>confdefs.h
|
||
|
+
|
||
|
+ $as_echo "#define JEMALLOC_INTERNAL_FFS __builtin_ffs" >>confdefs.h
|
||
|
+
|
||
|
+else
|
||
|
+
|
||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program using ffsl is compilable" >&5
|
||
|
$as_echo_n "checking whether a program using ffsl is compilable... " >&6; }
|
||
|
if ${je_cv_function_ffsl+:} false; then :
|
||
|
$as_echo_n "(cached) " >&6
|
||
|
else
|
||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
/* end confdefs.h. */
|
||
|
|
||
|
-#include <stdio.h>
|
||
|
-#include <strings.h>
|
||
|
-#include <string.h>
|
||
|
+ #include <stdio.h>
|
||
|
+ #include <strings.h>
|
||
|
+ #include <string.h>
|
||
|
|
||
|
int
|
||
|
main ()
|
||
|
{
|
||
|
|
||
|
{
|
||
|
int rv = ffsl(0x08);
|
||
|
printf("%d\n", rv);
|
||
|
@@ -6940,71 +6983,29 @@ else
|
||
|
je_cv_function_ffsl=no
|
||
|
fi
|
||
|
rm -f core conftest.err conftest.$ac_objext \
|
||
|
conftest$ac_exeext conftest.$ac_ext
|
||
|
fi
|
||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $je_cv_function_ffsl" >&5
|
||
|
$as_echo "$je_cv_function_ffsl" >&6; }
|
||
|
|
||
|
-if test "x${je_cv_function_ffsl}" == "xyes" ; then
|
||
|
- $as_echo "#define JEMALLOC_INTERNAL_FFSL ffsl" >>confdefs.h
|
||
|
-
|
||
|
- $as_echo "#define JEMALLOC_INTERNAL_FFS ffs" >>confdefs.h
|
||
|
-
|
||
|
-else
|
||
|
-
|
||
|
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program using __builtin_ffsl is compilable" >&5
|
||
|
-$as_echo_n "checking whether a program using __builtin_ffsl is compilable... " >&6; }
|
||
|
-if ${je_cv_gcc_builtin_ffsl+:} false; then :
|
||
|
- $as_echo_n "(cached) " >&6
|
||
|
-else
|
||
|
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
-/* end confdefs.h. */
|
||
|
-
|
||
|
- #include <stdio.h>
|
||
|
- #include <strings.h>
|
||
|
- #include <string.h>
|
||
|
-
|
||
|
-int
|
||
|
-main ()
|
||
|
-{
|
||
|
-
|
||
|
- {
|
||
|
- int rv = __builtin_ffsl(0x08);
|
||
|
- printf("%d\n", rv);
|
||
|
- }
|
||
|
-
|
||
|
- ;
|
||
|
- return 0;
|
||
|
-}
|
||
|
-_ACEOF
|
||
|
-if ac_fn_c_try_link "$LINENO"; then :
|
||
|
- je_cv_gcc_builtin_ffsl=yes
|
||
|
-else
|
||
|
- je_cv_gcc_builtin_ffsl=no
|
||
|
-fi
|
||
|
-rm -f core conftest.err conftest.$ac_objext \
|
||
|
- conftest$ac_exeext conftest.$ac_ext
|
||
|
-fi
|
||
|
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $je_cv_gcc_builtin_ffsl" >&5
|
||
|
-$as_echo "$je_cv_gcc_builtin_ffsl" >&6; }
|
||
|
-
|
||
|
- if test "x${je_cv_gcc_builtin_ffsl}" == "xyes" ; then
|
||
|
- $as_echo "#define JEMALLOC_INTERNAL_FFSL __builtin_ffsl" >>confdefs.h
|
||
|
-
|
||
|
- $as_echo "#define JEMALLOC_INTERNAL_FFS __builtin_ffs" >>confdefs.h
|
||
|
+ if test "x${je_cv_function_ffsl}" == "xyes" ; then
|
||
|
+ $as_echo "#define JEMALLOC_INTERNAL_FFSL ffsl" >>confdefs.h
|
||
|
+
|
||
|
+ $as_echo "#define JEMALLOC_INTERNAL_FFS ffs" >>confdefs.h
|
||
|
|
||
|
else
|
||
|
as_fn_error $? "Cannot build without ffsl(3) or __builtin_ffsl()" "$LINENO" 5
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
|
||
|
|
||
|
+
|
||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether atomic(9) is compilable" >&5
|
||
|
$as_echo_n "checking whether atomic(9) is compilable... " >&6; }
|
||
|
if ${je_cv_atomic9+:} false; then :
|
||
|
$as_echo_n "(cached) " >&6
|
||
|
else
|
||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
/* end confdefs.h. */
|
||
|
|
||
|
diff --git a/configure.ac b/configure.ac
|
||
|
--- a/configure.ac
|
||
|
+++ b/configure.ac
|
||
|
@@ -1160,53 +1160,54 @@ fi
|
||
|
AC_SUBST([enable_tls])
|
||
|
if test "x${enable_tls}" = "x1" ; then
|
||
|
AC_DEFINE_UNQUOTED([JEMALLOC_TLS], [ ])
|
||
|
elif test "x${force_tls}" = "x1" ; then
|
||
|
AC_MSG_ERROR([Failed to configure TLS, which is mandatory for correct function])
|
||
|
fi
|
||
|
|
||
|
dnl ============================================================================
|
||
|
-dnl Check for ffsl(3), then __builtin_ffsl(), and fail if neither are found.
|
||
|
+dnl Check for __builtin_ffsl(), then ffsl(3), and fail if neither are found.
|
||
|
dnl One of those two functions should (theoretically) exist on all platforms
|
||
|
dnl that jemalloc currently has a chance of functioning on without modification.
|
||
|
dnl We additionally assume ffs() or __builtin_ffs() are defined if
|
||
|
dnl ffsl() or __builtin_ffsl() are defined, respectively.
|
||
|
-JE_COMPILABLE([a program using ffsl], [
|
||
|
+JE_COMPILABLE([a program using __builtin_ffsl], [
|
||
|
#include <stdio.h>
|
||
|
#include <strings.h>
|
||
|
#include <string.h>
|
||
|
], [
|
||
|
{
|
||
|
- int rv = ffsl(0x08);
|
||
|
+ int rv = __builtin_ffsl(0x08);
|
||
|
printf("%d\n", rv);
|
||
|
}
|
||
|
-], [je_cv_function_ffsl])
|
||
|
-if test "x${je_cv_function_ffsl}" == "xyes" ; then
|
||
|
- AC_DEFINE([JEMALLOC_INTERNAL_FFSL], [ffsl])
|
||
|
- AC_DEFINE([JEMALLOC_INTERNAL_FFS], [ffs])
|
||
|
+], [je_cv_gcc_builtin_ffsl])
|
||
|
+if test "x${je_cv_gcc_builtin_ffsl}" == "xyes" ; then
|
||
|
+ AC_DEFINE([JEMALLOC_INTERNAL_FFSL], [__builtin_ffsl])
|
||
|
+ AC_DEFINE([JEMALLOC_INTERNAL_FFS], [__builtin_ffs])
|
||
|
else
|
||
|
- JE_COMPILABLE([a program using __builtin_ffsl], [
|
||
|
+ JE_COMPILABLE([a program using ffsl], [
|
||
|
#include <stdio.h>
|
||
|
#include <strings.h>
|
||
|
#include <string.h>
|
||
|
], [
|
||
|
{
|
||
|
- int rv = __builtin_ffsl(0x08);
|
||
|
+ int rv = ffsl(0x08);
|
||
|
printf("%d\n", rv);
|
||
|
}
|
||
|
- ], [je_cv_gcc_builtin_ffsl])
|
||
|
- if test "x${je_cv_gcc_builtin_ffsl}" == "xyes" ; then
|
||
|
- AC_DEFINE([JEMALLOC_INTERNAL_FFSL], [__builtin_ffsl])
|
||
|
- AC_DEFINE([JEMALLOC_INTERNAL_FFS], [__builtin_ffs])
|
||
|
+ ], [je_cv_function_ffsl])
|
||
|
+ if test "x${je_cv_function_ffsl}" == "xyes" ; then
|
||
|
+ AC_DEFINE([JEMALLOC_INTERNAL_FFSL], [ffsl])
|
||
|
+ AC_DEFINE([JEMALLOC_INTERNAL_FFS], [ffs])
|
||
|
else
|
||
|
AC_MSG_ERROR([Cannot build without ffsl(3) or __builtin_ffsl()])
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
+
|
||
|
dnl ============================================================================
|
||
|
dnl Check for atomic(9) operations as provided on FreeBSD.
|
||
|
|
||
|
JE_COMPILABLE([atomic(9)], [
|
||
|
#include <sys/types.h>
|
||
|
#include <machine/atomic.h>
|
||
|
#include <inttypes.h>
|
||
|
], [
|