diff --git a/dlls/ntdll/loadorder.c b/dlls/ntdll/loadorder.c index c5a88efcd1f..1adb50fed9a 100644 --- a/dlls/ntdll/loadorder.c +++ b/dlls/ntdll/loadorder.c @@ -57,26 +57,19 @@ struct loadorder_list /* dll to load as builtins if not explicitly specified otherwise */ /* the list must remain sorted by dll name */ -static const WCHAR default_builtins[][16] = +static const WCHAR default_builtins[][10] = { { 'g','d','i','3','2',0 }, { 'i','c','m','p',0 }, { 'k','e','r','n','e','l','3','2',0 }, - { 'm','m','s','y','s','t','e','m',0 }, { 'n','t','d','l','l',0 }, { 'o','d','b','c','3','2',0 }, - { 's','o','u','n','d',0 }, { 't','t','y','d','r','v',0 }, { 'u','s','e','r','3','2',0 }, { 'w','3','2','s','k','r','n','l',0 }, - { 'w','3','2','s','y','s',0 }, - { 'w','i','n','3','2','s','1','6',0 }, - { 'w','i','n','a','s','p','i',0 }, { 'w','i','n','e','d','o','s',0 }, - { 'w','i','n','e','p','s','1','6','.','d','r','v',0 }, { 'w','i','n','e','p','s',0 }, { 'w','i','n','m','m',0 }, - { 'w','i','n','s','o','c','k',0 }, { 'w','n','a','s','p','i','3','2',0 }, { 'w','o','w','3','2',0 }, { 'w','s','2','_','3','2',0 }, @@ -324,7 +317,7 @@ static void init_load_order(void) " Only the first letter of the override (native or builtin)\n" " is significant.\n\n" "Example:\n" - " WINEDLLOVERRIDES=\"comdlg32,commdlg=n,b;shell,shell32=b\"\n" ); + " WINEDLLOVERRIDES=\"comdlg32=n,b;shell32,shlwapi=b\"\n" ); exit(0); } diff --git a/documentation/samples/config b/documentation/samples/config index 0efc9c8f3e8..eeb82f76241 100644 --- a/documentation/samples/config +++ b/documentation/samples/config @@ -87,9 +87,7 @@ WINE REGISTRY Version 2 ; some dlls you may want to change "oleaut32" = "builtin, native" "ole32" = "builtin, native" -"commdlg" = "builtin, native" "comdlg32" = "builtin, native" -"shell" = "builtin, native" "shell32" = "builtin, native" "shfolder" = "builtin, native" "shlwapi" = "builtin, native" diff --git a/documentation/wine.conf.man b/documentation/wine.conf.man index 063c4fd909a..3e35e8178ca 100644 --- a/documentation/wine.conf.man +++ b/documentation/wine.conf.man @@ -199,10 +199,12 @@ can be any valid DLL module name. If no extension is specified .dll is assumed. The specified value is a comma separated list of module-types to try to load in that specific order. Case is not important and only the first letter of each type is enough to identify the type n[ative] -or b[uiltin]. Also whitespace is ignored. See also commandline -option -.I --dll -for details about the allowable types. +or b[uiltin]. Also whitespace is ignored. See also the description of +the +.I WINEDLLOVERRIDES +environment variable in +.BR wine (1) +for details about the allowed types. .br The wildcard entry .I """*""" @@ -214,8 +216,6 @@ Examples: .br .I """kernel32""=""builtin""" .br -.I """kernel""=""builtin""" -.br .I """comdlg32""=""native,builtin""" .br .I """*""=""builtin,native""" diff --git a/documentation/wine.man.in b/documentation/wine.man.in index d1338ec3d26..1bd4cb36200 100644 --- a/documentation/wine.man.in +++ b/documentation/wine.man.in @@ -217,28 +217,31 @@ on. Multiple libraries with the same load order can be separated with commas. It is also possible to use specify different loadorders for different libraries by separating the entries by ";". .br +The load order for a 16-bit dll is always defined by the load order of +the 32-bit dll that contains it (which can be identified by looking at +the symbolic link of the 16-bit .dll.so file). For instance if +ole32.dll is configured as builtin, storage.dll will be loaded as +builtin too, since the 32-bit ole32.dll contains the 16-bit +storage.dll. +.br Examples: .RS .TP -WINEDLLOVERRIDES="comdlg32,commdlg=n,b" +WINEDLLOVERRIDES="comdlg32,shell32=n,b" .br -Try to load comdlg32 and commdlg as native windows dll first and try +Try to load comdlg32 and shell32 as native windows dll first and try the builtin version if the native load fails. .TP -WINEDLLOVERRIDES="shell,shell32=n;c:\(rs\(rsfoo\(rs\(rsbar\(rs\(rsbaz=b" +WINEDLLOVERRIDES="comdlg32,shell32=n;c:\(rs\(rsfoo\(rs\(rsbar\(rs\(rsbaz=b" .br -Try to load the libraries shell and shell32 as native windows dlls. Furthermore, if +Try to load the libraries comdlg32 and shell32 as native windows dlls. Furthermore, if an application request to load c:\(rsfoo\(rsbar\(rsbaz.dll load the builtin library baz. .TP -WINEDLLOVERRIDES="comdlg32,commdlg=b,n;shell,shell32=b;comctl32,commctrl=n" +WINEDLLOVERRIDES="comdlg32=b,n;shell32=b;comctl32=n" .br -Try to load comdlg32 and commdlg as builtin first and try the native version -if the builtin load fails; load shell32/shell always as builtin and -comctl32/commctrl always as native. -.br -Note: It is wise to keep dll pairs (comdlg32/commdlg, shell/shell32, etc.) -having exactly the same load order. This will prevent mismatches at runtime. -See also configuration file format below. +Try to load comdlg32 as builtin first and try the native version if +the builtin load fails; load shell32 always as builtin and comctl32 +always as native. .RE .TP .I DISPLAY