X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=man%2Fmono-config.5;h=94c7b1665bc5a2fd21a17ba52b84d82136a33f1d;hb=bc2340ff3c81fb7f9fabdf5c43142eda685c9198;hp=1229a104b21cb6debc2083272f85d4b8b3ae204c;hpb=6b6435d1b3206b0162c37e5ecce8d9a699fe6467;p=mono.git diff --git a/man/mono-config.5 b/man/mono-config.5 index 1229a104b21..94c7b1665bc 100644 --- a/man/mono-config.5 +++ b/man/mono-config.5 @@ -14,7 +14,8 @@ 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, too. +/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 @@ -23,6 +24,10 @@ contained inside a .B 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 directive You use the dllmap directive to map shared libraries referenced by P/Invoke in your assemblies to a different shared library. @@ -33,7 +38,9 @@ The element takes two attributes: .TP .I dll -This should be the same string used in the DllImport attribute +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: @@ -53,20 +60,58 @@ element takes 3 attributes: This is the target library, where the function can be found. .TP .I name -This is the name of the fuction as it appears in the metadata: it is the 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 - + .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 @@ -76,11 +121,15 @@ This one maps the following C# method: to .B differentfunction in -.B libdifferent.so. +.B libdifferent.so +, but to the same function in the library +.B libanother.so +when running under the Solaris and FreeBSD operating systems. .nf + .fi