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: libm: switch to autoconf long double macro
Date: Thu, 20 Jan 2022 00:58:29 +0000 (GMT)	[thread overview]
Message-ID: <20220120005829.717553858D35@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=6783cceb0acdf163f8f8843f63c17e08c07b88e9

commit 6783cceb0acdf163f8f8843f63c17e08c07b88e9
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Mon Jan 17 00:42:53 2022 -0500

    newlib: libm: switch to autoconf long double macro
    
    Now that we require a recent version of autoconf, we can rely on this
    macro working.  We shift the call in configure.ac down a little to
    help keep the generated diff minimal -- there should be no functional
    difference otherwise.  This is because the autoconf macros will call
    a bunch of standard toolchain macros first, and arguably the current
    code is incorrect in how it does its testing.

Diff:
---
 newlib/libm/configure    | 102 +++++++++++++++++++++++++++--------------------
 newlib/libm/configure.ac |  23 ++---------
 2 files changed, 62 insertions(+), 63 deletions(-)

diff --git a/newlib/libm/configure b/newlib/libm/configure
index c9a84cbd3..0dfd3b3df 100755
--- a/newlib/libm/configure
+++ b/newlib/libm/configure
@@ -635,6 +635,8 @@ am__EXEEXT_TRUE
 LTLIBOBJS
 LIBOBJS
 LIBM_MACHINE_LIB
+HAVE_LONG_DOUBLE_FALSE
+HAVE_LONG_DOUBLE_TRUE
 subdirs
 CPP
 OTOOL64
@@ -739,8 +741,6 @@ build
 newlib_basedir
 MAY_SUPPLY_SYSCALLS_FALSE
 MAY_SUPPLY_SYSCALLS_TRUE
-HAVE_LONG_DOUBLE_FALSE
-HAVE_LONG_DOUBLE_TRUE
 NEWLIB_HW_FP_FALSE
 NEWLIB_HW_FP_TRUE
 target_alias
@@ -2194,41 +2194,6 @@ else
 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_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-int main() {
-long double x = 0.0L;
-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
-else
-  acnewlib_cv_type_long_double=no
-fi
-rm -f conftest*
-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
-  HAVE_LONG_DOUBLE_TRUE=
-  HAVE_LONG_DOUBLE_FALSE='#'
-else
-  HAVE_LONG_DOUBLE_TRUE='#'
-  HAVE_LONG_DOUBLE_FALSE=
-fi
-
-
 ac_aux_dir=
 for ac_dir in ../.. "$srcdir"/../..; do
   if test -f "$ac_dir/install-sh"; then
@@ -11651,7 +11616,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11654 "configure"
+#line 11619 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11757,7 +11722,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11760 "configure"
+#line 11725 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12001,6 +11966,57 @@ fi
 subdirs="$subdirs machine"
 
 
+
+  { $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
+  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;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_long_double=yes
+else
+  ac_cv_type_long_double=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
+fi
+{ $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
+  HAVE_LONG_DOUBLE_TRUE='#'
+  HAVE_LONG_DOUBLE_FALSE=
+fi
+
+
 LIBM_MACHINE_LIB=
 if test -n "${libm_machine_dir}"; then
   if test "${use_libtool}" = "yes"; then
@@ -12163,10 +12179,6 @@ if test -z "${NEWLIB_HW_FP_TRUE}" && test -z "${NEWLIB_HW_FP_FALSE}"; then
   as_fn_error $? "conditional \"NEWLIB_HW_FP\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${HAVE_LONG_DOUBLE_TRUE}" && test -z "${HAVE_LONG_DOUBLE_FALSE}"; then
-  as_fn_error $? "conditional \"HAVE_LONG_DOUBLE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
   as_fn_error $? "conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -12227,6 +12239,10 @@ if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBTOOL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_LONG_DOUBLE_TRUE}" && test -z "${HAVE_LONG_DOUBLE_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_LONG_DOUBLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
 : "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
diff --git a/newlib/libm/configure.ac b/newlib/libm/configure.ac
index eabb1ba9c..3f9c01e15 100644
--- a/newlib/libm/configure.ac
+++ b/newlib/libm/configure.ac
@@ -13,26 +13,6 @@ AC_ARG_ENABLE(newlib_hw_fp,
  esac],[newlib_hw_fp=false])
 AM_CONDITIONAL(NEWLIB_HW_FP, test x$newlib_hw_fp = xtrue)
 
-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")
-
 dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. 
 AC_CONFIG_AUX_DIR(../..)
 
@@ -49,6 +29,9 @@ fi
 
 AC_CONFIG_SUBDIRS(machine)
 
+AC_TYPE_LONG_DOUBLE
+AM_CONDITIONAL(HAVE_LONG_DOUBLE, test x"$ac_cv_type_long_double" = x"yes")
+
 LIBM_MACHINE_LIB=
 if test -n "${libm_machine_dir}"; then
   if test "${use_libtool}" = "yes"; then


                 reply	other threads:[~2022-01-20  0:58 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=20220120005829.717553858D35@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: link
Be 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).