This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
Re: patch for g++ -ansi for math.h
- To: geoffk at redhat dot com
- Subject: Re: patch for g++ -ansi for math.h
- From: "J. Johnston" <jjohnstn at cygnus dot com>
- Date: Tue, 23 Oct 2001 12:03:05 -0400
- CC: newlib at sources dot redhat dot com, bkoz at redhat dot com
- Organization: Red Hat Inc.
- References: <200110222013.f9MKDAV30292@thief.cygnus.com>
Geoffrey Keating wrote:
>
> When 'g++ -ansi' is used, __STRICT_ANSI__ is defined. Normally this
> is exactly what you'd want. However, the C++ standard adds a few
> single-precision math functions to the usual list of C89 math.h
> functions, and this was causing
>
> #include <complex>
>
> to fail when built with 'g++ -ansi' and newlib.
>
> On Linux, this is dealt with by defining _GNU_SOURCE in g++, which
> declares these and many other things.
>
> OK to commit?
>
Yes, go ahead.
-- Jeff J.
> --
> Geoff Keating <geoffk@redhat.com>
>
> ===File ~/patches/newlib-mathfloat.patch====================
> 2001-10-22 Geoffrey Keating <geoffk@redhat.com>
>
> * libc/include/math.h: The C++ standard adds the single-precision
> versions of the elementary functions.
>
> Index: libc/include/math.h
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/include/math.h,v
> retrieving revision 1.7
> diff -p -u -p -r1.7 math.h
> --- math.h 2001/01/29 22:40:50 1.7
> +++ math.h 2001/10/22 20:06:54
> @@ -114,6 +114,10 @@ extern double drem _PARAMS((double, doub
>
> #endif /* ! defined (_REENT_ONLY) */
>
> +#endif /* ! defined (__STRICT_ANSI__) */
> +
> +#if !defined(__STRICT_ANSI__) || defined(__cplusplus)
> +
> /* Single precision versions of ANSI functions. */
>
> extern float atanf _PARAMS((float));
> @@ -141,6 +145,10 @@ extern float powf _PARAMS((float, float)
> extern float sqrtf _PARAMS((float));
> extern float fmodf _PARAMS((float, float));
> #endif /* ! defined (_REENT_ONLY) */
> +
> +#endif /* !defined(__STRICT_ANSI__) || defined(__cplusplus) */
> +
> +#ifndef __STRICT_ANSI__
>
> /* Other single precision functions. */
>
> ============================================================