a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
139 lines
4.4 KiB
Groff
139 lines
4.4 KiB
Groff
.\"
|
|
.\" mono-config configuration page.
|
|
.\" (C) Ximian, Inc.
|
|
.\" Author:
|
|
.\" Miguel de Icaza (miguel@gnu.org)
|
|
.\" Paolo Molaro (lupus@ximian.com)
|
|
.\"
|
|
.TH Mono "Mono 1.0"
|
|
.SH NAME
|
|
mono-config \- Mono runtime file format configuration
|
|
.SH DESCRIPTION
|
|
The Mono runtime will load configuration data from the
|
|
installation prefix /etc/mono/config file, the ~/.mono/config or from
|
|
the file pointed by the MONO_CONFIG environment variable.
|
|
.PP
|
|
For each assembly loaded a config file with the name:
|
|
/path/to/the/assembly.exe.config is loaded as well as the
|
|
~/.mono/assemblies/ASSEMBLY/ASSEMBLY.EXT.config file.
|
|
.PP
|
|
This file controls the behavior of the runtime.
|
|
.PP
|
|
The file contains an XML-like file with various sections, all of them
|
|
contained inside a
|
|
.B<configuration>
|
|
section (It actually uses GMarkup
|
|
to parse the file).
|
|
.PP
|
|
This page describes the Unix-specific and Mono-specific extensions to
|
|
the configuration file; For complete details, see the
|
|
http://www.mono-project.com/Config web page.
|
|
.SH <dllmap> directive
|
|
You use the dllmap directive to map shared libraries referenced by
|
|
P/Invoke in your assemblies to a different shared library.
|
|
.PP
|
|
This is typically used to map Windows libraries to Unix library names.
|
|
The
|
|
.B dllmap
|
|
element takes two attributes:
|
|
.TP
|
|
.I dll
|
|
This should be the same string used in the DllImport attribute, optionally
|
|
prefixed with "i:" to indicate that the string must be matched in a
|
|
case-insensitive way
|
|
.TP
|
|
.I target
|
|
This should be the name of the library where the function can be found:
|
|
this name should be suitable for use with the platform native shared library
|
|
loading routines (dlopen etc.), so you may want to check the manpages for that, too.
|
|
.SH <dllentry> directive
|
|
This directive can be used to map a specific dll/function pair to a different
|
|
library and also a different function name. It should appear inside a
|
|
.B dllmap
|
|
element with only the dll attribute specified.
|
|
.PP
|
|
The
|
|
.B dllentry
|
|
element takes 3 attributes:
|
|
.TP
|
|
.I dll
|
|
This is the target library, where the function can be found.
|
|
.TP
|
|
.I name
|
|
This is the name of the function as it appears in the metadata: it is the name
|
|
of the P/Invoke method.
|
|
.TP
|
|
.I target
|
|
This is the name of the function to lookup instead of the name specified in the
|
|
P/Invoke method.
|
|
.SH Mapping based on operating system and cpu
|
|
Both the
|
|
.B dllmap
|
|
and the
|
|
.B dllentry
|
|
elements allow the following two attributes which make it easy to use a single
|
|
configuration file and support multiple operating systems and architectures with
|
|
different mapping requirements:
|
|
.TP
|
|
.I os
|
|
This is the name of the operating system for which the mapping should be applied.
|
|
Allowed values are: linux, osx, solaris, freebsd, openbsd, netbsd, windows, aix, hpux.
|
|
.TP
|
|
.I cpu
|
|
This is the name of the architecture for which the mapping should be applied.
|
|
Allowed values are: x86, x86-64, sparc, ppc, s390, s390x, arm, mips,
|
|
alpha, hppa, ia64.
|
|
.TP
|
|
.I wordsize
|
|
This is the size of registers on the target architecture, it can be
|
|
either 32 or 64.
|
|
.PP
|
|
The attribute value for both attributes can be a comma-separated list of the allowed
|
|
values. Additionally, the first character may be a
|
|
.I '!'
|
|
to reverse the meaning. An attribute value of "!windows,osx", for example, would mean
|
|
that the entry is considered on all operating systems, except on Windows and OS X.
|
|
No spaces are allowed in any part of the value.
|
|
.PP
|
|
Note that later entries will override the entries defined earlier in the file.
|
|
.SH EXAMPLES
|
|
The following example maps references to the `cygwin1.dll' shared
|
|
library to the `libc.so.6' file.
|
|
.nf
|
|
<configuration>
|
|
<dllmap dll="i:cygwin1.dll" target="libc.so.6"/>
|
|
</configuration>
|
|
.fi
|
|
The library name in the DllImport attribute is allowed to be in any
|
|
case variant, like the following examples:
|
|
.nf
|
|
.nf
|
|
[DllImport ("cygwin1.dll")]
|
|
[DllImport ("Cygwin1.dll")]
|
|
[DllImport ("cygwiN1.Dll")]
|
|
.fi
|
|
.PP
|
|
This one maps the following C# method:
|
|
.nf
|
|
[DllImport ("libc")]
|
|
static extern void somefunction ();
|
|
.fi
|
|
to
|
|
.B differentfunction
|
|
in
|
|
.B libdifferent.so
|
|
, but to the same function in the library
|
|
.B libanother.so
|
|
when running under the Solaris and FreeBSD operating systems.
|
|
.nf
|
|
<configuration>
|
|
<dllmap dll="libc">
|
|
<dllentry dll="libdifferent.so" name="somefunction" target="differentfunction" />
|
|
<dllentry os="solaris,freebsd" dll="libanother.so" name="somefunction" target="differentfunction" />
|
|
</dllmap>
|
|
</configuration>
|
|
.fi
|
|
|
|
.SH SEE ALSO
|
|
.BR mono(1), monodis(1), mint(1)
|