diff --git a/reactos/lib/sdk/crt/msvcrtex.cmake b/reactos/lib/sdk/crt/msvcrtex.cmake index 066500a2870..4511ff16e3d 100644 --- a/reactos/lib/sdk/crt/msvcrtex.cmake +++ b/reactos/lib/sdk/crt/msvcrtex.cmake @@ -63,6 +63,8 @@ endif() 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) diff --git a/reactos/lib/sdk/crt/startup/pseudo-reloc.c b/reactos/lib/sdk/crt/startup/pseudo-reloc.c index 61cc7123176..b88e37e7846 100644 --- a/reactos/lib/sdk/crt/startup/pseudo-reloc.c +++ b/reactos/lib/sdk/crt/startup/pseudo-reloc.c @@ -20,6 +20,7 @@ #include #include #include +#include #if defined(__CYGWIN__) #include @@ -46,10 +47,7 @@ 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); @@ -466,7 +464,12 @@ _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 */