This should speedup regedit tests from ~60s to ~4s.
From: Rémi Bernon rbernon@codeweavers.com
In order to favor direct imports over delayed imports, for instance when the delay imported module forwards symbols from the imported module. --- tools/makedep.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/makedep.c b/tools/makedep.c index 69b4a4c660b..7227207769d 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -3149,7 +3149,6 @@ static void output_module( struct makefile *make ) { struct strarray all_libs = empty_strarray; struct strarray dep_libs = empty_strarray; - struct strarray imports = make->imports; const char *module_name = make->module; const char *debug_file; const char *delay_load = delay_load_flag; @@ -3163,11 +3162,15 @@ static void output_module( struct makefile *make ) if (*dll_ext && !make->is_cross && !make->data_only) module_name = strmake( "%s%s", make->module, dll_ext );
+ strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->imports, 0, make->is_cross )); + strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->delayimports, 1, make->is_cross )); + if (!strarray_exists( &make->extradllflags, "-nodefaultlibs" )) + { + struct strarray imports = {0}; imports = add_default_imports( make, imports ); - - strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->delayimports, 1, make->is_cross )); - strarray_addall( &all_libs, add_import_libs( make, &dep_libs, imports, 0, make->is_cross )); + strarray_addall( &all_libs, add_import_libs( make, &dep_libs, imports, 0, make->is_cross )); + }
if (!make->use_msvcrt) {
From: Rémi Bernon rbernon@codeweavers.com
And drop gdi32 which isn't required. --- dlls/shcore/Makefile.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/shcore/Makefile.in b/dlls/shcore/Makefile.in index 7c4d161a558..61840e9a056 100644 --- a/dlls/shcore/Makefile.in +++ b/dlls/shcore/Makefile.in @@ -1,6 +1,7 @@ MODULE = shcore.dll IMPORTLIB = shcore -IMPORTS = user32 gdi32 ole32 advapi32 +IMPORTS = advapi32 +DELAYIMPORTS = user32 ole32
EXTRADLLFLAGS = -Wb,--prefer-native
From: Rémi Bernon rbernon@codeweavers.com
Avoid triggering the load of comctl32 early. --- programs/regedit/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/regedit/main.c b/programs/regedit/main.c index e776ec9d0f7..b1035629726 100644 --- a/programs/regedit/main.c +++ b/programs/regedit/main.c @@ -132,8 +132,6 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi HACCEL hAccel; BOOL is_wow64;
- InitCommonControls(); - if (ProcessCmdLine(GetCommandLineW())) { return 0; } @@ -161,6 +159,8 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi Wow64RevertWow64FsRedirection( redir ); }
+ InitCommonControls(); + /* Initialize global strings */ LoadStringW(hInstance, IDS_APP_TITLE, szTitle, ARRAY_SIZE(szTitle)); LoadStringW(hInstance, IDS_REGISTRY_DEFAULT_VALUE, g_pszDefaultValueName, ARRAY_SIZE(g_pszDefaultValueName));
From: Rémi Bernon rbernon@codeweavers.com
For CommandLineToArgvW. --- programs/regedit/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/regedit/Makefile.in b/programs/regedit/Makefile.in index 9f8fb5af165..77ef7b3163a 100644 --- a/programs/regedit/Makefile.in +++ b/programs/regedit/Makefile.in @@ -1,5 +1,5 @@ MODULE = regedit.exe -IMPORTS = advapi32 +IMPORTS = advapi32 shcore DELAYIMPORTS = shlwapi shell32 comdlg32 comctl32 user32 gdi32
EXTRADLLFLAGS = -mwindows -municode
Alexandre Julliard (@julliard) commented about tools/makedep.c:
if (*dll_ext && !make->is_cross && !make->data_only) module_name = strmake( "%s%s", make->module, dll_ext );
strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->imports, 0, make->is_cross ));
strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->delayimports, 1, make->is_cross ));
if (!strarray_exists( &make->extradllflags, "-nodefaultlibs" ))
{
struct strarray imports = {0}; imports = add_default_imports( make, imports );
This will break the detection of the C runtime that's done in add_default_imports().