dnl Process this file with autoconf to produce a configure script
-AC_PREREQ(2.59)
+AC_PREREQ(2.64)
AC_INIT
AC_CONFIG_SRCDIR([xmalloc.c])
GCC_NO_EXECUTABLES
AC_PROG_CC
+AC_SYS_LARGEFILE
AC_PROG_CPP_WERROR
-# Warn C++ incompatibilities if supported.
-AC_CACHE_CHECK(
- [whether ${CC} accepts -Wc++-compat],
- [ac_cv_prog_cc_w_cxx_compat],
- [save_CFLAGS="$CFLAGS"
- CFLAGS="-Wc++-compat"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
- [ac_cv_prog_cc_w_cxx_compat=yes],
- [ac_cv_prog_cc_w_cxx_compat=no])
- CFLAGS="$save_CFLAGS"
- ])
-
-
-if test x$GCC = xyes; then
- ac_libiberty_warn_cflags='-W -Wall -pedantic -Wwrite-strings -Wstrict-prototypes'
-fi
-if test $ac_cv_prog_cc_w_cxx_compat = yes ; then
- ac_libiberty_warn_cflags="${ac_libiberty_warn_cflags} -Wc++-compat"
-fi
-AC_SUBST(ac_libiberty_warn_cflags)
+ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \
+ -Wstrict-prototypes], [ac_libiberty_warn_cflags])
+ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([], [ac_libiberty_warn_cflags])
AC_PROG_CC_C_O
# autoconf is lame and doesn't give us any substitution variable for this.
esac
if [[ -n "${frag}" ]]; then
- frags=${libiberty_topdir}/libiberty/config/$frag
-else
- frags=
+ frag=${libiberty_topdir}/libiberty/config/$frag
fi
# If they didn't specify --enable-shared, don't generate shared libs.
*) shared=yes ;;
esac
if [[ "${shared}" = "yes" ]]; then
- frag=
case "${host}" in
*-*-cygwin*) ;;
- alpha*-*-linux*) frag=mh-elfalphapic ;;
- arm*-*-*) frag=mh-armpic ;;
- hppa*-*-*) frag=mh-papic ;;
+ alpha*-*-linux*) PICFLAG=-fPIC ;;
+ arm*-*-*) PICFLAG=-fPIC ;;
+ hppa*-*-*) PICFLAG=-fPIC ;;
+ i370-*-*) PICFLAG=-fPIC ;;
+ ia64-*-*) PICFLAG=-fpic ;;
i[[34567]]86-*-* | x86_64-*-*)
- frag=mh-x86pic ;;
+ PICFLAG=-fpic ;;
+ m68k-*-*) PICFLAG=-fpic ;;
+ mips*-*-linux*) PICFLAG=-fPIC ;;
powerpc*-*-aix*) ;;
- powerpc*-*-*) frag=mh-ppcpic ;;
- sparc*-*-*) frag=mh-sparcpic ;;
- s390*-*-*) frag=mh-s390pic ;;
- *) frag=mh-${host_cpu}pic ;;
+ powerpc*-*-*) PICFLAG=-fPIC ;;
+ sparc*-*-*) case "${CFLAGS}" in
+ *-fpic* ) PICFLAG=-fpic ;;
+ * ) PICFLAG=-fPIC ;;
+ esac ;;
+ s390*-*-*) PICFLAG=-fpic ;;
esac
- if [[ -n "${frag}" ]]; then
- frags="${frags} ${libiberty_topdir}/config/${frag}"
- fi
fi
+AC_SUBST(PICFLAG)
echo "# Warning: this fragment is automatically generated" > temp-frag
-for frag in ${frags}; do
- if [[ -f ${frag} ]]; then
- echo "Appending ${frag} to xhost-mkfrag"
- echo "# Following fragment copied from ${frag}" >> temp-frag
- cat ${frag} >> temp-frag
- fi
-done
+if [[ -n "${frag}" ]] && [[ -f "${frag}" ]]; then
+ echo "Appending ${frag} to xhost-mkfrag"
+ echo "# Following fragment copied from ${frag}" >> temp-frag
+ cat ${frag} >> temp-frag
+fi
# record if we want to build shared libs.
if [[ "${shared}" = "yes" ]]; then
# Determine the size of an int for struct fibnode.
AC_CHECK_SIZEOF([int])
-AC_CHECK_TYPE(uintptr_t, unsigned long)
-
# Look for a 64-bit type.
AC_MSG_CHECKING([for a 64-bit type])
AC_CACHE_VAL(liberty_cv_uint64,
[Define to an unsigned 64-bit type available in the compiler.])
fi
+AC_TYPE_INTPTR_T
+AC_TYPE_UINTPTR_T
+
# Given the above check, we always have uintptr_t or a fallback
# definition. So define HAVE_UINTPTR_T in case any imported code
# relies on it.
funcs="$funcs memchr"
funcs="$funcs memcmp"
funcs="$funcs memcpy"
+funcs="$funcs memmem"
funcs="$funcs memmove"
funcs="$funcs mempcpy"
funcs="$funcs memset"
if test "x" = "y"; then
AC_CHECK_FUNCS(asprintf atexit basename bcmp bcopy bsearch bzero calloc clock \
getcwd getpagesize gettimeofday index insque mkstemps memchr memcmp memcpy \
- memmove mempcpy memset putenv random rename rindex sigsetmask \
+ memmem memmove mempcpy memset putenv random rename rindex sigsetmask \
strcasecmp setenv stpcpy stpncpy strchr strdup strncasecmp strndup strrchr strstr \
strtod strtol strtoul strverscmp tmpnam vasprintf vfprintf vprintf \
vsprintf waitpid getrusage on_exit psignal strerror strsignal \
# Of the functions in $checkfuncs, Mingw only has strerror.
AC_DEFINE(HAVE_STRERROR)
+ setobjs=yes
+ ;;
+
+ *-*-msdosdjgpp)
+ AC_LIBOBJ([vasprintf])
+ AC_LIBOBJ([vsnprintf])
+ AC_LIBOBJ([snprintf])
+ AC_LIBOBJ([asprintf])
+
+ for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \
+ getcwd getpagesize getrusage gettimeofday \
+ index insque memchr memcmp memcpy memmove memset psignal \
+ putenv random rename rindex sbrk setenv stpcpy strcasecmp \
+ strchr strdup strerror strncasecmp strrchr strstr strtod \
+ strtol strtoul sysconf times tmpnam vfprintf vprintf \
+ vsprintf waitpid
+ do
+ n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ AC_DEFINE_UNQUOTED($n)
+ done
+
+
setobjs=yes
;;
# Of the functions in $checkfuncs, VxWorks only has strerror.
AC_DEFINE(HAVE_STRERROR)
- setobjs=yes
- ;;
-
- *-*-msdosdjgpp)
- for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \
- getcwd getpagesize getrusage gettimeofday gettimeofday \
- index insque memchr memcmp memcpy memmove memset psignal \
- putenv random rename rindex sbrk setenv stpcpy strcasecmp \
- strchr strdup strerror strncasecmp strrchr strstr strtod \
- strtol strtoul sysconf times tmpnam vfprintf vprintf \
- vsprintf waitpid
- do
- n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- AC_DEFINE_UNQUOTED($n)
- done
-
-
setobjs=yes
;;
case "${host}" in
- *-*-cygwin*)
- # The Cygwin library actually uses a couple of files from
- # libiberty when it is built. If we are building a native
- # Cygwin, and we run the tests, we will appear to have these
- # files. However, when we go on to build winsup, we will wind up
- # with a library which does not have the files, since they should
- # have come from libiberty.
-
- # We handle this by removing the functions the winsup library
- # provides from our shell variables, so that they appear to be
- # missing.
-
- # DJ - only if we're *building* cygwin, not just building *with* cygwin
-
- if test -n "${with_target_subdir}"
- then
- funcs="`echo $funcs | sed -e 's/random//'`"
- AC_LIBOBJ([random])
- vars="`echo $vars | sed -e 's/sys_siglist//'`"
- checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
- fi
- ;;
-
*-*-mingw32*)
# Under mingw32, sys_nerr and sys_errlist exist, but they are
# macros, so the test below won't find them.