Imported Upstream version 4.2.0.179
Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
This commit is contained in:
parent
183bba2c9a
commit
6992685b86
3
AUTHORS
3
AUTHORS
@ -1,3 +0,0 @@
|
|||||||
Miguel de Icaza (miguel@ximian.com)
|
|
||||||
Paolo Molaro (lupus@ximian.com)
|
|
||||||
Dietmar Maurer (dietmar@ximian.com)
|
|
4
LICENSE
4
LICENSE
@ -8,8 +8,8 @@ For comments, corrections and updates, please contact mono@xamarin.com
|
|||||||
|
|
||||||
Parts of Mono are dual licensed, they are available to the
|
Parts of Mono are dual licensed, they are available to the
|
||||||
public in GPL or LGPL forms, but we also offer those pieces
|
public in GPL or LGPL forms, but we also offer those pieces
|
||||||
under commercial terms from Xamarin for the cases wher the GPL
|
under commercial terms from Xamarin for the cases where the
|
||||||
and the LGPL are not suitable.
|
GPL and the LGPL are not suitable.
|
||||||
|
|
||||||
We have tried to pick the licenses that will maximize adoption
|
We have tried to pick the licenses that will maximize adoption
|
||||||
of Mono, so we tend to use the MIT X11 or LGPL liceses.
|
of Mono, so we tend to use the MIT X11 or LGPL liceses.
|
||||||
|
10
Makefile.am
10
Makefile.am
@ -10,19 +10,11 @@ SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scr
|
|||||||
## 'tools' is not normally built
|
## 'tools' is not normally built
|
||||||
DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
||||||
else
|
else
|
||||||
if ONLY_MONOTOUCH
|
|
||||||
SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
|
|
||||||
else
|
|
||||||
if ONLY_XAMMAC
|
|
||||||
SUBDIRS = $(libgc_dir) eglib/src mono runtime
|
|
||||||
else
|
|
||||||
SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
|
SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
|
||||||
# Keep in sync with SUBDIRS
|
# Keep in sync with SUBDIRS
|
||||||
## 'tools' is not normally built
|
## 'tools' is not normally built
|
||||||
DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
all: update_submodules
|
all: update_submodules
|
||||||
|
|
||||||
@ -36,11 +28,9 @@ EXTRA_DIST= \
|
|||||||
README.md \
|
README.md \
|
||||||
LICENSE \
|
LICENSE \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
build-mingw32.sh \
|
|
||||||
mkinstalldirs \
|
mkinstalldirs \
|
||||||
mono-uninstalled.pc.in \
|
mono-uninstalled.pc.in \
|
||||||
winconfig.h \
|
winconfig.h \
|
||||||
mono-core.spec \
|
|
||||||
external
|
external
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
||||||
|
18
Makefile.in
18
Makefile.in
@ -83,9 +83,9 @@ subdir = .
|
|||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/configure $(am__configure_deps) \
|
$(top_srcdir)/configure $(am__configure_deps) \
|
||||||
$(srcdir)/config.h.in mkinstalldirs \
|
$(srcdir)/config.h.in mkinstalldirs \
|
||||||
$(srcdir)/mono-core.spec.in $(srcdir)/mono-uninstalled.pc.in \
|
$(srcdir)/mono-uninstalled.pc.in COPYING.LIB ChangeLog NEWS \
|
||||||
AUTHORS COPYING.LIB ChangeLog NEWS compile config.guess \
|
compile config.guess config.rpath config.sub install-sh \
|
||||||
config.rpath config.sub depcomp install-sh missing ltmain.sh
|
missing ltmain.sh
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \
|
||||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||||
@ -101,7 +101,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
|||||||
configure.lineno config.status.lineno
|
configure.lineno config.status.lineno
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
CONFIG_HEADER = config.h
|
CONFIG_HEADER = config.h
|
||||||
CONFIG_CLEAN_FILES = mono-core.spec mono-uninstalled.pc
|
CONFIG_CLEAN_FILES = mono-uninstalled.pc
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
AM_V_P = $(am__v_P_@AM_V@)
|
AM_V_P = $(am__v_P_@AM_V@)
|
||||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||||
@ -413,12 +413,10 @@ top_srcdir = @top_srcdir@
|
|||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
AM_CFLAGS = $(WERROR_CFLAGS)
|
AM_CFLAGS = $(WERROR_CFLAGS)
|
||||||
MONOTOUCH_SUBDIRS = $(libgc_dir) eglib/src mono
|
MONOTOUCH_SUBDIRS = $(libgc_dir) eglib/src mono
|
||||||
@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_FALSE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
|
@CROSS_COMPILING_FALSE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
|
||||||
@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_TRUE@SUBDIRS = $(libgc_dir) eglib/src mono runtime
|
|
||||||
@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_TRUE@SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
|
|
||||||
@CROSS_COMPILING_TRUE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
|
@CROSS_COMPILING_TRUE@SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
|
||||||
# Keep in sync with SUBDIRS
|
# Keep in sync with SUBDIRS
|
||||||
@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_FALSE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
@CROSS_COMPILING_FALSE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
||||||
# Keep in sync with SUBDIRS
|
# Keep in sync with SUBDIRS
|
||||||
@CROSS_COMPILING_TRUE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
@CROSS_COMPILING_TRUE@DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
|
||||||
SUBMODULE_ERROR = 'Could not recursively update all git submodules. You may experience compilation problems if some submodules are out of date'
|
SUBMODULE_ERROR = 'Could not recursively update all git submodules. You may experience compilation problems if some submodules are out of date'
|
||||||
@ -426,11 +424,9 @@ EXTRA_DIST = \
|
|||||||
README.md \
|
README.md \
|
||||||
LICENSE \
|
LICENSE \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
build-mingw32.sh \
|
|
||||||
mkinstalldirs \
|
mkinstalldirs \
|
||||||
mono-uninstalled.pc.in \
|
mono-uninstalled.pc.in \
|
||||||
winconfig.h \
|
winconfig.h \
|
||||||
mono-core.spec \
|
|
||||||
external
|
external
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
||||||
@ -498,8 +494,6 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|||||||
|
|
||||||
distclean-hdr:
|
distclean-hdr:
|
||||||
-rm -f config.h stamp-h1
|
-rm -f config.h stamp-h1
|
||||||
mono-core.spec: $(top_builddir)/config.status $(srcdir)/mono-core.spec.in
|
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
|
||||||
mono-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/mono-uninstalled.pc.in
|
mono-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/mono-uninstalled.pc.in
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
|
||||||
|
7
NEWS
7
NEWS
@ -1,8 +1,3 @@
|
|||||||
Release notes for Mono are hosted on the web, please see:
|
Release notes for Mono are hosted on the web, please see:
|
||||||
|
|
||||||
http://www.go-mono.com/archive/VERSION
|
http://www.mono-project.com/docs/about-mono/releases/
|
||||||
|
|
||||||
Where version is the version of this Mono package, for example:
|
|
||||||
|
|
||||||
http://www.go-mono.com/archive/1.1.9
|
|
||||||
|
|
||||||
|
138
README.md
138
README.md
@ -1,5 +1,9 @@
|
|||||||
Mono is a software platform designed to allow developers to easily create cross platform applications.
|
Mono is a software platform designed to allow developers to easily
|
||||||
It is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
|
create cross platform applications. It is an open source
|
||||||
|
implementation of Microsoft's .NET Framework based on the ECMA
|
||||||
|
standards for C# and the Common Language Runtime.
|
||||||
|
|
||||||
|
[](https://gitter.im/mono/mono?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
1. [Compilation and Installation](#compilation-and-installation)
|
1. [Compilation and Installation](#compilation-and-installation)
|
||||||
2. [Using Mono](#using-mono)
|
2. [Using Mono](#using-mono)
|
||||||
@ -7,23 +11,34 @@ It is an open source implementation of Microsoft's .NET Framework based on the E
|
|||||||
4. [Contributing to Mono](#contributing-to-mono)
|
4. [Contributing to Mono](#contributing-to-mono)
|
||||||
5. [Reporting bugs](#reporting-bugs)
|
5. [Reporting bugs](#reporting-bugs)
|
||||||
6. [Configuration Options](#configuration-options)
|
6. [Configuration Options](#configuration-options)
|
||||||
|
7. [Working with Submodules](#working-with-submodules)
|
||||||
|
|
||||||
**Build Status**
|
**Build Status**
|
||||||
|
|
||||||
| debian-amd64 | debian-i386 | debian-ppc64el | centos-s390x | windows-amd64 |
|
Officially supported architectures:
|
||||||
|:-----------------------:|:----------------------:|:-------------------------:|:-----------------------:|:-------------------------:|
|
|
||||||
| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-ppc64el][5]][6] | [![centos-s390x][7]][8] | [![windows-amd64][9]][10] |
|
| debian-amd64 | debian-i386 | debian-armel | debian-armhf | windows-amd64 |
|
||||||
|
|-------------------------|------------------------|-------------------------|-------------------------|---------------------------|
|
||||||
|
| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-armel][5]][6] | [![debian-armhf][7]][8] | [![windows-amd64][9]][10] |
|
||||||
|
|
||||||
|
Community supported architectures:
|
||||||
|
|
||||||
|
| centos-s390x |
|
||||||
|
|---------------------------|
|
||||||
|
| [![centos-s390x][11]][12] |
|
||||||
|
|
||||||
[1]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/badge/icon
|
[1]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/badge/icon
|
||||||
[2]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/
|
[2]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/
|
||||||
[3]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/badge/icon
|
[3]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/badge/icon
|
||||||
[4]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/
|
[4]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/
|
||||||
[5]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=debian-ppc64el/badge/icon
|
[5]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/badge/icon
|
||||||
[6]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=debian-ppc64el/
|
[6]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/
|
||||||
[7]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=centos-s390x/badge/icon
|
[7]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/badge/icon
|
||||||
[8]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=centos-s390x/
|
[8]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/
|
||||||
[9]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
|
[9]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
|
||||||
[10]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
|
[10]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
|
||||||
|
[11]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=nealef-s390x-1/badge/icon
|
||||||
|
[12]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=nealef-s390x-1/
|
||||||
|
|
||||||
Compilation and Installation
|
Compilation and Installation
|
||||||
============================
|
============================
|
||||||
@ -55,7 +70,7 @@ which contains just enough to run the 'mcs' compiler. You do this with:
|
|||||||
This will download and place the files appropriately so that you can then
|
This will download and place the files appropriately so that you can then
|
||||||
just run:
|
just run:
|
||||||
|
|
||||||
make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/basic.exe
|
make
|
||||||
|
|
||||||
The build will then use the files downloaded by `make get-monolite-latest`.
|
The build will then use the files downloaded by `make get-monolite-latest`.
|
||||||
|
|
||||||
@ -130,54 +145,50 @@ runtime as an embedded library.
|
|||||||
|
|
||||||
* `scripts/` - Scripts used to invoke Mono and the corresponding program.
|
* `scripts/` - Scripts used to invoke Mono and the corresponding program.
|
||||||
|
|
||||||
* `../olive/` - Incubation code from [Olive](https://github.com/mono/olive).
|
|
||||||
|
|
||||||
* If the directory ../olive is present (as an
|
|
||||||
independent checkout) from the Mono module, that
|
|
||||||
directory is automatically configured to share the
|
|
||||||
same prefix than this module gets.
|
|
||||||
|
|
||||||
Contributing to Mono
|
Contributing to Mono
|
||||||
====================
|
====================
|
||||||
|
|
||||||
Before submitting changes to Mono, please review the [contribution guidelines](http://www.mono-project.com/community/contributing/).
|
Before submitting changes to Mono, please review the [contribution
|
||||||
Please pay particular attention to the [Important Rules](http://www.mono-project.com/community/contributing/#important-rules) section.
|
guidelines](http://www.mono-project.com/community/contributing/).
|
||||||
|
Please pay particular attention to the [Important
|
||||||
|
Rules](http://www.mono-project.com/community/contributing/#important-rules)
|
||||||
|
section.
|
||||||
|
|
||||||
Reporting bugs
|
Reporting bugs
|
||||||
==============
|
==============
|
||||||
|
|
||||||
To submit bug reports, please use [Xamarin's Bugzilla](https://bugzilla.xamarin.com/)
|
To submit bug reports, please use [Xamarin's
|
||||||
|
Bugzilla](https://bugzilla.xamarin.com/)
|
||||||
|
|
||||||
Please use the search facility to ensure the same bug hasn't already
|
Please use the search facility to ensure the same bug hasn't already
|
||||||
been submitted and follow our [guidelines](http://www.mono-project.com/community/bugs/make-a-good-bug-report/)
|
been submitted and follow our
|
||||||
|
[guidelines](http://www.mono-project.com/community/bugs/make-a-good-bug-report/)
|
||||||
on how to make a good bug report.
|
on how to make a good bug report.
|
||||||
|
|
||||||
Configuration Options
|
Configuration Options
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
The following are the configuration options that someone
|
The following are the configuration options that someone building Mono
|
||||||
building Mono might want to use:
|
might want to use:
|
||||||
|
|
||||||
* `--with-sgen=yes,no` - Generational GC support: Used to enable or disable the
|
* `--with-sgen=yes,no` - Generational GC support: Used to enable or
|
||||||
compilation of a Mono runtime with the SGen garbage collector.
|
disable the compilation of a Mono runtime with the SGen garbage
|
||||||
|
collector.
|
||||||
|
|
||||||
* On platforms that support it, after building Mono, you will have
|
* On platforms that support it, after building Mono, you will have
|
||||||
both a `mono` binary and a `mono-sgen` binary. `mono` uses Boehm, while
|
both a `mono` binary and a `mono-sgen` binary. `mono` uses Boehm,
|
||||||
`mono-sgen` uses the Simple Generational GC.
|
while `mono-sgen` uses the Simple Generational GC.
|
||||||
|
|
||||||
* `--with-gc=[included, boehm, none]` - Selects the default Boehm garbage
|
* `--with-gc=[included, boehm, none]` - Selects the default Boehm
|
||||||
collector engine to use.
|
garbage collector engine to use.
|
||||||
|
|
||||||
* *included*: (*slighty modified Boehm GC*)
|
* *included*: (*slighty modified Boehm GC*) This is the default
|
||||||
This is the default value for the Boehm GC, and it's
|
value for the Boehm GC, and it's the most feature complete, it will
|
||||||
the most feature complete, it will allow Mono
|
allow Mono to use typed allocations and support the debugger.
|
||||||
to use typed allocations and support the debugger.
|
|
||||||
|
|
||||||
* *boehm*:
|
* *boehm*: This is used to use a system-install Boehm GC, it is
|
||||||
This is used to use a system-install Boehm GC,
|
useful to test new features available in Boehm GC, but we do not
|
||||||
it is useful to test new features available in
|
recommend that people use this, as it disables a few features.
|
||||||
Boehm GC, but we do not recommend that people
|
|
||||||
use this, as it disables a few features.
|
|
||||||
|
|
||||||
* *none*:
|
* *none*:
|
||||||
Disables the inclusion of a garbage collector.
|
Disables the inclusion of a garbage collector.
|
||||||
@ -436,3 +447,54 @@ http://code.google.com/p/nativeclient/
|
|||||||
|
|
||||||
* Currently this is used with Mono's AOT engine as
|
* Currently this is used with Mono's AOT engine as
|
||||||
Native Client does not support JIT engines yet.
|
Native Client does not support JIT engines yet.
|
||||||
|
|
||||||
|
Working With Submodules
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Mono references several external git submodules, for example
|
||||||
|
a fork of Microsoft's reference source code that has been altered
|
||||||
|
to be suitable for use with the Mono runtime.
|
||||||
|
|
||||||
|
This section describes how to use it.
|
||||||
|
|
||||||
|
An initial clone should be done recursively so all submodules will also be
|
||||||
|
cloned in a single pass:
|
||||||
|
|
||||||
|
$ git clone --recursive git@github.com:mono/mono
|
||||||
|
|
||||||
|
Once cloned, submodules can be updated to pull down the latest changes.
|
||||||
|
This can also be done after an initial non-recursive clone:
|
||||||
|
|
||||||
|
$ git submodule update --init --recursive
|
||||||
|
|
||||||
|
To pull external changes into a submodule:
|
||||||
|
|
||||||
|
$ cd <submodule>
|
||||||
|
$ git pull origin <branch>
|
||||||
|
$ cd <top-level>
|
||||||
|
$ git add <submodule>
|
||||||
|
$ git commit
|
||||||
|
|
||||||
|
By default, submodules are detached because they point to a specific commit.
|
||||||
|
Use `git checkout` to move back to a branch before making changes:
|
||||||
|
|
||||||
|
$ cd <submodule>
|
||||||
|
$ git checkout <branch>
|
||||||
|
# work as normal; the submodule is a normal repo
|
||||||
|
$ git commit/push new changes to the repo (submodule)
|
||||||
|
|
||||||
|
$ cd <top-level>
|
||||||
|
$ git add <submodule> # this will record the new commits to the submodule
|
||||||
|
$ git commit
|
||||||
|
|
||||||
|
To switch the repo of a submodule (this should not be a common or normal thing
|
||||||
|
to do at all), first edit `.gitmodules` to point to the new location, then:
|
||||||
|
|
||||||
|
$ git submodule sync -- <path of the submodule>
|
||||||
|
$ git submodule update --recursive
|
||||||
|
$ git checkout <desired new hash or branch>
|
||||||
|
|
||||||
|
The desired output diff is a change in `.gitmodules` to reflect the
|
||||||
|
change in the remote URL, and a change in /<submodule> where you see
|
||||||
|
the desired change in the commit hash.
|
||||||
|
|
||||||
|
227
build-mingw32.sh
227
build-mingw32.sh
@ -1,227 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
CURDIR="`pwd`"
|
|
||||||
MINGW=i386-mingw32msvc
|
|
||||||
CROSS_DIR=/opt/cross/$MINGW
|
|
||||||
EXTRA_CROSS_DIR=
|
|
||||||
INSTALL_DESTDIR="$CURDIR/mono-win32"
|
|
||||||
PROFILES="default net_2_0 net_3_5 net_4_0 net_4_5 moonlight"
|
|
||||||
TEMPORARY_PKG_CONFIG_DIR=/tmp/$RANDOM-pkg-config-$RANDOM
|
|
||||||
ORIGINAL_PATH="$PATH"
|
|
||||||
|
|
||||||
export CPPFLAGS_FOR_EGLIB CFLAGS_FOR_EGLIB CPPFLAGS_FOR_LIBGC CFLAGS_FOR_LIBGC
|
|
||||||
|
|
||||||
function cleanup ()
|
|
||||||
{
|
|
||||||
if [ -d "$TEMPORARY_PKG_CONFIG_DIR" ]; then
|
|
||||||
rm -rf "$TEMPORARY_PKG_CONFIG_DIR"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_pkg_config_dir ()
|
|
||||||
{
|
|
||||||
local DIR="$1"
|
|
||||||
local DIR_PREFIX="$2"
|
|
||||||
|
|
||||||
if [ ! -d "$DIR" ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
install -d -m 755 "$TEMPORARY_PKG_CONFIG_DIR"
|
|
||||||
for pc in "$DIR"/*.pc; do
|
|
||||||
if [ -f $pc ]; then
|
|
||||||
pcname="`basename $pc`"
|
|
||||||
sed -e "s;^prefix=.*;prefix=$DIR_PREFIX;g" < $pc > "$TEMPORARY_PKG_CONFIG_DIR"/$pcname
|
|
||||||
fi;
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "$CROSS_PKG_CONFIG_DIR" ]; then
|
|
||||||
CROSS_PKG_CONFIG_DIR="$TEMPORARY_PKG_CONFIG_DIR"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function show_build_info ()
|
|
||||||
{
|
|
||||||
cat <<EOF
|
|
||||||
Installation prefix: $MONO_PREFIX
|
|
||||||
CPPFLAGS: ${CPPFLAGS:=not set}
|
|
||||||
LDFLAGS: ${LDFLAGS:=not set}
|
|
||||||
MONO_PATH: ${MONO_PATH:=not set}
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
function setup ()
|
|
||||||
{
|
|
||||||
local pcname
|
|
||||||
|
|
||||||
CROSS_BIN_DIR="$CROSS_DIR/bin"
|
|
||||||
CROSS_DLL_DIR="$CROSS_DIR/bin"
|
|
||||||
PATH=$CROSS_BIN_DIR:$PATH
|
|
||||||
|
|
||||||
MONO_VERSION=`grep AC_INIT configure.ac | cut -d ',' -f 2|tr -d '\[ \]'`
|
|
||||||
|
|
||||||
if [ -d ./.git ]; then
|
|
||||||
MONO_GIT_COMMIT="`git log -1 --format=format:%t`"
|
|
||||||
MONO_GIT_BRANCH="`git branch|grep '\*'|cut -d ' ' -f 2|tr -d '\)'|tr -d '\('`"
|
|
||||||
MONO_RELEASE="$MONO_VERSION-$MONO_GIT_BRANCH-$MONO_GIT_COMMIT"
|
|
||||||
else
|
|
||||||
MONO_RELEASE="$MONO_VERSION"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MONO_PREFIX="$MONO_PREFIX/mono-$MONO_RELEASE"
|
|
||||||
|
|
||||||
NOCONFIGURE=yes
|
|
||||||
export NOCONFIGURE
|
|
||||||
|
|
||||||
check_pkg_config_dir "$CROSS_DIR/lib/pkgconfig" "$CROSS_DIR"
|
|
||||||
|
|
||||||
if [ -n "$EXTRA_CROSS_DIR" -a -d "$EXTRA_CROSS_DIR" ]; then
|
|
||||||
if [ -d "$EXTRA_CROSS_DIR/bin" ]; then
|
|
||||||
PATH="$EXTRA_CROSS_DIR/bin":$PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_pkg_config_dir "$EXTRA_CROSS_DIR/lib/pkgconfig" "$EXTRA_CROSS_DIR"
|
|
||||||
|
|
||||||
if [ -d "$EXTRA_CROSS_DIR/include" ]; then
|
|
||||||
if [ -z "$CPPFLAGS" ]; then
|
|
||||||
CPPFLAGS="-I \"$EXTRA_CROSS_DIR/include\""
|
|
||||||
else
|
|
||||||
CPPFLAGS="-I \"$EXTRA_CROSS_DIR/include\" $CFLAGS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$EXTRA_CROSS_DIR/lib" ]; then
|
|
||||||
if [ -z "$LDFLAGS" ]; then
|
|
||||||
LDFLAGS="-I \"$EXTRA_CROSS_DIR/lib\""
|
|
||||||
else
|
|
||||||
LDFLAGS="-I \"$EXTRA_CROSS_DIR/lib\" $LDFLAGS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$EXTRA_CROSS_DIR/share/aclocal" ]; then
|
|
||||||
if [ -z "$MONO_PATH" ]; then
|
|
||||||
MONO_PATH="\"$EXTRA_CROSS_DIR\""
|
|
||||||
else
|
|
||||||
MONO_PATH="\"$EXTRA_CROSS_DIR\":$MONO_PATH"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
export PATH MONO_PATH CPPFLAGS
|
|
||||||
show_build_info
|
|
||||||
}
|
|
||||||
|
|
||||||
function build ()
|
|
||||||
{
|
|
||||||
if [ -f ./Makefile ]; then
|
|
||||||
make distclean
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ./autom4te.cache ]; then
|
|
||||||
rm -rf ./autom4te.cache
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f ./config.status ]; then
|
|
||||||
for f in `find -name config.status -type f`; do
|
|
||||||
rm $f
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
|
|
||||||
BUILD="`./config.guess`"
|
|
||||||
|
|
||||||
if [ ! -d "$CURDIR/build-cross-windows" ]; then
|
|
||||||
mkdir "$CURDIR/build-cross-windows"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$CURDIR/build-cross-windows"
|
|
||||||
rm -rf *
|
|
||||||
../configure --prefix=$MONO_PREFIX --with-crosspkgdir=$CROSS_PKG_CONFIG_DIR --build=$BUILD --target=$MINGW --host=$MINGW --enable-parallel-mark --program-transform-name="" --with-tls=none --disable-mcs-build --disable-embed-check --enable-win32-dllmain=yes --with-libgc-threads=win32 --with-profile4=yes
|
|
||||||
make
|
|
||||||
cd "$CURDIR"
|
|
||||||
|
|
||||||
if [ ! -d "$CURDIR/build-cross-windows-mcs" ]; then
|
|
||||||
mkdir "$CURDIR/build-cross-windows-mcs"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf autom4te.cache
|
|
||||||
unset PATH
|
|
||||||
PATH="$ORIGINAL_PATH"
|
|
||||||
export PATH
|
|
||||||
cd "$CURDIR/build-cross-windows-mcs"
|
|
||||||
rm -rf *
|
|
||||||
../configure --prefix=$MONO_PREFIX --enable-parallel-mark
|
|
||||||
make
|
|
||||||
}
|
|
||||||
|
|
||||||
function doinstall ()
|
|
||||||
{
|
|
||||||
if [ -d "$INSTALL_DIR" ]; then
|
|
||||||
rm -rf "$INSTALL_DIR"
|
|
||||||
fi
|
|
||||||
cd "$CURDIR/build-cross-windows"
|
|
||||||
make DESTDIR="$INSTALL_DESTDIR" USE_BATCH_FILES=yes install
|
|
||||||
|
|
||||||
if test -d $CURDIR/mcs; then
|
|
||||||
mcsdir=$CURDIR/mcs
|
|
||||||
else
|
|
||||||
mcsdir=$CURDIR/../mcs
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$mcsdir/mcs"
|
|
||||||
for p in $PROFILES; do
|
|
||||||
make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "mcs profile $p installation failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
cd "$mcsdir/class"
|
|
||||||
for p in $PROFILES; do
|
|
||||||
make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "class library profile $p installation failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
cd "$mcsdir/tools"
|
|
||||||
for p in $PROFILES; do
|
|
||||||
make DESTDIR="$INSTALL_DESTDIR" PROFILE=$p install || echo "tools profile $p installation failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
cd "$CURDIR/mono-win32"
|
|
||||||
rm -f "$CURDIR/mono-win32-$MONO_RELEASE".zip
|
|
||||||
zip -9r "$CURDIR/mono-win32-$MONO_RELEASE".zip .
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function usage ()
|
|
||||||
{
|
|
||||||
cat <<EOF
|
|
||||||
Usage: build-mingw32.sh [OPTIONS]
|
|
||||||
|
|
||||||
where OPTIONS are:
|
|
||||||
|
|
||||||
-d DIR Sets the location of directory where MINGW is installed [$CROSS_DIR]
|
|
||||||
-e DIR Sets the location of directory where additional cross develoment packages are installed [${EXTRA_CROSS_DIR:=none}]
|
|
||||||
-m MINGW Sets the MINGW target name to be passed to configure [$MINGW]
|
|
||||||
-p PREFIX Prefix at which Mono is to be installed. Build will append the 'mono-X.Y' string to that path
|
|
||||||
EOF
|
|
||||||
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
trap cleanup 0
|
|
||||||
|
|
||||||
pushd . > /dev/null
|
|
||||||
|
|
||||||
while getopts "d:m:e:p:" opt; do
|
|
||||||
case "$opt" in
|
|
||||||
d) CROSS_DIR="$OPTARG" ;;
|
|
||||||
m) MINGW="$OPTARG" ;;
|
|
||||||
e) EXTRA_CROSS_DIR="$OPTARG" ;;
|
|
||||||
p) MONO_PREFIX="$OPTARG" ;;
|
|
||||||
*) usage ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
setup
|
|
||||||
build
|
|
||||||
doinstall
|
|
||||||
show_build_info
|
|
||||||
|
|
||||||
popd > /dev/null
|
|
36
config.h.in
36
config.h.in
@ -121,7 +121,7 @@
|
|||||||
/* Extension module enabled */
|
/* Extension module enabled */
|
||||||
#undef ENABLE_EXTENSION_MODULE
|
#undef ENABLE_EXTENSION_MODULE
|
||||||
|
|
||||||
/* Gsharing */
|
/* Gsharedvt */
|
||||||
#undef ENABLE_GSHAREDVT
|
#undef ENABLE_GSHAREDVT
|
||||||
|
|
||||||
/* Icall export enabled */
|
/* Icall export enabled */
|
||||||
@ -181,6 +181,9 @@
|
|||||||
/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
|
/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
|
||||||
#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
|
#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <complex.h> header file. */
|
||||||
|
#undef HAVE_COMPLEX_H
|
||||||
|
|
||||||
/* Define to 1 if you have the `confstr' function. */
|
/* Define to 1 if you have the `confstr' function. */
|
||||||
#undef HAVE_CONFSTR
|
#undef HAVE_CONFSTR
|
||||||
|
|
||||||
@ -287,15 +290,6 @@
|
|||||||
/* Define to 1 if you have the `futimes' function. */
|
/* Define to 1 if you have the `futimes' function. */
|
||||||
#undef HAVE_FUTIMES
|
#undef HAVE_FUTIMES
|
||||||
|
|
||||||
/* GC requires thread registration */
|
|
||||||
#undef HAVE_GC_ALLOW_REGISTER_THREADS
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <gc/gc.h> header file. */
|
|
||||||
#undef HAVE_GC_GC_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <gc.h> header file. */
|
|
||||||
#undef HAVE_GC_H
|
|
||||||
|
|
||||||
/* Have getaddrinfo */
|
/* Have getaddrinfo */
|
||||||
#undef HAVE_GETADDRINFO
|
#undef HAVE_GETADDRINFO
|
||||||
|
|
||||||
@ -380,7 +374,7 @@
|
|||||||
/* Have inet_ntop */
|
/* Have inet_ntop */
|
||||||
#undef HAVE_INET_NTOP
|
#undef HAVE_INET_NTOP
|
||||||
|
|
||||||
/* Define to 1 if you have the `inet_pton' function. */
|
/* Have inet_pton */
|
||||||
#undef HAVE_INET_PTON
|
#undef HAVE_INET_PTON
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
@ -521,6 +515,9 @@
|
|||||||
/* Define to 1 if you have the `posix_madvise' function. */
|
/* Define to 1 if you have the `posix_madvise' function. */
|
||||||
#undef HAVE_POSIX_MADVISE
|
#undef HAVE_POSIX_MADVISE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `prctl' function. */
|
||||||
|
#undef HAVE_PRCTL
|
||||||
|
|
||||||
/* Define to 1 if you have the `preadv' function. */
|
/* Define to 1 if you have the `preadv' function. */
|
||||||
#undef HAVE_PREADV
|
#undef HAVE_PREADV
|
||||||
|
|
||||||
@ -755,6 +752,9 @@
|
|||||||
/* Define to 1 if you have the <syslog.h> header file. */
|
/* Define to 1 if you have the <syslog.h> header file. */
|
||||||
#undef HAVE_SYSLOG_H
|
#undef HAVE_SYSLOG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `system' function. */
|
||||||
|
#undef HAVE_SYSTEM
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/auxv.h> header file. */
|
/* Define to 1 if you have the <sys/auxv.h> header file. */
|
||||||
#undef HAVE_SYS_AUXV_H
|
#undef HAVE_SYS_AUXV_H
|
||||||
|
|
||||||
@ -794,6 +794,9 @@
|
|||||||
/* Define to 1 if you have the <sys/poll.h> header file. */
|
/* Define to 1 if you have the <sys/poll.h> header file. */
|
||||||
#undef HAVE_SYS_POLL_H
|
#undef HAVE_SYS_POLL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/prctl.h> header file. */
|
||||||
|
#undef HAVE_SYS_PRCTL_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||||
#undef HAVE_SYS_RESOURCE_H
|
#undef HAVE_SYS_RESOURCE_H
|
||||||
|
|
||||||
@ -942,9 +945,6 @@
|
|||||||
*/
|
*/
|
||||||
#undef LT_OBJDIR
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
/* Cross-compiling using MinGW */
|
|
||||||
#undef MINGW_CROSS_COMPILE
|
|
||||||
|
|
||||||
/* Enable the allocation and indexing of arrays greater than Int32.MaxValue */
|
/* Enable the allocation and indexing of arrays greater than Int32.MaxValue */
|
||||||
#undef MONO_BIG_ARRAYS
|
#undef MONO_BIG_ARRAYS
|
||||||
|
|
||||||
@ -1059,6 +1059,9 @@
|
|||||||
/* ... */
|
/* ... */
|
||||||
#undef TARGET_PS3
|
#undef TARGET_PS3
|
||||||
|
|
||||||
|
/* ... */
|
||||||
|
#undef TARGET_PS4
|
||||||
|
|
||||||
/* ... */
|
/* ... */
|
||||||
#undef TARGET_S390X
|
#undef TARGET_S390X
|
||||||
|
|
||||||
@ -1068,7 +1071,7 @@
|
|||||||
/* ... */
|
/* ... */
|
||||||
#undef TARGET_SPARC64
|
#undef TARGET_SPARC64
|
||||||
|
|
||||||
/* Target OS is Win32/MinGW */
|
/* Target Platform is Win32 */
|
||||||
#undef TARGET_WIN32
|
#undef TARGET_WIN32
|
||||||
|
|
||||||
/* ... */
|
/* ... */
|
||||||
@ -1077,6 +1080,9 @@
|
|||||||
/* ... */
|
/* ... */
|
||||||
#undef TARGET_XBOX360
|
#undef TARGET_XBOX360
|
||||||
|
|
||||||
|
/* Enable cooperative stop-the-world garbage collection. */
|
||||||
|
#undef USE_COOP_GC
|
||||||
|
|
||||||
/* ... */
|
/* ... */
|
||||||
#undef USE_GCC_ATOMIC_OPS
|
#undef USE_GCC_ATOMIC_OPS
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
94ef65996a186293ae651e688580672f8de4b880
|
2c2c33e9b3b238b9af81df41107a0b6b0127ed10
|
@ -1 +1 @@
|
|||||||
6e1f9bd8a55b889798c88191650b5752d2b58e3b
|
fa754128cfe42ebd98f8fc68209473d8cc272fc0
|
@ -31,7 +31,7 @@ class StringPrinter:
|
|||||||
while i < len:
|
while i < len:
|
||||||
val = (chars.cast(gdb.lookup_type ("gint64")) + (i * 2)).cast(gdb.lookup_type ("gunichar2").pointer ()).dereference ()
|
val = (chars.cast(gdb.lookup_type ("gint64")) + (i * 2)).cast(gdb.lookup_type ("gunichar2").pointer ()).dereference ()
|
||||||
if val >= 256:
|
if val >= 256:
|
||||||
c = "\u%X".format (val)
|
c = unichr (val)
|
||||||
else:
|
else:
|
||||||
c = chr (val)
|
c = chr (val)
|
||||||
res.append (c)
|
res.append (c)
|
||||||
|
25
data/mono.d
25
data/mono.d
@ -21,21 +21,8 @@ provider mono {
|
|||||||
|
|
||||||
probe gc__requested (int generation, uintptr_t requested_size, int wait_to_finish);
|
probe gc__requested (int generation, uintptr_t requested_size, int wait_to_finish);
|
||||||
|
|
||||||
probe gc__checkpoint__1 (int generation);
|
|
||||||
probe gc__checkpoint__2 (int generation);
|
|
||||||
probe gc__checkpoint__3 (int generation);
|
|
||||||
probe gc__checkpoint__4 (int generation);
|
|
||||||
probe gc__checkpoint__5 (int generation);
|
|
||||||
probe gc__checkpoint__6 (int generation);
|
|
||||||
probe gc__checkpoint__7 (int generation);
|
|
||||||
probe gc__checkpoint__8 (int generation);
|
|
||||||
probe gc__checkpoint__9 (int generation);
|
|
||||||
|
|
||||||
probe gc__concurrent__start__begin (int generation);
|
probe gc__concurrent__start__begin (int generation);
|
||||||
probe gc__concurrent__start__end (int generation, long long num_major_objects_marked);
|
|
||||||
probe gc__concurrent__update__finish__begin (int generation, long long num_major_objects_marked);
|
probe gc__concurrent__update__finish__begin (int generation, long long num_major_objects_marked);
|
||||||
probe gc__concurrent__update__end (int generation, long long num_major_objects_marked);
|
|
||||||
probe gc__concurrent__finish__end (int generation, long long num_major_objects_marked);
|
|
||||||
|
|
||||||
probe gc__sweep__begin (int generation, int full_sweep);
|
probe gc__sweep__begin (int generation, int full_sweep);
|
||||||
probe gc__sweep__end (int generation, int full_sweep);
|
probe gc__sweep__end (int generation, int full_sweep);
|
||||||
@ -45,19 +32,12 @@ provider mono {
|
|||||||
probe gc__world__restart__begin (int generation);
|
probe gc__world__restart__begin (int generation);
|
||||||
probe gc__world__restart__end (int generation);
|
probe gc__world__restart__end (int generation);
|
||||||
|
|
||||||
probe gc__heap__alloc (uintptr_t addr, uintptr_t len);
|
|
||||||
probe gc__heap__free (uintptr_t addr, uintptr_t len);
|
|
||||||
|
|
||||||
probe gc__locked ();
|
|
||||||
probe gc__unlocked ();
|
|
||||||
|
|
||||||
probe gc__nursery__tlab__alloc (uintptr_t addr, uintptr_t len);
|
probe gc__nursery__tlab__alloc (uintptr_t addr, uintptr_t len);
|
||||||
probe gc__nursery__obj__alloc (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__nursery__obj__alloc (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
|
|
||||||
probe gc__major__obj__alloc__large (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__major__obj__alloc__large (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
probe gc__major__obj__alloc__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__major__obj__alloc__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
probe gc__major__obj__alloc__degraded (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__major__obj__alloc__degraded (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
probe gc__major__obj__alloc__mature (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
|
||||||
|
|
||||||
/* Can be nursery->nursery, nursery->major or major->major */
|
/* Can be nursery->nursery, nursery->major or major->major */
|
||||||
probe gc__obj__moved (uintptr_t dest, uintptr_t src, int dest_gen, int src_gen, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__obj__moved (uintptr_t dest, uintptr_t src, int dest_gen, int src_gen, uintptr_t size, char *ns_name, char *class_name);
|
||||||
@ -70,13 +50,10 @@ provider mono {
|
|||||||
probe gc__finalize__enqueue (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation, int is_critical);
|
probe gc__finalize__enqueue (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation, int is_critical);
|
||||||
probe gc__finalize__invoke (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__finalize__invoke (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
|
|
||||||
probe gc__weak__update (uintptr_t ref_addr, uintptr_t old_addr, uintptr_t new_addr, uintptr_t size, char *ns_name, char *class_name, int track);
|
probe gc__weak__update (uintptr_t ref_addr, uintptr_t new_addr, uintptr_t size, char *ns_name, char *class_name, int track);
|
||||||
|
|
||||||
probe gc__global__remset__add (uintptr_t ref_addr, uintptr_t obj_addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__global__remset__add (uintptr_t ref_addr, uintptr_t obj_addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
probe gc__obj__cemented (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
probe gc__obj__cemented (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
|
||||||
|
|
||||||
probe gc__internal__alloc (uintptr_t addr, uintptr_t size, int type);
|
|
||||||
probe gc__internal__dealloc (uintptr_t add, uintptr_t size, int type);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma D attributes Evolving/Evolving/Common provider mono provider
|
#pragma D attributes Evolving/Evolving/Common provider mono provider
|
||||||
|
@ -13,11 +13,14 @@
|
|||||||
<section name="startup" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
|
<section name="startup" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
|
||||||
<section name="system.codedom" type="System.CodeDom.Compiler.CodeDomConfigurationHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<section name="system.codedom" type="System.CodeDom.Compiler.CodeDomConfigurationHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<section name="system.diagnostics" type="System.Diagnostics.DiagnosticsConfigurationHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<section name="system.diagnostics" type="System.Diagnostics.SystemDiagnosticsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
|
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
|
||||||
<section name="system.windows.forms" type="System.Windows.Forms.WindowsFormsSection, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<section name="system.windows.forms" type="System.Windows.Forms.WindowsFormsSection, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<section name="windows" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
|
<section name="windows" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
|
||||||
<section name="strongNames" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
|
<section name="strongNames" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
|
||||||
|
<sectionGroup name="system.runtime.serialization" type="System.Runtime.Serialization.Configuration.SerializationSectionGroup, System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<section name="dataContractSerializer" type="System.Runtime.Serialization.Configuration.DataContractSerializerSection, System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||||
|
</sectionGroup>
|
||||||
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<section name="anonymousIdentification" type="System.Web.Configuration.AnonymousIdentificationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
|
<section name="anonymousIdentification" type="System.Web.Configuration.AnonymousIdentificationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
|
||||||
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
|
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
|
||||||
|
@ -14,7 +14,6 @@ ASSEMBLED_DOCS = \
|
|||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
abc-removal.txt \
|
abc-removal.txt \
|
||||||
api-style.css \
|
api-style.css \
|
||||||
assembly-bundle \
|
|
||||||
check-exports \
|
check-exports \
|
||||||
check-coverage \
|
check-coverage \
|
||||||
convert.cs \
|
convert.cs \
|
||||||
@ -23,7 +22,6 @@ EXTRA_DIST = \
|
|||||||
docs.make \
|
docs.make \
|
||||||
documented \
|
documented \
|
||||||
embedded-api \
|
embedded-api \
|
||||||
exceptions \
|
|
||||||
exdoc \
|
exdoc \
|
||||||
file-share-modes \
|
file-share-modes \
|
||||||
gc-issues \
|
gc-issues \
|
||||||
@ -35,33 +33,25 @@ EXTRA_DIST = \
|
|||||||
jit-imt \
|
jit-imt \
|
||||||
jit-thoughts \
|
jit-thoughts \
|
||||||
jit-trampolines \
|
jit-trampolines \
|
||||||
local-regalloc.txt \
|
|
||||||
magic.diff \
|
|
||||||
mini-doc.txt \
|
mini-doc.txt \
|
||||||
mono-api-metadata.html \
|
mono-api-metadata.html \
|
||||||
mono-file-formats.config\
|
mono-file-formats.config\
|
||||||
mono-file-formats.source\
|
mono-file-formats.source\
|
||||||
mono_handle_d \
|
|
||||||
mono-tools.config \
|
mono-tools.config \
|
||||||
mono-tools.source \
|
mono-tools.source \
|
||||||
monoapi.source \
|
monoapi.source \
|
||||||
new-regalloc \
|
|
||||||
object-layout \
|
object-layout \
|
||||||
opcode-decomp.txt \
|
|
||||||
precise-gc \
|
precise-gc \
|
||||||
produce-lists \
|
produce-lists \
|
||||||
public \
|
public \
|
||||||
public-api \
|
public-api \
|
||||||
README \
|
README \
|
||||||
release-notes-1.0.html \
|
|
||||||
remoting \
|
remoting \
|
||||||
ssapre.txt \
|
ssapre.txt \
|
||||||
stack-alignment \
|
|
||||||
stack-overflow.txt \
|
stack-overflow.txt \
|
||||||
threading \
|
threading \
|
||||||
toc.xml \
|
toc.xml \
|
||||||
TODO \
|
TODO \
|
||||||
tree-mover.txt \
|
|
||||||
unmanaged-calls
|
unmanaged-calls
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
|
@ -370,7 +370,6 @@ ASSEMBLED_DOCS = \
|
|||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
abc-removal.txt \
|
abc-removal.txt \
|
||||||
api-style.css \
|
api-style.css \
|
||||||
assembly-bundle \
|
|
||||||
check-exports \
|
check-exports \
|
||||||
check-coverage \
|
check-coverage \
|
||||||
convert.cs \
|
convert.cs \
|
||||||
@ -379,7 +378,6 @@ EXTRA_DIST = \
|
|||||||
docs.make \
|
docs.make \
|
||||||
documented \
|
documented \
|
||||||
embedded-api \
|
embedded-api \
|
||||||
exceptions \
|
|
||||||
exdoc \
|
exdoc \
|
||||||
file-share-modes \
|
file-share-modes \
|
||||||
gc-issues \
|
gc-issues \
|
||||||
@ -391,33 +389,25 @@ EXTRA_DIST = \
|
|||||||
jit-imt \
|
jit-imt \
|
||||||
jit-thoughts \
|
jit-thoughts \
|
||||||
jit-trampolines \
|
jit-trampolines \
|
||||||
local-regalloc.txt \
|
|
||||||
magic.diff \
|
|
||||||
mini-doc.txt \
|
mini-doc.txt \
|
||||||
mono-api-metadata.html \
|
mono-api-metadata.html \
|
||||||
mono-file-formats.config\
|
mono-file-formats.config\
|
||||||
mono-file-formats.source\
|
mono-file-formats.source\
|
||||||
mono_handle_d \
|
|
||||||
mono-tools.config \
|
mono-tools.config \
|
||||||
mono-tools.source \
|
mono-tools.source \
|
||||||
monoapi.source \
|
monoapi.source \
|
||||||
new-regalloc \
|
|
||||||
object-layout \
|
object-layout \
|
||||||
opcode-decomp.txt \
|
|
||||||
precise-gc \
|
precise-gc \
|
||||||
produce-lists \
|
produce-lists \
|
||||||
public \
|
public \
|
||||||
public-api \
|
public-api \
|
||||||
README \
|
README \
|
||||||
release-notes-1.0.html \
|
|
||||||
remoting \
|
remoting \
|
||||||
ssapre.txt \
|
ssapre.txt \
|
||||||
stack-alignment \
|
|
||||||
stack-overflow.txt \
|
stack-overflow.txt \
|
||||||
threading \
|
threading \
|
||||||
toc.xml \
|
toc.xml \
|
||||||
TODO \
|
TODO \
|
||||||
tree-mover.txt \
|
|
||||||
unmanaged-calls
|
unmanaged-calls
|
||||||
|
|
||||||
TOOL_MAKE = $(MAKE) -f $(srcdir)/docs.make topdir=$(srcdir)/../mcs srcdir=$(srcdir)
|
TOOL_MAKE = $(MAKE) -f $(srcdir)/docs.make topdir=$(srcdir)/../mcs srcdir=$(srcdir)
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
|
|
||||||
HOWTO bundle assemblies inside the mono runtime.
|
|
||||||
Paolo Molaro (lupus@ximian.com)
|
|
||||||
|
|
||||||
* Intent
|
|
||||||
|
|
||||||
Bundling assemblies inside the mono runtime may be useful for a number
|
|
||||||
of reasons:
|
|
||||||
|
|
||||||
* creating a standalone complete runtime that can be more easily
|
|
||||||
distributed
|
|
||||||
|
|
||||||
* having an application run against a known set of assemblies
|
|
||||||
that has been tested
|
|
||||||
|
|
||||||
Of course, there are drawbacks, too: if there has been fixes
|
|
||||||
to the assemblies, replacing them means recompiling the
|
|
||||||
runtime as well and if there are other mono apps, unless they
|
|
||||||
use the same mono binary, there will be less opportunities for
|
|
||||||
the operating system to optimize memory usage. So use this
|
|
||||||
feature only when really needed.
|
|
||||||
|
|
||||||
* Creating the Bundle
|
|
||||||
|
|
||||||
To bundle a set of assemblies, you need to create a file that
|
|
||||||
lists the assembly names and the relative files. Empty lines
|
|
||||||
and lines starting with # are ignored:
|
|
||||||
|
|
||||||
== cut cut ==
|
|
||||||
# Sample bundle template
|
|
||||||
mscorlib: /path/to/mscorlib/assembly.dll
|
|
||||||
myapp: /path/to/myapp.exe
|
|
||||||
== cut cut ==
|
|
||||||
|
|
||||||
Next you need to build the mono runtime using a special configure option:
|
|
||||||
|
|
||||||
./configure --with-bundle=/path/to/bundle/template
|
|
||||||
|
|
||||||
The path to the template should be an absolute path.
|
|
||||||
|
|
||||||
The script metadata/make-bundle.pl will take the specifie
|
|
||||||
assemblies and embed them inside the runtime where the loading
|
|
||||||
routines can find them before searching for them on disk.
|
|
||||||
|
|
||||||
* Open Issues
|
|
||||||
|
|
||||||
There are still two issues to solve:
|
|
||||||
|
|
||||||
* config files: sometimes they are needed but they are
|
|
||||||
not yet bundled inside the library ()
|
|
||||||
|
|
||||||
* building with the included libgc makes it not
|
|
||||||
possible to build a mono binary statically linked to
|
|
||||||
libmono: this needs to be fixed to make bundles
|
|
||||||
really useful.
|
|
||||||
|
|
||||||
|
|
@ -292,7 +292,6 @@ mono_free_method
|
|||||||
mono_free_verify_list
|
mono_free_verify_list
|
||||||
mono_gc_collect
|
mono_gc_collect
|
||||||
mono_gc_collection_count
|
mono_gc_collection_count
|
||||||
mono_gc_enable_events
|
|
||||||
mono_gc_get_generation
|
mono_gc_get_generation
|
||||||
mono_gc_get_heap_size
|
mono_gc_get_heap_size
|
||||||
mono_gc_get_used_size
|
mono_gc_get_used_size
|
||||||
@ -301,9 +300,7 @@ mono_gchandle_get_target
|
|||||||
mono_gchandle_new
|
mono_gchandle_new
|
||||||
mono_gchandle_new_weakref
|
mono_gchandle_new_weakref
|
||||||
mono_gc_invoke_finalizers
|
mono_gc_invoke_finalizers
|
||||||
mono_gc_is_finalizer_thread
|
|
||||||
mono_gc_max_generation
|
mono_gc_max_generation
|
||||||
mono_gc_out_of_memory
|
|
||||||
mono_gc_wbarrier_arrayref_copy
|
mono_gc_wbarrier_arrayref_copy
|
||||||
mono_gc_wbarrier_generic_nostore
|
mono_gc_wbarrier_generic_nostore
|
||||||
mono_gc_wbarrier_generic_store
|
mono_gc_wbarrier_generic_store
|
||||||
@ -604,7 +601,6 @@ mono_object_get_class
|
|||||||
mono_object_get_domain
|
mono_object_get_domain
|
||||||
mono_object_get_size
|
mono_object_get_size
|
||||||
mono_object_get_virtual_method
|
mono_object_get_virtual_method
|
||||||
mono_object_is_alive
|
|
||||||
mono_object_isinst
|
mono_object_isinst
|
||||||
mono_object_isinst_mbyref
|
mono_object_isinst_mbyref
|
||||||
mono_object_new
|
mono_object_new
|
||||||
|
@ -476,33 +476,6 @@ mono_loader_lock (void)
|
|||||||
<div class="prototype">Prototype: mono_gc_enable</div>
|
<div class="prototype">Prototype: mono_gc_enable</div>
|
||||||
<p />
|
<p />
|
||||||
|
|
||||||
</div> <a name="api:mono_gc_is_finalizer_thread"></a>
|
|
||||||
<div class="api">
|
|
||||||
<div class="api-entry">mono_gc_is_finalizer_thread</div>
|
|
||||||
|
|
||||||
<div class="prototype">gboolean
|
|
||||||
mono_gc_is_finalizer_thread (MonoThread *thread)
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<p />
|
|
||||||
<b>Parameters</b>
|
|
||||||
<blockquote><dt><i>thread:</i></dt><dd> the thread to test.</dd></blockquote>
|
|
||||||
<b>Remarks</b>
|
|
||||||
<p />
|
|
||||||
In Mono objects are finalized asynchronously on a separate thread.
|
|
||||||
This routine tests whether the <i>thread</i> argument represents the
|
|
||||||
finalization thread.
|
|
||||||
|
|
||||||
<p />
|
|
||||||
Returns true if <i>thread</i> is the finalization thread.
|
|
||||||
|
|
||||||
</div> <a name="api:mono_gc_out_of_memory"></a>
|
|
||||||
<div class="api">
|
|
||||||
<div class="api-entry">mono_gc_out_of_memory</div>
|
|
||||||
|
|
||||||
<div class="prototype">Prototype: mono_gc_out_of_memory</div>
|
|
||||||
<p />
|
|
||||||
|
|
||||||
</div> <a name="api:mono_gc_start_world"></a>
|
</div> <a name="api:mono_gc_start_world"></a>
|
||||||
<div class="api">
|
<div class="api">
|
||||||
<div class="api-entry">mono_gc_start_world</div>
|
<div class="api-entry">mono_gc_start_world</div>
|
||||||
@ -524,13 +497,6 @@ mono_gc_is_finalizer_thread (MonoThread *thread)
|
|||||||
<div class="prototype">Prototype: mono_gc_alloc_fixed</div>
|
<div class="prototype">Prototype: mono_gc_alloc_fixed</div>
|
||||||
<p />
|
<p />
|
||||||
|
|
||||||
</div> <a name="api:mono_gc_enable_events"></a>
|
|
||||||
<div class="api">
|
|
||||||
<div class="api-entry">mono_gc_enable_events</div>
|
|
||||||
|
|
||||||
<div class="prototype">Prototype: mono_gc_enable_events</div>
|
|
||||||
<p />
|
|
||||||
|
|
||||||
</div> <a name="api:mono_gc_free_fixed"></a>
|
</div> <a name="api:mono_gc_free_fixed"></a>
|
||||||
<div class="api">
|
<div class="api">
|
||||||
<div class="api-entry">mono_gc_free_fixed</div>
|
<div class="api-entry">mono_gc_free_fixed</div>
|
||||||
|
@ -111,7 +111,7 @@ mono_print_method_from_ip (void *ip)
|
|||||||
|
|
||||||
This prints the name of the method at address <i>ip</i> in the standard
|
This prints the name of the method at address <i>ip</i> in the standard
|
||||||
output. Unlike mono_pmip which returns a string, this routine
|
output. Unlike mono_pmip which returns a string, this routine
|
||||||
prints the value on the standard output.
|
prints the value on the standard output.
|
||||||
|
|
||||||
</div> <a name="api:mono_print_thread_dump"></a>
|
</div> <a name="api:mono_print_thread_dump"></a>
|
||||||
<div class="api">
|
<div class="api">
|
||||||
|
@ -108,7 +108,6 @@ MonoObject* <a href="#api:mono_object_isinst">mono_object_isinst</a>
|
|||||||
gpointer <a href="#api:mono_object_unbox">mono_object_unbox</a> (MonoObject *obj);
|
gpointer <a href="#api:mono_object_unbox">mono_object_unbox</a> (MonoObject *obj);
|
||||||
MonoObject* <a href="#api:mono_object_castclass_mbyref">mono_object_castclass_mbyref</a> (MonoObject *obj,
|
MonoObject* <a href="#api:mono_object_castclass_mbyref">mono_object_castclass_mbyref</a> (MonoObject *obj,
|
||||||
MonoClass *klass);
|
MonoClass *klass);
|
||||||
<a href="#api:mono_object_is_alive"></a>
|
|
||||||
guint <a href="#api:mono_object_get_size">mono_object_get_size</a> (MonoObject* o);
|
guint <a href="#api:mono_object_get_size">mono_object_get_size</a> (MonoObject* o);
|
||||||
MonoObject* <a href="#api:mono_value_box">mono_value_box</a> (MonoDomain *domain,
|
MonoObject* <a href="#api:mono_value_box">mono_value_box</a> (MonoDomain *domain,
|
||||||
MonoClass *class,
|
MonoClass *class,
|
||||||
@ -423,13 +422,6 @@ mono_object_castclass_mbyref (MonoObject *obj, MonoClass *klass)
|
|||||||
<blockquote> <i>obj</i> if <i>obj</i> is derived from <i>klass</i>, throws an exception otherwise
|
<blockquote> <i>obj</i> if <i>obj</i> is derived from <i>klass</i>, throws an exception otherwise
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
</div> <a name="api:mono_object_is_alive"></a>
|
|
||||||
<div class="api">
|
|
||||||
<div class="api-entry">mono_object_is_alive</div>
|
|
||||||
|
|
||||||
<div class="prototype">Prototype: mono_object_is_alive</div>
|
|
||||||
<p />
|
|
||||||
|
|
||||||
</div> <a name="api:mono_object_get_size"></a>
|
</div> <a name="api:mono_object_get_size"></a>
|
||||||
<div class="api">
|
<div class="api">
|
||||||
<div class="api-entry">mono_object_get_size</div>
|
<div class="api-entry">mono_object_get_size</div>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user