#include <mbstring.h>
#endif
+/* Special handling for ARM & ARM64, __winitenv & __initenv aren't present there. */
+
+#if !defined(__arm__) && !defined(__aarch64__)
+
#ifndef __winitenv
extern wchar_t *** __MINGW_IMP_SYMBOL(__winitenv);
#define __winitenv (* __MINGW_IMP_SYMBOL(__winitenv))
#define __initenv (* __MINGW_IMP_SYMBOL(__initenv))
#endif
+#endif
+
/* Hack, for bug in ld. Will be removed soon. */
#if defined(__GNUC__)
#define __ImageBase __MINGW_LSYMBOL(_image_base__)
duplicate_ppstrings (argc, &argv);
__main ();
#ifdef WPRFLAG
+#if !defined(__arm__) && !defined(__aarch64__)
__winitenv = envp;
+#endif
/* C++ initialization.
gcc inserts this call automatically for a function called main, but not for wmain. */
mainret = wmain (argc, argv, envp);
#else
+#if !defined(__arm__) && !defined(__aarch64__)
__initenv = envp;
+#endif
mainret = main (argc, argv, envp);
#endif
if (!managedapp)