1dnl GAS_CHECK_DECL_NEEDED(name, typedefname, typedef, headers) 2AC_DEFUN([GAS_CHECK_DECL_NEEDED],[ 3AC_MSG_CHECKING(whether declaration is required for $1) 4AC_CACHE_VAL(gas_cv_decl_needed_$1, 5AC_TRY_LINK([$4], 6[ 7typedef $3; 8$2 x; 9x = ($2) $1; 10], gas_cv_decl_needed_$1=no, gas_cv_decl_needed_$1=yes))dnl 11AC_MSG_RESULT($gas_cv_decl_needed_$1) 12if test $gas_cv_decl_needed_$1 = yes; then 13 AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]), 1, 14 [Define if $1 is not declared in system header files.]) 15fi 16])dnl 17dnl 18dnl Some non-ANSI preprocessors botch requoting inside strings. That's bad 19dnl enough, but on some of those systems, the assert macro relies on requoting 20dnl working properly! 21dnl GAS_WORKING_ASSERT 22AC_DEFUN([GAS_WORKING_ASSERT], 23[AC_MSG_CHECKING([for working assert macro]) 24AC_CACHE_VAL(gas_cv_assert_ok, 25AC_TRY_LINK([#include <assert.h> 26#include <stdio.h>], [ 27/* check for requoting problems */ 28static int a, b, c, d; 29static char *s; 30assert (!strcmp(s, "foo bar baz quux")); 31/* check for newline handling */ 32assert (a == b 33 || c == d); 34], gas_cv_assert_ok=yes, gas_cv_assert_ok=no))dnl 35AC_MSG_RESULT($gas_cv_assert_ok) 36test $gas_cv_assert_ok = yes || AC_DEFINE(BROKEN_ASSERT, 1, [assert broken?]) 37])dnl 38dnl 39dnl Since many Bourne shell implementations lack subroutines, use this 40dnl hack to simplify the code in configure.ac. 41dnl GAS_UNIQ(listvar) 42AC_DEFUN([GAS_UNIQ], 43[_gas_uniq_list="[$]$1" 44_gas_uniq_newlist="" 45dnl Protect against empty input list. 46for _gas_uniq_i in _gas_uniq_dummy [$]_gas_uniq_list ; do 47 case [$]_gas_uniq_i in 48 _gas_uniq_dummy) ;; 49 *) case " [$]_gas_uniq_newlist " in 50 *" [$]_gas_uniq_i "*) ;; 51 *) _gas_uniq_newlist="[$]_gas_uniq_newlist [$]_gas_uniq_i" ;; 52 esac ;; 53 esac 54done 55$1=[$]_gas_uniq_newlist 56])dnl 57dnl 58dnl Check for existence of member $2 in type $1 in time.h 59dnl 60AC_DEFUN([GAS_HAVE_TIME_TYPE_MEMBER], 61[AC_MSG_CHECKING([for $1.$2 in time.h]) 62 AC_CACHE_VAL(gas_cv_have_time_type_member_$2, 63 [AC_TRY_COMPILE([ 64#define _BSD_SOURCE 1 65#include <time.h>], 66 [$1 avar; void* aref = (void*) &avar.$2], 67 gas_cv_have_time_type_member_$2=yes, 68 gas_cv_have_time_type_member_$2=no 69 )]) 70 if test $gas_cv_have_time_type_member_$2 = yes; then 71 AC_DEFINE([HAVE_]translit($2, [a-z], [A-Z]), 1, 72 [Define if <time.h> has $1.$2.]) 73 fi 74 AC_MSG_RESULT($gas_cv_have_time_type_member_$2) 75])dnl 76dnl 77dnl Check for existence of member $2.$3 in type $1 in sys/stat.h 78dnl 79AC_DEFUN([GAS_HAVE_SYS_STAT_TYPE_MEMBER], 80[AC_MSG_CHECKING([for $1.$2.$3 in sys/stat.h]) 81 AC_CACHE_VAL(gas_cv_have_sys_stat_type_member_$2_$3, 82 [AC_TRY_COMPILE([ 83#define _BSD_SOURCE 1 84#include <sys/stat.h>], 85 [$1 avar; void* aref = (void*) &avar.$2.$3], 86 gas_cv_have_sys_stat_type_member_$2_$3=yes, 87 gas_cv_have_sys_stat_type_member_$2_$3=no 88 )]) 89 if test $gas_cv_have_sys_stat_type_member_$2_$3 = yes; then 90 AC_DEFINE([HAVE_]translit($2, [a-z], [A-Z])[_]translit($3, [a-z], [A-Z]), 1, 91 [Define if <sys/stat.h> has $1.$2.$3]) 92 fi 93 AC_MSG_RESULT($gas_cv_have_sys_stat_type_member_$2_$3) 94])dnl 95