X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=configure.ac;h=57e696d01a3dc5407f24b3d297e3acf4ef921062;hp=8a1ff14a345a56ad216256b3494e56d2c55b30e6;hb=1b3874915095deab4aa9be0f33423e992e571bb7;hpb=45e60038fe855f8ca7436ec608971494d73c995f diff --git a/configure.ac b/configure.ac index 8a1ff14..57e696d 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,7 @@ AC_CONFIG_MACRO_DIR([config]) AC_CANONICAL_TARGET AC_CANONICAL_HOST AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip]) +AM_MAINTAINER_MODE([enable]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_include([config/ax_tls.m4]) @@ -52,11 +53,20 @@ LT_INIT AC_C_INLINE AC_TYPE_PID_T AC_TYPE_SIZE_T +AC_TYPE_INT32_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T # Checks for library functions. AC_FUNC_MALLOC AC_FUNC_MMAP -AC_CHECK_FUNCS([bzero gettimeofday munmap sched_getcpu strtoul sysconf]) +AC_CHECK_FUNCS( + [bzero gettimeofday munmap sched_getcpu strtoul sysconf gettid memeset strerror] +) + +# Check for headers +AC_CHECK_HEADERS([limits.h stddef.h sys/time.h]) # Find arch type AS_CASE([$host_cpu], @@ -69,6 +79,7 @@ AS_CASE([$host_cpu], [powerpc], [ARCHTYPE="ppc"], [ppc64], [ARCHTYPE="ppc"], [powerpc64], [ARCHTYPE="ppc"], + [powerpc64le], [ARCHTYPE="gcc"], [ppc], [ARCHTYPE="ppc"], [s390], [ARCHTYPE="s390"], [s390x], [ARCHTYPE="s390"], @@ -77,11 +88,18 @@ AS_CASE([$host_cpu], [alpha*], [ARCHTYPE="alpha"], [ia64], [ARCHTYPE="gcc"], [arm*], [ARCHTYPE="arm"], + [aarch64], [ARCHTYPE="gcc"], [mips*], [ARCHTYPE="mips"], [tile*], [ARCHTYPE="gcc"], + [hppa*], [ARCHTYPE="hppa"], [ARCHTYPE="unknown"] ) +AS_CASE([$host],[*-*-linux-androideabi], + [AM_CONDITIONAL(TARGET_IS_ANDROID, true)], + [AM_CONDITIONAL(TARGET_IS_ANDROID, false)] +) + AC_SUBST(ARCHTYPE) AC_SUBST(SUBARCHTYPE) @@ -135,7 +153,10 @@ AS_IF([test "x$ARCHTYPE" = "xx86"],[ #For now, using lock; addl compatibility mode even for i686, because the #Pentium III is seen as a i686, but lacks mfence instruction. #Only using fence for x86_64. - AS_IF([test "x$host_cpu" != "xi386" -a "x$host_cpu" != "xi486" -a "x$host_cpu" != "xi586" -a "x$host_cpu" != "xi686"],[ + # + #k1om is the name for the Intel MIC family (Xeon Phi). It is an x86_64 + #variant but lacks fence instructions. + AS_IF([test "x$host_cpu" != "xi386" -a "x$host_cpu" != "xi486" -a "x$host_cpu" != "xi586" -a "x$host_cpu" != "xi686" -a "x$host_vendor" != "xk1om"],[ AC_MSG_RESULT([yes]) AC_DEFINE([CONFIG_RCU_HAVE_FENCE], [1]) ],[ @@ -160,6 +181,15 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ compat_futex_test=1 ]) +# Check for pthread +AC_CHECK_LIB([pthread], [pthread_create], + [AM_CONDITIONAL(LIBC_INCLUDES_PTHREAD, false)], + [AC_CHECK_LIB([c], [pthread_create], + [AM_CONDITIONAL(LIBC_INCLUDES_PTHREAD, true)], + [AC_MSG_ERROR([Cannot find libpthread. Use [LDFLAGS]=-Ldir to specify its location.])] + )] +) + AM_CONDITIONAL([COMPAT_FUTEX], [test "x$compat_futex_test" = "x1"]) AM_CONDITIONAL([COMPAT_ARCH], [test "x$SUBARCHTYPE" = "xx86compat"]) AM_CONDITIONAL([NO_SHARED], [test "x$enable_shared" = "xno"]) @@ -297,6 +327,7 @@ AC_CONFIG_FILES([ tests/unit/Makefile tests/benchmark/Makefile tests/regression/Makefile + tests/utils/Makefile liburcu.pc liburcu-bp.pc liburcu-cds.pc