mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-29 15:22:30 +03:00
4a05f83278
aclocal is regenerated while acinclude is permanent. Move new macro to permanent file.
235 lines
7.5 KiB
Plaintext
235 lines
7.5 KiB
Plaintext
dnl AC_GCC_VERSION
|
|
dnl check for compiler version
|
|
dnl sets COMPILER_VERSION and GCC_VERSION
|
|
|
|
AC_DEFUN([AC_CC_VERSION],
|
|
[
|
|
AC_MSG_CHECKING([C compiler version])
|
|
COMPILER_VERSION=`$CC -v 2>&1 | grep version`
|
|
case "$COMPILER_VERSION" in
|
|
*gcc*)
|
|
dnl Ok, how to turn $3 into the real $3
|
|
GCC_VERSION=`echo $COMPILER_VERSION | \
|
|
sed -e 's/[[^ ]]*\ [[^ ]]*\ \([[^ ]]*\)\ .*/\1/'` ;;
|
|
*) GCC_VERSION=unknown ;;
|
|
esac
|
|
AC_MSG_RESULT($GCC_VERSION)
|
|
])
|
|
|
|
dnl AC_TRY_CCFLAG([CCFLAG], [VAR], [ACTION-IF-WORKS], [ACTION-IF-FAILS])
|
|
dnl check if $CC supports a given flag
|
|
|
|
AC_DEFUN([AC_TRY_CCFLAG],
|
|
[
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
ac_save_CFLAGS=$CFLAGS
|
|
CFLAGS=$1
|
|
AC_CACHE_CHECK([whether $CC accepts $1 flag], [ac_cv_flag_$2],
|
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
|
[AS_VAR_SET([ac_cv_flag_$2], [yes])],
|
|
[AS_VAR_SET([ac_cv_flag_$2], [no])])])
|
|
CFLAGS=$ac_save_CFLAGS
|
|
$2=AS_VAR_GET([ac_cv_flag_$2])
|
|
if test "$2" = yes; then
|
|
ifelse([$3], [], [:], [$3])
|
|
else
|
|
ifelse([$4], [], [:], [$4])
|
|
fi
|
|
])
|
|
|
|
dnl AC_IF_YES([TEST-FOR-YES], [ACTION-IF-TRUE], [ACTION-IF-FALSE])
|
|
dnl AS_IF() abstraction, checks shell variable for 'yes'
|
|
AC_DEFUN([AC_IF_YES], [AS_IF([test $$1 = yes], [$2], [$3])])
|
|
|
|
dnl AC_TRY_LDFLAGS([LDFLAGS], [VAR], [ACTION-IF-WORKS], [ACTION-IF-FAILS])
|
|
dnl check if $CC supports given ld flags
|
|
|
|
AC_DEFUN([AC_TRY_LDFLAGS],
|
|
[
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
ac_save_LDFLAGS=$LDFLAGS
|
|
LDFLAGS=$1
|
|
AC_CACHE_CHECK([whether $CC accepts $1 ld flags], [ac_cv_flag_$2],
|
|
[AC_LINK_IFELSE([AC_LANG_PROGRAM()],
|
|
[AS_VAR_SET([ac_cv_flag_$2], [yes])],
|
|
[AS_VAR_SET([ac_cv_flag_$2], [no])])])
|
|
LDFLAGS=$ac_save_LDFLAGS
|
|
$2=AS_VAR_GET([ac_cv_flag_$2])
|
|
if test "$2" = yes; then
|
|
ifelse([$3], [], [:], [$3])
|
|
else
|
|
ifelse([$4], [], [:], [$4])
|
|
fi
|
|
])
|
|
|
|
# ===========================================================================
|
|
# http://www.gnu.org/software/autoconf-archive/ax_gcc_builtin.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_GCC_BUILTIN(BUILTIN)
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# This macro checks if the compiler supports one of GCC's built-in
|
|
# functions; many other compilers also provide those same built-ins.
|
|
#
|
|
# The BUILTIN parameter is the name of the built-in function.
|
|
#
|
|
# If BUILTIN is supported define HAVE_<BUILTIN>. Keep in mind that since
|
|
# builtins usually start with two underscores they will be copied over
|
|
# into the HAVE_<BUILTIN> definition (e.g. HAVE___BUILTIN_EXPECT for
|
|
# __builtin_expect()).
|
|
#
|
|
# The macro caches its result in the ax_cv_have_<BUILTIN> variable (e.g.
|
|
# ax_cv_have___builtin_expect).
|
|
#
|
|
# The macro currently supports the following built-in functions:
|
|
#
|
|
# __builtin_assume_aligned
|
|
# __builtin_bswap16
|
|
# __builtin_bswap32
|
|
# __builtin_bswap64
|
|
# __builtin_choose_expr
|
|
# __builtin___clear_cache
|
|
# __builtin_clrsb
|
|
# __builtin_clrsbl
|
|
# __builtin_clrsbll
|
|
# __builtin_clz
|
|
# __builtin_clzl
|
|
# __builtin_clzll
|
|
# __builtin_complex
|
|
# __builtin_constant_p
|
|
# __builtin_ctz
|
|
# __builtin_ctzl
|
|
# __builtin_ctzll
|
|
# __builtin_expect
|
|
# __builtin_ffs
|
|
# __builtin_ffsl
|
|
# __builtin_ffsll
|
|
# __builtin_fpclassify
|
|
# __builtin_huge_val
|
|
# __builtin_huge_valf
|
|
# __builtin_huge_vall
|
|
# __builtin_inf
|
|
# __builtin_infd128
|
|
# __builtin_infd32
|
|
# __builtin_infd64
|
|
# __builtin_inff
|
|
# __builtin_infl
|
|
# __builtin_isinf_sign
|
|
# __builtin_nan
|
|
# __builtin_nand128
|
|
# __builtin_nand32
|
|
# __builtin_nand64
|
|
# __builtin_nanf
|
|
# __builtin_nanl
|
|
# __builtin_nans
|
|
# __builtin_nansf
|
|
# __builtin_nansl
|
|
# __builtin_object_size
|
|
# __builtin_parity
|
|
# __builtin_parityl
|
|
# __builtin_parityll
|
|
# __builtin_popcount
|
|
# __builtin_popcountl
|
|
# __builtin_popcountll
|
|
# __builtin_powi
|
|
# __builtin_powif
|
|
# __builtin_powil
|
|
# __builtin_prefetch
|
|
# __builtin_trap
|
|
# __builtin_types_compatible_p
|
|
# __builtin_unreachable
|
|
#
|
|
# Unsuppored built-ins will be tested with an empty parameter set and the
|
|
# result of the check might be wrong or meaningless so use with care.
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 3
|
|
|
|
AC_DEFUN([AX_GCC_BUILTIN], [
|
|
AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1])
|
|
|
|
AC_CACHE_CHECK([for $1], [ac_var], [
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [
|
|
m4_case([$1],
|
|
[__builtin_assume_aligned], [$1("", 0)],
|
|
[__builtin_bswap16], [$1(0)],
|
|
[__builtin_bswap32], [$1(0)],
|
|
[__builtin_bswap64], [$1(0)],
|
|
[__builtin_choose_expr], [$1(0, 0, 0)],
|
|
[__builtin___clear_cache], [$1("", "")],
|
|
[__builtin_clrsb], [$1(0)],
|
|
[__builtin_clrsbl], [$1(0)],
|
|
[__builtin_clrsbll], [$1(0)],
|
|
[__builtin_clz], [$1(0)],
|
|
[__builtin_clzl], [$1(0)],
|
|
[__builtin_clzll], [$1(0)],
|
|
[__builtin_complex], [$1(0.0, 0.0)],
|
|
[__builtin_constant_p], [$1(0)],
|
|
[__builtin_ctz], [$1(0)],
|
|
[__builtin_ctzl], [$1(0)],
|
|
[__builtin_ctzll], [$1(0)],
|
|
[__builtin_expect], [$1(0, 0)],
|
|
[__builtin_ffs], [$1(0)],
|
|
[__builtin_ffsl], [$1(0)],
|
|
[__builtin_ffsll], [$1(0)],
|
|
[__builtin_fpclassify], [$1(0, 1, 2, 3, 4, 0.0)],
|
|
[__builtin_huge_val], [$1()],
|
|
[__builtin_huge_valf], [$1()],
|
|
[__builtin_huge_vall], [$1()],
|
|
[__builtin_inf], [$1()],
|
|
[__builtin_infd128], [$1()],
|
|
[__builtin_infd32], [$1()],
|
|
[__builtin_infd64], [$1()],
|
|
[__builtin_inff], [$1()],
|
|
[__builtin_infl], [$1()],
|
|
[__builtin_isinf_sign], [$1(0.0)],
|
|
[__builtin_nan], [$1("")],
|
|
[__builtin_nand128], [$1("")],
|
|
[__builtin_nand32], [$1("")],
|
|
[__builtin_nand64], [$1("")],
|
|
[__builtin_nanf], [$1("")],
|
|
[__builtin_nanl], [$1("")],
|
|
[__builtin_nans], [$1("")],
|
|
[__builtin_nansf], [$1("")],
|
|
[__builtin_nansl], [$1("")],
|
|
[__builtin_object_size], [$1("", 0)],
|
|
[__builtin_parity], [$1(0)],
|
|
[__builtin_parityl], [$1(0)],
|
|
[__builtin_parityll], [$1(0)],
|
|
[__builtin_popcount], [$1(0)],
|
|
[__builtin_popcountl], [$1(0)],
|
|
[__builtin_popcountll], [$1(0)],
|
|
[__builtin_powi], [$1(0, 0)],
|
|
[__builtin_powif], [$1(0, 0)],
|
|
[__builtin_powil], [$1(0, 0)],
|
|
[__builtin_prefetch], [$1("")],
|
|
[__builtin_trap], [$1()],
|
|
[__builtin_types_compatible_p], [$1(int, int)],
|
|
[__builtin_unreachable], [$1()],
|
|
[m4_warn([syntax], [Unsupported built-in $1, the test may fail])
|
|
$1()]
|
|
)
|
|
])],
|
|
[AS_VAR_SET([ac_var], [yes])],
|
|
[AS_VAR_SET([ac_var], [no])])
|
|
])
|
|
|
|
AS_IF([test yes = AS_VAR_GET([ac_var])],
|
|
[AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1,
|
|
[Define to 1 if the system has the `$1' built-in function])], [])
|
|
|
|
AS_VAR_POPDEF([ac_var])
|
|
])
|