Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2003-09-24 04:41:01 +0400
committerDanny Smith <dannysmith@users.sourceforge.net>2003-09-24 04:41:01 +0400
commit8852e9c5f1b1f1b50b4cec564b204658354fd82e (patch)
treef2a78766650611e4039440a8c9ac423c2e4855bb /winsup
parent92694c7a9685577d76c6e05e0e2feb327bee8d5a (diff)
* include/_mingw.h (__CRT_INLINE): Define.
* include/ctype.h: Replace 'extern inline' with __CRT_INLINE, throughout * include/inttypes.h: Likewise. * include/math.h: Likewise. * include/stdio.h: Likewise. * include/stdlib.h: Likewise. * include/string.h: Likewise. * include/wchar.h: Likewise. * include/wctype.h: Likewise.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/mingw/ChangeLog13
-rw-r--r--winsup/mingw/include/_mingw.h6
-rw-r--r--winsup/mingw/include/ctype.h60
-rw-r--r--winsup/mingw/include/inttypes.h2
-rw-r--r--winsup/mingw/include/math.h56
-rw-r--r--winsup/mingw/include/stdio.h4
-rw-r--r--winsup/mingw/include/stdlib.h20
-rw-r--r--winsup/mingw/include/string.h6
-rw-r--r--winsup/mingw/include/wchar.h8
-rw-r--r--winsup/mingw/include/wctype.h26
10 files changed, 110 insertions, 91 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index 829ecf07a..c6f5cd481 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,3 +1,16 @@
+2003-07-24 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/_mingw.h (__CRT_INLINE): Define.
+ * include/ctype.h: Replace 'extern inline' with __CRT_INLINE,
+ throughout
+ * include/inttypes.h: Likewise.
+ * include/math.h: Likewise.
+ * include/stdio.h: Likewise.
+ * include/stdlib.h: Likewise.
+ * include/string.h: Likewise.
+ * include/wchar.h: Likewise.
+ * include/wctype.h: Likewise.
+
2003-09-22 Roland Schwingel <rolandschwingel@users.sourceforge.net>
* mingwex/dirent.c (_topendir): Allocate enough memory for
diff --git a/winsup/mingw/include/_mingw.h b/winsup/mingw/include/_mingw.h
index c9dee0450..c88fc1c77 100644
--- a/winsup/mingw/include/_mingw.h
+++ b/winsup/mingw/include/_mingw.h
@@ -100,6 +100,12 @@
# endif
#endif /* __GNUC__ */
+#ifdef __cplusplus
+#define __CRT_INLINE inline
+#else
+#define __CRT_INLINE extern __inline__
+#endif
+
#define __MINGW32_VERSION 3.2
#define __MINGW32_MAJOR_VERSION 3
#define __MINGW32_MINOR_VERSION 2
diff --git a/winsup/mingw/include/ctype.h b/winsup/mingw/include/ctype.h
index 462fc7bc7..375c7c370 100644
--- a/winsup/mingw/include/ctype.h
+++ b/winsup/mingw/include/ctype.h
@@ -156,21 +156,21 @@ extern unsigned short** _imp___ctype;
|| defined (__STRICT_ANSI__ ))
/* use simple lookup if SB locale, else _isctype() */
#define __ISCTYPE(c, mask) (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype(c, mask))
-extern __inline__ int __cdecl isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl isalpha(int c) {return __ISCTYPE(c, _ALPHA);}
-extern __inline__ int __cdecl iscntrl(int c) {return __ISCTYPE(c, _CONTROL);}
-extern __inline__ int __cdecl isdigit(int c) {return __ISCTYPE(c, _DIGIT);}
-extern __inline__ int __cdecl isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl islower(int c) {return __ISCTYPE(c, _LOWER);}
-extern __inline__ int __cdecl isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl ispunct(int c) {return __ISCTYPE(c, _PUNCT);}
-extern __inline__ int __cdecl isspace(int c) {return __ISCTYPE(c, _SPACE);}
-extern __inline__ int __cdecl isupper(int c) {return __ISCTYPE(c, _UPPER);}
-extern __inline__ int __cdecl isxdigit(int c) {return __ISCTYPE(c, _HEX);}
+__CRT_INLINE int __cdecl isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl isalpha(int c) {return __ISCTYPE(c, _ALPHA);}
+__CRT_INLINE int __cdecl iscntrl(int c) {return __ISCTYPE(c, _CONTROL);}
+__CRT_INLINE int __cdecl isdigit(int c) {return __ISCTYPE(c, _DIGIT);}
+__CRT_INLINE int __cdecl isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl islower(int c) {return __ISCTYPE(c, _LOWER);}
+__CRT_INLINE int __cdecl isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl ispunct(int c) {return __ISCTYPE(c, _PUNCT);}
+__CRT_INLINE int __cdecl isspace(int c) {return __ISCTYPE(c, _SPACE);}
+__CRT_INLINE int __cdecl isupper(int c) {return __ISCTYPE(c, _UPPER);}
+__CRT_INLINE int __cdecl isxdigit(int c) {return __ISCTYPE(c, _HEX);}
/* these reproduce behaviour of lib underscored versions */
-extern __inline__ int __cdecl _tolower(int c) {return ( c -'A'+'a');}
-extern __inline__ int __cdecl _toupper(int c) {return ( c -'a'+'A');}
+__CRT_INLINE int __cdecl _tolower(int c) {return ( c -'A'+'a');}
+__CRT_INLINE int __cdecl _toupper(int c) {return ( c -'a'+'A');}
/* TODO? Is it worth inlining ANSI tolower, toupper? Probably only
if we only want C-locale. */
@@ -212,19 +212,19 @@ _CRTIMP int __cdecl isleadbyte (int);
#if ! (defined (__NO_INLINE__) || defined(__NO_CTYPE_INLINES) \
|| defined(__WCTYPE_INLINES_DEFINED))
#define __WCTYPE_INLINES_DEFINED
-extern __inline__ int __cdecl iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
-extern __inline__ int __cdecl iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);}
-extern __inline__ int __cdecl iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
-extern __inline__ int __cdecl iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
-extern __inline__ int __cdecl iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
-extern __inline__ int __cdecl iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
-extern __inline__ int __cdecl iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
-extern __inline__ int __cdecl iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
-extern __inline__ int __cdecl iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
-extern __inline__ int __cdecl isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
+__CRT_INLINE int __cdecl iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
+__CRT_INLINE int __cdecl iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);}
+__CRT_INLINE int __cdecl iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
+__CRT_INLINE int __cdecl iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
+__CRT_INLINE int __cdecl iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
+__CRT_INLINE int __cdecl iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
+__CRT_INLINE int __cdecl iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
+__CRT_INLINE int __cdecl iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
+__CRT_INLINE int __cdecl iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
+__CRT_INLINE int __cdecl isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
#ifndef __STRICT_ANSI__
@@ -234,10 +234,10 @@ int __cdecl __iscsymf (int); /* Valid first character in C symbol */
int __cdecl __iscsym (int); /* Valid character in C symbol (after first) */
#if !(defined (__NO_INLINE__) || defined (__NO_CTYPE_INLINES))
-extern __inline__ int __cdecl __isascii(int c) {return ((c & ~0x7F) == 0);}
-extern __inline__ int __cdecl __toascii(int c) {return (c & 0x7F);}
-extern __inline__ int __cdecl __iscsymf(int c) {return (isalpha(c) || (c == '_'));}
-extern __inline__ int __cdecl __iscsym(int c) {return (isalnum(c) || (c == '_'));}
+__CRT_INLINE int __cdecl __isascii(int c) {return ((c & ~0x7F) == 0);}
+__CRT_INLINE int __cdecl __toascii(int c) {return (c & 0x7F);}
+__CRT_INLINE int __cdecl __iscsymf(int c) {return (isalpha(c) || (c == '_'));}
+__CRT_INLINE int __cdecl __iscsym(int c) {return (isalnum(c) || (c == '_'));}
#endif /* __NO_CTYPE_INLINES */
#ifndef _NO_OLDNAMES
diff --git a/winsup/mingw/include/inttypes.h b/winsup/mingw/include/inttypes.h
index ead95fb9b..24feb7aa5 100644
--- a/winsup/mingw/include/inttypes.h
+++ b/winsup/mingw/include/inttypes.h
@@ -254,7 +254,7 @@ typedef struct {
#endif /* !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) */
-extern __inline__ intmax_t __cdecl imaxabs (intmax_t j)
+__CRT_INLINE intmax_t __cdecl imaxabs (intmax_t j)
{return (j >= 0 ? j : -j);}
imaxdiv_t __cdecl imaxdiv (intmax_t numer, intmax_t denom);
diff --git a/winsup/mingw/include/math.h b/winsup/mingw/include/math.h
index 6d1d8ccdb..03636f133 100644
--- a/winsup/mingw/include/math.h
+++ b/winsup/mingw/include/math.h
@@ -273,7 +273,7 @@ _CRTIMP int __cdecl fpclass (double);
extern int __cdecl __fpclassifyf (float);
extern int __cdecl __fpclassify (double);
-extern __inline__ int __cdecl __fpclassifyl (long double x){
+__CRT_INLINE int __cdecl __fpclassifyl (long double x){
unsigned short sw;
__asm__ ("fxam; fstsw %%ax;" : "=a" (sw): "t" (x));
return sw & (FP_NAN | FP_NORMAL | FP_ZERO );
@@ -293,7 +293,7 @@ extern __inline__ int __cdecl __fpclassifyl (long double x){
/* We don't need to worry about trucation here:
A NaN stays a NaN. */
-extern __inline__ int __cdecl __isnan (double _x)
+__CRT_INLINE int __cdecl __isnan (double _x)
{
unsigned short sw;
__asm__ ("fxam;"
@@ -302,7 +302,7 @@ extern __inline__ int __cdecl __isnan (double _x)
== FP_NAN;
}
-extern __inline__ int __cdecl __isnanf (float _x)
+__CRT_INLINE int __cdecl __isnanf (float _x)
{
unsigned short sw;
__asm__ ("fxam;"
@@ -311,7 +311,7 @@ extern __inline__ int __cdecl __isnanf (float _x)
== FP_NAN;
}
-extern __inline__ int __cdecl __isnanl (long double _x)
+__CRT_INLINE int __cdecl __isnanl (long double _x)
{
unsigned short sw;
__asm__ ("fxam;"
@@ -329,19 +329,19 @@ extern __inline__ int __cdecl __isnanl (long double _x)
#define isnormal(x) (fpclassify(x) == FP_NORMAL)
/* 7.12.3.6 The signbit macro */
-extern __inline__ int __cdecl __signbit (double x) {
+__CRT_INLINE int __cdecl __signbit (double x) {
unsigned short stw;
__asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
return stw & 0x0200;
}
-extern __inline__ int __cdecl __signbitf (float x) {
+__CRT_INLINE int __cdecl __signbitf (float x) {
unsigned short stw;
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
return stw & 0x0200;
}
-extern __inline__ int __cdecl __signbitl (long double x) {
+__CRT_INLINE int __cdecl __signbitl (long double x) {
unsigned short stw;
__asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
return stw & 0x0200;
@@ -374,15 +374,15 @@ extern float __cdecl atan2f (float, float);
extern long double __cdecl atan2l (long double, long double);
/* 7.12.5 Hyperbolic functions: Double in C89 */
-extern __inline__ float __cdecl sinhf (float x)
+__CRT_INLINE float __cdecl sinhf (float x)
{return (float) sinh (x);}
extern long double __cdecl sinhl (long double);
-extern __inline__ float __cdecl coshf (float x)
+__CRT_INLINE float __cdecl coshf (float x)
{return (float) cosh (x);}
extern long double __cdecl coshl (long double);
-extern __inline__ float __cdecl tanhf (float x)
+__CRT_INLINE float __cdecl tanhf (float x)
{return (float) tanh (x);}
extern long double __cdecl tanhl (long double);
@@ -391,7 +391,7 @@ extern long double __cdecl tanhl (long double);
*/
/* 7.12.6.1 Double in C89 */
-extern __inline__ float __cdecl expf (float x)
+__CRT_INLINE float __cdecl expf (float x)
{return (float) exp (x);}
extern long double __cdecl expl (long double);
@@ -403,7 +403,7 @@ extern long double __cdecl exp2l(long double);
/* 7.12.6.3 The expm1 functions: TODO */
/* 7.12.6.4 Double in C89 */
-extern __inline__ float __cdecl frexpf (float x, int* expn)
+__CRT_INLINE float __cdecl frexpf (float x, int* expn)
{return (float) frexp (x, expn);}
extern long double __cdecl frexpl (long double, int*);
@@ -415,7 +415,7 @@ extern int __cdecl ilogbf (float);
extern int __cdecl ilogbl (long double);
/* 7.12.6.6 Double in C89 */
-extern __inline__ float __cdecl ldexpf (float x, int expn)
+__CRT_INLINE float __cdecl ldexpf (float x, int expn)
{return (float) ldexp (x, expn);}
extern long double __cdecl ldexpl (long double, int);
@@ -442,7 +442,7 @@ extern double __cdecl logb (double);
extern float __cdecl logbf (float);
extern long double __cdecl logbl (long double);
-extern __inline__ double __cdecl logb (double x)
+__CRT_INLINE double __cdecl logb (double x)
{
double res;
__asm__ ("fxtract\n\t"
@@ -450,7 +450,7 @@ extern __inline__ double __cdecl logb (double x)
return res;
}
-extern __inline__ float __cdecl logbf (float x)
+__CRT_INLINE float __cdecl logbf (float x)
{
float res;
__asm__ ("fxtract\n\t"
@@ -458,7 +458,7 @@ extern __inline__ float __cdecl logbf (float x)
return res;
}
-extern __inline__ long double __cdecl logbl (long double x)
+__CRT_INLINE long double __cdecl logbl (long double x)
{
long double res;
__asm__ ("fxtract\n\t"
@@ -491,12 +491,12 @@ extern long double __cdecl fabsl (long double x);
/* 7.12.7.3 */
extern double __cdecl hypot (double, double); /* in libmoldname.a */
-extern __inline__ float __cdecl hypotf (float x, float y)
+__CRT_INLINE float __cdecl hypotf (float x, float y)
{ return (float) hypot (x, y);}
extern long double __cdecl hypotl (long double, long double);
/* 7.12.7.4 The pow functions. Double in C89 */
-extern __inline__ float __cdecl powf (float x, float y)
+__CRT_INLINE float __cdecl powf (float x, float y)
{return (float) pow (x, y);}
extern long double __cdecl powl (long double, long double);
@@ -543,21 +543,21 @@ extern long double __cdecl nearbyintl (long double);
/* 7.12.9.4 */
/* round, using fpu control word settings */
-extern __inline__ double __cdecl rint (double x)
+__CRT_INLINE double __cdecl rint (double x)
{
double retval;
__asm__ ("frndint;": "=t" (retval) : "0" (x));
return retval;
}
-extern __inline__ float __cdecl rintf (float x)
+__CRT_INLINE float __cdecl rintf (float x)
{
float retval;
__asm__ ("frndint;" : "=t" (retval) : "0" (x) );
return retval;
}
-extern __inline__ long double __cdecl rintl (long double x)
+__CRT_INLINE long double __cdecl rintl (long double x)
{
long double retval;
__asm__ ("frndint;" : "=t" (retval) : "0" (x) );
@@ -565,7 +565,7 @@ extern __inline__ long double __cdecl rintl (long double x)
}
/* 7.12.9.5 */
-extern __inline__ long __cdecl lrint (double x)
+__CRT_INLINE long __cdecl lrint (double x)
{
long retval;
__asm__ __volatile__ \
@@ -573,7 +573,7 @@ extern __inline__ long __cdecl lrint (double x)
return retval;
}
-extern __inline__ long __cdecl lrintf (float x)
+__CRT_INLINE long __cdecl lrintf (float x)
{
long retval;
__asm__ __volatile__ \
@@ -581,7 +581,7 @@ extern __inline__ long __cdecl lrintf (float x)
return retval;
}
-extern __inline__ long __cdecl lrintl (long double x)
+__CRT_INLINE long __cdecl lrintl (long double x)
{
long retval;
__asm__ __volatile__ \
@@ -589,7 +589,7 @@ extern __inline__ long __cdecl lrintl (long double x)
return retval;
}
-extern __inline__ long long __cdecl llrint (double x)
+__CRT_INLINE long long __cdecl llrint (double x)
{
long long retval;
__asm__ __volatile__ \
@@ -597,7 +597,7 @@ extern __inline__ long long __cdecl llrint (double x)
return retval;
}
-extern __inline__ long long __cdecl llrintf (float x)
+__CRT_INLINE long long __cdecl llrintf (float x)
{
long long retval;
__asm__ __volatile__ \
@@ -605,7 +605,7 @@ extern __inline__ long long __cdecl llrintf (float x)
return retval;
}
-extern __inline__ long long __cdecl llrintl (long double x)
+__CRT_INLINE long long __cdecl llrintl (long double x)
{
long long retval;
__asm__ __volatile__ \
@@ -720,7 +720,7 @@ extern long double __cdecl fmal (long double, long double, long double);
#else
/* helper */
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
__fp_unordered_compare (long double x, long double y){
unsigned short retval;
__asm__ ("fucom %%st(1);"
diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h
index 1bf445052..6ad334ef3 100644
--- a/winsup/mingw/include/stdio.h
+++ b/winsup/mingw/include/stdio.h
@@ -222,7 +222,7 @@ _CRTIMP int __cdecl _vsnprintf (char*, size_t, const char*, __VALIST);
#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
int __cdecl snprintf(char* s, size_t n, const char* format, ...);
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
vsnprintf (char* s, size_t n, const char* format, __VALIST arg)
{ return _vsnprintf ( s, n, format, arg); }
int __cdecl vscanf (const char * __restrict__, __VALIST);
@@ -387,7 +387,7 @@ _CRTIMP FILE* __cdecl _wpopen (const wchar_t*, const wchar_t*);
#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
int __cdecl snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...);
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg)
{ return _vsnwprintf ( s, n, format, arg);}
int __cdecl vwscanf (const wchar_t * __restrict__, __VALIST);
diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h
index b606c6036..23389c2c1 100644
--- a/winsup/mingw/include/stdlib.h
+++ b/winsup/mingw/include/stdlib.h
@@ -329,7 +329,7 @@ _CRTIMP long __cdecl _wtol (const wchar_t *);
_CRTIMP double __cdecl strtod (const char*, char**);
#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
-extern __inline__ float __cdecl strtof (const char *nptr, char **endptr)
+__CRT_INLINE float __cdecl strtof (const char *nptr, char **endptr)
{ return (strtod (nptr, endptr));}
long double __cdecl strtold (const char * __restrict__, char ** __restrict__);
#endif /* __NO_ISOCEXT */
@@ -341,7 +341,7 @@ _CRTIMP unsigned long __cdecl strtoul (const char*, char**, int);
/* also declared in wchar.h */
_CRTIMP double __cdecl wcstod (const wchar_t*, wchar_t**);
#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
-extern __inline__ float __cdecl wcstof( const wchar_t *nptr, wchar_t **endptr)
+__CRT_INLINE float __cdecl wcstof( const wchar_t *nptr, wchar_t **endptr)
{ return (wcstod(nptr, endptr)); }
long double __cdecl wcstold (const wchar_t * __restrict__, wchar_t ** __restrict__);
#endif /* __NO_ISOCEXT */
@@ -479,7 +479,7 @@ _CRTIMP char* __cdecl gcvt (double, int, char*);
/* C99 name for _exit */
void __cdecl _Exit(int) _ATTRIB_NORETURN;
#ifndef __STRICT_ANSI__ /* inline using non-ansi functions */
-extern __inline__ void __cdecl _Exit(int status)
+__CRT_INLINE void __cdecl _Exit(int status)
{ _exit(status); }
#endif
@@ -487,7 +487,7 @@ typedef struct { long long quot, rem; } lldiv_t;
lldiv_t __cdecl lldiv (long long, long long);
-extern __inline__ long long __cdecl llabs(long long _j)
+__CRT_INLINE long long __cdecl llabs(long long _j)
{return (_j >= 0 ? _j : -_j);}
long long __cdecl strtoll (const char* __restrict__, char** __restrict, int);
@@ -504,17 +504,17 @@ wchar_t* __cdecl lltow (long long, wchar_t *, int);
wchar_t* __cdecl ulltow (unsigned long long, wchar_t *, int);
/* inline using non-ansi functions */
-extern __inline__ long long __cdecl atoll (const char * _c)
+__CRT_INLINE long long __cdecl atoll (const char * _c)
{ return _atoi64 (_c); }
-extern __inline__ char* __cdecl lltoa (long long _n, char * _c, int _i)
+__CRT_INLINE char* __cdecl lltoa (long long _n, char * _c, int _i)
{ return _i64toa (_n, _c, _i); }
-extern __inline__ char* __cdecl ulltoa (unsigned long long _n, char * _c, int _i)
+__CRT_INLINE char* __cdecl ulltoa (unsigned long long _n, char * _c, int _i)
{ return _ui64toa (_n, _c, _i); }
-extern __inline__ long long __cdecl wtoll (const wchar_t * _w)
+__CRT_INLINE long long __cdecl wtoll (const wchar_t * _w)
{ return _wtoi64 (_w); }
-extern __inline__ wchar_t* __cdecl lltow (long long _n, wchar_t * _w, int _i)
+__CRT_INLINE wchar_t* __cdecl lltow (long long _n, wchar_t * _w, int _i)
{ return _i64tow (_n, _w, _i); }
-extern __inline__ wchar_t* __cdecl ulltow (unsigned long long _n, wchar_t * _w, int _i)
+__CRT_INLINE wchar_t* __cdecl ulltow (unsigned long long _n, wchar_t * _w, int _i)
{ return _ui64tow (_n, _w, _i); }
#endif /* (__STRICT_ANSI__) */
diff --git a/winsup/mingw/include/string.h b/winsup/mingw/include/string.h
index 9f6b2bfbf..afedab717 100644
--- a/winsup/mingw/include/string.h
+++ b/winsup/mingw/include/string.h
@@ -161,13 +161,13 @@ _CRTIMP int __cdecl memicmp (const void*, const void*, size_t);
_CRTIMP char* __cdecl strdup (const char*);
_CRTIMP int __cdecl strcmpi (const char*, const char*);
_CRTIMP int __cdecl stricmp (const char*, const char*);
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
strcasecmp (const char * __sz1, const char * __sz2)
{return _stricmp (__sz1, __sz2);}
_CRTIMP int __cdecl stricoll (const char*, const char*);
_CRTIMP char* __cdecl strlwr (char*);
_CRTIMP int __cdecl strnicmp (const char*, const char*, size_t);
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
strncasecmp (const char * __sz1, const char * __sz2, size_t __sizeMaxCompare)
{return _strnicmp (__sz1, __sz2, __sizeMaxCompare);}
_CRTIMP char* __cdecl strnset (char*, int, size_t);
@@ -179,7 +179,7 @@ _CRTIMP void __cdecl swab (const char*, char*, size_t);
#endif /* _UWIN */
/* NOTE: There is no _wcscmpi, but this is for compatibility. */
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2)
{return _wcsicmp (__ws1, __ws2);}
_CRTIMP wchar_t* __cdecl wcsdup (wchar_t*);
diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h
index 58e241ab1..1543678c6 100644
--- a/winsup/mingw/include/wchar.h
+++ b/winsup/mingw/include/wchar.h
@@ -119,7 +119,7 @@ _CRTIMP wint_t __cdecl ungetwc (wchar_t, FILE*);
#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
int __cdecl snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...);
-extern __inline__ int __cdecl
+__CRT_INLINE int __cdecl
vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg)
{ return _vsnwprintf ( s, n, format, arg);}
int __cdecl vwscanf (const wchar_t * __restrict__, __VALIST);
@@ -253,7 +253,7 @@ _CRTIMP long __cdecl wcstol (const wchar_t*, wchar_t**, int);
_CRTIMP unsigned long __cdecl wcstoul (const wchar_t*, wchar_t**, int);
_CRTIMP double __cdecl wcstod (const wchar_t*, wchar_t**);
#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
-extern __inline__ float __cdecl wcstof( const wchar_t *nptr, wchar_t **endptr)
+__CRT_INLINE float __cdecl wcstof( const wchar_t *nptr, wchar_t **endptr)
{ return (wcstod(nptr, endptr)); }
long double __cdecl wcstold (const wchar_t * __restrict__, wchar_t ** __restrict__);
#endif /* __NO_ISOCEXT */
@@ -298,8 +298,8 @@ size_t __cdecl wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
int __cdecl wctob(wint_t);
#ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
-extern __inline__ int __cdecl fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
-extern __inline__ int __cdecl mbsinit(const mbstate_t* ps) {return 1;}
+__CRT_INLINE int __cdecl fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
+__CRT_INLINE int __cdecl mbsinit(const mbstate_t* ps) {return 1;}
wchar_t* __cdecl wmemset(wchar_t* s, wchar_t c, size_t n);
wchar_t* __cdecl wmemchr(const wchar_t* s, wchar_t c, size_t n);
int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
diff --git a/winsup/mingw/include/wctype.h b/winsup/mingw/include/wctype.h
index 2f7a62e1c..7b2d20a6d 100644
--- a/winsup/mingw/include/wctype.h
+++ b/winsup/mingw/include/wctype.h
@@ -111,19 +111,19 @@ extern unsigned short** _imp___ctype;
#if !(defined (__NO_INLINE__) || defined(__NO_CTYPE_INLINES) \
|| defined(__WCTYPE_INLINES_DEFINED))
#define __WCTYPE_INLINES_DEFINED
-extern __inline__ int __cdecl iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
-extern __inline__ int __cdecl iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);}
-extern __inline__ int __cdecl iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
-extern __inline__ int __cdecl iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
-extern __inline__ int __cdecl iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
-extern __inline__ int __cdecl iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-extern __inline__ int __cdecl iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
-extern __inline__ int __cdecl iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
-extern __inline__ int __cdecl iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
-extern __inline__ int __cdecl iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
-extern __inline__ int __cdecl isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
+__CRT_INLINE int __cdecl iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
+__CRT_INLINE int __cdecl iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);}
+__CRT_INLINE int __cdecl iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
+__CRT_INLINE int __cdecl iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
+__CRT_INLINE int __cdecl iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
+__CRT_INLINE int __cdecl iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
+__CRT_INLINE int __cdecl iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
+__CRT_INLINE int __cdecl iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
+__CRT_INLINE int __cdecl iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
+__CRT_INLINE int __cdecl iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
+__CRT_INLINE int __cdecl isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */