delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/07/04/20:00:08

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0
content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: C99/C++ patch for /usr/include/math.h
Date: Sat, 5 Jul 2003 09:59:36 +1000
Message-ID: <FAC87D7C874EAB46A847604DA4FD5A640348B6@crtsmail.corp.riotinto.org>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
From: "Billinghurst, David (CRTS)" <David DOT Billinghurst AT riotinto DOT com>
To: <cygwin AT cygwin DOT com>
Cc: <newlib AT sources DOT redhat DOT com>
X-OriginalArrivalTime: 04 Jul 2003 23:56:33.0487 (UTC) FILETIME=[E57F9DF0:01C34287]
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id h65008728203

I have been working through some gcc-3.4 libstdc++-v3 testsuite failures on cygwin.

The tests:
 - 26_numerics/c99_classification_macros_c++.cc
 - 26_numerics/c99_classification_macros_c.cc
fail because C99 and C++ disagree over fpclassify()

The following patch to /usr/include/math.h does the job, but I haven't checked it against the standards.  I don't have a newlib tree at present, so I am unsure
which source file needs the patch.

Tested by successful compilation of above tests.

2003-07-05  David Billinghurst <David DOT Billinghurst AT riotinto DOT com>

	* math.h:  Do not define ISO C99 types and macros for C++

--- math.h.orig	2003-07-05 09:10:07.000000000 +1000
+++ math.h	2003-07-05 09:23:25.000000000 +1000
@@ -63,9 +63,8 @@
 #endif /* ! defined (__math_68881) */
 #endif /* ! defined (_REENT_ONLY) */
 
-#ifndef __STRICT_ANSI__
-
 /* ISO C99 types and macros. */
+#if ! defined (__STRICT_ANSI__) && ! defined (__cplusplus)
 
 #ifndef FLT_EVAL_METHOD
 #define FLT_EVAL_METHOD 0
@@ -116,8 +115,10 @@
           (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
                            fpclassify(__x) == FP_NAN || fpclassify(__y) == FP_NAN;}))
 
-/* Non ANSI double precision functions.  */
+#endif /* ! defined (__STRICT_ANSI__) && ! defined (__cplusplus) */
 
+/* Non ANSI double precision functions.  */
+#ifndef __STRICT_ANSI__
 extern double infinity _PARAMS((void));
 extern double nan _PARAMS((void));
 extern int isnan _PARAMS((double));


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019