From 7bab65434ce0e49eeccc381dce41fe7cf348899e Mon Sep 17 00:00:00 2001 From: Diego Novillo Date: Tue, 1 Jun 2010 10:05:17 -0400 Subject: richi's fixes for c++ bootstrap From-SVN: r160105 --- libcpp/aclocal.m4 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ libcpp/configure | 68 +++++++++++++++++++++++++++----------------------- libcpp/configure.ac | 4 +-- 3 files changed, 110 insertions(+), 33 deletions(-) (limited to 'libcpp') diff --git a/libcpp/aclocal.m4 b/libcpp/aclocal.m4 index c3a9f03..a92771a 100644 --- a/libcpp/aclocal.m4 +++ b/libcpp/aclocal.m4 @@ -22,3 +22,74 @@ m4_include([../config/lib-link.m4]) m4_include([../config/lib-prefix.m4]) m4_include([../config/override.m4]) m4_include([../config/warnings.m4]) + +## ---------------------------------------------------------------- ## +## Checking for declared symbols. ## +## This is like *AC_CHECK_DECL*, except that for c++, we may use a ## +## prototype to check for a (possibly overloaded) function. ## +## ---------------------------------------------------------------- ## + + +# _AC_CHECK_PROTO_BODY +# ------------------- +# Shell function body for AC_CHECK_PROTO. +m4_define([_AC_CHECK_PROTO_BODY], +[ AS_LINENO_PUSH([$[]1]) + [as_decl_name=`echo $][2|sed 's/(.*//'`] + [as_decl_use=`echo $][2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`] + AC_CACHE_CHECK([whether $as_decl_name is declared], [$[]3], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$[]4], +[@%:@ifndef $[]as_decl_name +@%:@ifdef __cplusplus + (void) $[]as_decl_use; +@%:@else + (void) $[]as_decl_name; +@%:@endif +@%:@endif +])], + [AS_VAR_SET([$[]3], [yes])], + [AS_VAR_SET([$[]3], [no])])]) + AS_LINENO_POP +])# _AC_CHECK_PROTO_BODY + +# AC_CHECK_PROTO(SYMBOL, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], +# [INCLUDES = DEFAULT-INCLUDES]) +# ------------------------------------------------------- +# Check whether SYMBOL (a function, variable, or constant) is declared. +AC_DEFUN([AC_CHECK_PROTO], +[AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_check_proto], + [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_check_proto], + [LINENO SYMBOL VAR], + [Tests whether SYMBOL is declared, setting cache variable VAR accordingly.])], + [_$0_BODY])]dnl +[AS_VAR_PUSHDEF([ac_Symbol], [ac_cv_have_decl_$1])]dnl +[ac_fn_[]_AC_LANG_ABBREV[]_check_proto ]dnl +["$LINENO" "$1" "ac_Symbol" "AS_ESCAPE([AC_INCLUDES_DEFAULT([$4])], [""])" +AS_VAR_IF([ac_Symbol], [yes], [$2], [$3]) +AS_VAR_POPDEF([ac_Symbol])dnl +])# AC_CHECK_PROTO + + +# _AC_CHECK_PROTOS(SYMBOL, ACTION-IF_FOUND, ACTION-IF-NOT-FOUND, +# INCLUDES) +# ------------------------------------------------------------- +# Helper to AC_CHECK_PROTOS, which generates the check for a single +# SYMBOL with INCLUDES, performs the AC_DEFINE, then expands +# ACTION-IF-FOUND or ACTION-IF-NOT-FOUND. +m4_define([_AC_CHECK_PROTOS], +[AC_CHECK_PROTO([$1], [ac_have_decl=1], [ac_have_decl=0], [$4])]dnl +[AC_DEFINE_UNQUOTED(AS_TR_CPP(patsubst(HAVE_DECL_[$1],[(.*])), [$ac_have_decl], + [Define to 1 if you have the declaration of `$1', + and to 0 if you don't.])]dnl +[m4_ifvaln([$2$3], [AS_IF([test $ac_have_decl = 1], [$2], [$3])])]) + +# AC_CHECK_PROTOS(SYMBOLS, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], +# [INCLUDES = DEFAULT-INCLUDES]) +# -------------------------------------------------------- +# Defines HAVE_DECL_SYMBOL to 1 if declared, 0 otherwise. See the +# documentation for a detailed explanation of this difference with +# other AC_CHECK_*S macros. SYMBOLS is an m4 list. +AC_DEFUN([AC_CHECK_PROTOS], +[m4_map_args_sep([_$0(], [, [$2], [$3], [$4])], [], $1)]) diff --git a/libcpp/configure b/libcpp/configure index 00cbd7a..b6e184e 100755 --- a/libcpp/configure +++ b/libcpp/configure @@ -2233,14 +2233,16 @@ $as_echo "$ac_res" >&6; } } # ac_fn_cxx_check_func -# ac_fn_cxx_check_decl LINENO SYMBOL VAR -# -------------------------------------- +# ac_fn_cxx_check_proto LINENO SYMBOL VAR +# --------------------------------------- # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. -ac_fn_cxx_check_decl () +ac_fn_cxx_check_proto () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 -$as_echo_n "checking whether $2 is declared... " >&6; } + as_decl_name=`echo $2|sed 's/(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else @@ -2250,8 +2252,12 @@ $4 int main () { -#ifndef $2 - (void) $2; +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif #endif ; @@ -2270,7 +2276,7 @@ eval ac_res=\$$3 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -} # ac_fn_cxx_check_decl +} # ac_fn_cxx_check_proto cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -5460,7 +5466,7 @@ _ACEOF fi done -ac_fn_cxx_check_decl "$LINENO" "abort" "ac_cv_have_decl_abort" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "abort" "ac_cv_have_decl_abort" "$ac_includes_default" if test "x$ac_cv_have_decl_abort" = x""yes; then : ac_have_decl=1 else @@ -5470,7 +5476,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ABORT $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default" if test "x$ac_cv_have_decl_asprintf" = x""yes; then : ac_have_decl=1 else @@ -5480,8 +5486,8 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ASPRINTF $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "basename" "ac_cv_have_decl_basename" "$ac_includes_default" -if test "x$ac_cv_have_decl_basename" = x""yes; then : +ac_fn_cxx_check_proto "$LINENO" "basename(char*)" "ac_cv_have_decl_basename_charp_" "$ac_includes_default" +if test "x$ac_cv_have_decl_basename_charp_" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 @@ -5490,7 +5496,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_BASENAME $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "errno" "ac_cv_have_decl_errno" "$ac_includes_default" if test "x$ac_cv_have_decl_errno" = x""yes; then : ac_have_decl=1 else @@ -5500,7 +5506,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ERRNO $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "getopt" "ac_cv_have_decl_getopt" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "getopt" "ac_cv_have_decl_getopt" "$ac_includes_default" if test "x$ac_cv_have_decl_getopt" = x""yes; then : ac_have_decl=1 else @@ -5510,7 +5516,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETOPT $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_clearerr_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5520,7 +5526,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_feof_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5530,7 +5536,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_ferror_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5540,7 +5546,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fflush_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5550,7 +5556,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fgetc_unlocked" "ac_cv_have_decl_fgetc_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fgetc_unlocked" "ac_cv_have_decl_fgetc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fgetc_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5560,7 +5566,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FGETC_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fgets_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5570,7 +5576,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fileno_unlocked" "ac_cv_have_decl_fileno_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fileno_unlocked" "ac_cv_have_decl_fileno_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fileno_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5580,7 +5586,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FILENO_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fprintf_unlocked" "ac_cv_have_decl_fprintf_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fprintf_unlocked" "ac_cv_have_decl_fprintf_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fprintf_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5590,7 +5596,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPRINTF_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fputc_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5600,7 +5606,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fputs_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5610,7 +5616,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fread_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5620,7 +5626,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fwrite_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5630,7 +5636,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getchar_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5640,7 +5646,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5650,7 +5656,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_putchar_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5660,7 +5666,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_putc_unlocked" = x""yes; then : ac_have_decl=1 else @@ -5670,7 +5676,7 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl _ACEOF -ac_fn_cxx_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default" +ac_fn_cxx_check_proto "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default" if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : ac_have_decl=1 else diff --git a/libcpp/configure.ac b/libcpp/configure.ac index d520e93..31fb8ba 100644 --- a/libcpp/configure.ac +++ b/libcpp/configure.ac @@ -81,8 +81,8 @@ define(libcpp_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl putchar_unlocked putc_unlocked) AC_CHECK_FUNCS(libcpp_UNLOCKED_FUNCS) -AC_CHECK_DECLS(m4_split(m4_normalize(abort asprintf basename errno getopt \ - libcpp_UNLOCKED_FUNCS vasprintf))) +AC_CHECK_PROTOS(m4_split(m4_normalize(abort asprintf basename(char*) errno \ + getopt libcpp_UNLOCKED_FUNCS vasprintf))) # Checks for library functions. AC_FUNC_ALLOCA -- cgit v1.1