From 75bf04114e2b734052d4635175522150c3fb1872 Mon Sep 17 00:00:00 2001 From: Chris Sutcliffe Date: Sat, 8 Aug 2009 13:26:11 +0000 Subject: [PATCH] 2009-08-08 Danny Smith * include/math.h (__fpclassifyl, __isnan, __isnanf, isnanl, __signbit, __signbitf, __signbitl, sinhf, tanhf, expf, frexpf, ldexpf, hypotf, powf, __fp_unordered_compare): Add prototypes. * include/stdio.h (vsnwprintf): Add prototype. * include/wchar.h (vsnwprintf): Add prototype. * include/unistd.h (ftruncate): Move prototype out of __NO_INLINE__ guard. --- winsup/mingw/ChangeLog | 10 ++++++++++ winsup/mingw/include/math.h | 16 ++++++++++++++++ winsup/mingw/include/stdio.h | 1 + winsup/mingw/include/stdlib.h | 2 +- winsup/mingw/include/unistd.h | 2 +- winsup/mingw/include/wchar.h | 4 +++- 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 0dbd7a462..b711a4187 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,13 @@ +2009-08-08 Danny Smith + + * include/math.h (__fpclassifyl, __isnan, __isnanf, isnanl, __signbit, + __signbitf, __signbitl, sinhf, tanhf, expf, frexpf, ldexpf, hypotf, powf, + __fp_unordered_compare): Add prototypes. + * include/stdio.h (vsnwprintf): Add prototype. + * include/wchar.h (vsnwprintf): Add prototype. + * include/stdlib.h (_Exit): Protect inline definition with !__STRICT_ANSI__. + * include/unistd.h (ftruncate): Move prototype out of __NO_INLINE__ guard. + 2009-07-29 Keith Marshall Correct disposition of wchar_t output in printf(). diff --git a/winsup/mingw/include/math.h b/winsup/mingw/include/math.h index 82cd1ba43..c31bfe50b 100644 --- a/winsup/mingw/include/math.h +++ b/winsup/mingw/include/math.h @@ -353,6 +353,7 @@ typedef long double double_t; extern int __cdecl __fpclassifyf (float); extern int __cdecl __fpclassify (double); +extern int __cdecl __fpclassifyl (long double); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __fpclassifyl (long double x){ @@ -375,6 +376,9 @@ __CRT_INLINE int __cdecl __fpclassifyl (long double x){ /* 7.12.3.4 */ /* We don't need to worry about truncation here: A NaN stays a NaN. */ +extern int __cdecl __isnan (double); +extern int __cdecl __isnanf (float); +extern int __cdecl __isnanl (long double); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __isnan (double _x) { @@ -412,6 +416,9 @@ __CRT_INLINE int __cdecl __isnanl (long double _x) #define isnormal(x) (fpclassify(x) == FP_NORMAL) /* 7.12.3.6 The signbit macro */ +extern int __cdecl __signbit (double); +extern int __cdecl __signbitf (float); +extern int __cdecl __signbitl (long double); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __signbit (double x) { unsigned short stw; @@ -459,18 +466,21 @@ extern float __cdecl atan2f (float, float); extern long double __cdecl atan2l (long double, long double); /* 7.12.5 Hyperbolic functions: Double in C89 */ +extern float __cdecl sinhf (float); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl sinhf (float x) {return (float) sinh (x);} #endif extern long double __cdecl sinhl (long double); +extern float __cdecl coshf (float); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl coshf (float x) {return (float) cosh (x);} #endif extern long double __cdecl coshl (long double); +extern float __cdecl tanhf (float); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl tanhf (float x) {return (float) tanh (x);} @@ -495,6 +505,7 @@ extern long double __cdecl atanhl (long double); /* Exponentials and logarithms */ /* 7.12.6.1 Double in C89 */ +extern float __cdecl expf (float); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl expf (float x) {return (float) exp (x);} @@ -513,6 +524,7 @@ extern float __cdecl expm1f(float); extern long double __cdecl expm1l(long double); /* 7.12.6.4 Double in C89 */ +extern float __cdecl frexpf (float, int*); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl frexpf (float x, int* expn) {return (float) frexp (x, expn);} @@ -527,6 +539,7 @@ extern int __cdecl ilogbf (float); extern int __cdecl ilogbl (long double); /* 7.12.6.6 Double in C89 */ +extern float __cdecl ldexpf (float, int); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl ldexpf (float x, int expn) {return (float) ldexp (x, expn);} @@ -611,6 +624,7 @@ extern long double __cdecl fabsl (long double x); /* 7.12.7.3 */ extern double __cdecl hypot (double, double); /* in libmoldname.a */ +extern float __cdecl hypotf (float, float); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot (x, y);} @@ -618,6 +632,7 @@ __CRT_INLINE float __cdecl hypotf (float x, float y) extern long double __cdecl hypotl (long double, long double); /* 7.12.7.4 The pow functions. Double in C89 */ +extern float __cdecl powf (float, float); #ifndef __NO_INLINE__ __CRT_INLINE float __cdecl powf (float x, float y) {return (float) pow (x, y);} @@ -860,6 +875,7 @@ extern long double __cdecl fmal (long double, long double, long double); #else /* helper */ +extern int __cdecl __fp_unordered_compare (long double, long double); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __fp_unordered_compare (long double x, long double y){ diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h index 163bbb2f2..b7ed9b757 100644 --- a/winsup/mingw/include/stdio.h +++ b/winsup/mingw/include/stdio.h @@ -601,6 +601,7 @@ _CRTIMP FILE* __cdecl __MINGW_NOTHROW _wpopen (const wchar_t*, const wchar_t*); #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ int __cdecl __MINGW_NOTHROW snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...); +int __cdecl __MINGW_NOTHROW vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __MINGW_NOTHROW vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg) diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h index 014bc0a27..9fe23bfd9 100644 --- a/winsup/mingw/include/stdlib.h +++ b/winsup/mingw/include/stdlib.h @@ -503,7 +503,7 @@ _CRTIMP char* __cdecl __MINGW_NOTHROW gcvt (double, int, char*); /* C99 name for _exit */ void __cdecl __MINGW_NOTHROW _Exit(int) __MINGW_ATTRIB_NORETURN; -#ifndef __NO_INLINE__ +#if !defined __NO_INLINE__ && !defined __STRICT_ANSI__ __CRT_INLINE void __cdecl __MINGW_NOTHROW _Exit(int __status) { _exit (__status); } #endif diff --git a/winsup/mingw/include/unistd.h b/winsup/mingw/include/unistd.h index f84379732..5b828ebb0 100644 --- a/winsup/mingw/include/unistd.h +++ b/winsup/mingw/include/unistd.h @@ -38,8 +38,8 @@ int __cdecl __MINGW_NOTHROW usleep(useconds_t useconds); /* This is defined as a real library function to allow autoconf to verify its existence. */ -#ifndef __NO_INLINE__ int ftruncate(int, off_t); +#ifndef __NO_INLINE__ __CRT_INLINE int ftruncate(int __fd, off_t __length) { return _chsize (__fd, __length); diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h index 86bb999b3..3f45c8fea 100644 --- a/winsup/mingw/include/wchar.h +++ b/winsup/mingw/include/wchar.h @@ -143,7 +143,8 @@ _CRTIMP FILE* __cdecl __MINGW_NOTHROW _wpopen (const wchar_t*, const wchar_t*); #endif /* __MSVCRT__ */ #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ -int __cdecl __MINGW_NOTHROW snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...); +int __cdecl __MINGW_NOTHROW snwprintf (wchar_t*, size_t, const wchar_t*, ...); +int __cdecl __MINGW_NOTHROW vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __MINGW_NOTHROW vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg) @@ -249,6 +250,7 @@ _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW __wcserror(const wchar_t*); #ifndef _NO_OLDNAMES /* NOTE: There is no _wcscmpi, but this is for compatibility. */ +int __cdecl __MINGW_NOTHROW wcscmpi (const wchar_t *, const wchar_t *); #ifndef __NO_INLINE__ __CRT_INLINE int __cdecl __MINGW_NOTHROW wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2) -- 2.43.5