1dnl Process this file with autoconf to produce a configure script 2 3AC_INIT 4AC_CONFIG_SRCDIR([xmalloc.c]) 5AC_CONFIG_MACRO_DIRS([../config]) 6 7# This works around the fact that libtool configuration may change LD 8# for this particular configuration, but some shells, instead of 9# keeping the changes in LD private, export them just because LD is 10# exported. We don't use libtool yet, but some day we might, so... 11ORIGINAL_LD_FOR_MULTILIBS=$LD 12 13dnl We use these options to decide which functions to include. 14AC_ARG_WITH(target-subdir, 15[ --with-target-subdir=SUBDIR Configuring in a subdirectory for target]) 16AC_ARG_WITH(build-subdir, 17[ --with-build-subdir=SUBDIR Configuring in a subdirectory for build]) 18AC_ARG_WITH(cross-host, 19[ --with-cross-host=HOST Configuring with a cross compiler]) 20AC_ARG_WITH(newlib, 21[ --with-newlib Configuring with newlib]) 22 23if test "${srcdir}" = "."; then 24 if test -n "${with_build_subdir}"; then 25 libiberty_topdir="${srcdir}/../.." 26 with_target_subdir= 27 elif test -z "${with_target_subdir}"; then 28 libiberty_topdir="${srcdir}/.." 29 else 30 if test "${with_target_subdir}" != "."; then 31 libiberty_topdir="${srcdir}/${with_multisrctop}../.." 32 else 33 libiberty_topdir="${srcdir}/${with_multisrctop}.." 34 fi 35 fi 36else 37 libiberty_topdir="${srcdir}/.." 38fi 39AC_SUBST(libiberty_topdir) 40AC_CONFIG_AUX_DIR($libiberty_topdir) 41 42dnl Very limited version of automake's enable-maintainer-mode 43 44AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) 45 dnl maintainer-mode is disabled by default 46 AC_ARG_ENABLE(maintainer-mode, 47[ --enable-maintainer-mode 48 enable make rules and dependencies not useful 49 (and sometimes confusing) to the casual installer], 50 maintainer_mode=$enableval, 51 maintainer_mode=no) 52 53AC_MSG_RESULT($maintainer_mode) 54 55if test "$maintainer_mode" = "yes"; then 56 MAINT='' 57 NOTMAINT='#' 58else 59 MAINT='#' 60 NOTMAINT='' 61fi 62AC_SUBST(MAINT)dnl 63AC_SUBST(NOTMAINT)dnl 64 65if test -z "$ETAGS"; then 66 ETAGS=etags 67fi 68AC_SUBST([ETAGS]) 69 70# Do we have a single-tree copy of texinfo? Even if we do, we can't 71# rely on it - libiberty is built before texinfo. 72AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) 73if test "x$MAKEINFO" = "x"; then 74 MAKEINFO="@echo makeinfo missing; true" 75 BUILD_INFO= 76else 77 BUILD_INFO=info 78 case "$MAKEINFO" in 79 */missing\ makeinfo*) 80 BUILD_INFO= 81 AC_MSG_WARN([ 82*** Makeinfo is missing. Info documentation will not be built.]) 83 ;; 84 *) 85 case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in 86 x*\ [[1-3]].* ) 87 MAKEINFO="@echo $MAKEINFO is too old, 4.0 or newer required; true" 88 BUILD_INFO= 89 AC_MSG_WARN([ 90*** Makeinfo is too old. Info documentation will not be built.]) 91 ;; 92 esac 93 ;; 94 esac 95fi 96AC_SUBST(MAKEINFO) 97AC_SUBST(BUILD_INFO) 98 99AC_CHECK_PROG(PERL, perl, perl, ) 100if test x"$PERL" = x""; then 101 HAVE_PERL='#' 102else 103 HAVE_PERL='' 104fi 105AC_SUBST(HAVE_PERL) 106 107AC_CANONICAL_HOST 108 109dnl When we start using automake: 110dnl AM_INIT_AUTOMAKE(libiberty, 1.0) 111 112dnl These must be called before AM_PROG_LIBTOOL, because it may want 113dnl to call AC_CHECK_PROG. 114AC_CHECK_TOOL(AR, ar) 115AC_CHECK_TOOL(RANLIB, ranlib, :) 116 117GCC_PLUGIN_OPTION(PLUGIN_OPTION) 118if test -n "$PLUGIN_OPTION"; then 119 if $AR --help 2>&1 | grep -q "\--plugin"; then 120 AR_PLUGIN_OPTION="$PLUGIN_OPTION" 121 AC_SUBST(AR_PLUGIN_OPTION) 122 fi 123 if $RANLIB --help 2>&1 | grep -q "\--plugin"; then 124 RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" 125 AC_SUBST(RANLIB_PLUGIN_OPTION) 126 fi 127fi 128 129dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB. 130# Add --enable-multilib to configure. 131# Default to --enable-multilib 132AC_ARG_ENABLE(multilib, 133[ --enable-multilib build many library versions (default)], 134[case "$enableval" in 135 yes) multilib=yes ;; 136 no) multilib=no ;; 137 *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;; 138 esac], 139 [multilib=yes]) 140 141# Even if the default multilib is not a cross compilation, 142# it may be that some of the other multilibs are. 143if test $cross_compiling = no && test $multilib = yes \ 144 && test "x${with_multisubdir}" != x ; then 145 cross_compiling=maybe 146fi 147 148# We may wish to install the target headers somewhere. 149AC_MSG_CHECKING([whether to install libiberty headers and static library]) 150dnl install-libiberty is disabled by default 151 152AC_ARG_ENABLE(install-libiberty, 153[ --enable-install-libiberty Install headers and library for end users], 154enable_install_libiberty=$enableval, 155enable_install_libiberty=no)dnl 156 157# Option parsed, now set things appropriately. 158case x"$enable_install_libiberty" in 159 xyes|x) 160 target_header_dir=libiberty 161 ;; 162 xno) 163 target_header_dir= 164 ;; 165 *) 166 # This could be sanity-checked in various ways... 167 target_header_dir="${enable_install_libiberty}" 168 ;; 169esac 170AC_MSG_RESULT($enable_install_libiberty) 171AC_MSG_NOTICE([target_header_dir = $target_header_dir]) 172 173GCC_NO_EXECUTABLES 174AC_PROG_CC 175AC_GNU_SOURCE 176AC_SYS_LARGEFILE 177AC_PROG_CPP_WERROR 178 179ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \ 180 -Wstrict-prototypes \ 181 -Wshadow=local], [ac_libiberty_warn_cflags]) 182ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([], [ac_libiberty_warn_cflags]) 183 184AC_PROG_CC_C_O 185# autoconf is lame and doesn't give us any substitution variable for this. 186if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then 187 NO_MINUS_C_MINUS_O=yes 188else 189 OUTPUT_OPTION='-o $@' 190fi 191AC_SUBST(NO_MINUS_C_MINUS_O) 192AC_SUBST(OUTPUT_OPTION) 193 194AC_C_CONST 195AC_C_INLINE 196AC_C_BIGENDIAN 197 198dnl When we start using libtool: 199dnl Default to a non shared library. This may be overridden by the 200dnl configure option --enable-shared. 201dnl AM_DISABLE_SHARED 202 203dnl When we start using libtool: 204dnl AM_PROG_LIBTOOL 205 206dnl When we start using automake: 207dnl AM_CONFIG_HEADER(config.h:config.in) 208AC_CONFIG_HEADER(config.h:config.in) 209 210dnl When we start using automake: 211dnl AM_MAINTAINER_MODE 212dnl AC_EXEEXT 213 214dnl When we start using automake: 215dnl AM_PROG_INSTALL 216AC_PROG_INSTALL 217 218# Don't build the shared library for build. 219if [[ -n "${with_build_subdir}" ]]; then 220 enable_shared=no 221fi 222 223frag= 224case "${host}" in 225 rs6000-ibm-aix3.1 | rs6000-ibm-aix) 226 frag=mh-aix ;; 227 *-*-cxux7*) frag=mh-cxux7 ;; 228 *-*-freebsd2.1.*) frag=mh-fbsd21 ;; 229 *-*-freebsd2.2.[[012]]) frag=mh-fbsd21 ;; 230 i370-*-opened*) frag=mh-openedition ;; 231 i[[34567]]86-*-windows*) frag=mh-windows ;; 232esac 233 234if [[ -n "${frag}" ]]; then 235 frag=${libiberty_topdir}/libiberty/config/$frag 236fi 237 238GCC_PICFLAG 239 240# If they didn't specify --enable-shared, don't generate shared libs. 241case "${enable_shared}" in 242 yes) shared=yes ;; 243 no) shared=no ;; 244 "") shared=no ;; 245 *) shared=yes ;; 246esac 247 248# ...unless --enable-host-shared was passed from top-level config: 249if [[ "${enable_host_shared}" = "yes" ]]; then 250 shared=yes 251fi 252 253if [[ "${shared}" != "yes" ]]; then 254 PICFLAG= 255fi 256AC_SUBST(PICFLAG) 257 258NOASANFLAG= 259case " ${CFLAGS} " in 260 *\ -fsanitize=address\ *) NOASANFLAG=-fno-sanitize=address ;; 261 *\ -fsanitize=hwaddress\ *) NOASANFLAG=-fno-sanitize=hwaddress ;; 262esac 263AC_SUBST(NOASANFLAG) 264 265GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) 266AC_SUBST(CET_HOST_FLAGS) 267 268echo "# Warning: this fragment is automatically generated" > temp-frag 269 270if [[ -n "${frag}" ]] && [[ -f "${frag}" ]]; then 271 echo "Appending ${frag} to xhost-mkfrag" 272 echo "# Following fragment copied from ${frag}" >> temp-frag 273 cat ${frag} >> temp-frag 274fi 275 276# record if we want to build shared libs. 277if [[ "${shared}" = "yes" ]]; then 278 echo enable_shared = yes >> temp-frag 279else 280 echo enable_shared = no >> temp-frag 281fi 282 283frag=xhost-mkfrag 284${CONFIG_SHELL-/bin/sh} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag 285 286host_makefile_frag=${frag} 287AC_SUBST_FILE(host_makefile_frag) 288 289# It's OK to check for header files. Although the compiler may not be 290# able to link anything, it had better be able to at least compile 291# something. 292AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h) 293AC_HEADER_SYS_WAIT 294AC_HEADER_TIME 295 296libiberty_AC_DECLARE_ERRNO 297 298# Determine sizes of some types. 299AC_CHECK_SIZEOF([int]) 300AC_CHECK_SIZEOF([long]) 301AC_CHECK_SIZEOF([size_t]) 302 303# Check for presense of long long 304AC_CHECK_TYPE([long long], 305 [AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have the `long long' type.]) AC_CHECK_SIZEOF([long long])], 306 []) 307 308# Look for a 64-bit type. 309AC_MSG_CHECKING([for a 64-bit type]) 310AC_CACHE_VAL(liberty_cv_uint64, 311[AC_TRY_COMPILE( 312[#ifdef HAVE_STDINT_H 313#include <stdint.h> 314#endif], 315[extern uint64_t foo;], 316liberty_cv_uint64=uint64_t, 317[AC_TRY_COMPILE( 318[#ifdef HAVE_LIMITS_H 319#include <limits.h> 320#endif 321#ifndef CHAR_BIT 322#define CHAR_BIT 8 323#endif], 324[extern char foo[sizeof(long) * CHAR_BIT >= 64 ? 1 : -1];], 325liberty_cv_uint64="unsigned long", 326[AC_TRY_COMPILE( 327[#ifdef HAVE_LIMITS_H 328#include <limits.h> 329#endif 330#ifndef CHAR_BIT 331#define CHAR_BIT 8 332#endif], 333[extern char foo[sizeof(long long) * CHAR_BIT >= 64 ? 1 : -1];], 334liberty_cv_uint64="unsigned long long", liberty_cv_uint64=none)])])]) 335AC_MSG_RESULT($liberty_cv_uint64) 336if test "$liberty_cv_uint64" != none; then 337 AC_DEFINE_UNQUOTED(UNSIGNED_64BIT_TYPE, $liberty_cv_uint64, 338 [Define to an unsigned 64-bit type available in the compiler.]) 339fi 340 341AC_TYPE_INTPTR_T 342AC_TYPE_UINTPTR_T 343AC_TYPE_SSIZE_T 344 345# Given the above check, we always have uintptr_t or a fallback 346# definition. So define HAVE_UINTPTR_T in case any imported code 347# relies on it. 348AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if you have the \`uintptr_t' type.]) 349 350AC_TYPE_PID_T 351 352# This is the list of functions which libiberty will provide if they 353# are not available on the host. 354 355funcs="asprintf" 356funcs="$funcs atexit" 357funcs="$funcs basename" 358funcs="$funcs bcmp" 359funcs="$funcs bcopy" 360funcs="$funcs bsearch" 361funcs="$funcs bzero" 362funcs="$funcs calloc" 363funcs="$funcs clock" 364funcs="$funcs ffs" 365funcs="$funcs getcwd" 366funcs="$funcs getpagesize" 367funcs="$funcs gettimeofday" 368funcs="$funcs index" 369funcs="$funcs insque" 370funcs="$funcs memchr" 371funcs="$funcs memcmp" 372funcs="$funcs memcpy" 373funcs="$funcs memmem" 374funcs="$funcs memmove" 375funcs="$funcs mempcpy" 376funcs="$funcs memset" 377funcs="$funcs mkstemps" 378funcs="$funcs putenv" 379funcs="$funcs random" 380funcs="$funcs rename" 381funcs="$funcs rindex" 382funcs="$funcs setenv" 383funcs="$funcs snprintf" 384funcs="$funcs sigsetmask" 385funcs="$funcs stpcpy" 386funcs="$funcs stpncpy" 387funcs="$funcs strcasecmp" 388funcs="$funcs strchr" 389funcs="$funcs strdup" 390funcs="$funcs strncasecmp" 391funcs="$funcs strndup" 392funcs="$funcs strnlen" 393funcs="$funcs strrchr" 394funcs="$funcs strstr" 395funcs="$funcs strtod" 396funcs="$funcs strtol" 397funcs="$funcs strtoul" 398funcs="$funcs strtoll" 399funcs="$funcs strtoull" 400funcs="$funcs strverscmp" 401funcs="$funcs tmpnam" 402funcs="$funcs vasprintf" 403funcs="$funcs vfprintf" 404funcs="$funcs vprintf" 405funcs="$funcs vsnprintf" 406funcs="$funcs vsprintf" 407funcs="$funcs waitpid" 408funcs="$funcs setproctitle" 409 410# Also in the old function.def file: alloca, vfork, getopt. 411 412vars="sys_errlist sys_nerr sys_siglist" 413 414checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \ 415 getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \ 416 realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \ 417 sysmp table times wait3 wait4" 418 419#��Darwin has sbrk, but it is deprecated and that produces build-time warnings 420#��so do not check for it. 421case "${host}" in 422 *-*-darwin*) ;; 423 *) checkfuncs="$checkfuncs sbrk" 424esac 425 426# These are neither executed nor required, but they help keep 427# autoheader happy without adding a bunch of text to acconfig.h. 428if test "x" = "y"; then 429 AC_CHECK_FUNCS(asprintf atexit \ 430 basename bcmp bcopy bsearch bzero \ 431 calloc canonicalize_file_name clock \ 432 dup3 \ 433 ffs __fsetlocking \ 434 getcwd getpagesize getrlimit getrusage getsysinfo gettimeofday \ 435 index insque \ 436 memchr memcmp memcpy memmem memmove memset mkstemps \ 437 on_exit \ 438 pipe2 psignal pstat_getdynamic pstat_getstatic putenv \ 439 random realpath rename rindex \ 440 sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \ 441 stpcpy stpncpy strcasecmp strchr strdup \ 442 strerror strncasecmp strndup strnlen strrchr strsignal strstr strtod \ 443 strtol strtoul strtoll strtoull strverscmp sysconf sysctl sysmp \ 444 table times tmpnam \ 445 vasprintf vfprintf vprintf vsprintf \ 446 wait3 wait4 waitpid) 447 AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf, strtol, strtoul, strtoll, strtoull, strnlen]) 448 AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.]) 449 AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.]) 450 AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.]) 451fi 452 453# For each of these functions, if the host does not provide the 454# function we want to put FN.o in LIBOBJS, and if the host does 455# provide the function, we want to define HAVE_FN in config.h. 456 457setobjs= 458CHECK= 459if test -n "${with_target_subdir}"; then 460 461 # We are being configured as a target library. AC_REPLACE_FUNCS 462 # may not work correctly, because the compiler may not be able to 463 # link executables. Note that we may still be being configured 464 # native. 465 466 # If we are being configured for newlib, we know which functions 467 # newlib provide and which ones we will be expected to provide. 468 469 if test "x${with_newlib}" = "xyes"; then 470 AC_LIBOBJ([asprintf]) 471 AC_LIBOBJ([basename]) 472 AC_LIBOBJ([insque]) 473 AC_LIBOBJ([random]) 474 AC_LIBOBJ([strdup]) 475 AC_LIBOBJ([vasprintf]) 476 477 for f in $funcs; do 478 case "$f" in 479 asprintf | basename | insque | random | strdup | vasprintf) 480 ;; 481 *) 482 n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 483 AC_DEFINE_UNQUOTED($n) 484 ;; 485 esac 486 done 487 488 # newlib doesnt provide any of the variables in $vars, so we 489 # dont have to check them here. 490 491 # Of the functions in $checkfuncs, newlib only has strerror. 492 AC_DEFINE(HAVE_STRERROR) 493 494 setobjs=yes 495 496 fi 497 498 # If we are being configured for Mingw, we know which functions 499 # Mingw provides and which ones we will be expected to provide. 500 501 case "${host}" in 502 *-*-mingw*) 503 AC_LIBOBJ([asprintf]) 504 AC_LIBOBJ([basename]) 505 AC_LIBOBJ([bcmp]) 506 AC_LIBOBJ([bcopy]) 507 AC_LIBOBJ([bzero]) 508 AC_LIBOBJ([clock]) 509 AC_LIBOBJ([ffs]) 510 AC_LIBOBJ([getpagesize]) 511 AC_LIBOBJ([index]) 512 AC_LIBOBJ([insque]) 513 AC_LIBOBJ([mempcpy]) 514 AC_LIBOBJ([mkstemps]) 515 AC_LIBOBJ([random]) 516 AC_LIBOBJ([rindex]) 517 AC_LIBOBJ([sigsetmask]) 518 AC_LIBOBJ([stpcpy]) 519 AC_LIBOBJ([stpncpy]) 520 AC_LIBOBJ([strndup]) 521 AC_LIBOBJ([strnlen]) 522 AC_LIBOBJ([strverscmp]) 523 AC_LIBOBJ([vasprintf]) 524 AC_LIBOBJ([waitpid]) 525 526 for f in $funcs; do 527 case "$f" in 528 asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strnlen | strverscmp | vasprintf | waitpid) 529 ;; 530 *) 531 n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 532 AC_DEFINE_UNQUOTED($n) 533 ;; 534 esac 535 done 536 537 # Mingw doesnt provide any of the variables in $vars, so we 538 # dont have to check them here. 539 540 # Of the functions in $checkfuncs, Mingw only has strerror. 541 AC_DEFINE(HAVE_STRERROR) 542 543 setobjs=yes 544 ;; 545 546 *-*-msdosdjgpp) 547 AC_LIBOBJ([vasprintf]) 548 AC_LIBOBJ([vsnprintf]) 549 AC_LIBOBJ([snprintf]) 550 AC_LIBOBJ([asprintf]) 551 552 for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \ 553 getcwd getpagesize getrusage gettimeofday \ 554 index insque memchr memcmp memcpy memmove memset psignal \ 555 putenv random rename rindex sbrk setenv stpcpy strcasecmp \ 556 strchr strdup strerror strncasecmp strrchr strstr strtod \ 557 strtol strtoul sysconf times tmpnam vfprintf vprintf \ 558 vsprintf waitpid 559 do 560 n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 561 AC_DEFINE_UNQUOTED($n) 562 done 563 564 565 setobjs=yes 566 ;; 567 568 esac 569 570else 571 572 # Not a target library, so we set things up to run the test suite. 573 CHECK=really-check 574 575fi 576 577AC_SUBST(CHECK) 578AC_SUBST(target_header_dir) 579 580case "${host}" in 581 *-*-cygwin* | *-*-mingw*) 582 AC_DEFINE(HAVE_SYS_ERRLIST) 583 AC_DEFINE(HAVE_SYS_NERR) 584 ;; 585esac 586 587if test -z "${setobjs}"; then 588 case "${host}" in 589 590 *-*-vxworks*) 591 # Handle VxWorks configuration specially, since on VxWorks the 592 # libraries are actually on the target board, not in the file 593 # system. 594 AC_LIBOBJ([basename]) 595 AC_LIBOBJ([getpagesize]) 596 AC_LIBOBJ([insque]) 597 AC_LIBOBJ([random]) 598 AC_LIBOBJ([strcasecmp]) 599 AC_LIBOBJ([strncasecmp]) 600 AC_LIBOBJ([strdup]) 601 AC_LIBOBJ([vfork]) 602 AC_LIBOBJ([waitpid]) 603 AC_LIBOBJ([vasprintf]) 604 for f in $funcs; do 605 case "$f" in 606 basename | getpagesize | insque | random | strcasecmp) 607 ;; 608 strncasecmp | strdup | vfork | waitpid | vasprintf) 609 ;; 610 *) 611 n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 612 AC_DEFINE_UNQUOTED($n) 613 ;; 614 esac 615 done 616 617 # VxWorks doesn't provide any of the variables in $vars, so we 618 # don't have to check them here. 619 620 # Of the functions in $checkfuncs, VxWorks only has strerror. 621 AC_DEFINE(HAVE_STRERROR) 622 623 setobjs=yes 624 ;; 625 626 esac 627fi 628 629if test -z "${setobjs}"; then 630 631 case "${host}" in 632 633 *-*-android*) 634 # On android, getpagesize is defined in unistd.h as a static inline 635 # function, which AC_CHECK_FUNCS does not handle properly. 636 ac_cv_func_getpagesize=yes 637 ;; 638 639 hppa*-*-hpux*) 640 # Replace system snprintf and vsnprintf with libiberty implementations. 641 AC_LIBOBJ([snprintf]) 642 AC_LIBOBJ([vsnprintf]) 643 ;; 644 645 *-*-mingw32*) 646 # Under mingw32, sys_nerr and sys_errlist exist, but they are 647 # macros, so the test below won't find them. 648 libiberty_cv_var_sys_nerr=yes 649 libiberty_cv_var_sys_errlist=yes 650 ;; 651 652 *-*-msdosdjgpp*) 653 # vfork and fork are stubs. 654 ac_cv_func_vfork_works=no 655 ;; 656 657 *-*-uwin*) 658 # Under some versions of uwin, vfork is notoriously buggy and the test 659 # can hang configure; on other versions, vfork exists just as a stub. 660 # FIXME: This should be removed once vfork in uwin's runtime is fixed. 661 ac_cv_func_vfork_works=no 662 # Under uwin 2.0+, sys_nerr and sys_errlist exist, but they are 663 # macros (actually, these are imported from a DLL, but the end effect 664 # is the same), so the test below won't find them. 665 libiberty_cv_var_sys_nerr=yes 666 libiberty_cv_var_sys_errlist=yes 667 ;; 668 669 *-*-*vms*) 670 # Under VMS, vfork works very different than on Unix. The standard test 671 # won't work, and it isn't easily adaptable. It makes more sense to 672 # just force it. 673 ac_cv_func_vfork_works=yes 674 ;; 675 676 esac 677 678 # We haven't set the list of objects yet. Use the standard autoconf 679 # tests. This will only work if the compiler works. 680 AC_ISC_POSIX 681 AC_REPLACE_FUNCS($funcs) 682 libiberty_AC_FUNC_C_ALLOCA 683 AC_FUNC_FORK 684 if test $ac_cv_func_vfork_works = no; then 685 AC_LIBOBJ([vfork]) 686 fi 687 # We only need _doprnt if we might use it to implement v*printf. 688 if test $ac_cv_func_vprintf != yes \ 689 || test $ac_cv_func_vfprintf != yes \ 690 || test $ac_cv_func_vsprintf != yes; then 691 AC_REPLACE_FUNCS(_doprnt) 692 else 693 AC_CHECK_FUNCS(_doprnt) 694 fi 695 696 for v in $vars; do 697 AC_MSG_CHECKING([for $v]) 698 AC_CACHE_VAL(libiberty_cv_var_$v, 699 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern int $v [];]],[[if ($v [0]) return 1;]])], 700 [eval "libiberty_cv_var_$v=yes"], 701 [eval "libiberty_cv_var_$v=no"])]) 702 if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then 703 AC_MSG_RESULT(yes) 704 n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 705 AC_DEFINE_UNQUOTED($n) 706 else 707 AC_MSG_RESULT(no) 708 fi 709 done 710 711 # special check for _system_configuration because AIX <4.3.2 do not 712 # contain the `physmem' member. 713 AC_MSG_CHECKING([for external symbol _system_configuration]) 714 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/systemcfg.h>]], 715 [[double x = _system_configuration.physmem;]])], 716 [AC_MSG_RESULT([yes]) 717 AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1, 718 [Define if you have the _system_configuration variable.])], 719 [AC_MSG_RESULT([no])]) 720 721 AC_CHECK_FUNCS($checkfuncs) 722 AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf]) 723 AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc]) 724 case "${host}" in 725 *-*-darwin*) ;; # Darwin's sbrk implementation is deprecated. 726 *) AC_CHECK_DECLS([sbrk]);; 727 esac 728 AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull]) 729 AC_CHECK_DECLS([strverscmp]) 730 AC_CHECK_DECLS([strnlen]) 731 libiberty_NEED_DECLARATION(canonicalize_file_name) 732fi 733 734# Figure out which version of pexecute to use. 735case "${host}" in 736 *-*-mingw* | *-*-winnt*) pexecute=pex-win32 ;; 737 *-*-msdosdjgpp*) pexecute=pex-djgpp ;; 738 *-*-msdos*) pexecute=pex-msdos ;; 739 *) pexecute=pex-unix ;; 740esac 741AC_SUBST(pexecute) 742 743libiberty_AC_FUNC_STRNCMP 744 745# Install a library built with a cross compiler in $(tooldir) rather 746# than $(libdir). 747if test -z "${with_cross_host}"; then 748 INSTALL_DEST=libdir 749else 750 INSTALL_DEST=tooldir 751fi 752AC_SUBST(INSTALL_DEST) 753 754m4_pattern_allow(LIBOBJS) 755L="" 756for l in x $LIBOBJS; do 757 case $l in 758 x) ;; 759 *) L="$L ./$l" ;; 760 esac 761done 762LIBOBJS="$L" 763 764dnl Required by html and install-html 765AC_SUBST(datarootdir) 766AC_SUBST(docdir) 767AC_SUBST(htmldir) 768 769# We need multilib support, but only if configuring for the target. 770AC_CONFIG_FILES([Makefile testsuite/Makefile]) 771AC_CONFIG_COMMANDS([default], 772 [[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h 773if test -n "$CONFIG_FILES"; then 774 if test -n "${with_target_subdir}"; then 775 # FIXME: We shouldn't need to set ac_file 776 ac_file=Makefile 777 LD="${ORIGINAL_LD_FOR_MULTILIBS}" 778 . ${libiberty_topdir}/config-ml.in 779 fi 780fi]], 781[[srcdir=${srcdir} 782host=${host} 783target=${target} 784with_target_subdir=${with_target_subdir} 785with_multisubdir=${with_multisubdir} 786ac_configure_args="--enable-multilib ${ac_configure_args}" 787CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} 788ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}" 789libiberty_topdir=${libiberty_topdir} 790]]) 791AC_OUTPUT 792