crt: Remove the vestigial gs_support.c

This was a partial (but incomplete!) support for the MSVC stack
cookie handling (under the MSVC option /GS, similar to GCC and
Clang/MinGW's -fstack-protector-strong). This contained the
stack cookie itself and the init function, and the error reporting
function, but not the checking function (__security_check_cookie).
And these functions would only end up being called by code generated
by MSVC anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 0f882ae..86b0b0d 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -115,7 +115,7 @@
 
 src_libmingw32=include/oscalls.h include/internal.h include/sect_attribs.h \
   crt/crt0_c.c        crt/dll_argv.c  crt/gccmain.c     crt/natstart.c  crt/pseudo-reloc-list.c  crt/wildcard.c \
-  crt/charmax.c       crt/crt0_w.c         crt/dllargv.c   crt/gs_support.c  crt/_newmode.c  crt/tlssup.c             crt/xncommod.c \
+  crt/charmax.c       crt/crt0_w.c         crt/dllargv.c   crt/_newmode.c  crt/tlssup.c             crt/xncommod.c \
   crt/cinitexe.c      crt/crt0_w.c         crt/merr.c      crt/pesect.c      crt/udllargc.c  crt/xthdloc.c            crt/CRT_fp10.c \
   crt/mingw_custom.c  crt/mingw_helpers.c  \
   crt/pseudo-reloc.c  crt/udll_argv.c      \
diff --git a/mingw-w64-crt/crt/crtdll.c b/mingw-w64-crt/crt/crtdll.c
index 0d97702..8b0f4dd 100644
--- a/mingw-w64-crt/crt/crtdll.c
+++ b/mingw-w64-crt/crt/crtdll.c
@@ -158,7 +158,6 @@
   mingw_app_type = 0;
   if (dwReason == DLL_PROCESS_ATTACH)
     {
-      __security_init_cookie ();
 #if defined(__x86_64__) && !defined(__SEH__)
       __mingw_init_ehandler ();
 #endif
diff --git a/mingw-w64-crt/crt/crtexe.c b/mingw-w64-crt/crt/crtexe.c
index c3deb6e..3dc5e8e 100644
--- a/mingw-w64-crt/crt/crtexe.c
+++ b/mingw-w64-crt/crt/crtexe.c
@@ -189,7 +189,6 @@
     );
 #endif
   mingw_app_type = 1;
-  __security_init_cookie ();
   ret = __tmainCRTStartup ();
 #ifdef SEH_INLINE_ASM
   asm ("\tnop\n"
@@ -217,7 +216,6 @@
     );
 #endif
   mingw_app_type = 0;
-  __security_init_cookie ();
   ret = __tmainCRTStartup ();
 #ifdef SEH_INLINE_ASM
   asm ("\tnop\n"
diff --git a/mingw-w64-crt/crt/gs_support.c b/mingw-w64-crt/crt/gs_support.c
deleted file mode 100644
index 0c6ac68..0000000
--- a/mingw-w64-crt/crt/gs_support.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#define WIN32_NO_STATUS
-#include <stdlib.h>	/* abort () */
-#include <windows.h>
-#undef  WIN32_NO_STATUS
-#include <ntstatus.h>	/* STATUS macros */
-#ifdef _WIN64
-#include <intrin.h>
-#endif
-
-#ifdef _WIN64
-#define DEFAULT_SECURITY_COOKIE 0x00002B992DDFA232ll
-#else
-#define DEFAULT_SECURITY_COOKIE 0xBB40E64E
-#endif
-
-/* Externals.  */
-
-typedef LONG NTSTATUS;	/* same as in ntdef.h / winternl.h */
-
-#define UNW_FLAG_NHANDLER   0x0
-
-typedef union
-{
-  unsigned __int64 ft_scalar;
-  FILETIME ft_struct;
-} FT;
-
-static EXCEPTION_RECORD GS_ExceptionRecord;
-static CONTEXT GS_ContextRecord;
-
-static const EXCEPTION_POINTERS GS_ExceptionPointers = {
-  &GS_ExceptionRecord,&GS_ContextRecord
-};
-
-DECLSPEC_SELECTANY UINT_PTR __security_cookie = DEFAULT_SECURITY_COOKIE;
-DECLSPEC_SELECTANY UINT_PTR __security_cookie_complement = ~(DEFAULT_SECURITY_COOKIE);
-
-void __cdecl __security_init_cookie (void);
-
-void __cdecl
-__security_init_cookie (void)
-{
-  UINT_PTR cookie;
-  FT systime = { 0, };
-  LARGE_INTEGER perfctr;
-
-  if (__security_cookie != DEFAULT_SECURITY_COOKIE)
-    {
-      __security_cookie_complement = ~__security_cookie;
-      return;
-    }
-
-  GetSystemTimeAsFileTime (&systime.ft_struct);
-#ifdef _WIN64
-  cookie = systime.ft_scalar;
-#else
-  cookie = systime.ft_struct.dwLowDateTime;
-  cookie ^= systime.ft_struct.dwHighDateTime;
-#endif
-
-  cookie ^= GetCurrentProcessId ();
-  cookie ^= GetCurrentThreadId ();
-  cookie ^= GetTickCount ();
-
-  QueryPerformanceCounter (&perfctr);
-#ifdef _WIN64
-  cookie ^= perfctr.QuadPart;
-#else
-  cookie ^= perfctr.LowPart;
-  cookie ^= perfctr.HighPart;
-#endif
-
-#ifdef _WIN64
-  cookie &= 0x0000ffffffffffffll;
-#endif
-
-  if (cookie == DEFAULT_SECURITY_COOKIE)
-    cookie = DEFAULT_SECURITY_COOKIE + 1;
-  __security_cookie = cookie;
-  __security_cookie_complement = ~cookie;
-}
-
-
-#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */
-#undef  _ReturnAddress
-#undef  _AddressOfReturnAddress
-#define _ReturnAddress()		__builtin_return_address(0)
-#define _AddressOfReturnAddress()	__builtin_frame_address (0)
-#endif /* __GNUC__ */
-
-__declspec(noreturn) void __cdecl __report_gsfailure (ULONG_PTR);
-
-#define UNUSED_PARAM(x) { x = x; }
-__declspec(noreturn) void __cdecl
-__report_gsfailure (ULONG_PTR StackCookie)
-{
-  volatile UINT_PTR cookie[2] __MINGW_ATTRIB_UNUSED;
-#if defined(_WIN64) && !defined(__aarch64__)
-  ULONG64 controlPC, imgBase, establisherFrame;
-  PRUNTIME_FUNCTION fctEntry;
-  PVOID hndData;
-
-  RtlCaptureContext (&GS_ContextRecord);
-  controlPC = GS_ContextRecord.Rip;
-  fctEntry = RtlLookupFunctionEntry (controlPC, &imgBase, NULL);
-  if (fctEntry != NULL)
-    {
-      RtlVirtualUnwind (UNW_FLAG_NHANDLER, imgBase, controlPC, fctEntry,
-			&GS_ContextRecord, &hndData, &establisherFrame, NULL);
-    }
-  else
-#endif /* _WIN64 */
-    {
-#if defined(__x86_64__) || defined(_AMD64_)
-      GS_ContextRecord.Rip = (ULONGLONG) _ReturnAddress();
-      GS_ContextRecord.Rsp = (ULONGLONG) _AddressOfReturnAddress() + 8;
-#elif defined(__i386__) || defined(_X86_)
-      GS_ContextRecord.Eip = (DWORD) _ReturnAddress();
-      GS_ContextRecord.Esp = (DWORD) _AddressOfReturnAddress() + 4;
-#elif defined(__arm__) || defined(_ARM_)
-      GS_ContextRecord.Pc = (DWORD) _ReturnAddress();
-      GS_ContextRecord.Sp = (DWORD) _AddressOfReturnAddress() + 4;
-#endif /* _WIN64 */
-    }
-
-#if defined(__x86_64__) || defined(_AMD64_)
-  GS_ExceptionRecord.ExceptionAddress = (PVOID) GS_ContextRecord.Rip;
-  GS_ContextRecord.Rcx = StackCookie;
-#elif defined(__i386__) || defined(_X86_)
-  GS_ExceptionRecord.ExceptionAddress = (PVOID) GS_ContextRecord.Eip;
-  GS_ContextRecord.Ecx = StackCookie;
-#elif defined(__arm__) || defined(_ARM_)
-  GS_ExceptionRecord.ExceptionAddress = (PVOID) GS_ContextRecord.Pc;
-  UNUSED_PARAM(StackCookie);
-#endif /* _WIN64 */
-  GS_ExceptionRecord.ExceptionCode = STATUS_STACK_BUFFER_OVERRUN;
-  GS_ExceptionRecord.ExceptionFlags = EXCEPTION_NONCONTINUABLE;
-  cookie[0] = __security_cookie;
-  cookie[1] = __security_cookie_complement;
-  SetUnhandledExceptionFilter (NULL);
-  UnhandledExceptionFilter ((EXCEPTION_POINTERS *) &GS_ExceptionPointers);
-  TerminateProcess (GetCurrentProcess (), STATUS_STACK_BUFFER_OVERRUN);
-  abort();
-}
-
diff --git a/mingw-w64-headers/crt/process.h b/mingw-w64-headers/crt/process.h
index a22aa23..d047568 100644
--- a/mingw-w64-headers/crt/process.h
+++ b/mingw-w64-headers/crt/process.h
@@ -122,16 +122,6 @@
 #endif
 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
 
-  void __cdecl __security_init_cookie(void);
-#if (defined(_X86_) && !defined(__x86_64))
-  void __fastcall __security_check_cookie(uintptr_t _StackCookie);
-  __MINGW_ATTRIB_NORETURN void __cdecl __report_gsfailure(void);
-#else
-  void __cdecl __security_check_cookie(uintptr_t _StackCookie);
-  __MINGW_ATTRIB_NORETURN void __cdecl __report_gsfailure(uintptr_t _StackCookie);
-#endif
-  extern uintptr_t __security_cookie;
-
 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
   intptr_t __cdecl _loaddll(char *_Filename);
   int __cdecl _unloaddll(intptr_t _Handle);