SDL: Move in va_copy() define block from stdlib.

From 97774cdf7258df5939f56e470d2c51eb341bc781 Mon Sep 17 00:00:00 2001
From: Eddy Jansson <[EMAIL REDACTED]>
Date: Fri, 29 Apr 2022 14:01:03 +0200
Subject: [PATCH] Move in va_copy() define block from stdlib.

---
 src/SDL_internal.h      | 9 +++++++++
 src/stdlib/SDL_string.c | 8 --------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/SDL_internal.h b/src/SDL_internal.h
index 69da271c624..2ec32f69767 100644
--- a/src/SDL_internal.h
+++ b/src/SDL_internal.h
@@ -26,6 +26,15 @@
 #define _GNU_SOURCE
 #endif
 
+/* Do our best to make sure va_copy is working */
+#if defined(_MSC_VER) && _MSC_VER <= 1800
+/* Visual Studio 2013 tries to link with _vacopy in the C runtime. Newer versions do an inline assignment */
+#undef va_copy
+#define va_copy(dst, src)   dst = src
+#elif defined(__GNUC__) && (__GNUC__ < 3)
+#define va_copy(dst, src)   __va_copy(dst, src)
+#endif
+
 /* This is for a variable-length array at the end of a struct:
     struct x { int y; char z[SDL_VARIABLE_LENGTH_ARRAY]; };
    Use this because GCC 2 needs different magic than other compilers. */
diff --git a/src/stdlib/SDL_string.c b/src/stdlib/SDL_string.c
index 1331930726d..ae8f306659e 100644
--- a/src/stdlib/SDL_string.c
+++ b/src/stdlib/SDL_string.c
@@ -28,14 +28,6 @@
 
 #include "SDL_stdinc.h"
 
-#if defined(_MSC_VER) && _MSC_VER <= 1800
-/* Visual Studio 2013 tries to link with _vacopy in the C runtime. Newer versions do an inline assignment */
-#undef va_copy
-#define va_copy(dst, src)   dst = src
-#elif defined(__GNUC__) && (__GNUC__ < 3)
-#define va_copy(to, from)   __va_copy(to, from)
-#endif
-
 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOL) || !defined(HAVE_STRTOUL) || !defined(HAVE_STRTOD) || !defined(HAVE_STRTOLL) || !defined(HAVE_STRTOULL)
 #define SDL_isupperhex(X)   (((X) >= 'A') && ((X) <= 'F'))
 #define SDL_islowerhex(X)   (((X) >= 'a') && ((X) <= 'f'))