add_library(msvcrtex ${MSVCRTEX_SOURCE})
add_target_compile_definitions(msvcrtex _DLL)
set_source_files_properties(startup/crtdll.c PROPERTIES COMPILE_DEFINITIONS CRTDLL)
+set_source_files_properties(startup/crtexe.c
+ startup/wcrtexe.c PROPERTIES COMPILE_DEFINITIONS _M_CEE_PURE)
if(NOT MSVC)
target_link_libraries(msvcrtex oldnames)
#include <stdlib.h>
#include <stdarg.h>
#include <memory.h>
+#include <malloc.h>
#if defined(__CYGWIN__)
#include <wchar.h>
extern char __RUNTIME_PSEUDO_RELOC_LIST__;
extern char __RUNTIME_PSEUDO_RELOC_LIST_END__;
-#ifndef _MSC_VER
-#define __ImageBase __MINGW_LSYMBOL(_image_base__)
-#endif
-extern char __ImageBase;
+extern char __MINGW_LSYMBOL(_image_base__);
void _pei386_runtime_relocator (void);
do_pseudo_reloc (&__RUNTIME_PSEUDO_RELOC_LIST__,
&__RUNTIME_PSEUDO_RELOC_LIST_END__,
- &__MINGW_LSYMBOL(_image_base__));
+#ifdef __GNUC__
+ &__MINGW_LSYMBOL(_image_base__)
+#else
+ &__ImageBase
+#endif
+ );
#ifdef __MINGW64_VERSION_MAJOR
restore_modified_sections ();
#endif /* __MINGW64_VERSION_MAJOR */