dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.13.2.76 2003/07/30 11:50:44 guus Exp $
+dnl $Id: configure.in,v 1.13.2.77 2003/07/31 11:17:39 guus Exp $
AC_PREREQ(2.57)
AC_INIT(src/tincd.c)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
+AC_C_VOLATILE
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
+tinc_ATTRIBUTE(__malloc__)
+
AC_CHECK_TYPES([socklen_t, struct arphdr, struct ether_arp, struct in_addr, struct addrinfo, struct ip, struct icmp, struct in6_addr, struct sockaddr_in6, struct ip6_hdr, struct icmp6_hdr, struct nd_neighbor_solicit, struct nd_opt_hdr], , ,
[#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: list.h,v 1.1.2.10 2003/07/12 17:48:38 guus Exp $
+ $Id: list.h,v 1.1.2.11 2003/07/31 11:17:39 guus Exp $
*/
#ifndef __TINC_LIST_H__
/* (De)constructors */
-extern list_t *list_alloc(list_action_t) __attribute__ ((malloc));
+extern list_t *list_alloc(list_action_t) __attribute__ ((__malloc__));
extern void list_free(list_t *);
extern list_node_t *list_alloc_node(void);
extern void list_free_node(list_t *, list_node_t *);
--- /dev/null
+dnl Check to find out whether function attributes are supported.
+dnl If they are not, #define them to be nothing.
+
+AC_DEFUN(tinc_ATTRIBUTE,
+[
+ AC_CACHE_CHECK([for working $1 attribute], tinc_cv_attribute_$1,
+ [
+ tempcflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wall -Werror"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [void test(void) __attribute__ (($1));
+ void test(void) { return; }
+ ],
+ )],
+ [tinc_cv_attribute_$1=yes],
+ [tinc_cv_attribute_$1=no]
+ )
+ CFLAGS="$tempcflags"
+ ])
+
+ if test ${tinc_cv_attribute_$1} = no; then
+ AC_DEFINE([$1], [], [Defined if the $1 attribute is not supported.])
+ fi
+])