Imported Upstream version 5.18.0.142

Former-commit-id: 7467d4b717762eeaf652d77f1486dd11ffb1ff1f
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-09 08:20:59 +00:00
parent e52655b4dc
commit 0abdbe5a7d
1547 changed files with 93792 additions and 47893 deletions

View File

@@ -183,6 +183,8 @@ CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CXX_ADD_CFLAGS = @CXX_ADD_CFLAGS@
CXX_REMOVE_CFLAGS = @CXX_REMOVE_CFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFAULT_PROFILE = @DEFAULT_PROFILE@
DEFS = @DEFS@
@@ -198,6 +200,7 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
EXTERNAL_LLVM_CONFIG = @EXTERNAL_LLVM_CONFIG@
FGREP = @FGREP@
GDKX11 = @GDKX11@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -238,11 +241,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LLVM_CFLAGS = @LLVM_CFLAGS@
LLVM_CONFIG = @LLVM_CONFIG@
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@
LLVM_LDFLAGS = @LLVM_LDFLAGS@
LLVM_LIBS = @LLVM_LIBS@
LLVM_CODEGEN_LIBS = @LLVM_CODEGEN_LIBS@
LN_S = @LN_S@
LTCOMPILE = @LTCOMPILE@
LTCXXCOMPILE = @LTCXXCOMPILE@

View File

@@ -1178,19 +1178,33 @@ If set, tells mono to attempt using native asynchronous I/O services. If not
set, a default select/poll implementation is used. Currently epoll and kqueue
are supported.
.TP
\fBMONO_THREADS_SUSPEND\fR
Selects a mechanism that Mono will use to suspend threads. May be set to
"preemptive", "coop", or "hybrid". Threads may need to be suspended by the
debugger, or using some .NET threading APIs, and most commonly when the SGen
garbage collector needs to stop all threads during a critical phase of garbage
collection. Preemptive mode is the mode that Mono has used historically, going
back to the Boehm days, where the garbage collector would run at any point and
suspend execution of all threads as required to perform a garbage collection.
The cooperative mode on the other hand requires the cooperation of all threads
to stop at a safe point. This makes for an easier to debug garbage collector.
As of Mono 4.3.0 it is a work in progress, and while it works, it has not been
used extensively. This option enables the feature and allows us to find spots
that need to be tuned for this mode of operation. Hybrid mode is a combination
of the two that retains better compatability with scenarios where Mono is
embedded in another application: threads that are running managed code or code
that comprises the Mono runtime will be cooperatively suspended, while threads
running embedder code will be preemptively suspended.
Alternatively, coop and hybrid mode can be enabled at compile time by using the
--enable-cooperative-suspend or --enable-hybrid-suspend flags, respectively,
when calling configure. The \fBMONO_THREADS_SUSPEND\fR environment variable
takes priority over the compiled default.
.TP
\fBMONO_ENABLE_COOP_SUSPEND\fR
This makes the Mono runtime and the SGen garbage collector run in cooperative
mode as opposed to run on preemptive mode. Preemptive mode is the mode
that Mono has used historically, going back to the Boehm days, where the
garbage collector would run at any point and suspend execution of all
threads as required to perform a garbage collection. The cooperative mode
on the other hand requires the cooperation of all threads to stop at a
safe point. This makes for an easier to debug garbage collector. As
of Mono 4.3.0 it is a work in progress, and while it works, it has not
been used extensively. This option enabled the feature and allows us to
find spots that need to be tuned for this mode of operation. Alternatively,
this mode can be enabled at compile time by using the --enable-cooperative-suspend
flag when calling configure.
This environment variable is obsolete, but retained for backward compatibility.
Use \fBMONO_THREADS_SUSPEND\fR set to "coop" instead. Note that if configure flags
were provided to enable cooperative or hybrid suspend, this variable is ignored.
.TP
\fBMONO_ENV_OPTIONS\fR
This environment variable allows you to pass command line arguments to
@@ -1883,7 +1897,7 @@ for example, to see managed frame names on gdb backtraces.
\fBMONO_VERBOSE_METHOD\fR
Enables the maximum JIT verbosity for the specified method. This is
very helpfull to diagnose a miscompilation problems of a specific
method. This can be a comma-separated list of method names to
method. This can be a semicolon-separated list of method names to
match. If the name is simple, this applies to any method with that
name, otherwise you can use a mono method description (see the section
METHOD DESCRIPTIONS).