Re: [Mingw-w64-public] [PATCH] rand_r location

2014-11-10 Thread Martell Malone
Hi Kai,

I don't think this was applied to trunk.
On the list the messages from this look deleted ?

I get a message saying
There are no messages in this thread.
on the public archive

Regards
Martell


On Fri, Nov 7, 2014 at 8:16 AM, Kai Tietz ktiet...@googlemail.com wrote:

 Looks good to me.  Please apply to trunk.

 Regards,
 Kai


 --
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

--
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Add secapi wrapper for wmemmove_s

2014-11-10 Thread Martell Malone
I noticed that this was missing from secapi

Comments and suggestions are welcome

From e56be479e2cb153e7cd8487bad1600ca6ec4e61b Mon Sep 17 00:00:00 2001
From: martell martellmal...@gmail.com
Date: Mon, 10 Nov 2014 23:52:58 +
Subject: [PATCH] Add secapi wrapper for wmemmove_s

---
 mingw-w64-crt/Makefile.am |  3 +-
 mingw-w64-crt/secapi/wmemmove_s.c | 60
+++
 2 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 mingw-w64-crt/secapi/wmemmove_s.c

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 7ce2bd2..1077cd3 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -191,7 +191,8 @@ src_msvcrt=\
   secapi/sprintf_s.c \
   secapi/strerror_s.c \
   secapi/vsprintf_s.c \
-  secapi/wmemcpy_s.c
+  secapi/wmemcpy_s.c \
+  secapi/wmemmove_s.c

 src_msvcrt32=\
   $(src_msvcrt) \
diff --git a/mingw-w64-crt/secapi/wmemmove_s.c
b/mingw-w64-crt/secapi/wmemmove_s.c
new file mode 100644
index 000..c59fee1
--- /dev/null
+++ b/mingw-w64-crt/secapi/wmemmove_s.c
@@ -0,0 +1,60 @@
+#include windows.h
+#include malloc.h
+#include errno.h
+#include msvcrt.h
+
+errno_t __cdecl wmemmove_s (wchar_t *, size_t, const wchar_t *, size_t);
+static errno_t __cdecl _int_wmemmove_s (wchar_t *, size_t, const wchar_t
*, size_t);
+static errno_t __cdecl _stub (wchar_t *, size_t, const wchar_t *, size_t);
+
+errno_t __cdecl (*__MINGW_IMP_SYMBOL(wmemmove_s))(wchar_t *, size_t, const
wchar_t *, size_t) =
+ _stub;
+
+static errno_t __cdecl
+_stub (wchar_t *d, size_t dn, const wchar_t *s, size_t n)
+{
+  errno_t __cdecl (*f)(wchar_t *, size_t, const wchar_t *, size_t) =
__MINGW_IMP_SYMBOL(wmemmove_s);
+
+  if (f == _stub)
+{
+ f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t))
+GetProcAddress (__mingw_get_msvcrt_handle (), wmemmove_s);
+ if (!f)
+  f = _int_wmemmove_s;
+ __MINGW_IMP_SYMBOL(wmemmove_s) = f;
+}
+  return (*f)(d, dn, s, n);
+}
+
+errno_t __cdecl
+wmemmove_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n)
+{
+  return _stub (d, dn, s, n);
+}
+
+static errno_t __cdecl
+_int_wmemmove_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n)
+{
+  if (!n)
+return 0;
+
+  if (!d || !s)
+{
+  if (d)
+memset (d, 0, dn * sizeof (wchar_t));
+  errno = EINVAL;
+  return EINVAL;
+}
+
+  if (dn  n)
+{
+  memset (d, 0, dn * sizeof (wchar_t));
+
+  errno = ERANGE;
+  return ERANGE;
+}
+
+  memmove (d, s, n * sizeof (wchar_t));
+
+  return 0;
+}
-- 
2.1.3
--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] rand_r location

2014-11-10 Thread Dongsheng Song
OK, pushed for you.

On Tue, Nov 11, 2014 at 1:01 AM, Martell Malone martellmal...@gmail.com wrote:
 Hi Kai,

 I don't think this was applied to trunk.
 On the list the messages from this look deleted ?

 I get a message saying
 There are no messages in this thread.
 on the public archive

 Regards
 Martell


 On Fri, Nov 7, 2014 at 8:16 AM, Kai Tietz ktiet...@googlemail.com wrote:

 Looks good to me.  Please apply to trunk.

 Regards,
 Kai


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] clang and mingw-w64

2014-11-10 Thread David Wohlferd

Can someone who knows more about clang than I do help me out here?

snow_xmas posted a problem report to the SF forum regarding using clang with 
mingw-W64.  After a brief investigation, it became clear that the problem was 
that clang doesn't support one of the features of inline asm that gcc does.  
The hope was that the llvm people would choose to fix this, however it doesn't 
appear that's going to happen any time soon.

The checkins that introduced this problem were done over a year ago and since 
then, it has not been possible to build mingw-w64 with clang.  Because kai 
wants to continue to support clang, I have updated the code.

However, I am no clang expert, so I don't feel like I have tested this 
sufficiently.  And unfortunately, snow_xmas is no longer responding.


The code is at http://www.LimeGreenSocks.com/intrin-impl.h (full file, not a 
patch). I realize that not everyone is an inline-asm expert, but in this case 
you really don't need to be.  Building mingw-w64 with clang would be a good 
test, but I also have some test code for the various functions in intrin-impl.h 
if you want it.

Without a clang expert to verify, I'm not going to be comfortable checking this 
in.

dw

--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] Add secapi wrapper for wmemmove_s

2014-11-10 Thread Martell Malone
Here is an updated patch with changes for makefile.in so no need to run
autoreconf

On Mon, Nov 10, 2014 at 11:58 PM, Martell Malone martellmal...@gmail.com
wrote:

 I noticed that this was missing from secapi

 Comments and suggestions are welcome

 From e56be479e2cb153e7cd8487bad1600ca6ec4e61b Mon Sep 17 00:00:00 2001
 From: martell martellmal...@gmail.com
 Date: Mon, 10 Nov 2014 23:52:58 +
 Subject: [PATCH] Add secapi wrapper for wmemmove_s

 ---
  mingw-w64-crt/Makefile.am |  3 +-
  mingw-w64-crt/secapi/wmemmove_s.c | 60
 +++
  2 files changed, 62 insertions(+), 1 deletion(-)
  create mode 100644 mingw-w64-crt/secapi/wmemmove_s.c

 diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
 index 7ce2bd2..1077cd3 100644
 --- a/mingw-w64-crt/Makefile.am
 +++ b/mingw-w64-crt/Makefile.am
 @@ -191,7 +191,8 @@ src_msvcrt=\
secapi/sprintf_s.c \
secapi/strerror_s.c \
secapi/vsprintf_s.c \
 -  secapi/wmemcpy_s.c
 +  secapi/wmemcpy_s.c \
 +  secapi/wmemmove_s.c

  src_msvcrt32=\
$(src_msvcrt) \
 diff --git a/mingw-w64-crt/secapi/wmemmove_s.c
 b/mingw-w64-crt/secapi/wmemmove_s.c
 new file mode 100644
 index 000..c59fee1
 --- /dev/null
 +++ b/mingw-w64-crt/secapi/wmemmove_s.c
 @@ -0,0 +1,60 @@
 +#include windows.h
 +#include malloc.h
 +#include errno.h
 +#include msvcrt.h
 +
 +errno_t __cdecl wmemmove_s (wchar_t *, size_t, const wchar_t *, size_t);
 +static errno_t __cdecl _int_wmemmove_s (wchar_t *, size_t, const wchar_t
 *, size_t);
 +static errno_t __cdecl _stub (wchar_t *, size_t, const wchar_t *, size_t);
 +
 +errno_t __cdecl (*__MINGW_IMP_SYMBOL(wmemmove_s))(wchar_t *, size_t,
 const wchar_t *, size_t) =
 + _stub;
 +
 +static errno_t __cdecl
 +_stub (wchar_t *d, size_t dn, const wchar_t *s, size_t n)
 +{
 +  errno_t __cdecl (*f)(wchar_t *, size_t, const wchar_t *, size_t) =
 __MINGW_IMP_SYMBOL(wmemmove_s);
 +
 +  if (f == _stub)
 +{
 + f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t))
 +GetProcAddress (__mingw_get_msvcrt_handle (), wmemmove_s);
 + if (!f)
 +  f = _int_wmemmove_s;
 + __MINGW_IMP_SYMBOL(wmemmove_s) = f;
 +}
 +  return (*f)(d, dn, s, n);
 +}
 +
 +errno_t __cdecl
 +wmemmove_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n)
 +{
 +  return _stub (d, dn, s, n);
 +}
 +
 +static errno_t __cdecl
 +_int_wmemmove_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n)
 +{
 +  if (!n)
 +return 0;
 +
 +  if (!d || !s)
 +{
 +  if (d)
 +memset (d, 0, dn * sizeof (wchar_t));
 +  errno = EINVAL;
 +  return EINVAL;
 +}
 +
 +  if (dn  n)
 +{
 +  memset (d, 0, dn * sizeof (wchar_t));
 +
 +  errno = ERANGE;
 +  return ERANGE;
 +}
 +
 +  memmove (d, s, n * sizeof (wchar_t));
 +
 +  return 0;
 +}
 --
 2.1.3




0001-Add-secapi-wrapper-for-wmemmove_s.patch
Description: Binary data
--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 1/3] Move _putenv and _wputenv out of _POSIX_ guard.

2014-11-10 Thread dongsheng . song
From: 宋冬生 songdongsh...@live.cn

See http://msdn.microsoft.com/en-us/library/83zh4e6k.aspx
for more details.
---
 mingw-w64-headers/crt/stdlib.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
index 839cace..7743452 100644
--- a/mingw-w64-headers/crt/stdlib.h
+++ b/mingw-w64-headers/crt/stdlib.h
@@ -520,6 +520,9 @@ float __cdecl __MINGW_NOTHROW strtof(const char * 
__restrict__ _Str,char ** __re
   __MINGW_EXTENSION _CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const 
wchar_t *_Str ,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
 #endif
 
+  _CRTIMP int __cdecl _putenv(const char *_EnvString);
+  _CRTIMP int __cdecl _wputenv(const wchar_t *_EnvString);
+
 #ifndef _POSIX_
 #define _CVTBUFSIZE (309+40)
   _CRTIMP char *__cdecl _fullpath(char *_FullPath,const char *_Path,size_t 
_SizeInBytes);
@@ -553,7 +556,6 @@ float __cdecl __MINGW_NOTHROW strtof(const char * 
__restrict__ _Str,char ** __re
 #define _CRT_PERROR_DEFINED
   void __cdecl perror(const char *_ErrMsg);
 #endif
-  _CRTIMP int __cdecl _putenv(const char *_EnvString);
 #pragma push_macro (_rotr64)
 #pragma push_macro (_rotl64)
 #undef _rotl64
@@ -583,7 +585,6 @@ float __cdecl __MINGW_NOTHROW strtof(const char * 
__restrict__ _Str,char ** __re
 #define _CRT_WPERROR_DEFINED
   _CRTIMP void __cdecl _wperror(const wchar_t *_ErrMsg);
 #endif
-  _CRTIMP int __cdecl _wputenv(const wchar_t *_EnvString);
   _CRTIMP void __cdecl _wsearchenv(const wchar_t *_Filename,const wchar_t 
*_EnvVar,wchar_t *_ResultPath) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CRTIMP void __cdecl _wsplitpath(const wchar_t *_FullPath,wchar_t 
*_Drive,wchar_t *_Dir,wchar_t *_Filename,wchar_t *_Ext) 
__MINGW_ATTRIB_DEPRECATED_SEC_WARN;
 #endif
-- 
2.1.2


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 2/3] Move _wspawn functions from process.h to stdio.h and wchar.h.

2014-11-10 Thread dongsheng . song
From: 宋冬生 songdongsh...@live.cn

See http://msdn.microsoft.com/en-us/library/20y988d2.aspx
for more details.
---
 mingw-w64-headers/crt/process.h | 11 ---
 mingw-w64-headers/crt/stdio.h   | 12 
 mingw-w64-headers/crt/wchar.h   | 12 
 3 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/mingw-w64-headers/crt/process.h b/mingw-w64-headers/crt/process.h
index 901a886..9b36daa 100644
--- a/mingw-w64-headers/crt/process.h
+++ b/mingw-w64-headers/crt/process.h
@@ -78,8 +78,8 @@ extern C {
   int __cdecl system(const char *_Command);
 #endif
 
-#ifndef _WPROCESS_DEFINED
-#define _WPROCESS_DEFINED
+#ifndef _WEXEC_DEFINED
+#define _WEXEC_DEFINED
   _CRTIMP intptr_t __cdecl _wexecl(const wchar_t *_Filename,const wchar_t 
*_ArgList,...);
   _CRTIMP intptr_t __cdecl _wexecle(const wchar_t *_Filename,const wchar_t 
*_ArgList,...);
   _CRTIMP intptr_t __cdecl _wexeclp(const wchar_t *_Filename,const wchar_t 
*_ArgList,...);
@@ -88,6 +88,10 @@ extern C {
   _CRTIMP intptr_t __cdecl _wexecve(const wchar_t *_Filename,const wchar_t 
*const *_ArgList,const wchar_t *const *_Env);
   _CRTIMP intptr_t __cdecl _wexecvp(const wchar_t *_Filename,const wchar_t 
*const *_ArgList);
   _CRTIMP intptr_t __cdecl _wexecvpe(const wchar_t *_Filename,const wchar_t 
*const *_ArgList,const wchar_t *const *_Env);
+#endif
+
+#ifndef _WSPAWN_DEFINED
+#define _WSPAWN_DEFINED
   _CRTIMP intptr_t __cdecl _wspawnl(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
   _CRTIMP intptr_t __cdecl _wspawnle(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
   _CRTIMP intptr_t __cdecl _wspawnlp(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
@@ -96,11 +100,12 @@ extern C {
   _CRTIMP intptr_t __cdecl _wspawnve(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList,const wchar_t *const *_Env);
   _CRTIMP intptr_t __cdecl _wspawnvp(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList);
   _CRTIMP intptr_t __cdecl _wspawnvpe(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList,const wchar_t *const *_Env);
+#endif
+
 #ifndef _CRT_WSYSTEM_DEFINED
 #define _CRT_WSYSTEM_DEFINED
   _CRTIMP int __cdecl _wsystem(const wchar_t *_Command);
 #endif
-#endif
 
   void __cdecl __security_init_cookie(void);
 #if (defined(_X86_)  !defined(__x86_64))
diff --git a/mingw-w64-headers/crt/stdio.h b/mingw-w64-headers/crt/stdio.h
index 32bcca1..825281f 100644
--- a/mingw-w64-headers/crt/stdio.h
+++ b/mingw-w64-headers/crt/stdio.h
@@ -950,6 +950,18 @@ void __cdecl __mingw_str_free(void *ptr);
 
 #endif /* __MINGW_MBWC_CONVERT_DEFINED */
 
+#ifndef _WSPAWN_DEFINED
+#define _WSPAWN_DEFINED
+  _CRTIMP intptr_t __cdecl _wspawnl(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
+  _CRTIMP intptr_t __cdecl _wspawnle(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
+  _CRTIMP intptr_t __cdecl _wspawnlp(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
+  _CRTIMP intptr_t __cdecl _wspawnlpe(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
+  _CRTIMP intptr_t __cdecl _wspawnv(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList);
+  _CRTIMP intptr_t __cdecl _wspawnve(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList,const wchar_t *const *_Env);
+  _CRTIMP intptr_t __cdecl _wspawnvp(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList);
+  _CRTIMP intptr_t __cdecl _wspawnvpe(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList,const wchar_t *const *_Env);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/mingw-w64-headers/crt/wchar.h b/mingw-w64-headers/crt/wchar.h
index 3fbd17f..88cb24c 100644
--- a/mingw-w64-headers/crt/wchar.h
+++ b/mingw-w64-headers/crt/wchar.h
@@ -300,9 +300,8 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[]; /* A pointer to 
an array of FILE */
   _CRTIMP wchar_t *__cdecl _wsetlocale(int _Category,const wchar_t *_Locale);
 #endif
 
-#ifndef _WPROCESS_DEFINED
-#define _WPROCESS_DEFINED
-
+#ifndef _WEXEC_DEFINED
+#define _WEXEC_DEFINED
   _CRTIMP intptr_t __cdecl _wexecl(const wchar_t *_Filename,const wchar_t 
*_ArgList,...);
   _CRTIMP intptr_t __cdecl _wexecle(const wchar_t *_Filename,const wchar_t 
*_ArgList,...);
   _CRTIMP intptr_t __cdecl _wexeclp(const wchar_t *_Filename,const wchar_t 
*_ArgList,...);
@@ -311,6 +310,10 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];/* A 
pointer to an array of FILE */
   _CRTIMP intptr_t __cdecl _wexecve(const wchar_t *_Filename,const wchar_t 
*const *_ArgList,const wchar_t *const *_Env);
   _CRTIMP intptr_t __cdecl _wexecvp(const wchar_t *_Filename,const wchar_t 
*const *_ArgList);
   _CRTIMP intptr_t __cdecl _wexecvpe(const wchar_t *_Filename,const wchar_t 
*const *_ArgList,const wchar_t *const *_Env);
+#endif
+
+#ifndef _WSPAWN_DEFINED
+#define _WSPAWN_DEFINED
   _CRTIMP intptr_t __cdecl _wspawnl(int _Mode,const wchar_t *_Filename,const 
wchar_t *_ArgList,...);
   

[Mingw-w64-public] [PATCH 3/3] Functions _spawnv, _spawnve, _spawnvp and _spawnvpe should be decared in both stdio.h and process.h.

2014-11-10 Thread dongsheng . song
From: 宋冬生 songdongsh...@live.cn

See http://msdn.microsoft.com/en-us/library/20y988d2.aspx
for more details.
---
 mingw-w64-headers/crt/process.h |  6 ++
 mingw-w64-headers/crt/stdio.h   | 20 
 2 files changed, 26 insertions(+)

diff --git a/mingw-w64-headers/crt/process.h b/mingw-w64-headers/crt/process.h
index 9b36daa..8034d41 100644
--- a/mingw-w64-headers/crt/process.h
+++ b/mingw-w64-headers/crt/process.h
@@ -16,6 +16,7 @@
 extern C {
 #endif
 
+#ifndef _P_WAIT
 #define _P_WAIT 0
 #define _P_NOWAIT 1
 #define _OLD_P_OVERLAY 2
@@ -25,6 +26,7 @@ extern C {
 
 #define _WAIT_CHILD 0
 #define _WAIT_GRANDCHILD 1
+#endif
 
   _CRTIMP uintptr_t __cdecl _beginthread(void (__cdecl *_StartAddress) (void 
*),unsigned _StackSize,void *_ArgList);
   _CRTIMP void __cdecl _endthread(void) __MINGW_ATTRIB_NORETURN;
@@ -68,10 +70,14 @@ extern C {
   _CRTIMP intptr_t __cdecl _spawnle(int _Mode,const char *_Filename,const char 
*_ArgList,...);
   _CRTIMP intptr_t __cdecl _spawnlp(int _Mode,const char *_Filename,const char 
*_ArgList,...);
   _CRTIMP intptr_t __cdecl _spawnlpe(int _Mode,const char *_Filename,const 
char *_ArgList,...);
+
+#ifndef _SPAWNV_DEFINED
+#define _SPAWNV_DEFINED
   _CRTIMP intptr_t __cdecl _spawnv(int _Mode,const char *_Filename,const char 
*const *_ArgList);
   _CRTIMP intptr_t __cdecl _spawnve(int _Mode,const char *_Filename,const char 
*const *_ArgList,const char *const *_Env);
   _CRTIMP intptr_t __cdecl _spawnvp(int _Mode,const char *_Filename,const char 
*const *_ArgList);
   _CRTIMP intptr_t __cdecl _spawnvpe(int _Mode,const char *_Filename,const 
char *const *_ArgList,const char *const *_Env);
+#endif
 
 #ifndef _CRT_SYSTEM_DEFINED
 #define _CRT_SYSTEM_DEFINED
diff --git a/mingw-w64-headers/crt/stdio.h b/mingw-w64-headers/crt/stdio.h
index 825281f..3b49ddd 100644
--- a/mingw-w64-headers/crt/stdio.h
+++ b/mingw-w64-headers/crt/stdio.h
@@ -962,6 +962,26 @@ void __cdecl __mingw_str_free(void *ptr);
   _CRTIMP intptr_t __cdecl _wspawnvpe(int _Mode,const wchar_t *_Filename,const 
wchar_t *const *_ArgList,const wchar_t *const *_Env);
 #endif
 
+#ifndef _P_WAIT
+#define _P_WAIT 0
+#define _P_NOWAIT 1
+#define _OLD_P_OVERLAY 2
+#define _P_NOWAITO 3
+#define _P_DETACH 4
+#define _P_OVERLAY 2
+
+#define _WAIT_CHILD 0
+#define _WAIT_GRANDCHILD 1
+#endif
+
+#ifndef _SPAWNV_DEFINED
+#define _SPAWNV_DEFINED
+  _CRTIMP intptr_t __cdecl _spawnv(int _Mode,const char *_Filename,const char 
*const *_ArgList);
+  _CRTIMP intptr_t __cdecl _spawnve(int _Mode,const char *_Filename,const char 
*const *_ArgList,const char *const *_Env);
+  _CRTIMP intptr_t __cdecl _spawnvp(int _Mode,const char *_Filename,const char 
*const *_ArgList);
+  _CRTIMP intptr_t __cdecl _spawnvpe(int _Mode,const char *_Filename,const 
char *const *_ArgList,const char *const *_Env);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
-- 
2.1.2


--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public