mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 06:50:12 +00:00
Use autoconf-archive m4 from src/external
Switch to using the m4 macros from autoconf-archive in our src/external mechanism, instead of manually-copied versions in src/cf. The src/external copy of ax_gcc_func_attribute.m4 is identical to the existing copy in src/cf, so that should incur no changes. There are also a few new macros pulled in, but they are currently unused. Increase our AC_PREREQ in configure.ac to 2.64, to match the AC_PREREQ in some of the new files. Change-Id: I8acfe4df7b9a22d9b9e69004c3438034a2dacadb Reviewed-on: https://gerrit.openafs.org/14135 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
This commit is contained in:
parent
d8205bbb48
commit
ca847ddf35
7
LICENSE
7
LICENSE
@ -418,10 +418,13 @@ src/cf/lib-pathname.m4 are covered by the following license:
|
|||||||
|
|
||||||
====================================================
|
====================================================
|
||||||
|
|
||||||
The file src/cf/ax_gcc_func_attribute.m4 covered by
|
The files under src/external/autoconf-archive/m4/ are covered by the following
|
||||||
the following license:
|
license:
|
||||||
|
|
||||||
|
Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||||
|
Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||||
Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
|
Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
|
||||||
|
Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
Copying and distribution of this file, with or without modification, are
|
Copying and distribution of this file, with or without modification, are
|
||||||
permitted in any medium without royalty provided the copyright notice
|
permitted in any medium without royalty provided the copyright notice
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
AC_PREREQ([2.60])
|
AC_PREREQ([2.64])
|
||||||
AC_INIT([OpenAFS],[m4_esyscmd(build-tools/git-version .)],[openafs-bugs@openafs.org],[],[http://www.openafs.org/])
|
AC_INIT([OpenAFS],[m4_esyscmd(build-tools/git-version .)],[openafs-bugs@openafs.org],[],[http://www.openafs.org/])
|
||||||
AC_CONFIG_AUX_DIR([build-tools])
|
AC_CONFIG_AUX_DIR([build-tools])
|
||||||
AC_CONFIG_MACRO_DIR([src/cf])
|
AC_CONFIG_MACRO_DIR([src/cf])
|
||||||
|
8
regen.sh
8
regen.sh
@ -26,11 +26,15 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
M4_INCS="-I src/cf"
|
||||||
|
M4_INCS="$M4_INCS -I src/external/rra-c-util/m4"
|
||||||
|
M4_INCS="$M4_INCS -I src/external/autoconf-archive/m4"
|
||||||
|
|
||||||
echo "Running aclocal"
|
echo "Running aclocal"
|
||||||
if which aclocal > /dev/null 2>&1; then
|
if which aclocal > /dev/null 2>&1; then
|
||||||
aclocal -I src/cf -I src/external/rra-c-util/m4
|
aclocal $M4_INCS
|
||||||
elif which aclocal-1.10 > /dev/null 2>&1; then
|
elif which aclocal-1.10 > /dev/null 2>&1; then
|
||||||
aclocal-1.10 -I src/cf -I src/external/rra-c-util/m4
|
aclocal-1.10 $M4_INCS
|
||||||
else
|
else
|
||||||
echo "No aclocal found on your system (looked for aclocal & aclocal-1.10)"
|
echo "No aclocal found on your system (looked for aclocal & aclocal-1.10)"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1,238 +0,0 @@
|
|||||||
# ===========================================================================
|
|
||||||
# https://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro checks if the compiler supports one of GCC's function
|
|
||||||
# attributes; many other compilers also provide function attributes with
|
|
||||||
# the same syntax. Compiler warnings are used to detect supported
|
|
||||||
# attributes as unsupported ones are ignored by default so quieting
|
|
||||||
# warnings when using this macro will yield false positives.
|
|
||||||
#
|
|
||||||
# The ATTRIBUTE parameter holds the name of the attribute to be checked.
|
|
||||||
#
|
|
||||||
# If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
|
|
||||||
#
|
|
||||||
# The macro caches its result in the ax_cv_have_func_attribute_<attribute>
|
|
||||||
# variable.
|
|
||||||
#
|
|
||||||
# The macro currently supports the following function attributes:
|
|
||||||
#
|
|
||||||
# alias
|
|
||||||
# aligned
|
|
||||||
# alloc_size
|
|
||||||
# always_inline
|
|
||||||
# artificial
|
|
||||||
# cold
|
|
||||||
# const
|
|
||||||
# constructor
|
|
||||||
# constructor_priority for constructor attribute with priority
|
|
||||||
# deprecated
|
|
||||||
# destructor
|
|
||||||
# dllexport
|
|
||||||
# dllimport
|
|
||||||
# error
|
|
||||||
# externally_visible
|
|
||||||
# fallthrough
|
|
||||||
# flatten
|
|
||||||
# format
|
|
||||||
# format_arg
|
|
||||||
# gnu_inline
|
|
||||||
# hot
|
|
||||||
# ifunc
|
|
||||||
# leaf
|
|
||||||
# malloc
|
|
||||||
# noclone
|
|
||||||
# noinline
|
|
||||||
# nonnull
|
|
||||||
# noreturn
|
|
||||||
# nothrow
|
|
||||||
# optimize
|
|
||||||
# pure
|
|
||||||
# sentinel
|
|
||||||
# sentinel_position
|
|
||||||
# unused
|
|
||||||
# used
|
|
||||||
# visibility
|
|
||||||
# warning
|
|
||||||
# warn_unused_result
|
|
||||||
# weak
|
|
||||||
# weakref
|
|
||||||
#
|
|
||||||
# Unsupported function attributes will be tested with a prototype
|
|
||||||
# returning an int and not accepting any arguments 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 9
|
|
||||||
|
|
||||||
AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
|
|
||||||
AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([
|
|
||||||
m4_case([$1],
|
|
||||||
[alias], [
|
|
||||||
int foo( void ) { return 0; }
|
|
||||||
int bar( void ) __attribute__(($1("foo")));
|
|
||||||
],
|
|
||||||
[aligned], [
|
|
||||||
int foo( void ) __attribute__(($1(32)));
|
|
||||||
],
|
|
||||||
[alloc_size], [
|
|
||||||
void *foo(int a) __attribute__(($1(1)));
|
|
||||||
],
|
|
||||||
[always_inline], [
|
|
||||||
inline __attribute__(($1)) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[artificial], [
|
|
||||||
inline __attribute__(($1)) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[cold], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[const], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[constructor_priority], [
|
|
||||||
int foo( void ) __attribute__((__constructor__(65535/2)));
|
|
||||||
],
|
|
||||||
[constructor], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[deprecated], [
|
|
||||||
int foo( void ) __attribute__(($1("")));
|
|
||||||
],
|
|
||||||
[destructor], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[dllexport], [
|
|
||||||
__attribute__(($1)) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[dllimport], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[error], [
|
|
||||||
int foo( void ) __attribute__(($1("")));
|
|
||||||
],
|
|
||||||
[externally_visible], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[fallthrough], [
|
|
||||||
int foo( void ) {switch (0) { case 1: __attribute__(($1)); case 2: break ; }};
|
|
||||||
],
|
|
||||||
[flatten], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[format], [
|
|
||||||
int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
|
|
||||||
],
|
|
||||||
[format_arg], [
|
|
||||||
char *foo(const char *p) __attribute__(($1(1)));
|
|
||||||
],
|
|
||||||
[gnu_inline], [
|
|
||||||
inline __attribute__(($1)) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[hot], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[ifunc], [
|
|
||||||
int my_foo( void ) { return 0; }
|
|
||||||
static int (*resolve_foo(void))(void) { return my_foo; }
|
|
||||||
int foo( void ) __attribute__(($1("resolve_foo")));
|
|
||||||
],
|
|
||||||
[leaf], [
|
|
||||||
__attribute__(($1)) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[malloc], [
|
|
||||||
void *foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[noclone], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[noinline], [
|
|
||||||
__attribute__(($1)) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[nonnull], [
|
|
||||||
int foo(char *p) __attribute__(($1(1)));
|
|
||||||
],
|
|
||||||
[noreturn], [
|
|
||||||
void foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[nothrow], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[optimize], [
|
|
||||||
__attribute__(($1(3))) int foo( void ) { return 0; }
|
|
||||||
],
|
|
||||||
[pure], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[sentinel], [
|
|
||||||
int foo(void *p, ...) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[sentinel_position], [
|
|
||||||
int foo(void *p, ...) __attribute__(($1(1)));
|
|
||||||
],
|
|
||||||
[returns_nonnull], [
|
|
||||||
void *foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[unused], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[used], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[visibility], [
|
|
||||||
int foo_def( void ) __attribute__(($1("default")));
|
|
||||||
int foo_hid( void ) __attribute__(($1("hidden")));
|
|
||||||
int foo_int( void ) __attribute__(($1("internal")));
|
|
||||||
int foo_pro( void ) __attribute__(($1("protected")));
|
|
||||||
],
|
|
||||||
[warning], [
|
|
||||||
int foo( void ) __attribute__(($1("")));
|
|
||||||
],
|
|
||||||
[warn_unused_result], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[weak], [
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
],
|
|
||||||
[weakref], [
|
|
||||||
static int foo( void ) { return 0; }
|
|
||||||
static int bar( void ) __attribute__(($1("foo")));
|
|
||||||
],
|
|
||||||
[
|
|
||||||
m4_warn([syntax], [Unsupported attribute $1, the test may fail])
|
|
||||||
int foo( void ) __attribute__(($1));
|
|
||||||
]
|
|
||||||
)], [])
|
|
||||||
],
|
|
||||||
dnl GCC doesn't exit with an error if an unknown attribute is
|
|
||||||
dnl provided but only outputs a warning, so accept the attribute
|
|
||||||
dnl only if no warning were issued.
|
|
||||||
[AS_IF([test -s conftest.err],
|
|
||||||
[AS_VAR_SET([ac_var], [no])],
|
|
||||||
[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_FUNC_ATTRIBUTE_$1), 1,
|
|
||||||
[Define to 1 if the system has the `$1' function attribute])], [])
|
|
||||||
|
|
||||||
AS_VAR_POPDEF([ac_var])
|
|
||||||
])
|
|
Loading…
Reference in New Issue
Block a user