Alexandre Julliard : msvcrt: Build the CRT startup code also for non-PE builds.
Alexandre Julliard
julliard at winehq.org
Wed Apr 15 15:55:42 CDT 2020
Module: wine
Branch: master
Commit: a2e1e499ade0c99ece2a7e4b9b28e4ca6c24ae22
URL: https://source.winehq.org/git/wine.git/?a=commit;h=a2e1e499ade0c99ece2a7e4b9b28e4ca6c24ae22
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Apr 15 16:27:55 2020 +0200
msvcrt: Build the CRT startup code also for non-PE builds.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msvcrt/crt_main.c | 9 +++------
dlls/msvcrt/crt_winmain.c | 4 ----
dlls/msvcrt/crt_wmain.c | 9 +++------
dlls/msvcrt/crt_wwinmain.c | 4 ----
4 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/dlls/msvcrt/crt_main.c b/dlls/msvcrt/crt_main.c
index fa325d64b3..8e4a00bac7 100644
--- a/dlls/msvcrt/crt_main.c
+++ b/dlls/msvcrt/crt_main.c
@@ -22,8 +22,6 @@
#pragma makedep implib
#endif
-#ifdef __MINGW32__
-
#if _MSVCR_VER >= 140
#define _UCRT
#endif
@@ -34,13 +32,14 @@
#include "windef.h"
#include "winbase.h"
+#include "winternl.h"
int __cdecl main(int argc, char **argv, char **env);
static const IMAGE_NT_HEADERS *get_nt_header( void )
{
- extern IMAGE_DOS_HEADER __ImageBase;
- return (const IMAGE_NT_HEADERS *)((char *)&__ImageBase + __ImageBase.e_lfanew);
+ IMAGE_DOS_HEADER *dos = (IMAGE_DOS_HEADER *)NtCurrentTeb()->Peb->ImageBaseAddress;
+ return (const IMAGE_NT_HEADERS *)((char *)dos + dos->e_lfanew);
}
int __cdecl mainCRTStartup(void)
@@ -65,5 +64,3 @@ int __cdecl mainCRTStartup(void)
exit(ret);
return ret;
}
-
-#endif
diff --git a/dlls/msvcrt/crt_winmain.c b/dlls/msvcrt/crt_winmain.c
index 27e0283cbf..fda3d12f68 100644
--- a/dlls/msvcrt/crt_winmain.c
+++ b/dlls/msvcrt/crt_winmain.c
@@ -22,8 +22,6 @@
#pragma makedep implib
#endif
-#ifdef __MINGW32__
-
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
@@ -54,5 +52,3 @@ int __cdecl main( int argc, char *argv[] )
if (!(info.dwFlags & STARTF_USESHOWWINDOW)) info.wShowWindow = SW_SHOWNORMAL;
return WinMain( GetModuleHandleA(0), 0, cmdline, info.wShowWindow );
}
-
-#endif
diff --git a/dlls/msvcrt/crt_wmain.c b/dlls/msvcrt/crt_wmain.c
index 6bc20e2e0f..6a51a1741b 100644
--- a/dlls/msvcrt/crt_wmain.c
+++ b/dlls/msvcrt/crt_wmain.c
@@ -22,8 +22,6 @@
#pragma makedep implib
#endif
-#ifdef __MINGW32__
-
#if _MSVCR_VER >= 140
#define _UCRT
#endif
@@ -34,13 +32,14 @@
#include "windef.h"
#include "winbase.h"
+#include "winternl.h"
int __cdecl wmain(int argc, WCHAR **argv, WCHAR **env);
static const IMAGE_NT_HEADERS *get_nt_header( void )
{
- extern IMAGE_DOS_HEADER __ImageBase;
- return (const IMAGE_NT_HEADERS *)((char *)&__ImageBase + __ImageBase.e_lfanew);
+ IMAGE_DOS_HEADER *dos = (IMAGE_DOS_HEADER *)NtCurrentTeb()->Peb->ImageBaseAddress;
+ return (const IMAGE_NT_HEADERS *)((char *)dos + dos->e_lfanew);
}
int __cdecl wmainCRTStartup(void)
@@ -65,5 +64,3 @@ int __cdecl wmainCRTStartup(void)
exit(ret);
return ret;
}
-
-#endif
diff --git a/dlls/msvcrt/crt_wwinmain.c b/dlls/msvcrt/crt_wwinmain.c
index 2c53b744b5..b50f728025 100644
--- a/dlls/msvcrt/crt_wwinmain.c
+++ b/dlls/msvcrt/crt_wwinmain.c
@@ -22,8 +22,6 @@
#pragma makedep implib
#endif
-#ifdef __MINGW32__
-
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
@@ -56,5 +54,3 @@ int __cdecl wmain( int argc, WCHAR *argv[] )
if (!(info.dwFlags & STARTF_USESHOWWINDOW)) info.wShowWindow = SW_SHOWNORMAL;
return wWinMain( GetModuleHandleW(0), 0, cmdline, info.wShowWindow );
}
-
-#endif
More information about the wine-cvs
mailing list