Alexandre Julliard : ntdll: Remove support for being loaded directly from libwine.
Alexandre Julliard
julliard at winehq.org
Mon Jun 29 14:59:21 CDT 2020
Module: wine
Branch: master
Commit: 83a4549e9baa252d0fb92d14e5a39119b8583813
URL: https://source.winehq.org/git/wine.git/?a=commit;h=83a4549e9baa252d0fb92d14e5a39119b8583813
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Jun 29 12:11:57 2020 +0200
ntdll: Remove support for being loaded directly from libwine.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/loader.c | 35 ++---------------------------------
dlls/ntdll/unix/loader.c | 37 -------------------------------------
2 files changed, 2 insertions(+), 70 deletions(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index aa7b58b732..ab554438af 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -3900,33 +3900,6 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
}
-static NTSTATUS load_ntdll_so( HMODULE module, const IMAGE_NT_HEADERS *nt )
-{
- NTSTATUS (__cdecl *init_func)( HMODULE module, const void *ptr_in, void *ptr_out );
- Dl_info info;
- char *name;
- void *handle;
-
- if (!dladdr( load_ntdll_so, &info ))
- {
- fprintf( stderr, "cannot get path to ntdll.dll.so\n" );
- exit(1);
- }
- name = strdup( info.dli_fname );
- strcpy( name + strlen(name) - strlen(".dll.so"), ".so" );
- if (!(handle = dlopen( name, RTLD_NOW )))
- {
- fprintf( stderr, "failed to load %s: %s\n", name, dlerror() );
- exit(1);
- }
- if (!(init_func = dlsym( handle, "__wine_init_unix_lib" )))
- {
- fprintf( stderr, "init func not found in %s\n", name );
- exit(1);
- }
- return init_func( module, nt, &unix_funcs );
-}
-
/***********************************************************************
* __wine_process_init
*/
@@ -3948,13 +3921,9 @@ void __wine_process_init(void)
HMODULE ntdll_module = (HMODULE)((__wine_spec_nt_header.OptionalHeader.ImageBase + 0xffff) & ~0xffff);
INITIAL_TEB stack;
SIZE_T info_size;
- TEB *teb;
- PEB *peb;
-
- if (!unix_funcs) load_ntdll_so( ntdll_module, &__wine_spec_nt_header );
+ TEB *teb = thread_init( &info_size );
+ PEB *peb = teb->Peb;
- teb = thread_init( &info_size );
- peb = teb->Peb;
peb->ProcessHeap = RtlCreateHeap( HEAP_GROWABLE, NULL, 0, 0, NULL, NULL );
peb->LoaderLock = &loader_section;
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 10b483a95a..6043367a8e 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -105,10 +105,6 @@ static void (CDECL *p__wine_set_unix_funcs)( int version, const struct unix_func
static void fatal_error( const char *err, ... ) __attribute__((noreturn, format(printf,1,2)));
#endif
-extern int __wine_main_argc;
-extern char **__wine_main_argv;
-extern char **__wine_main_environ;
-
#if defined(linux) || defined(__APPLE__)
static const BOOL use_preloader = TRUE;
#else
@@ -1803,39 +1799,6 @@ void __wine_main( int argc, char *argv[], char *envp[] )
}
-static int add_area( void *base, size_t size, void *arg )
-{
- mmap_add_reserved_area( base, size );
- return 0;
-}
-
-/***********************************************************************
- * __wine_init_unix_lib
- *
- * Lib entry point called by ntdll.dll.so if not yet initialized.
- */
-NTSTATUS __cdecl __wine_init_unix_lib( HMODULE module, const void *ptr_in, void *ptr_out )
-{
- const IMAGE_NT_HEADERS *nt = ptr_in;
-
-#ifdef __APPLE__
- extern char **__wine_get_main_environment(void);
- char **envp = __wine_get_main_environment();
-#else
- char **envp = __wine_main_environ;
-#endif
- init_paths( __wine_main_argc, __wine_main_argv, envp );
-
- ntdll_module = module;
- map_so_dll( nt, module );
- fixup_ntdll_imports( &__wine_spec_nt_header );
- init_environment( __wine_main_argc, __wine_main_argv, envp );
- wine_dll_set_callback( load_builtin_callback );
- *(struct unix_funcs **)ptr_out = &unix_funcs;
- wine_mmap_enum_reserved_areas( add_area, NULL, 0 );
- return STATUS_SUCCESS;
-}
-
BOOL WINAPI DECLSPEC_HIDDEN DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
{
if (reason == DLL_PROCESS_ATTACH) LdrDisableThreadCalloutsForDll( inst );
More information about the wine-cvs
mailing list