dnl
dnl Initialize configure bits.
dnl
-dnl Define OPTLEVEL='-O2' if new inlining code present.
-dnl
dnl GLIBCPP_CONFIGURE
AC_DEFUN(GLIBCPP_CONFIGURE, [
dnl Default to --enable-multilib
*) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
esac], [multilib=yes])dnl
- glibcpp_basedir=$auxdir/$1/libstdc++-v3
+ glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3
AC_SUBST(glibcpp_basedir)
- AM_INIT_AUTOMAKE(libstdc++, 2.92)
+ AM_INIT_AUTOMAKE(libstdc++, 3.0.0)
# Never versions of autoconf add an underscore to these functions.
# Prevent future problems ...
AC_MSG_CHECKING([for g++ that will successfully compile libstdc++-v3])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
- AC_EGREP_CPP(ok, [
- #if __GNUC__ >= 3
- ok
+ AC_TRY_COMPILE(, [
+ #if __GNUC__ < 3
+ not_ok
#endif
], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to GCC 3.0 or above]))
AC_LANG_RESTORE
dnl
-dnl Test for newer compiler features, or features that are present in newer
-dnl compiler version but not older compiler versions should be placed
-dnl here.
+dnl Tests for newer compiler features, or features that are present in newer
+dnl compiler versions but not older compiler versions still in use, should
+dnl be placed here.
dnl
dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the
dnl new inlining code or the new system_header pragma will die on -Werror.
dnl GLIBCPP_CHECK_COMPILER_FEATURES
AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# All these tests are for C++; save the language and the compiler flags.
- # The CXXFLAGS thing is suspicious, but based on similar bits
+ # The CXXFLAGS thing is suspicious, but based on similar bits previously
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes" &&
+ test x"$enable_debug" = x"no"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
fi
# Set linker optimization flags.
- if test x"$ac_cv_prog_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$ac_cv_prog_gnu_ld" = x"yes" &&
+ test x"$enable_debug" = x"no"; then
OPT_LDFLAGS='-Wl,-O1'
fi
GLIBCPP_CHECK_MATH_DECL_1(_$1)
if test x$glibcpp_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
- fi
+ fi
fi
])
dnl
dnl Check to see if the (math function) argument passed is
dnl declared when using the c++ compiler
-dnl ASSUMES argument is a math function with ONE parameter
+dnl ASSUMES argument is a math function with TWO parameters
dnl
dnl GLIBCPP_CHECK_MATH_DECL_2
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_2, [
GLIBCPP_CHECK_MATH_DECL_2(_$1)
if test x$glibcpp_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
- fi
+ fi
fi
])
dnl
dnl Check to see if the (math function) argument passed is
dnl declared when using the c++ compiler
-dnl ASSUMES argument is a math function with ONE parameter
+dnl ASSUMES argument is a math function with THREE parameters
dnl
dnl GLIBCPP_CHECK_MATH_DECL_3
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_3, [
GLIBCPP_CHECK_MATH_DECL_3(_$1)
if test x$glibcpp_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
- fi
+ fi
fi
])
dnl Currently this includes copysignl and atan2l, which should be
dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
USE_COMPLEX_LONG_DOUBLE=no
- if test x$ac_cv_func_atan2l = x"yes" \
- && test x$ac_cv_func_copysignl = x"yes"; then
+ if test x$ac_cv_func_atan2l = x"yes" &&
+ test x$ac_cv_func_copysignl = x"yes"; then
USE_COMPLEX_LONG_DOUBLE=yes
AC_REPLACE_MATHFUNCS(hypotl signbitl)
fi
AC_CHECK_HEADER(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
dnl Only continue checking if the ISO C99 headers exist and support is on.
- if test x"$ac_has_wchar_h" = xyes && test x"$ac_has_wctype_h" = xyes \
- && test x"$enable_c_mbchar" != xno; then
+ if test x"$ac_has_wchar_h" = xyes &&
+ test x"$ac_has_wctype_h" = xyes &&
+ test x"$enable_c_mbchar" != xno; then
dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
dnl numeric_limits can instantiate type_traits<wchar_t>
AC_MSG_RESULT($has_weof)
dnl Tests for wide character functions used in char_traits<wchar_t>.
- AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset \
- wcsrtombs mbsrtowcs, ac_wfuncs=yes, ac_wfuncs=no)
+ ac_wfuncs=yes
+ AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset,, \
+ ac_wfuncs=no)
- dnl Do quick checks for things injected into std:: by the c_std headers.
- AC_CHECK_FUNCS(fgetwc, fgetws)
+ dnl Checks for names injected into std:: by the c_std headers.
+ AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
+ vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
+ mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
+ wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
+ wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr,, \
+ ac_wfuncs=no)
AC_MSG_CHECKING([for ISO C99 wchar_t support])
- if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes \
- && test x"$ac_wfuncs" = xyes; then
+ if test x"$has_weof" = xyes &&
+ test x"$has_wchar_minmax" = xyes &&
+ test x"$ac_wfuncs" = xyes; then
ac_isoC99_wchar_t=yes
else
ac_isoC99_wchar_t=no
LIBS="$ac_save_LIBS"
AC_MSG_CHECKING([for XPG2 wchar_t support])
- if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes \
- && test x"$ac_XPG2funcs" = xyes; then
+ if test x"$ac_has_iconv_h" = xyes &&
+ test x"$ac_has_langinfo_h" = xyes &&
+ test x"$ac_XPG2funcs" = xyes; then
ac_XPG2_wchar_t=yes
else
ac_XPG2_wchar_t=no
dnl At the moment, only enable wchar_t specializations if all the
dnl above support is present.
AC_MSG_CHECKING([for enabled wchar_t specializations])
- if test x"$ac_isoC99_wchar_t" = xyes \
- && test x"$ac_XPG2_wchar_t" = xyes; then
+ if test x"$ac_isoC99_wchar_t" = xyes &&
+ test x"$ac_XPG2_wchar_t" = xyes; then
AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
AC_MSG_RESULT("yes")
else
dnl and process to <file> with an output command. The reason for a two-
dnl stage process here is to correctly handle $srcdir!=$objdir without
dnl having to write complex code (the sed commands to clean the macro
-dnl namespace are complex and fragile enough as it is).
+dnl namespace are complex and fragile enough as it is). We must also
+dnl add a relative path so that -I- is supported properly.
dnl
AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
AC_MSG_CHECKING([for thread model used by GCC])
target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
AC_MSG_RESULT([$target_thread_file])
- AC_LINK_FILES(../gcc/gthr.h, include/bits/gthr.h-in)
- AC_LINK_FILES(../gcc/gthr-single.h, include/bits/gthr-single.h-in)
- AC_LINK_FILES(../gcc/gthr-$target_thread_file.h,
+ AC_LINK_FILES($toprel/gcc/gthr.h, include/bits/gthr.h-in)
+ AC_LINK_FILES($toprel/gcc/gthr-single.h,
+ include/bits/gthr-single.h-in)
+ AC_LINK_FILES($toprel/gcc/gthr-$target_thread_file.h,
include/bits/gthr-default.h-in)
if test $target_thread_file != single; then
AC_DEFINE(HAVE_GTHR_DEFAULT)
fi
AC_OUTPUT_COMMANDS([d=include/bits
rm -f $d/gthr.h $d/gthr-single.h $d/gthr-default.h
- sed '/^#/s/\([A-Z_][A-Z_]*\)/_GLIBCPP_\1/g' <$d/gthr.h-in >$d/gthr.h
+ sed '/^#/s/\([A-Z_][A-Z_]*\)/_GLIBCPP_\1/g' <$d/gthr.h-in \
+ | sed 's,"gthr-,"bits/gthr-,' >$d/gthr.h
sed 's/\(UNUSED\)/_GLIBCPP_\1/g' <$d/gthr-single.h-in \
| sed 's/\(GCC[A-Z_]*_H\)/_GLIBCPP_\1/g' >$d/gthr-single.h
sed 's/\(UNUSED\)/_GLIBCPP_\1/g' <$d/gthr-default.h-in \
rm -f conftest*])
if test x$enable_sjlj_exceptions = xyes; then
AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1,
- [Define if the compiler is configured for setjmp/longjmp exceptions.])
+ [Define if the compiler is configured for setjmp/longjmp exceptions.])
ac_exception_model_name=sjlj
elif test x$enable_sjlj_exceptions = xno; then
ac_exception_model_name="call frame"
void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vfscanf(stderr, "%i", args);}],
- [],, [ac_c99_stdio=no])
+ [],, [ac_c99_stdio=no])
AC_TRY_COMPILE([#include <stdio.h>
#include <stdarg.h>
void foo(char* fmt, ...)
AC_MSG_RESULT($ac_c99_stdlib)
# Check for the existence of <wchar.h> functions used if C99 is enabled.
+ # XXX the wchar.h checks should be rolled into the general C99 bits.
ac_c99_wchar=yes;
- AC_MSG_CHECKING([for ISO C99 support in <wchar.h>])
+ AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
AC_TRY_COMPILE([#include <wchar.h>],
[wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
AC_TRY_COMPILE([#include <wchar.h>],
AC_MSG_RESULT($ac_c99_wchar)
AC_MSG_CHECKING([for enabled ISO C99 support])
- if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" \
- || test x"$ac_c99_stdlib" = x"no" \
- || test x"$ac_c99_wchar" = x"no"; then
+ if test x"$ac_c99_math" = x"no" ||
+ test x"$ac_c99_stdio" = x"no" ||
+ test x"$ac_c99_stdlib" = x"no" ||
+ test x"$ac_c99_wchar" = x"no"; then
enable_c99=no;
fi;
AC_MSG_RESULT($enable_c99)
gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}
+glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
changequote([,])dnl
],version_specific_libs=no)
AC_MSG_RESULT($version_specific_libs)
# Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir
# Install a library built with a cross compiler in tooldir, not libdir.
if test x"$glibcpp_toolexecdir" = x"no"; then
- if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then
+ if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
else