diff --git a/documentation/wine.conf.man.in b/documentation/wine.conf.man.in index 456e761c813..fbdfb2641a0 100644 --- a/documentation/wine.conf.man.in +++ b/documentation/wine.conf.man.in @@ -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] = diff --git a/documentation/wine.man.in b/documentation/wine.man.in index 2265d7f9dfa..505e4fa984d 100644 --- a/documentation/wine.man.in +++ b/documentation/wine.man.in @@ -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) diff --git a/include/loadorder.h b/include/loadorder.h index 4d6b404e402..f14731d5256 100644 --- a/include/loadorder.h +++ b/include/loadorder.h @@ -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; diff --git a/loader/loadorder.c b/loader/loadorder.c index b1a56f47ee5..87680bfbb87 100644 --- a/loader/loadorder.c +++ b/loader/loadorder.c @@ -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++) { diff --git a/loader/module.c b/loader/module.c index 35b2abe5c33..795691e8e35 100644 --- a/loader/module.c +++ b/loader/module.c @@ -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))) diff --git a/loader/ne/module.c b/loader/ne/module.c index bae492cece7..a2923894809 100644 --- a/loader/ne/module.c +++ b/loader/ne/module.c @@ -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; diff --git a/relay32/builtin32.c b/relay32/builtin32.c index e712b0bd17a..b2920201043 100644 --- a/relay32/builtin32.c +++ b/relay32/builtin32.c @@ -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" diff --git a/wine.ini b/wine.ini index fdc2602bfee..ed57d160dc2 100644 --- a/wine.ini +++ b/wine.ini @@ -66,32 +66,41 @@ 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 -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 -icmp = builtin +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 = native, builtin +mcianim.drv = native, builtin +msacm.drv = builtin, native +midimap.drv = builtin, native +wnaspi32 = builtin +icmp = builtin [x11drv] ; Number of colors to allocate from the system palette