1dnl @(#) $Header: /tcpdump/master/tcpdump/aclocal.m4,v 1.106.2.7 2005/11/08 03:00:52 guy Exp $ (LBL) 2dnl 3dnl Copyright (c) 1995, 1996, 1997, 1998 4dnl The Regents of the University of California. All rights reserved. 5dnl 6dnl Redistribution and use in source and binary forms, with or without 7dnl modification, are permitted provided that: (1) source code distributions 8dnl retain the above copyright notice and this paragraph in its entirety, (2) 9dnl distributions including binary code include the above copyright notice and 10dnl this paragraph in its entirety in the documentation or other materials 11dnl provided with the distribution, and (3) all advertising materials mentioning 12dnl features or use of this software display the following acknowledgement: 13dnl ``This product includes software developed by the University of California, 14dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 15dnl the University nor the names of its contributors may be used to endorse 16dnl or promote products derived from this software without specific prior 17dnl written permission. 18dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 19dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 20dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 21dnl 22dnl LBL autoconf macros 23dnl 24 25dnl 26dnl Determine which compiler we're using (cc or gcc) 27dnl If using gcc, determine the version number 28dnl If using cc, require that it support ansi prototypes 29dnl If using gcc, use -O2 (otherwise use -O) 30dnl If using cc, explicitly specify /usr/local/include 31dnl 32dnl usage: 33dnl 34dnl AC_LBL_C_INIT(copt, incls) 35dnl 36dnl results: 37dnl 38dnl $1 (copt set) 39dnl $2 (incls set) 40dnl CC 41dnl LDFLAGS 42dnl ac_cv_lbl_gcc_vers 43dnl LBL_CFLAGS 44dnl 45AC_DEFUN(AC_LBL_C_INIT, 46 [AC_PREREQ(2.12) 47 AC_BEFORE([$0], [AC_PROG_CC]) 48 AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) 49 AC_BEFORE([$0], [AC_LBL_DEVEL]) 50 AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) 51 $1="-O" 52 $2="" 53 if test "${srcdir}" != "." ; then 54 $2="-I\$(srcdir)" 55 fi 56 if test "${CFLAGS+set}" = set; then 57 LBL_CFLAGS="$CFLAGS" 58 fi 59 if test -z "$CC" ; then 60 case "$host_os" in 61 62 bsdi*) 63 AC_CHECK_PROG(SHLICC2, shlicc2, yes, no) 64 if test $SHLICC2 = yes ; then 65 CC=shlicc2 66 export CC 67 fi 68 ;; 69 esac 70 fi 71 if test -z "$CC" -a "$with_gcc" = no ; then 72 CC=cc 73 export CC 74 fi 75 AC_PROG_CC 76 if test "$GCC" = yes ; then 77 if test "$SHLICC2" = yes ; then 78 ac_cv_lbl_gcc_vers=2 79 $1="-O2" 80 else 81 AC_MSG_CHECKING(gcc version) 82 AC_CACHE_VAL(ac_cv_lbl_gcc_vers, 83 ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \ 84 sed -e '/^gcc version /!d' \ 85 -e 's/^gcc version //' \ 86 -e 's/ .*//' -e 's/^[[[^0-9]]]*//' \ 87 -e 's/\..*//'`) 88 AC_MSG_RESULT($ac_cv_lbl_gcc_vers) 89 if test $ac_cv_lbl_gcc_vers -gt 1 ; then 90 $1="-O2" 91 fi 92 fi 93 else 94 AC_MSG_CHECKING(that $CC handles ansi prototypes) 95 AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes, 96 AC_TRY_COMPILE( 97 [#include <sys/types.h>], 98 [int frob(int, char *)], 99 ac_cv_lbl_cc_ansi_prototypes=yes, 100 ac_cv_lbl_cc_ansi_prototypes=no)) 101 AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes) 102 if test $ac_cv_lbl_cc_ansi_prototypes = no ; then 103 case "$host_os" in 104 105 hpux*) 106 AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE)) 107 savedcflags="$CFLAGS" 108 CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS" 109 AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa, 110 AC_TRY_COMPILE( 111 [#include <sys/types.h>], 112 [int frob(int, char *)], 113 ac_cv_lbl_cc_hpux_cc_aa=yes, 114 ac_cv_lbl_cc_hpux_cc_aa=no)) 115 AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa) 116 if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then 117 AC_MSG_ERROR(see the INSTALL doc for more info) 118 fi 119 CFLAGS="$savedcflags" 120 V_CCOPT="-Aa $V_CCOPT" 121 AC_DEFINE(_HPUX_SOURCE) 122 ;; 123 124 *) 125 AC_MSG_ERROR(see the INSTALL doc for more info) 126 ;; 127 esac 128 fi 129 $2="$$2 -I/usr/local/include" 130 LDFLAGS="$LDFLAGS -L/usr/local/lib" 131 132 case "$host_os" in 133 134 irix*) 135 V_CCOPT="$V_CCOPT -xansi -signed -O" 136 ;; 137 138 osf*) 139 V_CCOPT="$V_CCOPT -std1 -O" 140 ;; 141 142 ultrix*) 143 AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes) 144 AC_CACHE_VAL(ac_cv_lbl_cc_const_proto, 145 AC_TRY_COMPILE( 146 [#include <sys/types.h>], 147 [struct a { int b; }; 148 void c(const struct a *)], 149 ac_cv_lbl_cc_const_proto=yes, 150 ac_cv_lbl_cc_const_proto=no)) 151 AC_MSG_RESULT($ac_cv_lbl_cc_const_proto) 152 if test $ac_cv_lbl_cc_const_proto = no ; then 153 AC_DEFINE(const,) 154 fi 155 ;; 156 esac 157 fi 158]) 159 160 161# 162# Try compiling a sample of the type of code that appears in 163# gencode.c with "inline", "__inline__", and "__inline". 164# 165# Autoconf's AC_C_INLINE, at least in autoconf 2.13, isn't good enough, 166# as it just tests whether a function returning "int" can be inlined; 167# at least some versions of HP's C compiler can inline that, but can't 168# inline a function that returns a struct pointer. 169# 170AC_DEFUN(AC_LBL_C_INLINE, 171 [AC_MSG_CHECKING(for inline) 172 AC_CACHE_VAL(ac_cv_lbl_inline, [ 173 ac_cv_lbl_inline="" 174 ac_lbl_cc_inline=no 175 for ac_lbl_inline in inline __inline__ __inline 176 do 177 AC_TRY_COMPILE( 178 [#define inline $ac_lbl_inline 179 static inline struct iltest *foo(void); 180 struct iltest { 181 int iltest1; 182 int iltest2; 183 }; 184 185 static inline struct iltest * 186 foo() 187 { 188 static struct iltest xxx; 189 190 return &xxx; 191 }],,ac_lbl_cc_inline=yes,) 192 if test "$ac_lbl_cc_inline" = yes ; then 193 break; 194 fi 195 done 196 if test "$ac_lbl_cc_inline" = yes ; then 197 ac_cv_lbl_inline=$ac_lbl_inline 198 fi]) 199 if test ! -z "$ac_cv_lbl_inline" ; then 200 AC_MSG_RESULT($ac_cv_lbl_inline) 201 else 202 AC_MSG_RESULT(no) 203 fi 204 AC_DEFINE_UNQUOTED(inline, $ac_cv_lbl_inline, [Define as token for inline if inlining supported])]) 205 206dnl 207dnl Use pfopen.c if available and pfopen() not in standard libraries 208dnl Require libpcap 209dnl Look for libpcap in .. 210dnl Use the installed libpcap if there is no local version 211dnl 212dnl usage: 213dnl 214dnl AC_LBL_LIBPCAP(pcapdep, incls) 215dnl 216dnl results: 217dnl 218dnl $1 (pcapdep set) 219dnl $2 (incls appended) 220dnl LIBS 221dnl LBL_LIBS 222dnl 223AC_DEFUN(AC_LBL_LIBPCAP, 224 [AC_REQUIRE([AC_LBL_LIBRARY_NET]) 225 dnl 226 dnl save a copy before locating libpcap.a 227 dnl 228 LBL_LIBS="$LIBS" 229 pfopen=/usr/examples/packetfilter/pfopen.c 230 if test -f $pfopen ; then 231 AC_CHECK_FUNCS(pfopen) 232 if test $ac_cv_func_pfopen = "no" ; then 233 AC_MSG_RESULT(Using $pfopen) 234 LIBS="$LIBS $pfopen" 235 fi 236 fi 237 AC_MSG_CHECKING(for local pcap library) 238 libpcap=FAIL 239 lastdir=FAIL 240 places=`ls $srcdir/.. | sed -e 's,/$,,' -e "s,^,$srcdir/../," | \ 241 egrep '/libpcap-[[0-9]]*.[[0-9]]*(.[[0-9]]*)?([[ab]][[0-9]]*)?$'` 242 for dir in $places $srcdir/../libpcap $srcdir/libpcap ; do 243 basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'` 244 if test $lastdir = $basedir ; then 245 dnl skip alphas when an actual release is present 246 continue; 247 fi 248 lastdir=$dir 249 if test -r $dir/libpcap.a ; then 250 libpcap=$dir/libpcap.a 251 d=$dir 252 dnl continue and select the last one that exists 253 fi 254 done 255 if test $libpcap = FAIL ; then 256 AC_MSG_RESULT(not found) 257 AC_CHECK_LIB(pcap, main, libpcap="-lpcap") 258 if test $libpcap = FAIL ; then 259 AC_MSG_ERROR(see the INSTALL doc for more info) 260 fi 261 dnl 262 dnl Good old Red Hat Linux puts "pcap.h" in 263 dnl "/usr/include/pcap"; had the LBL folks done so, 264 dnl that would have been a good idea, but for 265 dnl the Red Hat folks to do so just breaks source 266 dnl compatibility with other systems. 267 dnl 268 dnl We work around this by assuming that, as we didn't 269 dnl find a local libpcap, libpcap is in /usr/lib or 270 dnl /usr/local/lib and that the corresponding header 271 dnl file is under one of those directories; if we don't 272 dnl find it in either of those directories, we check to 273 dnl see if it's in a "pcap" subdirectory of them and, 274 dnl if so, add that subdirectory to the "-I" list. 275 dnl 276 AC_MSG_CHECKING(for extraneous pcap header directories) 277 if test \( ! -r /usr/local/include/pcap.h \) -a \ 278 \( ! -r /usr/include/pcap.h \); then 279 if test -r /usr/local/include/pcap/pcap.h; then 280 d="/usr/local/include/pcap" 281 elif test -r /usr/include/pcap/pcap.h; then 282 d="/usr/include/pcap" 283 fi 284 fi 285 if test -z "$d" ; then 286 AC_MSG_RESULT(not found) 287 else 288 $2="-I$d $$2" 289 AC_MSG_RESULT(found -- -I$d added) 290 fi 291 else 292 $1=$libpcap 293 places=`ls $srcdir/.. | sed -e 's,/$,,' -e "s,^,$srcdir/../," | \ 294 egrep '/libpcap-[[0-9]]*.[[0-9]]*(.[[0-9]]*)?([[ab]][[0-9]]*)?$'` 295 if test -r $d/pcap.h; then 296 $2="-I$d $$2" 297 elif test -r $places/pcap.h; then 298 $2="-I$places $$2" 299 else 300 AC_MSG_ERROR(cannot find pcap.h, see INSTALL) 301 fi 302 AC_MSG_RESULT($libpcap) 303 fi 304 LIBS="$libpcap $LIBS" 305 case "$host_os" in 306 307 aix*) 308 pseexe="/lib/pse.exp" 309 AC_MSG_CHECKING(for $pseexe) 310 if test -f $pseexe ; then 311 AC_MSG_RESULT(yes) 312 LIBS="$LIBS -I:$pseexe" 313 fi 314 # 315 # We need "-lodm" and "-lcfg", as libpcap requires them on 316 # AIX, and we just build a static libpcap.a and thus can't 317 # arrange that when you link with libpcap you automatically 318 # link with those libraries. 319 # 320 LIBS="$LIBS -lodm -lcfg" 321 ;; 322 esac 323 324 dnl 325 dnl Check for "pcap_list_datalinks()", "pcap_set_datalink()", 326 dnl and "pcap_datalink_name_to_val()", and use substitute versions 327 dnl if they're not present. 328 dnl 329 AC_CHECK_FUNC(pcap_list_datalinks, 330 AC_DEFINE(HAVE_PCAP_LIST_DATALINKS), 331 [ 332 AC_LIBOBJ(datalinks) 333 ]) 334 AC_CHECK_FUNC(pcap_set_datalink, 335 AC_DEFINE(HAVE_PCAP_SET_DATALINK)) 336 AC_CHECK_FUNC(pcap_datalink_name_to_val, 337 [ 338 AC_DEFINE(HAVE_PCAP_DATALINK_NAME_TO_VAL) 339 AC_CHECK_FUNC(pcap_datalink_val_to_description, 340 AC_DEFINE(HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION), 341 [ 342 AC_LIBOBJ(dlnames) 343 ]) 344 ], 345 [ 346 AC_LIBOBJ(dlnames) 347 ]) 348 349 dnl 350 dnl Check for "pcap_breakloop()"; you can't substitute for it if 351 dnl it's absent (it has hooks into the live capture routines), 352 dnl so just define the HAVE_ value if it's there. 353 dnl 354 AC_CHECK_FUNCS(pcap_breakloop) 355 356 dnl 357 dnl Check for "pcap_dump_ftell()" and use a substitute version 358 dnl if it's not present. 359 AC_CHECK_FUNC(pcap_dump_ftell, 360 AC_DEFINE(HAVE_PCAP_DUMP_FTELL), 361 [ 362 AC_LIBOBJ(pcap_dump_ftell) 363 ]) 364]) 365 366dnl 367dnl Define RETSIGTYPE and RETSIGVAL 368dnl 369dnl usage: 370dnl 371dnl AC_LBL_TYPE_SIGNAL 372dnl 373dnl results: 374dnl 375dnl RETSIGTYPE (defined) 376dnl RETSIGVAL (defined) 377dnl 378AC_DEFUN(AC_LBL_TYPE_SIGNAL, 379 [AC_BEFORE([$0], [AC_LBL_LIBPCAP]) 380 AC_TYPE_SIGNAL 381 if test "$ac_cv_type_signal" = void ; then 382 AC_DEFINE(RETSIGVAL,) 383 else 384 AC_DEFINE(RETSIGVAL,(0)) 385 fi 386 case "$host_os" in 387 388 irix*) 389 AC_DEFINE(_BSD_SIGNALS) 390 ;; 391 392 *) 393 dnl prefer sigaction() to sigset() 394 AC_CHECK_FUNCS(sigaction) 395 if test $ac_cv_func_sigaction = no ; then 396 AC_CHECK_FUNCS(sigset) 397 fi 398 ;; 399 esac]) 400 401dnl 402dnl If using gcc, make sure we have ANSI ioctl definitions 403dnl 404dnl usage: 405dnl 406dnl AC_LBL_FIXINCLUDES 407dnl 408AC_DEFUN(AC_LBL_FIXINCLUDES, 409 [if test "$GCC" = yes ; then 410 AC_MSG_CHECKING(for ANSI ioctl definitions) 411 AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes, 412 AC_TRY_COMPILE( 413 [/* 414 * This generates a "duplicate case value" when fixincludes 415 * has not be run. 416 */ 417# include <sys/types.h> 418# include <sys/time.h> 419# include <sys/ioctl.h> 420# ifdef HAVE_SYS_IOCCOM_H 421# include <sys/ioccom.h> 422# endif], 423 [switch (0) { 424 case _IO('A', 1):; 425 case _IO('B', 1):; 426 }], 427 ac_cv_lbl_gcc_fixincludes=yes, 428 ac_cv_lbl_gcc_fixincludes=no)) 429 AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes) 430 if test $ac_cv_lbl_gcc_fixincludes = no ; then 431 # Don't cache failure 432 unset ac_cv_lbl_gcc_fixincludes 433 AC_MSG_ERROR(see the INSTALL for more info) 434 fi 435 fi]) 436 437dnl 438dnl Check for flex, default to lex 439dnl Require flex 2.4 or higher 440dnl Check for bison, default to yacc 441dnl Default to lex/yacc if both flex and bison are not available 442dnl Define the yy prefix string if using flex and bison 443dnl 444dnl usage: 445dnl 446dnl AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix) 447dnl 448dnl results: 449dnl 450dnl $1 (lex set) 451dnl $2 (yacc appended) 452dnl $3 (optional flex and bison -P prefix) 453dnl 454AC_DEFUN(AC_LBL_LEX_AND_YACC, 455 [AC_ARG_WITH(flex, [ --without-flex don't use flex]) 456 AC_ARG_WITH(bison, [ --without-bison don't use bison]) 457 if test "$with_flex" = no ; then 458 $1=lex 459 else 460 AC_CHECK_PROGS($1, flex, lex) 461 fi 462 if test "$$1" = flex ; then 463 # The -V flag was added in 2.4 464 AC_MSG_CHECKING(for flex 2.4 or higher) 465 AC_CACHE_VAL(ac_cv_lbl_flex_v24, 466 if flex -V >/dev/null 2>&1; then 467 ac_cv_lbl_flex_v24=yes 468 else 469 ac_cv_lbl_flex_v24=no 470 fi) 471 AC_MSG_RESULT($ac_cv_lbl_flex_v24) 472 if test $ac_cv_lbl_flex_v24 = no ; then 473 s="2.4 or higher required" 474 AC_MSG_WARN(ignoring obsolete flex executable ($s)) 475 $1=lex 476 fi 477 fi 478 if test "$with_bison" = no ; then 479 $2=yacc 480 else 481 AC_CHECK_PROGS($2, bison, yacc) 482 fi 483 if test "$$2" = bison ; then 484 $2="$$2 -y" 485 fi 486 if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then 487 AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc) 488 $1=lex 489 $2=yacc 490 fi 491 if test "$$1" = flex -a -n "$3" ; then 492 $1="$$1 -P$3" 493 $2="$$2 -p $3" 494 fi]) 495 496dnl 497dnl Checks to see if union wait is used with WEXITSTATUS() 498dnl 499dnl usage: 500dnl 501dnl AC_LBL_UNION_WAIT 502dnl 503dnl results: 504dnl 505dnl DECLWAITSTATUS (defined) 506dnl 507AC_DEFUN(AC_LBL_UNION_WAIT, 508 [AC_MSG_CHECKING(if union wait is used) 509 AC_CACHE_VAL(ac_cv_lbl_union_wait, 510 AC_TRY_COMPILE([ 511# include <sys/types.h> 512# include <sys/wait.h>], 513 [int status; 514 u_int i = WEXITSTATUS(status); 515 u_int j = waitpid(0, &status, 0);], 516 ac_cv_lbl_union_wait=no, 517 ac_cv_lbl_union_wait=yes)) 518 AC_MSG_RESULT($ac_cv_lbl_union_wait) 519 if test $ac_cv_lbl_union_wait = yes ; then 520 AC_DEFINE(DECLWAITSTATUS,union wait) 521 else 522 AC_DEFINE(DECLWAITSTATUS,int) 523 fi]) 524 525dnl 526dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member 527dnl 528dnl usage: 529dnl 530dnl AC_LBL_SOCKADDR_SA_LEN 531dnl 532dnl results: 533dnl 534dnl HAVE_SOCKADDR_SA_LEN (defined) 535dnl 536AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN, 537 [AC_MSG_CHECKING(if sockaddr struct has sa_len member) 538 AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len, 539 AC_TRY_COMPILE([ 540# include <sys/types.h> 541# include <sys/socket.h>], 542 [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], 543 ac_cv_lbl_sockaddr_has_sa_len=yes, 544 ac_cv_lbl_sockaddr_has_sa_len=no)) 545 AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len) 546 if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then 547 AC_DEFINE(HAVE_SOCKADDR_SA_LEN) 548 fi]) 549 550dnl 551dnl Checks to see if -R is used 552dnl 553dnl usage: 554dnl 555dnl AC_LBL_HAVE_RUN_PATH 556dnl 557dnl results: 558dnl 559dnl ac_cv_lbl_have_run_path (yes or no) 560dnl 561AC_DEFUN(AC_LBL_HAVE_RUN_PATH, 562 [AC_MSG_CHECKING(for ${CC-cc} -R) 563 AC_CACHE_VAL(ac_cv_lbl_have_run_path, 564 [echo 'main(){}' > conftest.c 565 ${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1 566 if test ! -s conftest.out ; then 567 ac_cv_lbl_have_run_path=yes 568 else 569 ac_cv_lbl_have_run_path=no 570 fi 571 rm -f conftest*]) 572 AC_MSG_RESULT($ac_cv_lbl_have_run_path) 573 ]) 574 575dnl 576dnl Check whether a given format can be used to print 64-bit integers 577dnl 578AC_DEFUN(AC_LBL_CHECK_64BIT_FORMAT, 579 [ 580 AC_MSG_CHECKING([whether %$1x can be used to format 64-bit integers]) 581 AC_RUN_IFELSE( 582 [ 583 AC_LANG_SOURCE( 584 [[ 585# ifdef HAVE_INTTYPES_H 586 #include <inttypes.h> 587# endif 588# ifdef HAVE_SYS_BITYPES_H 589 #include <sys/bitypes.h> 590# endif 591 #include <stdio.h> 592 #include <sys/types.h> 593 594 main() 595 { 596 u_int64_t t = 1; 597 char strbuf[16+1]; 598 sprintf(strbuf, "%016$1x", t << 32); 599 if (strcmp(strbuf, "0000000100000000") == 0) 600 exit(0); 601 else 602 exit(1); 603 } 604 ]]) 605 ], 606 [ 607 AC_DEFINE(PRId64, "$1d") 608 AC_DEFINE(PRIo64, "$1o") 609 AC_DEFINE(PRIx64, "$1x") 610 AC_DEFINE(PRIu64, "$1u") 611 AC_MSG_RESULT(yes) 612 ], 613 [ 614 AC_MSG_RESULT(no) 615 $2 616 ]) 617 ]) 618 619dnl 620dnl Checks to see if unaligned memory accesses fail 621dnl 622dnl usage: 623dnl 624dnl AC_LBL_UNALIGNED_ACCESS 625dnl 626dnl results: 627dnl 628dnl LBL_ALIGN (DEFINED) 629dnl 630AC_DEFUN(AC_LBL_UNALIGNED_ACCESS, 631 [AC_MSG_CHECKING(if unaligned accesses fail) 632 AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, 633 [case "$host_cpu" in 634 635 # 636 # These are CPU types where: 637 # 638 # the CPU faults on an unaligned access, but at least some 639 # OSes that support that CPU catch the fault and simulate 640 # the unaligned access (e.g., Alpha/{Digital,Tru64} UNIX) - 641 # the simulation is slow, so we don't want to use it; 642 # 643 # the CPU, I infer (from the old 644 # 645 # XXX: should also check that they don't do weird things (like on arm) 646 # 647 # comment) doesn't fault on unaligned accesses, but doesn't 648 # do a normal unaligned fetch, either (e.g., presumably, ARM); 649 # 650 # for whatever reason, the test program doesn't work 651 # (this has been claimed to be the case for several of those 652 # CPUs - I don't know what the problem is; the problem 653 # was reported as "the test program dumps core" for SuperH, 654 # but that's what the test program is *supposed* to do - 655 # it dumps core before it writes anything, so the test 656 # for an empty output file should find an empty output 657 # file and conclude that unaligned accesses don't work). 658 # 659 # This run-time test won't work if you're cross-compiling, so 660 # in order to support cross-compiling for a particular CPU, 661 # we have to wire in the list of CPU types anyway, as far as 662 # I know, so perhaps we should just have a set of CPUs on 663 # which we know it doesn't work, a set of CPUs on which we 664 # know it does work, and have the script just fail on other 665 # cpu types and update it when such a failure occurs. 666 # 667 alpha*|arm*|hp*|mips*|sh*|sparc*|ia64|nv1) 668 ac_cv_lbl_unaligned_fail=yes 669 ;; 670 671 *) 672 cat >conftest.c <<EOF 673# include <sys/types.h> 674# include <sys/wait.h> 675# include <stdio.h> 676 unsigned char a[[5]] = { 1, 2, 3, 4, 5 }; 677 main() { 678 unsigned int i; 679 pid_t pid; 680 int status; 681 /* avoid "core dumped" message */ 682 pid = fork(); 683 if (pid < 0) 684 exit(2); 685 if (pid > 0) { 686 /* parent */ 687 pid = waitpid(pid, &status, 0); 688 if (pid < 0) 689 exit(3); 690 exit(!WIFEXITED(status)); 691 } 692 /* child */ 693 i = *(unsigned int *)&a[[1]]; 694 printf("%d\n", i); 695 exit(0); 696 } 697EOF 698 ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \ 699 conftest.c $LIBS >/dev/null 2>&1 700 if test ! -x conftest ; then 701 dnl failed to compile for some reason 702 ac_cv_lbl_unaligned_fail=yes 703 else 704 ./conftest >conftest.out 705 if test ! -s conftest.out ; then 706 ac_cv_lbl_unaligned_fail=yes 707 else 708 ac_cv_lbl_unaligned_fail=no 709 fi 710 fi 711 rm -f conftest* core core.conftest 712 ;; 713 esac]) 714 AC_MSG_RESULT($ac_cv_lbl_unaligned_fail) 715 if test $ac_cv_lbl_unaligned_fail = yes ; then 716 AC_DEFINE(LBL_ALIGN) 717 fi]) 718 719dnl 720dnl If using gcc and the file .devel exists: 721dnl Compile with -g (if supported) and -Wall 722dnl If using gcc 2 or later, do extra prototype checking and some other 723dnl checks 724dnl If an os prototype include exists, symlink os-proto.h to it 725dnl 726dnl usage: 727dnl 728dnl AC_LBL_DEVEL(copt) 729dnl 730dnl results: 731dnl 732dnl $1 (copt appended) 733dnl HAVE_OS_PROTO_H (defined) 734dnl os-proto.h (symlinked) 735dnl 736AC_DEFUN(AC_LBL_DEVEL, 737 [rm -f os-proto.h 738 if test "${LBL_CFLAGS+set}" = set; then 739 $1="$$1 ${LBL_CFLAGS}" 740 fi 741 if test -f .devel ; then 742 if test "$GCC" = yes ; then 743 if test "${LBL_CFLAGS+set}" != set; then 744 if test "$ac_cv_prog_cc_g" = yes ; then 745 $1="-g $$1" 746 fi 747 $1="$$1 -Wall" 748 if test $ac_cv_lbl_gcc_vers -gt 1 ; then 749 $1="$$1 -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wpointer-arith -W" 750 fi 751 fi 752 else 753 case "$host_os" in 754 755 irix6*) 756 V_CCOPT="$V_CCOPT -n32" 757 ;; 758 759 *) 760 ;; 761 esac 762 fi 763 os=`echo $host_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'` 764 name="lbl/os-$os.h" 765 if test -f $name ; then 766 ln -s $name os-proto.h 767 AC_DEFINE(HAVE_OS_PROTO_H) 768 else 769 AC_MSG_WARN(can't find $name) 770 fi 771 fi]) 772 773dnl 774dnl Improved version of AC_CHECK_LIB 775dnl 776dnl Thanks to John Hawkinson (jhawk@mit.edu) 777dnl 778dnl usage: 779dnl 780dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, 781dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]]) 782dnl 783dnl results: 784dnl 785dnl LIBS 786dnl 787dnl XXX - "AC_LBL_LIBRARY_NET" was redone to use "AC_SEARCH_LIBS" 788dnl rather than "AC_LBL_CHECK_LIB", so this isn't used any more. 789dnl We keep it around for reference purposes in case it's ever 790dnl useful in the future. 791dnl 792 793define(AC_LBL_CHECK_LIB, 794[AC_MSG_CHECKING([for $2 in -l$1]) 795dnl Use a cache variable name containing the library, function 796dnl name, and extra libraries to link with, because the test really is 797dnl for library $1 defining function $2, when linked with potinal 798dnl library $5, not just for library $1. Separate tests with the same 799dnl $1 and different $2's or $5's may have different results. 800ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'` 801AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var, 802[ac_save_LIBS="$LIBS" 803LIBS="-l$1 $5 $LIBS" 804AC_TRY_LINK(dnl 805ifelse([$2], [main], , dnl Avoid conflicting decl of main. 806[/* Override any gcc2 internal prototype to avoid an error. */ 807]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus 808extern "C" 809#endif 810])dnl 811[/* We use char because int might match the return type of a gcc2 812 builtin and then its argument prototype would still apply. */ 813char $2(); 814]), 815 [$2()], 816 eval "ac_cv_lbl_lib_$ac_lib_var=yes", 817 eval "ac_cv_lbl_lib_$ac_lib_var=no") 818LIBS="$ac_save_LIBS" 819])dnl 820if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then 821 AC_MSG_RESULT(yes) 822 ifelse([$3], , 823[changequote(, )dnl 824 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ 825 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` 826changequote([, ])dnl 827 AC_DEFINE_UNQUOTED($ac_tr_lib) 828 LIBS="-l$1 $LIBS" 829], [$3]) 830else 831 AC_MSG_RESULT(no) 832ifelse([$4], , , [$4 833])dnl 834fi 835]) 836 837dnl 838dnl AC_LBL_LIBRARY_NET 839dnl 840dnl This test is for network applications that need socket() and 841dnl gethostbyname() -ish functions. Under Solaris, those applications 842dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link 843dnl with "-lnsl" but should *not* link with "-lsocket" because 844dnl libsocket.a breaks a number of things (for instance: 845dnl gethostbyname() under IRIX 5.2, and snoop sockets under most 846dnl versions of IRIX). 847dnl 848dnl Unfortunately, many application developers are not aware of this, 849dnl and mistakenly write tests that cause -lsocket to be used under 850dnl IRIX. It is also easy to write tests that cause -lnsl to be used 851dnl under operating systems where neither are necessary (or useful), 852dnl such as SunOS 4.1.4, which uses -lnsl for TLI. 853dnl 854dnl This test exists so that every application developer does not test 855dnl this in a different, and subtly broken fashion. 856 857dnl It has been argued that this test should be broken up into two 858dnl seperate tests, one for the resolver libraries, and one for the 859dnl libraries necessary for using Sockets API. Unfortunately, the two 860dnl are carefully intertwined and allowing the autoconf user to use 861dnl them independantly potentially results in unfortunate ordering 862dnl dependancies -- as such, such component macros would have to 863dnl carefully use indirection and be aware if the other components were 864dnl executed. Since other autoconf macros do not go to this trouble, 865dnl and almost no applications use sockets without the resolver, this 866dnl complexity has not been implemented. 867dnl 868dnl The check for libresolv is in case you are attempting to link 869dnl statically and happen to have a libresolv.a lying around (and no 870dnl libnsl.a). 871dnl 872AC_DEFUN(AC_LBL_LIBRARY_NET, [ 873 # Most operating systems have gethostbyname() in the default searched 874 # libraries (i.e. libc): 875 # Some OSes (eg. Solaris) place it in libnsl 876 # Some strange OSes (SINIX) have it in libsocket: 877 AC_SEARCH_LIBS(gethostbyname, nsl socket resolv) 878 # Unfortunately libsocket sometimes depends on libnsl and 879 # AC_SEARCH_LIBS isn't up to the task of handling dependencies like this. 880 if test "$ac_cv_search_gethostbyname" = "no" 881 then 882 AC_CHECK_LIB(socket, gethostbyname, 883 LIBS="-lsocket -lnsl $LIBS", , -lnsl) 884 fi 885 AC_SEARCH_LIBS(socket, socket, , 886 AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl)) 887 # DLPI needs putmsg under HPUX so test for -lstr while we're at it 888 AC_SEARCH_LIBS(putmsg, str) 889 ]) 890 891dnl Copyright (c) 1999 WIDE Project. All rights reserved. 892dnl 893dnl Redistribution and use in source and binary forms, with or without 894dnl modification, are permitted provided that the following conditions 895dnl are met: 896dnl 1. Redistributions of source code must retain the above copyright 897dnl notice, this list of conditions and the following disclaimer. 898dnl 2. Redistributions in binary form must reproduce the above copyright 899dnl notice, this list of conditions and the following disclaimer in the 900dnl documentation and/or other materials provided with the distribution. 901dnl 3. Neither the name of the project nor the names of its contributors 902dnl may be used to endorse or promote products derived from this software 903dnl without specific prior written permission. 904dnl 905dnl THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 906dnl ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 907dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 908dnl ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 909dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 910dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 911dnl OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 912dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 913dnl LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 914dnl OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 915dnl SUCH DAMAGE. 916 917dnl 918dnl Checks to see if AF_INET6 is defined 919AC_DEFUN(AC_CHECK_AF_INET6, [ 920 AC_MSG_CHECKING(for AF_INET6) 921 AC_CACHE_VAL($1, 922 AC_TRY_COMPILE([ 923# include <sys/types.h> 924# include <sys/socket.h>], 925 [int a = AF_INET6], 926 $1=yes, 927 $1=no)) 928 AC_MSG_RESULT($$1) 929 if test $$1 = yes ; then 930 AC_DEFINE(HAVE_AF_INET6) 931 fi 932]) 933 934dnl 935dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member 936dnl borrowed from LBL libpcap 937AC_DEFUN(AC_CHECK_SA_LEN, [ 938 AC_MSG_CHECKING(if sockaddr struct has sa_len member) 939 AC_CACHE_VAL($1, 940 AC_TRY_COMPILE([ 941# include <sys/types.h> 942# include <sys/socket.h>], 943 [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], 944 $1=yes, 945 $1=no)) 946 AC_MSG_RESULT($$1) 947 if test $$1 = yes ; then 948 AC_DEFINE(HAVE_SOCKADDR_SA_LEN) 949 fi 950]) 951 952dnl 953dnl Checks for portable prototype declaration macro 954AC_DEFUN(AC_CHECK_PORTABLE_PROTO, [ 955 AC_MSG_CHECKING(for __P) 956 AC_CACHE_VAL($1, 957 AC_TRY_COMPILE([ 958# include <unistd.h>], 959 [int f __P(())], 960 $1=yes, 961 $1=no)) 962 AC_MSG_RESULT($$1) 963 if test $$1 = yes; then 964 AC_DEFINE(HAVE_PORTABLE_PROTOTYPE) 965 fi 966]) 967 968dnl checks for u_intXX_t 969AC_DEFUN(AC_CHECK_BITTYPES, [ 970 $1=yes 971dnl check for u_int8_t 972 AC_MSG_CHECKING(for u_int8_t) 973 AC_CACHE_VAL(ac_cv_u_int8_t, 974 AC_TRY_COMPILE([ 975# include <sys/types.h>], 976 [u_int8_t i], 977 ac_cv_u_int8_t=yes, 978 ac_cv_u_int8_t=no)) 979 AC_MSG_RESULT($ac_cv_u_int8_t) 980 if test $ac_cv_u_int8_t = yes; then 981 AC_DEFINE(HAVE_U_INT8_T) 982 else 983 $1=no 984 fi 985dnl check for u_int16_t 986 AC_MSG_CHECKING(for u_int16_t) 987 AC_CACHE_VAL(ac_cv_u_int16_t, 988 AC_TRY_COMPILE([ 989# include <sys/types.h>], 990 [u_int16_t i], 991 ac_cv_u_int16_t=yes, 992 ac_cv_u_int16_t=no)) 993 AC_MSG_RESULT($ac_cv_u_int16_t) 994 if test $ac_cv_u_int16_t = yes; then 995 AC_DEFINE(HAVE_U_INT16_T) 996 else 997 $1=no 998 fi 999dnl check for u_int32_t 1000 AC_MSG_CHECKING(for u_int32_t) 1001 AC_CACHE_VAL(ac_cv_u_int32_t, 1002 AC_TRY_COMPILE([ 1003# include <sys/types.h>], 1004 [u_int32_t i], 1005 ac_cv_u_int32_t=yes, 1006 ac_cv_u_int32_t=no)) 1007 AC_MSG_RESULT($ac_cv_u_int32_t) 1008 if test $ac_cv_u_int32_t = yes; then 1009 AC_DEFINE(HAVE_U_INT32_T) 1010 else 1011 $1=no 1012 fi 1013dnl check for u_int64_t 1014 AC_MSG_CHECKING(for u_int64_t) 1015 AC_CACHE_VAL(ac_cv_u_int64_t, 1016 AC_TRY_COMPILE([ 1017# include <sys/types.h>], 1018 [u_int64_t i], 1019 ac_cv_u_int64_t=yes, 1020 ac_cv_u_int64_t=no)) 1021 AC_MSG_RESULT($ac_cv_u_int64_t) 1022 if test $ac_cv_u_int64_t = yes; then 1023 AC_DEFINE(HAVE_U_INT64_T) 1024 else 1025 $1=no 1026 fi 1027]) 1028 1029dnl 1030dnl Checks for addrinfo structure 1031AC_DEFUN(AC_STRUCT_ADDRINFO, [ 1032 AC_MSG_CHECKING(for addrinfo) 1033 AC_CACHE_VAL($1, 1034 AC_TRY_COMPILE([ 1035# include <netdb.h>], 1036 [struct addrinfo a], 1037 $1=yes, 1038 $1=no)) 1039 AC_MSG_RESULT($$1) 1040 if test $$1 = yes; then 1041 AC_DEFINE(HAVE_ADDRINFO) 1042 else 1043 AC_DEFINE(NEED_ADDRINFO_H) 1044 fi 1045]) 1046 1047dnl 1048dnl Checks for NI_MAXSERV 1049AC_DEFUN(AC_NI_MAXSERV, [ 1050 AC_MSG_CHECKING(for NI_MAXSERV) 1051 AC_CACHE_VAL($1, 1052 AC_EGREP_CPP(yes, [#include <netdb.h> 1053#ifdef NI_MAXSERV 1054yes 1055#endif], 1056 $1=yes, 1057 $1=no)) 1058 AC_MSG_RESULT($$1) 1059 if test $$1 != yes; then 1060 AC_DEFINE(NEED_ADDRINFO_H) 1061 fi 1062]) 1063 1064dnl 1065dnl Checks for NI_NAMEREQD 1066AC_DEFUN(AC_NI_NAMEREQD, [ 1067 AC_MSG_CHECKING(for NI_NAMEREQD) 1068 AC_CACHE_VAL($1, 1069 AC_EGREP_CPP(yes, [#include <netdb.h> 1070#ifdef NI_NOFQDN 1071yes 1072#endif], 1073 $1=yes, 1074 $1=no)) 1075 AC_MSG_RESULT($$1) 1076 if test $$1 != yes; then 1077 AC_DEFINE(NEED_ADDRINFO_H) 1078 fi 1079]) 1080 1081dnl 1082dnl Checks for sockaddr_storage structure 1083AC_DEFUN(AC_STRUCT_SA_STORAGE, [ 1084 AC_MSG_CHECKING(for sockaddr_storage) 1085 AC_CACHE_VAL($1, 1086 AC_TRY_COMPILE([ 1087# include <sys/types.h> 1088# include <sys/socket.h>], 1089 [struct sockaddr_storage s], 1090 $1=yes, 1091 $1=no)) 1092 AC_MSG_RESULT($$1) 1093 if test $$1 = yes; then 1094 AC_DEFINE(HAVE_SOCKADDR_STORAGE) 1095 fi 1096]) 1097 1098dnl 1099dnl Checks for macro of IP address size 1100AC_DEFUN(AC_CHECK_ADDRSZ, [ 1101 $1=yes 1102dnl check for INADDRSZ 1103 AC_MSG_CHECKING(for INADDRSZ) 1104 AC_CACHE_VAL(ac_cv_inaddrsz, 1105 AC_TRY_COMPILE([ 1106# include <arpa/nameser.h>], 1107 [int a = INADDRSZ], 1108 ac_cv_inaddrsz=yes, 1109 ac_cv_inaddrsz=no)) 1110 AC_MSG_RESULT($ac_cv_inaddrsz) 1111 if test $ac_cv_inaddrsz = yes; then 1112 AC_DEFINE(HAVE_INADDRSZ) 1113 else 1114 $1=no 1115 fi 1116dnl check for IN6ADDRSZ 1117 AC_MSG_CHECKING(for IN6ADDRSZ) 1118 AC_CACHE_VAL(ac_cv_in6addrsz, 1119 AC_TRY_COMPILE([ 1120# include <arpa/nameser.h>], 1121 [int a = IN6ADDRSZ], 1122 ac_cv_in6addrsz=yes, 1123 ac_cv_in6addrsz=no)) 1124 AC_MSG_RESULT($ac_cv_in6addrsz) 1125 if test $ac_cv_in6addrsz = yes; then 1126 AC_DEFINE(HAVE_IN6ADDRSZ) 1127 else 1128 $1=no 1129 fi 1130]) 1131 1132dnl 1133dnl check for RES_USE_INET6 1134AC_DEFUN(AC_CHECK_RES_USE_INET6, [ 1135 AC_MSG_CHECKING(for RES_USE_INET6) 1136 AC_CACHE_VAL($1, 1137 AC_TRY_COMPILE([ 1138# include <sys/types.h> 1139# include <netinet/in.h> 1140# include <resolv.h>], 1141 [int a = RES_USE_INET6], 1142 $1=yes, 1143 $1=no)) 1144 AC_MSG_RESULT($$1) 1145 if test $$1 = yes; then 1146 AC_DEFINE(HAVE_RES_USE_INET6) 1147 fi 1148]) 1149 1150dnl 1151dnl check for AAAA 1152AC_DEFUN(AC_CHECK_AAAA, [ 1153 AC_MSG_CHECKING(for AAAA) 1154 AC_CACHE_VAL($1, 1155 AC_TRY_COMPILE([ 1156# include <sys/types.h> 1157# include <arpa/nameser.h>], 1158 [int a = T_AAAA], 1159 $1=yes, 1160 $1=no)) 1161 AC_MSG_RESULT($$1) 1162 if test $$1 = yes; then 1163 AC_DEFINE(HAVE_AAAA) 1164 fi 1165]) 1166 1167dnl 1168dnl check for struct res_state_ext 1169AC_DEFUN(AC_STRUCT_RES_STATE_EXT, [ 1170 AC_MSG_CHECKING(for res_state_ext) 1171 AC_CACHE_VAL($1, 1172 AC_TRY_COMPILE([ 1173# include <sys/types.h> 1174# include <netinet/in.h> 1175# include <netinet6/in6.h> 1176# include <resolv.h>], 1177 [struct __res_state_ext e], 1178 $1=yes, 1179 $1=no)) 1180 AC_MSG_RESULT($$1) 1181 if test $$1 = yes; then 1182 AC_DEFINE(HAVE_RES_STATE_EXT) 1183 fi 1184]) 1185 1186dnl 1187dnl check for struct res_state_ext 1188AC_DEFUN(AC_STRUCT_RES_STATE, [ 1189 AC_MSG_CHECKING(for nsort in res_state) 1190 AC_CACHE_VAL($1, 1191 AC_TRY_COMPILE([ 1192# include <sys/types.h> 1193# include <netinet/in.h> 1194# include <netinet6/in6.h> 1195# include <resolv.h>], 1196 [struct __res_state e; e.nsort = 0], 1197 $1=yes, 1198 $1=no)) 1199 AC_MSG_RESULT($$1) 1200 if test $$1 = yes; then 1201 AC_DEFINE(HAVE_NEW_RES_STATE) 1202 fi 1203]) 1204 1205dnl 1206dnl check for h_errno 1207AC_DEFUN(AC_VAR_H_ERRNO, [ 1208 AC_MSG_CHECKING(for h_errno) 1209 AC_CACHE_VAL(ac_cv_var_h_errno, 1210 AC_TRY_COMPILE([ 1211# include <sys/types.h> 1212# include <netdb.h>], 1213 [int foo = h_errno;], 1214 ac_cv_var_h_errno=yes, 1215 ac_cv_var_h_errno=no)) 1216 AC_MSG_RESULT($ac_cv_var_h_errno) 1217 if test "$ac_cv_var_h_errno" = "yes"; then 1218 AC_DEFINE(HAVE_H_ERRNO) 1219 fi 1220]) 1221 1222dnl 1223dnl Test for __attribute__ 1224dnl 1225 1226AC_DEFUN(AC_C___ATTRIBUTE__, [ 1227AC_MSG_CHECKING(for __attribute__) 1228AC_CACHE_VAL(ac_cv___attribute__, [ 1229AC_COMPILE_IFELSE( 1230 AC_LANG_SOURCE([[ 1231#include <stdlib.h> 1232 1233static void foo(void) __attribute__ ((noreturn)); 1234 1235static void 1236foo(void) 1237{ 1238 exit(1); 1239} 1240 1241int 1242main(int argc, char **argv) 1243{ 1244 foo(); 1245} 1246 ]]), 1247ac_cv___attribute__=yes, 1248ac_cv___attribute__=no)]) 1249if test "$ac_cv___attribute__" = "yes"; then 1250 AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__]) 1251 V_DEFS="$V_DEFS -D_U_=\"__attribute__((unused))\"" 1252else 1253 V_DEFS="$V_DEFS -D_U_=\"\"" 1254fi 1255AC_MSG_RESULT($ac_cv___attribute__) 1256]) 1257