Removed "elfdll" load order option and updated documentation.
This commit is contained in:
parent
2af03e45b5
commit
32fcfc24ae
|
@ -150,47 +150,43 @@ debugger.
|
|||
.I format: EXTRA_LD_LIBRARY_PATH=@prefix@/lib/wine[:/more/path/to/search[:...]]
|
||||
.br
|
||||
The path will be appended to any existing LD_LIBRARY_PATH from the
|
||||
environment for the search of elfdlls and .so libraries.
|
||||
environment for the search of .so libraries.
|
||||
.PP
|
||||
.I format: DefaultLoadOrder=native,elfdll,so,builtin
|
||||
.I format: DefaultLoadOrder=native,so,builtin
|
||||
.br
|
||||
A comma separated list of module-types to try to load in that specific
|
||||
order. The DefaultLoadOrder key is used as a fallback when a module is
|
||||
not specified explicitely. If the DefaultLoadOrder key is not found,
|
||||
then the order "native,elfdll,so,builtin" is used.
|
||||
then the order "native,builtin,so" is used.
|
||||
.br
|
||||
Case is not (yet) important and only the first letter of each type is enough
|
||||
to identify the type n[ative], e[lfdll], s[o], b[uiltin]. Also whitespace is
|
||||
ignored. Keep everything in lower case to be sure that your entries keep the
|
||||
same meaning. See also commandline option
|
||||
Case is not (yet) important and only the first letter of each type is
|
||||
enough to identify the type n[ative], s[o], b[uiltin]. Also whitespace
|
||||
is ignored. Keep everything in lower case to be sure that your entries
|
||||
keep the same meaning. See also commandline option
|
||||
.I --dll
|
||||
for details about the allowable types.
|
||||
.PP
|
||||
.B [DllOverrides]
|
||||
.br
|
||||
There are no explicit keys defined other than module/library names. A comma
|
||||
separated list of modules is followed by an assignment of the load order
|
||||
for these specific modules. See above for possible types. You should not
|
||||
specify an extension.
|
||||
There are no explicit keys defined other than module/library names. A
|
||||
module namd is followed by an assignment of the load order for this
|
||||
specific module. See above for possible types. You should not specify
|
||||
an extension.
|
||||
.br
|
||||
Examples:
|
||||
.br
|
||||
.I kernel32, gdi32, user32 = builtin
|
||||
.I kernel32 = builtin
|
||||
.br
|
||||
.I kernel, gdi, user = builtin
|
||||
.I kernel = builtin
|
||||
.br
|
||||
.I comdlg32 = elfdll, native, builtin
|
||||
.I comdlg32 = native, builtin
|
||||
.br
|
||||
.I commdlg = native, builtin
|
||||
.br
|
||||
.I version, ver = elfdll, native, builtin
|
||||
.br
|
||||
Changing the load order of kernel/kernel32 and gdi/gdi32 to
|
||||
anything other than builtin will cause wine to fail because wine cannot
|
||||
use native versions for these libraries (gdi[32] might work native someday,
|
||||
but kernel[32] will never work native). These libraries are also the last
|
||||
to be converted to elfdlls and will live as builtins for quite some time
|
||||
to come.
|
||||
but kernel[32] will never work native).
|
||||
Note that using the native versions of user[32] isn't recommended right now,
|
||||
as these modules face nearly the same problems as kernel/gdi and we only
|
||||
just managed to make them work partially. But trying to use it might get
|
||||
|
@ -200,30 +196,6 @@ Always make sure that you have some kind of strategy in mind when you start
|
|||
fiddling with the current defaults and needless to say that you must know
|
||||
what you are doing.
|
||||
.PP
|
||||
.B [DllPairs]
|
||||
.br
|
||||
This is a simple pairing in the form 'name1 = name2'. It is supposed to
|
||||
identify the dlls that cannot live without eachother unless they are
|
||||
loaded in the same format. Examples are common dialogs and controls,
|
||||
shell, kernel, gdi, user, etc...
|
||||
.br
|
||||
The code will issue a warning if the loadorder of these pairs are different
|
||||
and might cause hard-to-find bugs due to incompatible pairs loaded at
|
||||
run-time. Note that this pairing gives
|
||||
.B no
|
||||
guarantee that the pairs
|
||||
actually get loaded as the same type, nor that the correct versions are
|
||||
loaded (might be implemented later). It merely notes obvious trouble.
|
||||
.br
|
||||
Examples:
|
||||
.br
|
||||
.I kernel = kernel32
|
||||
.br
|
||||
.I commdlg = comdlg32
|
||||
.br
|
||||
The implementation will probably change in a later stage to force pairs to
|
||||
be loaded correctly, but there are also drawbacks with such an approach.
|
||||
.PP
|
||||
.B [serialports]
|
||||
.br
|
||||
.I format: com[12345678] = <devicename>
|
||||
|
|
|
@ -180,14 +180,12 @@ Use a desktop window of the given geometry, e.g. "640x480"
|
|||
.I --display name
|
||||
Use the specified X display
|
||||
.TP
|
||||
.I --dll name[,name[,...]]={native|elfdll|so|builtin}[,{n|e|s|b}[,...]][+...]
|
||||
.I --dll name[,name[,...]]={native|so|builtin}[,{n|s|b}[,...]][+...]
|
||||
Selects the override type and load order of dll used in the loading process
|
||||
for any dll. The default is set in @sysconfdir@/wine.conf or ~/.winerc. There
|
||||
are currently four types of libraries that can be loaded into a process' address
|
||||
are currently three types of libraries that can be loaded into a process' address
|
||||
space: Native windows dlls (
|
||||
.I native
|
||||
), ELF encapsulated windows dlls (
|
||||
.I elfdll
|
||||
), native ELF libraries (
|
||||
.I so
|
||||
)and
|
||||
|
@ -195,7 +193,7 @@ space: Native windows dlls (
|
|||
internal dlls (
|
||||
.I builtin
|
||||
). The type may be abbreviated with the first letter of the type (
|
||||
.I n, e, s, b
|
||||
.I n, s, b
|
||||
). Each sequence of orders must be separated by commas.
|
||||
.br
|
||||
Each dll may have its own specific load order. The load order determines
|
||||
|
@ -218,10 +216,10 @@ the builtin version if the native load fails.
|
|||
Try to load the libraries shell and shell32 as native windows dlls. Furthermore, if
|
||||
an application request to load c:\(rsfoo\(rsbar\(rsbaz.dll load the builtin library baz.
|
||||
.br
|
||||
.I --dll comdlg32,commdlg=e,n:shell,shell32=b+comctl32,commctrl=n
|
||||
.I --dll comdlg32,commdlg=b,n:shell,shell32=b+comctl32,commctrl=n
|
||||
.br
|
||||
Try to load comdlg32 and commdlg as elfdll first and try the native version
|
||||
if the elfdll load fails; load shell32/shell always as builtin and
|
||||
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.)
|
||||
|
@ -311,7 +309,7 @@ appropriate syntax for your shell to enter environment variables you need.
|
|||
.I WINEPREFIX
|
||||
If set, the content of this variable is taken as the name of the directory where
|
||||
.B wine
|
||||
stores its data (usually
|
||||
stores its data (the default is
|
||||
.I $HOME/.wine
|
||||
). This directory contains also the socket, which is used to communicate with the
|
||||
.I wineserver.
|
||||
|
@ -327,6 +325,27 @@ to different values for different
|
|||
processes, it is possible to run a number of truly independent
|
||||
.B wine
|
||||
processes.
|
||||
.TP
|
||||
.I WINESERVER
|
||||
Specifies the path and name of the
|
||||
.B wineserver
|
||||
binary. If not set, a file named "wineserver" is searched in the
|
||||
path and in a few other likely locations.
|
||||
.TP
|
||||
.I WINELOADER
|
||||
Specifies the path and name of the
|
||||
.B wine
|
||||
binary to use to launch new Windows processes. If not set, a binary
|
||||
named "wine" is searched in the path and in a few other likely
|
||||
locations.
|
||||
.TP
|
||||
.I WINEDLLPATH
|
||||
Specifies the path(s) in which to search for builtin dll files. This
|
||||
is a list of directories separated by ":". Builtin dlls are also
|
||||
searched in the directories specified by the standard
|
||||
.I LD_LIBRARY_PATH
|
||||
if they are not found in the directories listed in
|
||||
.I WINEDLLPATH.
|
||||
|
||||
.SH CONFIGURATION FILE
|
||||
.B wine
|
||||
|
@ -350,6 +369,12 @@ is available thanks to the work of many developers. For a listing
|
|||
of the authors, please see the file
|
||||
.B AUTHORS
|
||||
in the top-level directory of the source distribution.
|
||||
.SH COPYRIGHT
|
||||
.B wine
|
||||
can be distributed under the terms of the X11 license. A copy of the
|
||||
license is in the file
|
||||
.B LICENSE
|
||||
in the top-level directory of the source distribution.
|
||||
.SH BUGS
|
||||
.PP
|
||||
A status report on many applications is available from
|
||||
|
@ -415,6 +440,11 @@ The
|
|||
.B wine
|
||||
server
|
||||
.TP
|
||||
.I @prefix@/bin/winedbg
|
||||
The
|
||||
.B wine
|
||||
debugger
|
||||
.TP
|
||||
.I @prefix@/bin/wineclpsrv
|
||||
The
|
||||
.B wine
|
||||
|
@ -435,10 +465,6 @@ User-specific configuration file
|
|||
.I ~/.wine
|
||||
Directory containing user specific data managed by
|
||||
.B wine.
|
||||
.TP
|
||||
.I @prefix@/lib/wine.sym
|
||||
Global symbol table (used in debugger)
|
||||
.SH "SEE ALSO"
|
||||
.BR wine.conf (5),
|
||||
.BR clone (2)
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR wine.conf (5)
|
||||
|
|
|
@ -11,10 +11,9 @@
|
|||
|
||||
#define MODULE_LOADORDER_INVALID 0 /* Must be 0 */
|
||||
#define MODULE_LOADORDER_DLL 1 /* Native DLLs */
|
||||
#define MODULE_LOADORDER_ELFDLL 2 /* Elf-dlls */
|
||||
#define MODULE_LOADORDER_SO 3 /* Native .so libraries */
|
||||
#define MODULE_LOADORDER_BI 4 /* Built-in modules */
|
||||
#define MODULE_LOADORDER_NTYPES 4
|
||||
#define MODULE_LOADORDER_SO 2 /* Native .so libraries */
|
||||
#define MODULE_LOADORDER_BI 3 /* Built-in modules */
|
||||
#define MODULE_LOADORDER_NTYPES 3
|
||||
|
||||
typedef struct module_loadorder {
|
||||
char *modulename;
|
||||
|
|
|
@ -42,9 +42,9 @@ static struct tagDllOverride {
|
|||
{"w32skrnl,wow32", "builtin"},
|
||||
{"advapi32,crtdll,ntdll", "builtin,native"},
|
||||
{"lz32,lzexpand", "builtin,native"},
|
||||
{"version,ver", "elfdll,builtin,native"},
|
||||
{"version,ver", "builtin,native"},
|
||||
/* "new" interface */
|
||||
{"comdlg32,commdlg", "elfdll,builtin,native"},
|
||||
{"comdlg32,commdlg", "builtin,native"},
|
||||
{"shell32,shell", "builtin,native"},
|
||||
{"shlwapi", "native,builtin"},
|
||||
{"shfolder", "builtin,native"},
|
||||
|
@ -149,6 +149,7 @@ static char *get_tok(const char *str, const char *delim)
|
|||
*/
|
||||
static BOOL ParseLoadOrder(char *order, module_loadorder_t *mlo)
|
||||
{
|
||||
static int warn;
|
||||
char *cptr;
|
||||
int n = 0;
|
||||
|
||||
|
@ -171,8 +172,9 @@ static BOOL ParseLoadOrder(char *order, module_loadorder_t *mlo)
|
|||
case 'n': type = MODULE_LOADORDER_DLL; break;
|
||||
|
||||
case 'E': /* Elfdll */
|
||||
case 'e': type = MODULE_LOADORDER_ELFDLL; break;
|
||||
|
||||
case 'e':
|
||||
if (!warn++) MESSAGE("Load order 'elfdll' no longer support, ignored\n");
|
||||
break;
|
||||
case 'S': /* So */
|
||||
case 's': type = MODULE_LOADORDER_SO; break;
|
||||
|
||||
|
@ -337,24 +339,23 @@ endit:
|
|||
* The path will be appended to any existing LD_LIBRARY_PATH from the
|
||||
* environment (see note in code below).
|
||||
*
|
||||
* DefaultLoadOrder=native,elfdll,so,builtin
|
||||
* DefaultLoadOrder=native,so,builtin
|
||||
* A comma separated list of module types to try to load in that specific
|
||||
* order. The DefaultLoadOrder key is used as a fallback when a module is
|
||||
* not specified explicitly. If the DefaultLoadOrder key is not found,
|
||||
* then the order "dll,elfdll,so,bi" is used
|
||||
* then the order "dll,so,bi" is used
|
||||
* The possible module types are:
|
||||
* - native Native windows dll files
|
||||
* - elfdll Dlls encapsulated in .so libraries
|
||||
* - so Native .so libraries mapped to dlls
|
||||
* - builtin Built-in modules
|
||||
*
|
||||
* Case is not important and only the first letter of each type is enough to
|
||||
* identify the type n[ative], e[lfdll], s[o], b[uiltin]. Also whitespace is
|
||||
* identify the type n[ative], s[o], b[uiltin]. Also whitespace is
|
||||
* ignored.
|
||||
* E.g.:
|
||||
* n,el ,s , b
|
||||
* n,s , b
|
||||
* is equal to:
|
||||
* native,elfdll,so,builtin
|
||||
* native,so,builtin
|
||||
*
|
||||
* Section:
|
||||
* [DllOverrides]
|
||||
|
@ -367,9 +368,9 @@ endit:
|
|||
* Examples:
|
||||
* kernel32, gdi32, user32 = builtin
|
||||
* kernel, gdi, user = builtin
|
||||
* comdlg32 = elfdll, native, builtin
|
||||
* comdlg32 = native, builtin
|
||||
* commdlg = native, builtin
|
||||
* version, ver = elfdll, native, builtin
|
||||
* version, ver = native, builtin
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -395,7 +396,7 @@ BOOL MODULE_InitLoadOrder(void)
|
|||
#endif
|
||||
|
||||
/* Get the default load order */
|
||||
nbuffer = PROFILE_GetWineIniString("DllDefaults", "DefaultLoadOrder", "n,b,e,s", buffer, sizeof(buffer));
|
||||
nbuffer = PROFILE_GetWineIniString("DllDefaults", "DefaultLoadOrder", "n,b,s", buffer, sizeof(buffer));
|
||||
if(!nbuffer)
|
||||
{
|
||||
MESSAGE("MODULE_InitLoadOrder: mysteriously read nothing from default loadorder\n");
|
||||
|
@ -431,9 +432,9 @@ BOOL MODULE_InitLoadOrder(void)
|
|||
/* Add the commandline overrides to the pool */
|
||||
if(!ParseCommandlineOverrides())
|
||||
{
|
||||
MESSAGE( "Syntax: -dll name[,name[,...]]={native|elfdll|so|builtin}[,{n|e|s|b}[,...]][+...]\n"
|
||||
MESSAGE( "Syntax: -dll name[,name[,...]]={native|so|builtin}[,{n|s|b}[,...]][+...]\n"
|
||||
" - 'name' is the name of any dll without extension\n"
|
||||
" - the order of loading (native, elfdll, so and builtin) can be abbreviated\n"
|
||||
" - the order of loading (native, so and builtin) can be abbreviated\n"
|
||||
" with the first letter\n"
|
||||
" - different loadorders for different dlls can be specified by seperating the\n"
|
||||
" commandline entries with a '+'\n"
|
||||
|
@ -462,7 +463,7 @@ BOOL MODULE_InitLoadOrder(void)
|
|||
if(TRACE_ON(module))
|
||||
{
|
||||
int i, j;
|
||||
static char types[6] = "-NESB";
|
||||
static char types[] = "-NSB";
|
||||
|
||||
for(i = 0; i < nmodule_loadorder; i++)
|
||||
{
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "debugtools.h"
|
||||
#include "callback.h"
|
||||
#include "loadorder.h"
|
||||
#include "elfdll.h"
|
||||
#include "server.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(module);
|
||||
|
@ -1379,12 +1378,6 @@ WINE_MODREF *MODULE_LoadLibraryExA( LPCSTR libname, HFILE hfile, DWORD flags )
|
|||
pwm = PE_LoadLibraryExA(filename, flags);
|
||||
break;
|
||||
|
||||
case MODULE_LOADORDER_ELFDLL:
|
||||
TRACE("Trying elfdll '%s'\n", filename);
|
||||
if (!(pwm = BUILTIN32_LoadLibraryExA(filename, flags)))
|
||||
pwm = ELFDLL_LoadLibraryExA(filename, flags);
|
||||
break;
|
||||
|
||||
case MODULE_LOADORDER_SO:
|
||||
TRACE("Trying so-library '%s'\n", filename);
|
||||
if (!(pwm = BUILTIN32_LoadLibraryExA(filename, flags)))
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "stackframe.h"
|
||||
#include "debugtools.h"
|
||||
#include "loadorder.h"
|
||||
#include "elfdll.h"
|
||||
#include "server.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(module);
|
||||
|
@ -942,7 +941,6 @@ static HINSTANCE16 MODULE_LoadModule16( LPCSTR libname, BOOL implicit, BOOL lib_
|
|||
/* Fall through */
|
||||
|
||||
case MODULE_LOADORDER_SO: /* This is not supported for NE modules */
|
||||
case MODULE_LOADORDER_ELFDLL: /* This is not supported for NE modules */
|
||||
case MODULE_LOADORDER_INVALID: /* We ignore this as it is an empty entry */
|
||||
hinst = 2;
|
||||
break;
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
#include "windef.h"
|
||||
#include "wine/winbase16.h"
|
||||
#include "wine/library.h"
|
||||
#include "elfdll.h"
|
||||
#include "global.h"
|
||||
#include "neexe.h"
|
||||
#include "module.h"
|
||||
#include "heap.h"
|
||||
#include "main.h"
|
||||
#include "winerror.h"
|
||||
|
|
53
wine.ini
53
wine.ini
|
@ -66,31 +66,40 @@ ShellLinker=wineshelllink
|
|||
|
||||
[DllDefaults]
|
||||
EXTRA_LD_LIBRARY_PATH=${HOME}/wine/cvs/lib
|
||||
DefaultLoadOrder = native, builtin, elfdll, so
|
||||
DefaultLoadOrder = native, builtin, so
|
||||
|
||||
[DllOverrides]
|
||||
kernel32, gdi32, user32 = builtin
|
||||
krnl386, gdi, user = builtin
|
||||
toolhelp = builtin
|
||||
comdlg32, commdlg = elfdll, builtin, native
|
||||
version, ver = elfdll, builtin, native
|
||||
shell32, shell = builtin, native
|
||||
lz32, lzexpand = builtin, native
|
||||
commctrl, comctl32 = builtin, native
|
||||
wsock32, winsock = builtin
|
||||
advapi32, crtdll, ntdll = builtin, native
|
||||
mpr, winspool.drv = builtin, native
|
||||
ddraw, dinput, dsound = builtin, native
|
||||
winmm, mmsystem = builtin
|
||||
msvideo, msvfw32 = builtin, native
|
||||
mcicda.drv, mciseq.drv = builtin, native
|
||||
commdlg = builtin, native
|
||||
comdlg32 = builtin, native
|
||||
ver = builtin, native
|
||||
version = builtin, native
|
||||
shell = builtin, native
|
||||
shell32 = builtin, native
|
||||
lzexpand = builtin, native
|
||||
lz32 = builtin, native
|
||||
comctl32 = builtin, native
|
||||
commctrl = builtin, native
|
||||
wsock32 = builtin
|
||||
winsock = builtin
|
||||
advapi32 = builtin, native
|
||||
crtdll = builtin, native
|
||||
mpr = builtin, native
|
||||
winspool.drv = builtin, native
|
||||
ddraw = builtin, native
|
||||
dinput = builtin, native
|
||||
dsound = builtin, native
|
||||
mmsystem = builtin
|
||||
winmm = builtin
|
||||
msvideo = builtin, native
|
||||
msvfw32 = builtin, native
|
||||
mcicda.drv = builtin, native
|
||||
mciseq.drv = builtin, native
|
||||
mciwave.drv = builtin, native
|
||||
mciavi.drv, mcianim.drv = native, builtin
|
||||
msacm.drv, midimap.drv = builtin, native
|
||||
w32skrnl = builtin
|
||||
wnaspi32, wow32 = builtin
|
||||
system, display, wprocs = builtin
|
||||
wineps = builtin
|
||||
mciavi.drv = native, builtin
|
||||
mcianim.drv = native, builtin
|
||||
msacm.drv = builtin, native
|
||||
midimap.drv = builtin, native
|
||||
wnaspi32 = builtin
|
||||
icmp = builtin
|
||||
|
||||
[x11drv]
|
||||
|
|
Loading…
Reference in New Issue