* secapi/_chsize_s.c: New file.
        * secapi/_mktemp_s.c: New file.
        * secapi/_wmktemp_s.c: New file.


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@5313 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/ChangeLog b/mingw-w64-crt/ChangeLog
index 42fa206..cdc4617 100644
--- a/mingw-w64-crt/ChangeLog
+++ b/mingw-w64-crt/ChangeLog
@@ -1,5 +1,8 @@
 2012-08-01  Kai Tietz  <ktietz@redhat.com>
 
+	* secapi/_chsize_s.c: New file.
+	* secapi/_mktemp_s.c: New file.
+	* secapi/_wmktemp_s.c: New file.
 	* secapi/_wassert_s.c: New file.
 	* secapi/_assert_s.c: New file.
 	* secapi/_cwprintf_s.c: New file.
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index ad096f6..a1c9140 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -241,7 +241,7 @@
   secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \
   secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \
   secapi/_access_s.c secapi/_waccess_s.c \
-  secapi/_chsize_s.c
+  secapi/_chsize_s.c secapi/_mktemp_s.c secapi/_wmktemp_s.c
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index 9b4a639..9a5b105 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -483,10 +483,10 @@
 	secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \
 	secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \
 	secapi/_access_s.c secapi/_waccess_s.c secapi/_chsize_s.c \
-	intrincs/membarrier.c intrincs/readfsbyte.c \
-	intrincs/readfsword.c intrincs/readfsdword.c \
-	intrincs/writefsbyte.c intrincs/writefsword.c \
-	intrincs/writefsdword.c
+	secapi/_mktemp_s.c secapi/_wmktemp_s.c intrincs/membarrier.c \
+	intrincs/readfsbyte.c intrincs/readfsword.c \
+	intrincs/readfsdword.c intrincs/writefsbyte.c \
+	intrincs/writefsword.c intrincs/writefsdword.c
 am__objects_13 = crt/lib32_libmingwex_a-dllentry.$(OBJEXT) \
 	crt/lib32_libmingwex_a-dllmain.$(OBJEXT) \
 	complex/lib32_libmingwex_a-cabs.$(OBJEXT) \
@@ -990,7 +990,9 @@
 	secapi/lib32_libmingwex_a-_vcwprintf_s_l.$(OBJEXT) \
 	secapi/lib32_libmingwex_a-_access_s.$(OBJEXT) \
 	secapi/lib32_libmingwex_a-_waccess_s.$(OBJEXT) \
-	secapi/lib32_libmingwex_a-_chsize_s.$(OBJEXT)
+	secapi/lib32_libmingwex_a-_chsize_s.$(OBJEXT) \
+	secapi/lib32_libmingwex_a-_mktemp_s.$(OBJEXT) \
+	secapi/lib32_libmingwex_a-_wmktemp_s.$(OBJEXT)
 am__objects_14 = intrincs/lib32_libmingwex_a-membarrier.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-readfsbyte.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-readfsword.$(OBJEXT) \
@@ -1513,17 +1515,17 @@
 	secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \
 	secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \
 	secapi/_access_s.c secapi/_waccess_s.c secapi/_chsize_s.c \
-	intrincs/bittest64.c intrincs/bittestc64.c \
-	intrincs/bittestr64.c intrincs/bittestri64.c \
-	intrincs/bittests64.c intrincs/bittestsi64.c \
-	intrincs/bitscanfwd64.c intrincs/bitscanrev64.c \
-	intrincs/ilockadd64.c intrincs/readgsbyte.c \
-	intrincs/readgsword.c intrincs/readgsdword.c \
-	intrincs/readgsqword.c intrincs/writegsbyte.c \
-	intrincs/writegsword.c intrincs/writegsdword.c \
-	intrincs/writegsqword.c intrincs/mul128ex.c \
-	intrincs/umul128ex.c intrincs/_mul128.c intrincs/_umul128.c \
-	intrincs/__movsq.c intrincs/__stosq.c \
+	secapi/_mktemp_s.c secapi/_wmktemp_s.c intrincs/bittest64.c \
+	intrincs/bittestc64.c intrincs/bittestr64.c \
+	intrincs/bittestri64.c intrincs/bittests64.c \
+	intrincs/bittestsi64.c intrincs/bitscanfwd64.c \
+	intrincs/bitscanrev64.c intrincs/ilockadd64.c \
+	intrincs/readgsbyte.c intrincs/readgsword.c \
+	intrincs/readgsdword.c intrincs/readgsqword.c \
+	intrincs/writegsbyte.c intrincs/writegsword.c \
+	intrincs/writegsdword.c intrincs/writegsqword.c \
+	intrincs/mul128ex.c intrincs/umul128ex.c intrincs/_mul128.c \
+	intrincs/_umul128.c intrincs/__movsq.c intrincs/__stosq.c \
 	intrincs/__shiftright128.c intrincs/__shiftleft128.c
 am__objects_38 = crt/lib64_libmingwex_a-dllentry.$(OBJEXT) \
 	crt/lib64_libmingwex_a-dllmain.$(OBJEXT) \
@@ -2028,7 +2030,9 @@
 	secapi/lib64_libmingwex_a-_vcwprintf_s_l.$(OBJEXT) \
 	secapi/lib64_libmingwex_a-_access_s.$(OBJEXT) \
 	secapi/lib64_libmingwex_a-_waccess_s.$(OBJEXT) \
-	secapi/lib64_libmingwex_a-_chsize_s.$(OBJEXT)
+	secapi/lib64_libmingwex_a-_chsize_s.$(OBJEXT) \
+	secapi/lib64_libmingwex_a-_mktemp_s.$(OBJEXT) \
+	secapi/lib64_libmingwex_a-_wmktemp_s.$(OBJEXT)
 am__objects_39 = intrincs/lib64_libmingwex_a-bittest64.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-bittestc64.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-bittestr64.$(OBJEXT) \
@@ -3490,7 +3494,7 @@
   secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \
   secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \
   secapi/_access_s.c secapi/_waccess_s.c \
-  secapi/_chsize_s.c
+  secapi/_chsize_s.c secapi/_mktemp_s.c secapi/_wmktemp_s.c
 
 
 # these only go into the 64 bit version:
@@ -5774,6 +5778,10 @@
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 secapi/lib32_libmingwex_a-_chsize_s.$(OBJEXT): secapi/$(am__dirstamp) \
 	secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib32_libmingwex_a-_mktemp_s.$(OBJEXT): secapi/$(am__dirstamp) \
+	secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib32_libmingwex_a-_wmktemp_s.$(OBJEXT):  \
+	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib32_libmingwex_a-membarrier.$(OBJEXT):  \
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib32_libmingwex_a-readfsbyte.$(OBJEXT):  \
@@ -7245,6 +7253,10 @@
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 secapi/lib64_libmingwex_a-_chsize_s.$(OBJEXT): secapi/$(am__dirstamp) \
 	secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib64_libmingwex_a-_mktemp_s.$(OBJEXT): secapi/$(am__dirstamp) \
+	secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib64_libmingwex_a-_wmktemp_s.$(OBJEXT):  \
+	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib64_libmingwex_a-bittest64.$(OBJEXT):  \
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib64_libmingwex_a-bittestc64.$(OBJEXT):  \
@@ -9557,11 +9569,13 @@
 	-rm -f secapi/lib32_libmingwex_a-_cprintf_s_l.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_cwprintf_s.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_cwprintf_s_l.$(OBJEXT)
+	-rm -f secapi/lib32_libmingwex_a-_mktemp_s.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_vcprintf_s.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_vcprintf_s_l.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_vcwprintf_s.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_vcwprintf_s_l.$(OBJEXT)
 	-rm -f secapi/lib32_libmingwex_a-_waccess_s.$(OBJEXT)
+	-rm -f secapi/lib32_libmingwex_a-_wmktemp_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_access_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_cgets_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_cgetws_s.$(OBJEXT)
@@ -9570,11 +9584,13 @@
 	-rm -f secapi/lib64_libmingwex_a-_cprintf_s_l.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_cwprintf_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_cwprintf_s_l.$(OBJEXT)
+	-rm -f secapi/lib64_libmingwex_a-_mktemp_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_vcprintf_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_vcprintf_s_l.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_vcwprintf_s.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_vcwprintf_s_l.$(OBJEXT)
 	-rm -f secapi/lib64_libmingwex_a-_waccess_s.$(OBJEXT)
+	-rm -f secapi/lib64_libmingwex_a-_wmktemp_s.$(OBJEXT)
 	-rm -f stdio/lib32_libmingwex_a-_Exit.$(OBJEXT)
 	-rm -f stdio/lib32_libmingwex_a-_findfirst64i32.$(OBJEXT)
 	-rm -f stdio/lib32_libmingwex_a-_findnext64i32.$(OBJEXT)
@@ -11099,11 +11115,13 @@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_cprintf_s_l.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_cwprintf_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_cwprintf_s_l.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_vcprintf_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_vcprintf_s_l.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_vcwprintf_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_vcwprintf_s_l.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_waccess_s.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_access_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_cgets_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_cgetws_s.Po@am__quote@
@@ -11112,11 +11130,13 @@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_cprintf_s_l.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_cwprintf_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_cwprintf_s_l.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_vcprintf_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_vcprintf_s_l.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_vcwprintf_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_vcwprintf_s_l.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_waccess_s.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmingwex_a-_Exit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmingwex_a-_findfirst64i32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmingwex_a-_findnext64i32.Po@am__quote@
@@ -20018,6 +20038,34 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib32_libmingwex_a-_chsize_s.obj `if test -f 'secapi/_chsize_s.c'; then $(CYGPATH_W) 'secapi/_chsize_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_chsize_s.c'; fi`
 
+secapi/lib32_libmingwex_a-_mktemp_s.o: secapi/_mktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-_mktemp_s.o -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Tpo -c -o secapi/lib32_libmingwex_a-_mktemp_s.o `test -f 'secapi/_mktemp_s.c' || echo '$(srcdir)/'`secapi/_mktemp_s.c
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_mktemp_s.c' object='secapi/lib32_libmingwex_a-_mktemp_s.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib32_libmingwex_a-_mktemp_s.o `test -f 'secapi/_mktemp_s.c' || echo '$(srcdir)/'`secapi/_mktemp_s.c
+
+secapi/lib32_libmingwex_a-_mktemp_s.obj: secapi/_mktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-_mktemp_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Tpo -c -o secapi/lib32_libmingwex_a-_mktemp_s.obj `if test -f 'secapi/_mktemp_s.c'; then $(CYGPATH_W) 'secapi/_mktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_mktemp_s.c'; fi`
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-_mktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_mktemp_s.c' object='secapi/lib32_libmingwex_a-_mktemp_s.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib32_libmingwex_a-_mktemp_s.obj `if test -f 'secapi/_mktemp_s.c'; then $(CYGPATH_W) 'secapi/_mktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_mktemp_s.c'; fi`
+
+secapi/lib32_libmingwex_a-_wmktemp_s.o: secapi/_wmktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-_wmktemp_s.o -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Tpo -c -o secapi/lib32_libmingwex_a-_wmktemp_s.o `test -f 'secapi/_wmktemp_s.c' || echo '$(srcdir)/'`secapi/_wmktemp_s.c
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_wmktemp_s.c' object='secapi/lib32_libmingwex_a-_wmktemp_s.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib32_libmingwex_a-_wmktemp_s.o `test -f 'secapi/_wmktemp_s.c' || echo '$(srcdir)/'`secapi/_wmktemp_s.c
+
+secapi/lib32_libmingwex_a-_wmktemp_s.obj: secapi/_wmktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-_wmktemp_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Tpo -c -o secapi/lib32_libmingwex_a-_wmktemp_s.obj `if test -f 'secapi/_wmktemp_s.c'; then $(CYGPATH_W) 'secapi/_wmktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_wmktemp_s.c'; fi`
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-_wmktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_wmktemp_s.c' object='secapi/lib32_libmingwex_a-_wmktemp_s.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib32_libmingwex_a-_wmktemp_s.obj `if test -f 'secapi/_wmktemp_s.c'; then $(CYGPATH_W) 'secapi/_wmktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_wmktemp_s.c'; fi`
+
 intrincs/lib32_libmingwex_a-membarrier.o: intrincs/membarrier.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib32_libmingwex_a-membarrier.o -MD -MP -MF intrincs/$(DEPDIR)/lib32_libmingwex_a-membarrier.Tpo -c -o intrincs/lib32_libmingwex_a-membarrier.o `test -f 'intrincs/membarrier.c' || echo '$(srcdir)/'`intrincs/membarrier.c
 @am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib32_libmingwex_a-membarrier.Tpo intrincs/$(DEPDIR)/lib32_libmingwex_a-membarrier.Po
@@ -28558,6 +28606,34 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib64_libmingwex_a-_chsize_s.obj `if test -f 'secapi/_chsize_s.c'; then $(CYGPATH_W) 'secapi/_chsize_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_chsize_s.c'; fi`
 
+secapi/lib64_libmingwex_a-_mktemp_s.o: secapi/_mktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-_mktemp_s.o -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Tpo -c -o secapi/lib64_libmingwex_a-_mktemp_s.o `test -f 'secapi/_mktemp_s.c' || echo '$(srcdir)/'`secapi/_mktemp_s.c
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_mktemp_s.c' object='secapi/lib64_libmingwex_a-_mktemp_s.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib64_libmingwex_a-_mktemp_s.o `test -f 'secapi/_mktemp_s.c' || echo '$(srcdir)/'`secapi/_mktemp_s.c
+
+secapi/lib64_libmingwex_a-_mktemp_s.obj: secapi/_mktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-_mktemp_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Tpo -c -o secapi/lib64_libmingwex_a-_mktemp_s.obj `if test -f 'secapi/_mktemp_s.c'; then $(CYGPATH_W) 'secapi/_mktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_mktemp_s.c'; fi`
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-_mktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_mktemp_s.c' object='secapi/lib64_libmingwex_a-_mktemp_s.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib64_libmingwex_a-_mktemp_s.obj `if test -f 'secapi/_mktemp_s.c'; then $(CYGPATH_W) 'secapi/_mktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_mktemp_s.c'; fi`
+
+secapi/lib64_libmingwex_a-_wmktemp_s.o: secapi/_wmktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-_wmktemp_s.o -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Tpo -c -o secapi/lib64_libmingwex_a-_wmktemp_s.o `test -f 'secapi/_wmktemp_s.c' || echo '$(srcdir)/'`secapi/_wmktemp_s.c
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_wmktemp_s.c' object='secapi/lib64_libmingwex_a-_wmktemp_s.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib64_libmingwex_a-_wmktemp_s.o `test -f 'secapi/_wmktemp_s.c' || echo '$(srcdir)/'`secapi/_wmktemp_s.c
+
+secapi/lib64_libmingwex_a-_wmktemp_s.obj: secapi/_wmktemp_s.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-_wmktemp_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Tpo -c -o secapi/lib64_libmingwex_a-_wmktemp_s.obj `if test -f 'secapi/_wmktemp_s.c'; then $(CYGPATH_W) 'secapi/_wmktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_wmktemp_s.c'; fi`
+@am__fastdepCC_TRUE@	$(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-_wmktemp_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='secapi/_wmktemp_s.c' object='secapi/lib64_libmingwex_a-_wmktemp_s.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib64_libmingwex_a-_wmktemp_s.obj `if test -f 'secapi/_wmktemp_s.c'; then $(CYGPATH_W) 'secapi/_wmktemp_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_wmktemp_s.c'; fi`
+
 intrincs/lib64_libmingwex_a-bittest64.o: intrincs/bittest64.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib64_libmingwex_a-bittest64.o -MD -MP -MF intrincs/$(DEPDIR)/lib64_libmingwex_a-bittest64.Tpo -c -o intrincs/lib64_libmingwex_a-bittest64.o `test -f 'intrincs/bittest64.c' || echo '$(srcdir)/'`intrincs/bittest64.c
 @am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib64_libmingwex_a-bittest64.Tpo intrincs/$(DEPDIR)/lib64_libmingwex_a-bittest64.Po
diff --git a/mingw-w64-crt/lib32/msvcrt.def b/mingw-w64-crt/lib32/msvcrt.def
index 2130769..8790162 100644
--- a/mingw-w64-crt/lib32/msvcrt.def
+++ b/mingw-w64-crt/lib32/msvcrt.def
@@ -992,7 +992,7 @@
 _mbsupr_s_l
 _mbtowc_l
 _memicmp_l
-_mktemp_s
+; _mktemp_s replaced by emu
 _printf_l
 _printf_p
 _printf_p_l
@@ -1148,7 +1148,7 @@
 _wgetenv_s
 _winput_s
 _wmakepath_s
-_wmktemp_s
+; _wmktemp_s replaced by emu
 _woutput_s
 _wprintf_l
 _wprintf_p
diff --git a/mingw-w64-crt/lib64/msvcrt.def b/mingw-w64-crt/lib64/msvcrt.def
index 25e9cd1..35f3349 100644
--- a/mingw-w64-crt/lib64/msvcrt.def
+++ b/mingw-w64-crt/lib64/msvcrt.def
@@ -631,7 +631,7 @@
 ;_mkgmtime32 = _mkgmtime
 _mkgmtime64
 _mktemp
-_mktemp_s
+; _mktemp_s replaced by emu
 _mktime64
 _msize
 _nextafter
@@ -950,7 +950,7 @@
 _wmakepath_s
 _wmkdir
 _wmktemp
-_wmktemp_s
+; _wmktemp_s replaced by emu
 _wopen
 _woutput_s
 _wperror
diff --git a/mingw-w64-crt/secapi/_mktemp_s.c b/mingw-w64-crt/secapi/_mktemp_s.c
new file mode 100644
index 0000000..30888c2
--- /dev/null
+++ b/mingw-w64-crt/secapi/_mktemp_s.c
@@ -0,0 +1,56 @@
+#include <windows.h>
+#include <malloc.h>
+#include <errno.h>
+
+HMODULE __mingw_get_msvcrt_handle (void);
+size_t __cdecl strnlen (const char *, size_t);
+char * __cdecl _mktemp (char *);
+errno_t __cdecl _mktemp_s (char *, size_t);
+static errno_t __cdecl _int_mktemp_s (char *, size_t);
+static errno_t __cdecl _stub (char *, size_t);
+
+errno_t __cdecl (*__MINGW_IMP_SYMBOL(_mktemp_s))(char *, size_t) = 
+ _stub;
+
+static errno_t __cdecl
+_stub (char *d, size_t dn)
+{
+  errno_t __cdecl (*f)(char *, size_t) = __MINGW_IMP_SYMBOL(_mktemp_s);
+
+  if (f == _stub)
+    {
+	f = (errno_t __cdecl (*)(char *, size_t))
+	    GetProcAddress (__mingw_get_msvcrt_handle (), "_mktemp_s");
+	if (!f)
+	  f = _int_mktemp_s;
+	__MINGW_IMP_SYMBOL(_mktemp_s) = f;
+    }
+  return (*f)(d, dn);
+}
+
+errno_t __cdecl
+_mktemp_s (char *d, size_t dn)
+{
+  return _stub (d, dn);
+}
+
+static errno_t __cdecl
+_int_mktemp_s (char *d, size_t dn)
+{
+  size_t sz;
+  if (!d || !dn)
+    {
+      _mktemp (NULL);
+      return EINVAL;
+    }
+  sz = strnlen (d, dn);
+  if (sz >= dn || sz < 6)
+    {
+      d[0] = 0;
+      _mktemp (NULL);
+      return EINVAL;
+    }
+  if (_mktemp (d) != NULL)
+    return 0;
+  return errno;
+}
diff --git a/mingw-w64-crt/secapi/_wmktemp_s.c b/mingw-w64-crt/secapi/_wmktemp_s.c
new file mode 100644
index 0000000..11c3097
--- /dev/null
+++ b/mingw-w64-crt/secapi/_wmktemp_s.c
@@ -0,0 +1,56 @@
+#include <windows.h>
+#include <malloc.h>
+#include <errno.h>
+
+HMODULE __mingw_get_msvcrt_handle (void);
+size_t __cdecl wcsnlen (const wchar_t *, size_t);
+char * __cdecl _wmktemp (wchar_t *);
+errno_t __cdecl _wmktemp_s (wchar_t *, size_t);
+static errno_t __cdecl _int_wmktemp_s (wchar_t *, size_t);
+static errno_t __cdecl _stub (wchar_t *, size_t);
+
+errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wmktemp_s))(wchar_t *, size_t) = 
+ _stub;
+
+static errno_t __cdecl
+_stub (wchar_t *d, size_t dn)
+{
+  errno_t __cdecl (*f)(wchar_t *, size_t) = __MINGW_IMP_SYMBOL(_wmktemp_s);
+
+  if (f == _stub)
+    {
+	f = (errno_t __cdecl (*)(wchar_t *, size_t))
+	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wmktemp_s");
+	if (!f)
+	  f = _int_wmktemp_s;
+	__MINGW_IMP_SYMBOL(_wmktemp_s) = f;
+    }
+  return (*f)(d, dn);
+}
+
+errno_t __cdecl
+_wmktemp_s (wchar_t *d, size_t dn)
+{
+  return _stub (d, dn);
+}
+
+static errno_t __cdecl
+_int_wmktemp_s (wchar_t *d, size_t dn)
+{
+  size_t sz;
+  if (!d || !dn)
+    {
+      _wmktemp (NULL);
+      return EINVAL;
+    }
+  sz = wcsnlen (d, dn);
+  if (sz >= dn || sz < 6)
+    {
+      d[0] = 0;
+      _wmktemp (NULL);
+      return EINVAL;
+    }
+  if (_wmktemp (d) != NULL)
+    return 0;
+  return errno;
+}
diff --git a/mingw-w64-headers/crt/sec_api/io_s.h b/mingw-w64-headers/crt/sec_api/io_s.h
index 5bff301..3443941 100644
--- a/mingw-w64-headers/crt/sec_api/io_s.h
+++ b/mingw-w64-headers/crt/sec_api/io_s.h
@@ -16,13 +16,13 @@
 
   errno_t __cdecl _access_s (const char *_Filename,int _AccessMode);
   errno_t __cdecl _chsize_s (int _FileHandle,__int64 _Size);
-  _CRTIMP errno_t __cdecl _mktemp_s(char *_TemplateName,size_t _Size);
+  errno_t __cdecl _mktemp_s (char *_TemplateName,size_t _Size);
   _CRTIMP errno_t __cdecl _umask_s(int _NewMode,int *_OldMode);
 
 #ifndef _WIO_S_DEFINED
 #define _WIO_S_DEFINED
   errno_t __cdecl _waccess_s (const wchar_t *_Filename,int _AccessMode);
-  _CRTIMP errno_t __cdecl _wmktemp_s(wchar_t *_TemplateName,size_t _SizeInWords);
+  errno_t __cdecl _wmktemp_s (wchar_t *_TemplateName, size_t _SizeInWords);
 #endif
 
 #ifdef __cplusplus