public inbox for newlib-cvs@sourceware.org help / color / mirror / Atom feed
From: Michael Frysinger <vapier@sourceware.org> To: newlib-cvs@sourceware.org Subject: [newlib-cygwin] newlib: switch to autoconf long double macro Date: Fri, 21 Jan 2022 12:08:59 +0000 (GMT) [thread overview] Message-ID: <20220121120859.F1E003858C60@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=55e09d5e8c1e9cd7d54952af706341ae45a67e3a commit 55e09d5e8c1e9cd7d54952af706341ae45a67e3a Author: Mike Frysinger <vapier@gentoo.org> Date: Thu Jan 20 22:47:47 2022 -0500 newlib: switch to autoconf long double macro Now that we require a recent version of autoconf, we can rely on this macro working. This change was already made to libm, but these other dirs were missed as I didn't notice it being duplicated in 3 places. Diff: --- newlib/configure | 68 +++++++++++++++++++++++++++--------------------- newlib/configure.ac | 35 +++---------------------- newlib/libc/configure | 58 ++++++++++++++++++++++++++--------------- newlib/libc/configure.ac | 21 ++------------- newlib/newlib.hin | 3 +++ 5 files changed, 84 insertions(+), 101 deletions(-) diff --git a/newlib/configure b/newlib/configure index 879392da8..2d015dbb6 100755 --- a/newlib/configure +++ b/newlib/configure @@ -13315,46 +13315,54 @@ $as_echo "#define _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether long double type exists" >&5 -$as_echo_n "checking whether long double type exists... " >&6; } -if ${acnewlib_cv_type_long_double+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5 +$as_echo_n "checking for long double... " >&6; } +if ${ac_cv_type_long_double+:} false; then : $as_echo_n "(cached) " >&6 else - cat > conftest.c <<EOF -/* Check two ways: float.h defines and direct type declaration. */ -#include <float.h> -#if defined(LDBL_MANT_DIG) - #define _HAVE_LONG_DOUBLE - #else - #error "LDBL != DBL" -#endif -long double test() { -long double ld = 0.0L; -return ld; + if test "$GCC" = yes; then + ac_cv_type_long_double=yes + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* The Stardent Vistra knows sizeof (long double), but does + not support it. */ + long double foo = 0.0L; +int +main () +{ +static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */ + sizeof (double) <= sizeof (long double))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; } -EOF -if { ac_try='${CC} $CFLAGS $CPPFLAGS -c -o conftest.o conftest.c - 1>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } -then - acnewlib_cv_type_long_double=yes; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_long_double=yes else - acnewlib_cv_type_long_double=no; + ac_cv_type_long_double=no fi -rm -f conftest* +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acnewlib_cv_type_long_double" >&5 -$as_echo "$acnewlib_cv_type_long_double" >&6; } -if test $acnewlib_cv_type_long_double = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5 +$as_echo "$ac_cv_type_long_double" >&6; } + if test $ac_cv_type_long_double = yes; then + +$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h + + fi + +if test $ac_cv_type_long_double = yes; then $as_echo "#define _HAVE_LONG_DOUBLE 1" >>confdefs.h fi - if test x"$acnewlib_cv_type_long_double" = x"yes"; then + if test x"$ac_cv_type_long_double" = x"yes"; then HAVE_LONG_DOUBLE_TRUE= HAVE_LONG_DOUBLE_FALSE='#' else diff --git a/newlib/configure.ac b/newlib/configure.ac index b4d11f5e3..c54d2047a 100644 --- a/newlib/configure.ac +++ b/newlib/configure.ac @@ -687,39 +687,12 @@ if test $libc_cv_cc_loop_to_function = yes; then fi AC_SUBST(libc_cv_cc_loop_to_function) -dnl Autoconf 2.59 doesn't support the AC_TYPE_LONG_DOUBLE macro. Instead of: -dnl AC_TYPE_LONG_DOUBLE -dnl AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$ac_cv_type_long_double" = x"yes") -dnl we specify our own long double test. -dnl Additionally, ac_cv_objext is broken so that AC_COMPILE_IFELSE cannot be -dnl used, so use AC_TRY_COMMAND instead. -AC_CACHE_CHECK(whether long double type exists, - acnewlib_cv_type_long_double, [dnl -cat > conftest.c <<EOF -/* Check two ways: float.h defines and direct type declaration. */ -#include <float.h> -#if defined(LDBL_MANT_DIG) - #define _HAVE_LONG_DOUBLE - #else - #error "LDBL != DBL" -#endif -long double test() { -long double ld = 0.0L; -return ld; -} -EOF -if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS -c -o conftest.o conftest.c - 1>&AS_MESSAGE_LOG_FD]) -then - acnewlib_cv_type_long_double=yes; -else - acnewlib_cv_type_long_double=no; -fi -rm -f conftest*]) -if test $acnewlib_cv_type_long_double = yes; then +AC_TYPE_LONG_DOUBLE +dnl Export the setting for our installed headers to check. +if test $ac_cv_type_long_double = yes; then AC_DEFINE(_HAVE_LONG_DOUBLE, 1, [Define if the platform supports long double type.]) fi -AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$acnewlib_cv_type_long_double" = x"yes") +AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$ac_cv_type_long_double" = x"yes") AC_CACHE_CHECK(whether long double equals double, newlib_cv_ldbl_eq_dbl, [dnl diff --git a/newlib/libc/configure b/newlib/libc/configure index 38eaf7a65..1afafab77 100755 --- a/newlib/libc/configure +++ b/newlib/libc/configure @@ -12229,33 +12229,49 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking long double support" >&5 -$as_echo_n "checking Checking long double support... " >&6; } -if ${acnewlib_cv_type_long_double+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5 +$as_echo_n "checking for long double... " >&6; } +if ${ac_cv_type_long_double+:} false; then : $as_echo_n "(cached) " >&6 else - cat > conftest.c <<EOF -int main() { -long double x = 0.0L; -return 0; + if test "$GCC" = yes; then + ac_cv_type_long_double=yes + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* The Stardent Vistra knows sizeof (long double), but does + not support it. */ + long double foo = 0.0L; +int +main () +{ +static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */ + sizeof (double) <= sizeof (long double))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; } -EOF -if { ac_try='${CC} $CFLAGS $CPPFLAGS -c conftest.c 1>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } -then - acnewlib_cv_type_long_double=yes +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_long_double=yes else - acnewlib_cv_type_long_double=no + ac_cv_type_long_double=no fi -rm -f conftest* +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acnewlib_cv_type_long_double" >&5 -$as_echo "$acnewlib_cv_type_long_double" >&6; } - if test x"$acnewlib_cv_type_long_double" = x"yes"; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5 +$as_echo "$ac_cv_type_long_double" >&6; } + if test $ac_cv_type_long_double = yes; then + +$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h + + fi + + if test x"$ac_cv_type_long_double" = x"yes"; then HAVE_LONG_DOUBLE_TRUE= HAVE_LONG_DOUBLE_FALSE='#' else diff --git a/newlib/libc/configure.ac b/newlib/libc/configure.ac index 29a839623..c23282d08 100644 --- a/newlib/libc/configure.ac +++ b/newlib/libc/configure.ac @@ -184,25 +184,8 @@ fi AC_SUBST(LIBC_SYS_LIB) AC_SUBST(sys_dir) -dnl Autoconf 2.59 doesn't support the AC_TYPE_LONG_DOUBLE macro. Instead of: -dnl AC_TYPE_LONG_DOUBLE -dnl AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$ac_cv_type_long_double" = x"yes") -dnl we specify our own long double test. -AC_CACHE_CHECK([Checking long double support], [acnewlib_cv_type_long_double],[dnl -cat > conftest.c <<EOF -int main() { -long double x = 0.0L; -return 0; -} -EOF -if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS -c conftest.c 1>&AS_MESSAGE_LOG_FD]) -then - acnewlib_cv_type_long_double=yes -else - acnewlib_cv_type_long_double=no -fi -rm -f conftest*]) -AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$acnewlib_cv_type_long_double" = x"yes") +AC_TYPE_LONG_DOUBLE +AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$ac_cv_type_long_double" = x"yes") dnl iconv library will be compiled if --enable-newlib-iconv option is enabled AM_CONDITIONAL(ENABLE_NEWLIB_ICONV, test x${newlib_iconv} != x) diff --git a/newlib/newlib.hin b/newlib/newlib.hin index 69a7cb7a7..feeb409bb 100644 --- a/newlib/newlib.hin +++ b/newlib/newlib.hin @@ -14,6 +14,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if the system has the type `long double'. */ +#undef HAVE_LONG_DOUBLE + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H
reply other threads:[~2022-01-21 12:08 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220121120859.F1E003858C60@sourceware.org \ --to=vapier@sourceware.org \ --cc=newlib-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).