* secapi/wmemcpy_s.c: New file.
* secapi/memcpy_s.c: New file.
git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@5348 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/ChangeLog b/mingw-w64-crt/ChangeLog
index 1a08181..b065afa 100644
--- a/mingw-w64-crt/ChangeLog
+++ b/mingw-w64-crt/ChangeLog
@@ -1,5 +1,7 @@
2012-08-07 Kai Tietz <ktietz@redhat.com>
+ * secapi/wmemcpy_s.c: New file.
+ * secapi/memcpy_s.c: New file.
* secapi/_strdate_s.c: New file.
* secapi/_wstrdate_s.c: New file.
* secapi/_strtime_s.c: New file.
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index dffe239..d05d9a4 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -249,7 +249,8 @@
secapi/_localtime32_s.c secapi/_localtime64_s.c \
secapi/_gmtime64_s.c secapi/_gmtime32_s.c \
secapi/_strdate_s.c secapi/_wstrdate_s.c \
- secapi/_strtime_s.c secapi/_wstrtime_s.c
+ secapi/_strtime_s.c secapi/_wstrtime_s.c \
+ secapi/wmemcpy_s.c secapi/memcpy_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 6806fca..e834dad 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -489,10 +489,10 @@
secapi/_localtime32_s.c secapi/_localtime64_s.c \
secapi/_gmtime64_s.c secapi/_gmtime32_s.c secapi/_strdate_s.c \
secapi/_wstrdate_s.c secapi/_strtime_s.c secapi/_wstrtime_s.c \
- intrincs/membarrier.c intrincs/readfsbyte.c \
- intrincs/readfsword.c intrincs/readfsdword.c \
- intrincs/writefsbyte.c intrincs/writefsword.c \
- intrincs/writefsdword.c
+ secapi/wmemcpy_s.c secapi/memcpy_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) \
@@ -1013,7 +1013,9 @@
secapi/lib32_libmingwex_a-_strdate_s.$(OBJEXT) \
secapi/lib32_libmingwex_a-_wstrdate_s.$(OBJEXT) \
secapi/lib32_libmingwex_a-_strtime_s.$(OBJEXT) \
- secapi/lib32_libmingwex_a-_wstrtime_s.$(OBJEXT)
+ secapi/lib32_libmingwex_a-_wstrtime_s.$(OBJEXT) \
+ secapi/lib32_libmingwex_a-wmemcpy_s.$(OBJEXT) \
+ secapi/lib32_libmingwex_a-memcpy_s.$(OBJEXT)
am__objects_14 = intrincs/lib32_libmingwex_a-membarrier.$(OBJEXT) \
intrincs/lib32_libmingwex_a-readfsbyte.$(OBJEXT) \
intrincs/lib32_libmingwex_a-readfsword.$(OBJEXT) \
@@ -1542,17 +1544,17 @@
secapi/_localtime32_s.c secapi/_localtime64_s.c \
secapi/_gmtime64_s.c secapi/_gmtime32_s.c secapi/_strdate_s.c \
secapi/_wstrdate_s.c secapi/_strtime_s.c secapi/_wstrtime_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/wmemcpy_s.c secapi/memcpy_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) \
@@ -2074,7 +2076,9 @@
secapi/lib64_libmingwex_a-_strdate_s.$(OBJEXT) \
secapi/lib64_libmingwex_a-_wstrdate_s.$(OBJEXT) \
secapi/lib64_libmingwex_a-_strtime_s.$(OBJEXT) \
- secapi/lib64_libmingwex_a-_wstrtime_s.$(OBJEXT)
+ secapi/lib64_libmingwex_a-_wstrtime_s.$(OBJEXT) \
+ secapi/lib64_libmingwex_a-wmemcpy_s.$(OBJEXT) \
+ secapi/lib64_libmingwex_a-memcpy_s.$(OBJEXT)
am__objects_39 = intrincs/lib64_libmingwex_a-bittest64.$(OBJEXT) \
intrincs/lib64_libmingwex_a-bittestc64.$(OBJEXT) \
intrincs/lib64_libmingwex_a-bittestr64.$(OBJEXT) \
@@ -3544,7 +3548,8 @@
secapi/_localtime32_s.c secapi/_localtime64_s.c \
secapi/_gmtime64_s.c secapi/_gmtime32_s.c \
secapi/_strdate_s.c secapi/_wstrdate_s.c \
- secapi/_strtime_s.c secapi/_wstrtime_s.c
+ secapi/_strtime_s.c secapi/_wstrtime_s.c \
+ secapi/wmemcpy_s.c secapi/memcpy_s.c
# these only go into the 64 bit version:
@@ -5862,6 +5867,10 @@
secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
secapi/lib32_libmingwex_a-_wstrtime_s.$(OBJEXT): \
secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib32_libmingwex_a-wmemcpy_s.$(OBJEXT): secapi/$(am__dirstamp) \
+ secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib32_libmingwex_a-memcpy_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): \
@@ -7367,6 +7376,10 @@
secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
secapi/lib64_libmingwex_a-_wstrtime_s.$(OBJEXT): \
secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib64_libmingwex_a-wmemcpy_s.$(OBJEXT): secapi/$(am__dirstamp) \
+ secapi/$(DEPDIR)/$(am__dirstamp)
+secapi/lib64_libmingwex_a-memcpy_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): \
@@ -9701,6 +9714,8 @@
-rm -f secapi/lib32_libmingwex_a-_wstrdate_s.$(OBJEXT)
-rm -f secapi/lib32_libmingwex_a-_wstrtime_s.$(OBJEXT)
-rm -f secapi/lib32_libmingwex_a-asctime_s.$(OBJEXT)
+ -rm -f secapi/lib32_libmingwex_a-memcpy_s.$(OBJEXT)
+ -rm -f secapi/lib32_libmingwex_a-wmemcpy_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)
@@ -9731,6 +9746,8 @@
-rm -f secapi/lib64_libmingwex_a-_wstrdate_s.$(OBJEXT)
-rm -f secapi/lib64_libmingwex_a-_wstrtime_s.$(OBJEXT)
-rm -f secapi/lib64_libmingwex_a-asctime_s.$(OBJEXT)
+ -rm -f secapi/lib64_libmingwex_a-memcpy_s.$(OBJEXT)
+ -rm -f secapi/lib64_libmingwex_a-wmemcpy_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)
@@ -11277,6 +11294,8 @@
@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_wstrdate_s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-_wstrtime_s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-asctime_s.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_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@
@@ -11307,6 +11326,8 @@
@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_wstrdate_s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-_wstrtime_s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-asctime_s.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_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@
@@ -20446,6 +20467,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-_wstrtime_s.obj `if test -f 'secapi/_wstrtime_s.c'; then $(CYGPATH_W) 'secapi/_wstrtime_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_wstrtime_s.c'; fi`
+secapi/lib32_libmingwex_a-wmemcpy_s.o: secapi/wmemcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-wmemcpy_s.o -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_s.Tpo -c -o secapi/lib32_libmingwex_a-wmemcpy_s.o `test -f 'secapi/wmemcpy_s.c' || echo '$(srcdir)/'`secapi/wmemcpy_s.c
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/wmemcpy_s.c' object='secapi/lib32_libmingwex_a-wmemcpy_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-wmemcpy_s.o `test -f 'secapi/wmemcpy_s.c' || echo '$(srcdir)/'`secapi/wmemcpy_s.c
+
+secapi/lib32_libmingwex_a-wmemcpy_s.obj: secapi/wmemcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-wmemcpy_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_s.Tpo -c -o secapi/lib32_libmingwex_a-wmemcpy_s.obj `if test -f 'secapi/wmemcpy_s.c'; then $(CYGPATH_W) 'secapi/wmemcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemcpy_s.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-wmemcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/wmemcpy_s.c' object='secapi/lib32_libmingwex_a-wmemcpy_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-wmemcpy_s.obj `if test -f 'secapi/wmemcpy_s.c'; then $(CYGPATH_W) 'secapi/wmemcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemcpy_s.c'; fi`
+
+secapi/lib32_libmingwex_a-memcpy_s.o: secapi/memcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-memcpy_s.o -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Tpo -c -o secapi/lib32_libmingwex_a-memcpy_s.o `test -f 'secapi/memcpy_s.c' || echo '$(srcdir)/'`secapi/memcpy_s.c
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/memcpy_s.c' object='secapi/lib32_libmingwex_a-memcpy_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-memcpy_s.o `test -f 'secapi/memcpy_s.c' || echo '$(srcdir)/'`secapi/memcpy_s.c
+
+secapi/lib32_libmingwex_a-memcpy_s.obj: secapi/memcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmingwex_a-memcpy_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Tpo -c -o secapi/lib32_libmingwex_a-memcpy_s.obj `if test -f 'secapi/memcpy_s.c'; then $(CYGPATH_W) 'secapi/memcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/memcpy_s.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Tpo secapi/$(DEPDIR)/lib32_libmingwex_a-memcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/memcpy_s.c' object='secapi/lib32_libmingwex_a-memcpy_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-memcpy_s.obj `if test -f 'secapi/memcpy_s.c'; then $(CYGPATH_W) 'secapi/memcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/memcpy_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
@@ -29224,6 +29273,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-_wstrtime_s.obj `if test -f 'secapi/_wstrtime_s.c'; then $(CYGPATH_W) 'secapi/_wstrtime_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/_wstrtime_s.c'; fi`
+secapi/lib64_libmingwex_a-wmemcpy_s.o: secapi/wmemcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-wmemcpy_s.o -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_s.Tpo -c -o secapi/lib64_libmingwex_a-wmemcpy_s.o `test -f 'secapi/wmemcpy_s.c' || echo '$(srcdir)/'`secapi/wmemcpy_s.c
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/wmemcpy_s.c' object='secapi/lib64_libmingwex_a-wmemcpy_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-wmemcpy_s.o `test -f 'secapi/wmemcpy_s.c' || echo '$(srcdir)/'`secapi/wmemcpy_s.c
+
+secapi/lib64_libmingwex_a-wmemcpy_s.obj: secapi/wmemcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-wmemcpy_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_s.Tpo -c -o secapi/lib64_libmingwex_a-wmemcpy_s.obj `if test -f 'secapi/wmemcpy_s.c'; then $(CYGPATH_W) 'secapi/wmemcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemcpy_s.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-wmemcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/wmemcpy_s.c' object='secapi/lib64_libmingwex_a-wmemcpy_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-wmemcpy_s.obj `if test -f 'secapi/wmemcpy_s.c'; then $(CYGPATH_W) 'secapi/wmemcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemcpy_s.c'; fi`
+
+secapi/lib64_libmingwex_a-memcpy_s.o: secapi/memcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-memcpy_s.o -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Tpo -c -o secapi/lib64_libmingwex_a-memcpy_s.o `test -f 'secapi/memcpy_s.c' || echo '$(srcdir)/'`secapi/memcpy_s.c
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/memcpy_s.c' object='secapi/lib64_libmingwex_a-memcpy_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-memcpy_s.o `test -f 'secapi/memcpy_s.c' || echo '$(srcdir)/'`secapi/memcpy_s.c
+
+secapi/lib64_libmingwex_a-memcpy_s.obj: secapi/memcpy_s.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmingwex_a-memcpy_s.obj -MD -MP -MF secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Tpo -c -o secapi/lib64_libmingwex_a-memcpy_s.obj `if test -f 'secapi/memcpy_s.c'; then $(CYGPATH_W) 'secapi/memcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/memcpy_s.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Tpo secapi/$(DEPDIR)/lib64_libmingwex_a-memcpy_s.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='secapi/memcpy_s.c' object='secapi/lib64_libmingwex_a-memcpy_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-memcpy_s.obj `if test -f 'secapi/memcpy_s.c'; then $(CYGPATH_W) 'secapi/memcpy_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/memcpy_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 6a5dab7..7e0c3fa 100644
--- a/mingw-w64-crt/lib32/msvcrt.def
+++ b/mingw-w64-crt/lib32/msvcrt.def
@@ -1179,7 +1179,7 @@
getenv_s
mbsrtowcs_s
mbstowcs_s
-memcpy_s
+; memcpy_s replaced by emu
memmove_s
printf_s
qsort_s
diff --git a/mingw-w64-crt/lib64/msvcrt.def b/mingw-w64-crt/lib64/msvcrt.def
index f2f8f09..bb82de6 100644
--- a/mingw-w64-crt/lib64/msvcrt.def
+++ b/mingw-w64-crt/lib64/msvcrt.def
@@ -1135,7 +1135,7 @@
memchr
memcmp
memcpy
-memcpy_s
+; memcpy_s replaced by emu
memmove
memmove_s
memset
diff --git a/mingw-w64-crt/secapi/memcpy_s.c b/mingw-w64-crt/secapi/memcpy_s.c
new file mode 100644
index 0000000..0f16fca
--- /dev/null
+++ b/mingw-w64-crt/secapi/memcpy_s.c
@@ -0,0 +1,60 @@
+#include <windows.h>
+#include <malloc.h>
+#include <errno.h>
+
+HMODULE __mingw_get_msvcrt_handle (void);
+errno_t __cdecl memcpy_s (void *, size_t, const void *, size_t);
+static errno_t __cdecl _int_memcpy_s (void *, size_t, const void *, size_t);
+static errno_t __cdecl _stub (void *, size_t, const void *, size_t);
+
+errno_t __cdecl (*__MINGW_IMP_SYMBOL(memcpy_s))(void *, size_t, const void *, size_t) =
+ _stub;
+
+static errno_t __cdecl
+_stub (void *d, size_t dn, const void *s, size_t n)
+{
+ errno_t __cdecl (*f)(void *, size_t, const void *, size_t) = __MINGW_IMP_SYMBOL(memcpy_s);
+
+ if (f == _stub)
+ {
+ f = (errno_t __cdecl (*)(void *, size_t, const void *, size_t))
+ GetProcAddress (__mingw_get_msvcrt_handle (), "memcpy_s");
+ if (!f)
+ f = _int_memcpy_s;
+ __MINGW_IMP_SYMBOL(memcpy_s) = f;
+ }
+ return (*f)(d, dn, s, n);
+}
+
+errno_t __cdecl
+memcpy_s (void *d, size_t dn, const void *s, size_t n)
+{
+ return _stub (d, dn, s, n);
+}
+
+static errno_t __cdecl
+_int_memcpy_s (void *d, size_t dn, const void *s, size_t n)
+{
+ if (!n)
+ return 0;
+
+ if (!d || !s)
+ {
+ if (d)
+ memset (d, 0, dn);
+ errno = EINVAL;
+ return EINVAL;
+ }
+
+ if (dn < n)
+ {
+ memset (d, 0, dn);
+
+ errno = ERANGE;
+ return ERANGE;
+ }
+
+ memcpy (d, s, n);
+
+ return 0;
+}
diff --git a/mingw-w64-crt/secapi/wmemcpy_s.c b/mingw-w64-crt/secapi/wmemcpy_s.c
new file mode 100644
index 0000000..b2a6de8
--- /dev/null
+++ b/mingw-w64-crt/secapi/wmemcpy_s.c
@@ -0,0 +1,60 @@
+#include <windows.h>
+#include <malloc.h>
+#include <errno.h>
+
+HMODULE __mingw_get_msvcrt_handle (void);
+errno_t __cdecl wmemcpy_s (wchar_t *, size_t, const wchar_t *, size_t);
+static errno_t __cdecl _int_wmemcpy_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(wmemcpy_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(wmemcpy_s);
+
+ if (f == _stub)
+ {
+ f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t))
+ GetProcAddress (__mingw_get_msvcrt_handle (), "wmemcpy_s");
+ if (!f)
+ f = _int_wmemcpy_s;
+ __MINGW_IMP_SYMBOL(wmemcpy_s) = f;
+ }
+ return (*f)(d, dn, s, n);
+}
+
+errno_t __cdecl
+wmemcpy_s (char_t *d, size_t dn, const wchar_t *s, size_t n)
+{
+ return _stub (d, dn, s, n);
+}
+
+static errno_t __cdecl
+_int_wmemcpy_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;
+ }
+
+ memcpy (d, s, n * sizeof (wchar_t));
+
+ return 0;
+}
diff --git a/mingw-w64-headers/crt/sec_api/memory_s.h b/mingw-w64-headers/crt/sec_api/memory_s.h
index da95039..53196d0 100644
--- a/mingw-w64-headers/crt/sec_api/memory_s.h
+++ b/mingw-w64-headers/crt/sec_api/memory_s.h
@@ -15,7 +15,7 @@
#ifndef _MEMORY_S_DEFINED
#define _MEMORY_S_DEFINED
-_CRTIMP errno_t __cdecl memcpy_s(void *_dest,size_t _numberOfElements,const void *_src,size_t _count);
+ errno_t __cdecl memcpy_s (void *_dest,size_t _numberOfElements,const void *_src,size_t _count);
#endif /*_MEMORY_S_DEFINED*/
#ifdef __cplusplus
diff --git a/mingw-w64-headers/crt/sec_api/string_s.h b/mingw-w64-headers/crt/sec_api/string_s.h
index b17c30c..1ea0b6c 100644
--- a/mingw-w64-headers/crt/sec_api/string_s.h
+++ b/mingw-w64-headers/crt/sec_api/string_s.h
@@ -60,7 +60,7 @@
#ifndef _MEMORY_S_DEFINED
#define _MEMORY_S_DEFINED
-_CRTIMP errno_t __cdecl memcpy_s(void *_dest,size_t _numberOfElements,const void *_src,size_t _count);
+ errno_t __cdecl memcpy_s (void *_dest,size_t _numberOfElements,const void *_src,size_t _count);
#endif /*_MEMORY_S_DEFINED*/
#ifdef __cplusplus
diff --git a/mingw-w64-headers/crt/sec_api/wchar_s.h b/mingw-w64-headers/crt/sec_api/wchar_s.h
index 9b1af2a..ae49ceb 100644
--- a/mingw-w64-headers/crt/sec_api/wchar_s.h
+++ b/mingw-w64-headers/crt/sec_api/wchar_s.h
@@ -156,7 +156,7 @@
_CRTIMP errno_t __cdecl wcsrtombs_s(size_t *_Retval,char *_Dst,size_t _SizeInBytes,const wchar_t **_Src,size_t _Size,mbstate_t *_State);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t,wcsrtombs_s,size_t,_Retval,char,_Dst,const wchar_t**,_Src,size_t,_Size,mbstate_t,_State)
- _CRTIMP errno_t __cdecl wmemcpy_s(wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
+ errno_t __cdecl wmemcpy_s (wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
_CRTIMP errno_t __cdecl wmemmove_s(wchar_t *_dest,size_t _numberOfElements,const wchar_t *_src,size_t _count);
#ifdef __cplusplus