acinclude.m4 ([GLIBCXX_CHECK_LFS], [...]): Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_LINK...

2008-08-17  Paolo Carlini  <paolo.carlini@oracle.com>

	* acinclude.m4 ([GLIBCXX_CHECK_LFS], [GLIBCXX_CHECK_POLL],
	[GLIBCXX_CHECK_S_ISREG_OR_S_IFREG], [GLIBCXX_CHECK_WRITEV]):
	Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_LINK, in C++,
	with -fno-exceptions as flags.
	* configure.ac: Run unconditionally GLIBCXX_CHECK_LFS,
	GLIBCXX_CHECK_POLL, GLIBCXX_CHECK_S_ISREG_OR_S_IFREG,
	GLIBCXX_CHECK_WRITEV and commonized AC_CHECK_HEADERS. 
	* crossconfig.m4: Adjust; remove AC_CHECK_HEADERS commonized
	in configure.ac.
	* configure: Regenerate.

From-SVN: r139168
This commit is contained in:
Paolo Carlini 2008-08-17 10:19:34 +00:00 committed by Paolo Carlini
parent c8bbc9ef2a
commit 74745ec578
5 changed files with 1095 additions and 4537 deletions

View File

@ -1,3 +1,16 @@
2008-08-17 Paolo Carlini <paolo.carlini@oracle.com>
* acinclude.m4 ([GLIBCXX_CHECK_LFS], [GLIBCXX_CHECK_POLL],
[GLIBCXX_CHECK_S_ISREG_OR_S_IFREG], [GLIBCXX_CHECK_WRITEV]):
Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_LINK, in C++,
with -fno-exceptions as flags.
* configure.ac: Run unconditionally GLIBCXX_CHECK_LFS,
GLIBCXX_CHECK_POLL, GLIBCXX_CHECK_S_ISREG_OR_S_IFREG,
GLIBCXX_CHECK_WRITEV and commonized AC_CHECK_HEADERS.
* crossconfig.m4: Adjust; remove AC_CHECK_HEADERS commonized
in configure.ac.
* configure: Regenerate.
2008-08-13 Paolo Carlini <paolo.carlini@oracle.com>
Re-instate last patch, amended to use __exchange_and_add_dispatch

View File

@ -390,9 +390,15 @@ dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
dnl Define HAVE_S_ISREG / HAVE_S_IFREG appropriately.
dnl
AC_DEFUN([GLIBCXX_CHECK_S_ISREG_OR_S_IFREG], [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -fno-exceptions"
AC_MSG_CHECKING([for S_ISREG or S_IFREG])
AC_CACHE_VAL(glibcxx_cv_S_ISREG, [
AC_TRY_LINK(
GCC_TRY_COMPILE_OR_LINK(
[#include <sys/stat.h>],
[struct stat buffer;
fstat(0, &buffer);
@ -401,7 +407,7 @@ AC_DEFUN([GLIBCXX_CHECK_S_ISREG_OR_S_IFREG], [
[glibcxx_cv_S_ISREG=no])
])
AC_CACHE_VAL(glibcxx_cv_S_IFREG, [
AC_TRY_LINK(
GCC_TRY_COMPILE_OR_LINK(
[#include <sys/stat.h>],
[struct stat buffer;
fstat(0, &buffer);
@ -420,6 +426,9 @@ AC_DEFUN([GLIBCXX_CHECK_S_ISREG_OR_S_IFREG], [
res=S_IFREG
fi
AC_MSG_RESULT($res)
CXXFLAGS="$ac_save_CXXFLAGS"
AC_LANG_RESTORE
])
@ -427,9 +436,15 @@ dnl
dnl Check whether poll is available in <poll.h>, and define HAVE_POLL.
dnl
AC_DEFUN([GLIBCXX_CHECK_POLL], [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -fno-exceptions"
AC_MSG_CHECKING([for poll])
AC_CACHE_VAL(glibcxx_cv_POLL, [
AC_TRY_LINK(
GCC_TRY_COMPILE_OR_LINK(
[#include <poll.h>],
[struct pollfd pfd[1];
pfd[0].events = POLLIN;
@ -441,6 +456,9 @@ AC_DEFUN([GLIBCXX_CHECK_POLL], [
AC_DEFINE(HAVE_POLL, 1, [Define if poll is available in <poll.h>.])
fi
AC_MSG_RESULT($glibcxx_cv_POLL)
CXXFLAGS="$ac_save_CXXFLAGS"
AC_LANG_RESTORE
])
@ -448,9 +466,15 @@ dnl
dnl Check whether writev is available in <sys/uio.h>, and define HAVE_WRITEV.
dnl
AC_DEFUN([GLIBCXX_CHECK_WRITEV], [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -fno-exceptions"
AC_MSG_CHECKING([for writev])
AC_CACHE_VAL(glibcxx_cv_WRITEV, [
AC_TRY_LINK(
GCC_TRY_COMPILE_OR_LINK(
[#include <sys/uio.h>],
[struct iovec iov[2];
writev(0, iov, 0);],
@ -461,6 +485,9 @@ AC_DEFUN([GLIBCXX_CHECK_WRITEV], [
AC_DEFINE(HAVE_WRITEV, 1, [Define if writev is available in <sys/uio.h>.])
fi
AC_MSG_RESULT($glibcxx_cv_WRITEV)
CXXFLAGS="$ac_save_CXXFLAGS"
AC_LANG_RESTORE
])
@ -531,7 +558,7 @@ AC_DEFUN([GLIBCXX_CHECK_LFS], [
CXXFLAGS="$CXXFLAGS -fno-exceptions"
AC_MSG_CHECKING([for LFS support])
AC_CACHE_VAL(glibcxx_cv_LFS, [
AC_TRY_LINK(
GCC_TRY_COMPILE_OR_LINK(
[#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>

5462
libstdc++-v3/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -125,41 +125,43 @@ GLIBCXX_CHECK_SYSTEM_ERROR
# For the streamoff typedef.
GLIBCXX_CHECK_INT64_T
# For LFS support.
GLIBCXX_CHECK_LFS
# For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
GLIBCXX_CHECK_POLL
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
# For xsputn_2().
AC_CHECK_HEADERS(sys/uio.h)
GLIBCXX_CHECK_WRITEV
# For C99 support to TR1.
GLIBCXX_CHECK_C99_TR1
# For common values of EOF, SEEK_CUR, SEEK_END.
GLIBCXX_CHECK_STDIO_MACROS
# Check for available headers.
AC_CHECK_HEADERS([endian.h float.h fp.h ieeefp.h inttypes.h locale.h \
machine/endian.h machine/param.h nan.h stdint.h stdlib.h string.h \
strings.h sys/ipc.h sys/isa_defs.h sys/machine.h sys/param.h \
sys/resource.h sys/sem.h sys/stat.h sys/time.h sys/types.h unistd.h \
wchar.h wctype.h])
# Only do link tests if native. Else, hardcode.
if $GLIBCXX_IS_NATIVE; then
# We can do more elaborate tests that assume a working linker.
CANADIAN=no
# Check for available headers.
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h \
sys/types.h sys/ipc.h sys/sem.h])
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
# For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
GLIBCXX_CHECK_POLL
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
# For xsputn_2().
AC_CHECK_HEADERS(sys/uio.h)
GLIBCXX_CHECK_WRITEV
# For LFS support.
GLIBCXX_CHECK_LFS
# For dev/random and dev/urandom for TR1.
GLIBCXX_CHECK_RANDOM_TR1

View File

@ -11,10 +11,6 @@ case "${host}" in
mips*-sde-elf*)
# These definitions are for the SDE C library rather than newlib.
AC_CHECK_HEADERS([float.h inttypes.h locale.h \
stdint.h stdlib.h string.h unistd.h wchar.h \
machine/endian.h sys/ioctl.h sys/resource.h \
sys/stat.h sys/time.h sys/types.h sys/uio.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_COMPILER_FEATURES
@ -23,8 +19,6 @@ case "${host}" in
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
AC_DEFINE(HAVE_WRITEV)
AC_DEFINE(HAVE_LIBM)
AC_DEFINE(HAVE_COPYSIGN)
@ -42,9 +36,6 @@ case "${host}" in
# Darwin versions vary, but the linker should work in a cross environment,
# so we just check for all the features here.
# Check for available headers.
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h \
sys/types.h])
# Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
GLIBCXX_CHECK_MATH_SUPPORT
@ -52,23 +43,10 @@ case "${host}" in
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
# For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
GLIBCXX_CHECK_POLL
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
# For xsputn_2().
AC_CHECK_HEADERS(sys/uio.h)
GLIBCXX_CHECK_WRITEV
AC_DEFINE(HAVE_LC_MESSAGES)
;;
*djgpp)
AC_CHECK_HEADERS([float.h ieeefp.h inttypes.h locale.h \
memory.h stdint.h stdlib.h strings.h string.h unistd.h \
wchar.h wctype.h machine/endian.h sys/ioctl.h sys/param.h \
sys/resource.h sys/stat.h sys/time.h sys/types.h sys/uio.h])
# GLIBCXX_CHECK_MATH_SUPPORT
AC_DEFINE(HAVE_LIBM)
AC_DEFINE(HAVE_ISINF)
@ -96,17 +74,9 @@ case "${host}" in
# GLIBCXX_CHECK_STDLIB_SUPPORT
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
# GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
AC_DEFINE(HAVE_S_ISREG)
AC_DEFINE(HAVE_S_IFREG)
AC_DEFINE(HAVE_WRITEV)
;;
*-freebsd*)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
machine/endian.h machine/param.h sys/machine.h sys/types.h \
fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \
sys/time.h unistd.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
@ -155,9 +125,6 @@ case "${host}" in
fi
;;
*-hpux*)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
machine/endian.h machine/param.h sys/machine.h sys/types.h \
fp.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
@ -178,10 +145,6 @@ case "${host}" in
esac
;;
*-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
machine/endian.h machine/param.h sys/machine.h sys/types.h \
fp.h float.h endian.h inttypes.h locale.h float.h stdint.h \
sys/ipc.h sys/sem.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_COMPILER_FEATURES
@ -191,18 +154,6 @@ case "${host}" in
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
# For LFS.
GLIBCXX_CHECK_LFS
# For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
GLIBCXX_CHECK_POLL
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
# For xsputn_2().
AC_CHECK_HEADERS(sys/uio.h)
GLIBCXX_CHECK_WRITEV
AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
AC_LC_MESSAGES
@ -211,16 +162,12 @@ case "${host}" in
AM_ICONV
;;
*-mingw32*)
AC_CHECK_HEADERS([sys/types.h locale.h float.h])
AC_DEFINE(HAVE_STRTOF)
AC_DEFINE(HAVE_STRTOLD)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
;;
*-netbsd*)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
machine/endian.h machine/param.h sys/machine.h sys/types.h \
fp.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
@ -242,8 +189,6 @@ case "${host}" in
fi
;;
*-netware)
AC_CHECK_HEADERS([nan.h ieeefp.h sys/isa_defs.h sys/machine.h \
sys/types.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
@ -251,15 +196,6 @@ case "${host}" in
AC_DEFINE(HAVE_HYPOT)
AC_DEFINE(HAVE_ISINF)
AC_DEFINE(HAVE_ISNAN)
# For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
GLIBCXX_CHECK_POLL
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
# For xsputn_2().
AC_CHECK_HEADERS(sys/uio.h)
GLIBCXX_CHECK_WRITEV
;;
*-qnx6.1* | *-qnx6.2*)
SECTION_FLAGS='-ffunction-sections -fdata-sections'
@ -284,29 +220,13 @@ case "${host}" in
*-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
GLIBCXX_CHECK_LINKER_FEATURES
AC_DEFINE(HAVE_MBSTATE_T)
AC_DEFINE(HAVE_POLL)
AC_DEFINE(HAVE_S_ISREG)
AC_DEFINE(HAVE_LC_MESSAGES)
AC_DEFINE(HAVE_FINITE)
AC_DEFINE(HAVE_FPCLASS)
# All of the dependencies for wide character support are here, so
# turn it on.
AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
# Are these tested for even when cross?
AC_DEFINE(HAVE_FLOAT_H)
AC_DEFINE(HAVE_IEEEFP_H)
AC_DEFINE(HAVE_INTTYPES_H)
AC_DEFINE(HAVE_LOCALE_H)
AC_DEFINE(HAVE_NAN_H)
AC_DEFINE(HAVE_SYS_FILIO_H)
AC_DEFINE(HAVE_SYS_IOCTL_H)
AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
AC_DEFINE(HAVE_SYS_RESOURCE_H)
AC_DEFINE(HAVE_SYS_TIME_H)
AC_DEFINE(HAVE_SYS_TYPES_H)
AC_DEFINE(HAVE_UNISTD_H)
AC_DEFINE(HAVE_WCHAR_H)
AC_DEFINE(HAVE_WCTYPE_H)
AC_DEFINE(HAVE_LIBM)
;;
esac
@ -338,8 +258,6 @@ case "${host}" in
AC_DEFINE(HAVE_HYPOT)
;;
*-tpf)
AC_CHECK_HEADERS([nan.h endian.h machine/endian.h \
sys/param.h sys/types.h locale.h float.h inttypes.h])
SECTION_FLAGS='-ffunction-sections -fdata-sections'
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES