Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
32fcfc24
Commit
32fcfc24
authored
Nov 30, 2000
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed "elfdll" load order option and updated documentation.
parent
2af03e45
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
110 additions
and
112 deletions
+110
-112
wine.conf.man.in
documentation/wine.conf.man.in
+15
-43
wine.man.in
documentation/wine.man.in
+41
-15
loadorder.h
include/loadorder.h
+3
-4
loadorder.c
loader/loadorder.c
+17
-16
module.c
loader/module.c
+0
-7
module.c
loader/ne/module.c
+0
-2
builtin32.c
relay32/builtin32.c
+1
-1
wine.ini
wine.ini
+33
-24
No files found.
documentation/wine.conf.man.in
View file @
32fcfc24
...
...
@@ -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
i
gnored. 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
i
s 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>
...
...
documentation/wine.man.in
View file @
32fcfc24
...
...
@@ -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)
include/loadorder.h
View file @
32fcfc24
...
...
@@ -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
;
...
...
loader/loadorder.c
View file @
32fcfc24
...
...
@@ -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
]
=
"-NE
SB"
;
static
char
types
[
]
=
"-N
SB"
;
for
(
i
=
0
;
i
<
nmodule_loadorder
;
i
++
)
{
...
...
loader/module.c
View file @
32fcfc24
...
...
@@ -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
)))
...
...
loader/ne/module.c
View file @
32fcfc24
...
...
@@ -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
;
...
...
relay32/builtin32.c
View file @
32fcfc24
...
...
@@ -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"
...
...
wine.ini
View file @
32fcfc24
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment