Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields 2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@ -8,7 +8,7 @@ if CROSS_COMPILING
SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
# Keep in sync with SUBDIRS
## 'tools' is not normally built
DIST_SUBDIRS = m4 po libgc 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
if ONLY_MONOTOUCH
SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
@ -19,7 +19,7 @@ else
SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
# Keep in sync with SUBDIRS
## 'tools' is not normally built
DIST_SUBDIRS = m4 po libgc 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
@ -52,7 +52,7 @@ dist-hook:
d=`cd $(distdir)/mcs && pwd`; cd $(mcs_topdir) && $(MAKE) distdir=$$d dist-recursive
rm -rf `find $(top_distdir)/external -path '*\.git'`
rm -f `find $(top_distdir)/external -path '*\.exe'`
rm -f `find $(top_distdir)/external -path '*\.dll'`
rm -f `find $(top_distdir)/external -path '*\.dll' -not -path '*/binary-reference-assemblies/v4\.0*'`
cp mcs/class/lib/basic/System.Configuration.dll mcs/class/lib/monolite/
cp mcs/class/lib/basic/System.Security.dll mcs/class/lib/monolite/
# Disable this for now because it is very slow and causes wrench to timeout:

View File

@ -233,6 +233,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -316,12 +317,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@
@ -414,9 +418,9 @@ MONOTOUCH_SUBDIRS = $(libgc_dir) eglib/src mono
@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)
# Keep in sync with SUBDIRS
@CROSS_COMPILING_FALSE@@ONLY_MONOTOUCH_FALSE@@ONLY_XAMMAC_FALSE@DIST_SUBDIRS = m4 po libgc eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
@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
# Keep in sync with SUBDIRS
@CROSS_COMPILING_TRUE@DIST_SUBDIRS = m4 po libgc 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'
EXTRA_DIST = \
README.md \
@ -943,7 +947,7 @@ dist-hook:
d=`cd $(distdir)/mcs && pwd`; cd $(mcs_topdir) && $(MAKE) distdir=$$d dist-recursive
rm -rf `find $(top_distdir)/external -path '*\.git'`
rm -f `find $(top_distdir)/external -path '*\.exe'`
rm -f `find $(top_distdir)/external -path '*\.dll'`
rm -f `find $(top_distdir)/external -path '*\.dll' -not -path '*/binary-reference-assemblies/v4\.0*'`
cp mcs/class/lib/basic/System.Configuration.dll mcs/class/lib/monolite/
cp mcs/class/lib/basic/System.Security.dll mcs/class/lib/monolite/
.PHONY: get-monolite-latest

376
README.md
View File

@ -1,152 +1,72 @@
Mono is a software platform designed to allow developers to easily create cross platform applications.
Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
It is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
[![Build Status](http://jenkins.mono-project.com/job/test-mono-mainline/badge/icon/)](http://jenkins.mono-project.com/job/test-mono-mainline/)
1. [Installation](#compilation-and-installation)
1. [Compilation and Installation](#compilation-and-installation)
2. [Using Mono](#using-mono)
3. [Directory Roadmap](#directory-roadmap)
4. [Contributing to Mono] (#contributing-to-mono)
5. [Git submodules maintenance](#git-submodules-maintenance)
6. [Reporting bugs](#reporting-bugs)
4. [Contributing to Mono](#contributing-to-mono)
5. [Reporting bugs](#reporting-bugs)
6. [Configuration Options](#configuration-options)
**Build Status**
| debian-amd64 | debian-i386 | debian-ppc64el | centos-s390x | windows-amd64 |
|:-----------------------:|:----------------------:|:-------------------------:|:-----------------------:|:-------------------------:|
| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-ppc64el][5]][6] | [![centos-s390x][7]][8] | [![windows-amd64][9]][10] |
[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/
[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/
[5]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=debian-ppc64el/badge/icon
[6]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=debian-ppc64el/
[7]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=centos-s390x/badge/icon
[8]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=centos-s390x/
[9]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
[10]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
Compilation and Installation
============================
a. Build Requirements
Building the Software
---------------------
* On Itanium, you must obtain libunwind: http://www.hpl.hp.com/research/linux/libunwind/download.php4
Please see our guides for building Mono on
[Mac OS X](http://www.mono-project.com/docs/compiling-mono/mac/),
[Linux](http://www.mono-project.com/docs/compiling-mono/linux/) and
[Windows](http://www.mono-project.com/docs/compiling-mono/windows/).
* On Solaris
1. Make sure that you used GNU tar to unpack this package, as
Solaris tar will not unpack this correctly, and you will get strange errors.
2. Make sure that you use the GNU toolchain to build the software.
3. Optional dependencies
* libgdiplus - Required for System.Drawing. This library in turn requires glib and pkg-config
* pkg-config - Available at: http://www.freedesktop.org/Software/pkgconfig
* glib 2.4 - Available at: http://www.gtk.org/
* libzlib - This library and the development headers are required for compression
file support in the 2.0 profile.
4. Mono is required to build Mono. Use a system package or monolite (explained further below)
5. If you have a system Mono (not monolite), you will need to read this: http://mono-project.com/Parallel_Mono_Environments#Setting_up_a_Build_Environment
b. Building the Software
------------------------
If you obtained this package as an officially released tarball,
this is very simple, use configure and make:
`./configure --prefix=/usr/local ; make ; make install`
Mono supports a JIT engine on x86, SPARC, SPARCv9, S/390,
S/390x, AMD64, ARM and PowerPC systems.
If you obtained this as a snapshot, you will need an existing
Mono installation. To upgrade your installation, unpack both
mono and mcs:
tar xzf mcs-XXXX.tar.gz
tar xzf mono-XXXX.tar.gz
mv mono-XXX mono
mv mcs-XXX mcs
cd mono
./autogen.sh --prefix=/usr/local
make
The Mono build system is silent for most compilation commands.
To enable a more verbose compile (for example, to pinpoint
problems in your makefiles or your system) pass the V=1 flag to make, like this:
` make V=1`
c. Building the software from GIT
---------------------------------
If you are building the software from GIT, make sure that you
have up-to-date mcs and mono sources:
* If you are an anonymous user: `git clone git://github.com/mono/mono.git`
* If you are a Mono contributor with read/write privileges: `git clone git@github.com:mono/mono.git`
Then, go into the mono directory, and configure:
cd mono
./autogen.sh --prefix=/usr/local
make
For people with non-standard installations of the auto* utils and of
pkg-config (common on misconfigured OSX and windows boxes), you could get
an error like this:
./configure: line 19176: syntax error near unexpected token 'PKG_CHECK_MODULES(BASE_DEPENDENCIES,' ...
This means that you need to set the ACLOCAL_FLAGS environment variable
when invoking autogen.sh, like this:
ACLOCAL_FLAGS="-I $acprefix/share/aclocal" ./autogen.sh --prefix=/usr/local
where $acprefix is the prefix where aclocal has been installed.
This will automatically go into the mcs/ tree and build the
binaries there.
This assumes that you have a working mono installation, and that
there's a C# compiler named 'mcs', and a corresponding IL
runtime called 'mono'. You can use two make variables
EXTERNAL_MCS and EXTERNAL_RUNTIME to override these. e.g., you
can say:
make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono
Note that building from Git assumes that you already have Mono installed,
so please download and [install the latest Mono release](http://www.mono-project.com/download/)
before trying to build from Git. This is required because the Mono build
relies on a working Mono C# compiler to compile itself
(also known as [bootstrapping](http://en.wikipedia.org/wiki/Bootstrapping_(compilers))).
If you don't have a working Mono installation
---------------------------------------------
If you don't have a working Mono installation, an obvious choice
is to install the latest released packages of 'mono' for your
distribution and running `autogen.sh; make; make install` in the
mono module directory.
If you don't have a working Mono installation, you can try a slightly
more risky approach: getting the latest version of the 'monolite' distribution,
which contains just enough to run the 'mcs' compiler. You do this with:
You can also try a slightly more risky approach: this may not work,
so start from the released tarball as detailed above.
# Run the following line after ./autogen.sh
make get-monolite-latest
This works by first getting the latest version of the 'monolite'
distribution, 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
just run:
# Run the following line after ./autogen.sh
make get-monolite-latest
make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/basic.exe
This will download and automatically gunzip and untar the
tarball, and place the files appropriately so that you can then
just run: `make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/gmcs.exe`
That will use the files downloaded by 'make get-monolite-latest.
The build will then use the files downloaded by `make get-monolite-latest`.
Testing and Installation
------------------------
You can run *(part of)* the mono and mcs test suites with the command: `make check`.
All tests should pass.
If you want more *extensive* tests, including those that test the
class libraries, you need to re-run 'configure' with the
'--enable-nunit-tests' flag, and try: `make -k check`
You can run the mono and mcs test suites with the command: `make check`.
Expect to find a few test suite failures. As a sanity check, you
can compare the failures you got with
https://wrench.mono-project.com/Wrench/
can compare the failures you got with [https://wrench.mono-project.com/Wrench/](https://wrench.mono-project.com/Wrench/)
and [http://jenkins.mono-project.com/](http://jenkins.mono-project.com/).
You can now install mono with: `make install`
@ -154,8 +74,86 @@ You can verify your installation by using the mono-test-install
script, it can diagnose some common problems with Mono's install.
Failure to follow these steps may result in a broken installation.
d. Configuration Options
------------------------
Using Mono
==========
Once you have installed the software, you can run a few programs:
* `mono program.exe` runtime engine
* `mcs program.cs` C# compiler
* `monodis program.exe` CIL Disassembler
See the man pages for mono(1), mcs(1) and monodis(1) for further details.
Directory Roadmap
=================
* `data/` - Configuration files installed as part of the Mono runtime.
* `docs/` - Technical documents about the Mono runtime.
* `external/` - Git submodules for external libraries (Newtonsoft.Json, ikvm, etc).
* `man/` - Manual pages for the various Mono commands and programs.
* `mcs/` - The class libraries, compiler and tools
* `class/` - The class libraries (like System.*, Microsoft.Build, etc.)
* `mcs/` - The Mono C# compiler written in C#
* `tools/` - Tools like gacutil, ikdasm, mdoc, etc.
* `mono/` - The core of the Mono Runtime.
* `arch/` - Architecture specific portions.
* `cil/` - Common Intermediate Representation, XML
definition of the CIL bytecodes.
* `dis/` - CIL executable Disassembler
* `io-layer/` - The I/O layer and system abstraction for
emulating the .NET IO model.
* `metadata/` - The object system and metadata reader.
* `mini/` - The Just in Time Compiler.
* `runtime/` - A directory that contains the Makefiles that link the
mono/ and mcs/ build systems.
* `samples/` -Some simple sample programs on uses of the Mono
runtime as an embedded library.
* `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
====================
Before submitting changes to Mono, please review the [contribution 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
==============
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
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.
Configuration Options
=====================
The following are the configuration options that someone
building Mono might want to use:
@ -164,17 +162,16 @@ building Mono might want to use:
compilation of a Mono runtime with the SGen garbage collector.
* On platforms that support it, after building Mono, you will have
both a mono binary and a mono-sgen binary. Mono uses Boehm, while
mono-sgen uses the Simple Generational GC.
both a `mono` binary and a `mono-sgen` binary. `mono` uses Boehm, while
`mono-sgen` uses the Simple Generational GC.
* `--with-gc=[boehm, included, sgen, none]` - Selects the default Boehm garbage
* `--with-gc=[included, boehm, none]` - Selects the default Boehm garbage
collector engine to use.
* *included*: (*slighty modified Boehm GC*)
This is the default value, and its
the most feature complete, it will allow Mono
to use typed allocations and support the
debugger.
This is the default value for the Boehm GC, and it's
the most feature complete, it will allow Mono
to use typed allocations and support the debugger.
* *boehm*:
This is used to use a system-install Boehm GC,
@ -267,30 +264,6 @@ and runtime.
* This defaults to `yes`.
* `--with-moonlight=yes,no`
* Whether you want to generate the Silverlight/Moonlight
libraries and toolchain in addition to the default
(1.1 and 2.0 APIs).
* This will produce the `smcs` compiler which will reference
the Silverlight modified assemblies (mscorlib.dll,
System.dll, System.Code.dll and System.Xml.Core.dll) and turn
on the LINQ extensions for the compiler.
* `--with-moon-gc=boehm,sgen` - Select the GC to use for Moonlight.
* *boehm*:
Selects the Boehm Garbage Collector, with the same flags
as the regular Mono build. This is the default.
* *sgen*:
Selects the new SGen Garbage Collector, which provides
Generational GC support, using the same flags as the
mono-sgen build.
* This defaults to `boehm`.
* `--with-libgdiplus=installed,sibling,<path>` - Configure where Mono
searches for libgdiplus when running System.Drawing tests.
@ -298,7 +271,7 @@ searches for libgdiplus when running System.Drawing tests.
library is available to Mono through the regular
system setup.
* `sibling' can be used to specify that a libgdiplus
* `sibling` can be used to specify that a libgdiplus
that resides as a sibling of this directory (mono)
should be used.
@ -405,13 +378,13 @@ for Mono. The LLVM code generator and optimizer will be
used instead of Mono's built-in code generator for both
Just in Time and Ahead of Time compilations.
* See the http://www.mono-project.com/Mono_LLVM for the
* See http://www.mono-project.com/docs/advanced/mono-llvm/ for the
full details and up-to-date information on this feature.
* You will need to have an LLVM built that Mono can link
against.
* The --enable-loadedllvm variant will make the LLVM backend
* The `--enable-loadedllvm` variant will make the LLVM backend
into a runtime-loadable module instead of linking it directly
into the main mono binary.
@ -445,7 +418,6 @@ not done much testing with Mono.
runtime that contains DTrace probes and can
participate in the system profiling using DTrace.
* `--disable-dev-random`
* Mono uses /dev/random to obtain good random data for
@ -464,85 +436,3 @@ http://code.google.com/p/nativeclient/
* Currently this is used with Mono's AOT engine as
Native Client does not support JIT engines yet.
Using Mono
==========
Once you have installed the software, you can run a few programs:
* `mono program.exe` runtime engine
* `mcs program.cs` C# compiler
* `monodis program.exe` CIL Disassembler
See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
for further details.
Directory Roadmap
=================
* `docs/` - Technical documents about the Mono runtime.
* `data/` - Configuration files installed as part of the Mono runtime.
* `mono/` - The core of the Mono Runtime.
* `metadata/` - The object system and metadata reader.
* `mini/` - The Just in Time Compiler.
* `dis/` - CIL executable Disassembler
* `io-layer/` - The I/O layer and system abstraction for
emulating the .NET IO model.
* `cil/` - Common Intermediate Representation, XML
definition of the CIL bytecodes.
* `arch/` - Architecture specific portions.
* `man/` - Manual pages for the various Mono commands and programs.
* `samples/` -Some simple sample programs on uses of the Mono
runtime as an embedded library.
* `scripts/` - Scripts used to invoke Mono and the corresponding program.
* `runtime/` - A directory that contains the Makefiles that link the
mono/ and mcs/ build systems.
* `../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
====================
Before submitting changes to Mono, please review the contribution guidelines at http://mono-project.com/Contributing. Please pay particular attention to the [Important Rules](http://mono-project.com/Contributing#Important_Rules) section.
Git submodules maintenance
==========================
Read documentation at http://mono-project.com/Git_Submodule_Maintenance
Maintainer
==========
Mono is maintained by miguel@xamarin.com
Reporting bugs
==============
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
been submitted and follow our guidelines on how to make a good bug
report:
http://mono-project.com/Bugs#How_to_make_a_good_bug_report

View File

@ -54,6 +54,9 @@
/* Disable Performance Counters. */
#undef DISABLE_PERFCOUNTERS
/* Disable using `perf` for profiling on Linux */
#undef DISABLE_PERF_EVENTS
/* Disable P/Invoke support */
#undef DISABLE_PINVOKE
@ -151,6 +154,9 @@
/* ARM v7 */
#undef HAVE_ARMV7
/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
/* Supports C99 array initialization */
#undef HAVE_ARRAY_ELEM_INIT
@ -290,6 +296,9 @@
/* Define to 1 if you have the <gc.h> header file. */
#undef HAVE_GC_H
/* Have getaddrinfo */
#undef HAVE_GETADDRINFO
/* Define to 1 if you have the `getdomainname' function. */
#undef HAVE_GETDOMAINNAME
@ -305,6 +314,12 @@
/* Define to 1 if you have the `getgrnam_r' function. */
#undef HAVE_GETGRNAM_R
/* Have gethostbyname */
#undef HAVE_GETHOSTBYNAME
/* Have gethostbyname2 */
#undef HAVE_GETHOSTBYNAME2
/* Have gethostbyname2_r */
#undef HAVE_GETHOSTBYNAME2_R
@ -317,12 +332,18 @@
/* Define to 1 if you have the `getlogin_r' function. */
#undef HAVE_GETLOGIN_R
/* Have getnameinfo */
#undef HAVE_GETNAMEINFO
/* Define to 1 if you have the `getpriority' function. */
#undef HAVE_GETPRIORITY
/* Define if GetProcessId is available */
#undef HAVE_GETPROCESSID
/* Have getprotobyname */
#undef HAVE_GETPROTOBYNAME
/* Define to 1 if you have the `getpwent' function. */
#undef HAVE_GETPWENT
@ -356,6 +377,9 @@
/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON
/* Have inet_ntop */
#undef HAVE_INET_NTOP
/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON
@ -425,6 +449,9 @@
/* Define to 1 if you have the <linux/rtnetlink.h> header file. */
#undef HAVE_LINUX_RTNETLINK_H
/* Define to 1 if you have the <linux/serial.h> header file. */
#undef HAVE_LINUX_SERIAL_H
/* Define to 1 if you have the `lockf' function. */
#undef HAVE_LOCKF
@ -437,6 +464,9 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Have mincore */
#undef HAVE_MINCORE
/* Define to 1 if you have the `mknodat' function. */
#undef HAVE_MKNODAT
@ -797,6 +827,9 @@
/* Define to 1 if you have the <sys/syscall.h> header file. */
#undef HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
@ -902,12 +935,6 @@
/* Enable lazy gc thread creation by the embedding host. */
#undef LAZY_GC_THREAD_CREATION
/* Major version of LLVM libraries */
#undef LLVM_MAJOR_VERSION
/* Minor version of LLVM libraries */
#undef LLVM_MINOR_VERSION
/* Full version of LLVM libraties */
#undef LLVM_VERSION

View File

@ -1 +1 @@
fd0ff24a20da7243885930ae0e345f5f31e76b70
25aca4d9234ba9866baffb6d0b49f85530244ece

View File

@ -1 +1 @@
a7f2080b235146bb5464ae6da7d9ff2101cbecf7
64b436391b7e39451d01b5d01756e5484d447684

View File

@ -1,10 +1,7 @@
SUBDIRS = net_2_0
if INSTALL_4_0
SUBDIRS += net_4_0 net_4_5
endif
SUBDIRS = net_2_0 net_4_0 net_4_5
monodir = $(sysconfdir)/mono
monolldbdir = $(libdir)/mono/lldb
EXTRA_DIST = \
config.in \
@ -16,7 +13,8 @@ EXTRA_DIST = \
reactive.pc.in xbuild12.pc \
net_1_1/machine.config \
gdb/mono-gdb.py \
gdb/gdb-python.diff
gdb/gdb-python.diff \
lldb/mono.py
pkgconfigdir = $(libdir)/pkgconfig
@ -35,6 +33,7 @@ DISTCLEANFILES= mono-2.pc mono.pc mint.pc dotnet.pc dotnet35.pc wcf.pc mono-nuni
mono_DATA = config \
browscap.ini
monolldb_DATA = lldb/mono.py
gdbdir = $(bindir)
mono-sgen-gdb.py: gdb/mono-gdb.py

View File

@ -79,7 +79,6 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
@INSTALL_4_0_TRUE@am__append_1 = net_4_0 net_4_5
subdir = data
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/mkinstalldirs $(srcdir)/mint.pc.in \
@ -170,8 +169,8 @@ am__uninstall_files_from_dir = { \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(gdbdir)" "$(DESTDIR)$(monodir)" \
"$(DESTDIR)$(pkgconfigdir)"
DATA = $(gdb_DATA) $(mono_DATA) $(pkgconfig_DATA)
"$(DESTDIR)$(monolldbdir)" "$(DESTDIR)$(pkgconfigdir)"
DATA = $(gdb_DATA) $(mono_DATA) $(monolldb_DATA) $(pkgconfig_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@ -199,7 +198,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = net_2_0 net_4_0 net_4_5
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@ -257,6 +256,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -340,12 +340,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@
@ -430,8 +433,9 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = net_2_0 $(am__append_1)
SUBDIRS = net_2_0 net_4_0 net_4_5
monodir = $(sysconfdir)/mono
monolldbdir = $(libdir)/mono/lldb
EXTRA_DIST = \
config.in \
browscap.ini mono.supp mono.d README ChangeLog \
@ -442,7 +446,8 @@ EXTRA_DIST = \
reactive.pc.in xbuild12.pc \
net_1_1/machine.config \
gdb/mono-gdb.py \
gdb/gdb-python.diff
gdb/gdb-python.diff \
lldb/mono.py
pkgconfigdir = $(libdir)/pkgconfig
@SUPPORT_SGEN_FALSE@SGENPCFILE =
@ -456,6 +461,7 @@ DISTCLEANFILES = mono-2.pc mono.pc mint.pc dotnet.pc dotnet35.pc wcf.pc mono-nun
mono_DATA = config \
browscap.ini
monolldb_DATA = lldb/mono.py
gdbdir = $(bindir)
gdb_DATA = gdb/mono-gdb.py mono-sgen-gdb.py
all: all-recursive
@ -581,6 +587,27 @@ uninstall-monoDATA:
@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(monodir)'; $(am__uninstall_files_from_dir)
install-monolldbDATA: $(monolldb_DATA)
@$(NORMAL_INSTALL)
@list='$(monolldb_DATA)'; test -n "$(monolldbdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(monolldbdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(monolldbdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monolldbdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(monolldbdir)" || exit $$?; \
done
uninstall-monolldbDATA:
@$(NORMAL_UNINSTALL)
@list='$(monolldb_DATA)'; test -n "$(monolldbdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(monolldbdir)'; $(am__uninstall_files_from_dir)
install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL)
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
@ -762,7 +789,7 @@ check: check-recursive
all-am: Makefile $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(gdbdir)" "$(DESTDIR)$(monodir)" "$(DESTDIR)$(pkgconfigdir)"; do \
for dir in "$(DESTDIR)$(gdbdir)" "$(DESTDIR)$(monodir)" "$(DESTDIR)$(monolldbdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@ -816,7 +843,7 @@ info: info-recursive
info-am:
install-data-am: install-gdbDATA install-monoDATA \
install-data-am: install-gdbDATA install-monoDATA install-monolldbDATA \
install-pkgconfigDATA
install-dvi: install-dvi-recursive
@ -862,7 +889,7 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-gdbDATA uninstall-monoDATA \
uninstall-pkgconfigDATA
uninstall-monolldbDATA uninstall-pkgconfigDATA
.MAKE: $(am__recursive_targets) install-am install-strip
@ -873,13 +900,14 @@ uninstall-am: uninstall-gdbDATA uninstall-monoDATA \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-gdbDATA \
install-html install-html-am install-info install-info-am \
install-man install-monoDATA install-pdf install-pdf-am \
install-pkgconfigDATA install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-gdbDATA \
uninstall-monoDATA uninstall-pkgconfigDATA
install-man install-monoDATA install-monolldbDATA install-pdf \
install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags tags-am uninstall uninstall-am uninstall-gdbDATA \
uninstall-monoDATA uninstall-monolldbDATA \
uninstall-pkgconfigDATA
mono-sgen-gdb.py: gdb/mono-gdb.py

174
data/lldb/mono.py Normal file
View File

@ -0,0 +1,174 @@
#
# Author: Zoltan Varga (vargaz@gmail.com)
# License: MIT/X11
#
#
# This is a mono support mode for lldb
#
# Comments about the lldb python api:
# - there are no accessors, i.e. valobj["name"]
# - http://lldb.llvm.org/python_reference/index.html seems to be outdated
# - there is no autoload support, i.e. can't load this file automatically
# when 'mono' is the debugger target.
import lldb
# FIXME: Generate enums from runtime enums
MONO_TYPE_END = 0x00
MONO_TYPE_VOID = 0x01
MONO_TYPE_BOOLEAN = 0x02
MONO_TYPE_CHAR = 0x03
MONO_TYPE_I1 = 0x04
MONO_TYPE_U1 = 0x05
MONO_TYPE_I2 = 0x06
MONO_TYPE_U2 = 0x07
MONO_TYPE_I4 = 0x08
MONO_TYPE_U4 = 0x09
MONO_TYPE_I8 = 0x0a
MONO_TYPE_U8 = 0x0b
MONO_TYPE_R4 = 0x0c
MONO_TYPE_R8 = 0x0d
MONO_TYPE_STRING = 0x0e
MONO_TYPE_PTR = 0x0f
MONO_TYPE_BYREF = 0x10
MONO_TYPE_VALUETYPE = 0x11
MONO_TYPE_CLASS = 0x12
MONO_TYPE_VAR = 0x13
MONO_TYPE_ARRAY = 0x14
MONO_TYPE_GENERICINST= 0x15
MONO_TYPE_TYPEDBYREF = 0x16
MONO_TYPE_I = 0x18
MONO_TYPE_U = 0x19
MONO_TYPE_FNPTR = 0x1b
MONO_TYPE_OBJECT = 0x1c
MONO_TYPE_SZARRAY = 0x1d
MONO_TYPE_MVAR = 0x1e
primitive_type_names = {
MONO_TYPE_BOOLEAN : "bool",
MONO_TYPE_CHAR : "char",
MONO_TYPE_I1 : "sbyte",
MONO_TYPE_U1 : "byte",
MONO_TYPE_I2 : "short",
MONO_TYPE_U2 : "ushort",
MONO_TYPE_I4 : "int",
MONO_TYPE_U4 : "uint",
MONO_TYPE_I8 : "long",
MONO_TYPE_U8 : "ulong",
MONO_TYPE_R4 : "float",
MONO_TYPE_R8 : "double",
MONO_TYPE_STRING : "string"
}
#
# Helper functions for working with the lldb python api
#
def member(val, member_name):
return val.GetChildMemberWithName (member_name)
def string_member(val, member_name):
return val.GetChildMemberWithName (member_name).GetSummary ()[1:-1]
def isnull(val):
return val.deref.addr.GetOffset () == 0
def stringify_class_name(ns, name):
if ns == "System":
if name == "Byte":
return "byte"
if name == "String":
return "string"
if ns == "":
return name
else:
return "{0}.{1}".format (ns, name)
#
# Pretty printers for mono runtime types
#
def stringify_type (type):
"Print a MonoType structure"
ttype = member(type, "type").GetValueAsUnsigned()
if primitive_type_names.has_key (ttype):
return primitive_type_names [ttype]
else:
return "<MonoTypeEnum 0x{0:x}>".format (ttype)
def stringify_ginst (ginst):
"Print a MonoGenericInst structure"
len = int(member(ginst, "type_argc").GetValue())
argv = member(ginst, "type_argv")
res=""
for i in range(len):
t = argv.GetChildAtIndex(i, False, True)
if i > 0:
res += ", "
res += stringify_type(t)
return res
def print_type(valobj, internal_dict):
type = valobj
if isnull (type):
return ""
return stringify_type (type)
def print_class (valobj, internal_dict):
klass = valobj
if isnull (klass):
return ""
aname = member (member (member (klass, "image"), "assembly"), "aname")
basename = "[{0}]{1}".format (string_member (aname, "name"), (stringify_class_name (string_member (klass, "name_space"), string_member (klass, "name"))))
gclass = member (klass, "generic_class")
if not isnull (gclass):
ginst = member (member (gclass, "context"), "class_inst")
return "{0}<{1}>".format (basename, stringify_ginst (ginst))
return basename
def print_method (valobj, internal_dict):
method = valobj
if isnull (method):
return ""
klass = member (method, "klass")
return "{0}:{1}()".format (print_class (klass, None), string_member (valobj, "name"))
def print_domain(valobj, internal_dict):
domain = valobj
if isnull (domain):
return ""
target = domain.target
root = target.FindFirstGlobalVariable("mono_root_domain")
name = string_member (domain, "friendly_name")
if root.IsValid () and root.deref.addr.GetOffset () == root.deref.addr.GetOffset ():
return "[root]"
else:
return "[{0}]".format (name)
def print_object(valobj, internal_dict):
obj = valobj
if isnull (obj):
return ""
domain = member (member (obj, "vtable"), "domain")
klass = member (member (obj, "vtable"), "klass")
return print_domain (domain, None) + print_class (klass, None)
# Register pretty printers
# FIXME: This cannot pick up the methods define in this module, leading to warnings
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_method MonoMethod")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_class MonoClass")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_type MonoType")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_domain MonoDomain")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_object MonoObject")
lldb.debugger.HandleCommand ("type category enable mono")
# Helper commands for runtime debugging
# These resume the target
# Print the method at the current ip
lldb.debugger.HandleCommand ("command alias pip p mono_print_method_from_ip((void*)$pc)")
# Print the method at the provided ip
lldb.debugger.HandleCommand ("command regex pmip 's/^$/p mono_print_method_from_ip((void*)$pc)/' 's/(.+)/p mono_print_method_from_ip((void*)(%1))/'")
print "Mono support mode loaded."

View File

@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -321,12 +322,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -321,12 +322,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -321,12 +322,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@ -99,14 +99,14 @@ mono-file-formats.tree: $(srcdir)/docs.make $(srcdir)/Makefile.am $(srcdir)/depl
deploy/.stamp: convert.exe Makefile.am
$(mkdir_p) html
runtimedir=`cd ../runtime && pwd`; export runtimedir; \
MONO_PATH=../mcs/class/lib/net_2_0 perl $(srcdir)/exdoc -h $(srcdir) -t . $(srcdir)/../mono/*/*.c
MONO_PATH=../mcs/class/lib/net_4_5 perl $(srcdir)/exdoc -h $(srcdir) -t . $(srcdir)/../mono/*/*.c
touch $@
extract: deploy/.stamp
convert.exe: convert.cs AgilityPack.dll
$(TOOL_MAKE) PROFILE=net_2_0 convert.exe
$(TOOL_MAKE) PROFILE=net_4_5 convert.exe
AgilityPack.dll:
$(TOOL_MAKE) PROFILE=net_2_0 AgilityPack.dll
$(TOOL_MAKE) PROFILE=net_4_5 AgilityPack.dll

View File

@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@
@ -669,16 +673,16 @@ mono-file-formats.tree: $(srcdir)/docs.make $(srcdir)/Makefile.am $(srcdir)/depl
deploy/.stamp: convert.exe Makefile.am
$(mkdir_p) html
runtimedir=`cd ../runtime && pwd`; export runtimedir; \
MONO_PATH=../mcs/class/lib/net_2_0 perl $(srcdir)/exdoc -h $(srcdir) -t . $(srcdir)/../mono/*/*.c
MONO_PATH=../mcs/class/lib/net_4_5 perl $(srcdir)/exdoc -h $(srcdir) -t . $(srcdir)/../mono/*/*.c
touch $@
extract: deploy/.stamp
convert.exe: convert.cs AgilityPack.dll
$(TOOL_MAKE) PROFILE=net_2_0 convert.exe
$(TOOL_MAKE) PROFILE=net_4_5 convert.exe
AgilityPack.dll:
$(TOOL_MAKE) PROFILE=net_2_0 AgilityPack.dll
$(TOOL_MAKE) PROFILE=net_4_5 AgilityPack.dll
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -58,7 +58,7 @@ int mkstemp (char *tmp_template)
utf16_template = _wmktemp( utf16_template);
if (utf16_template && *utf16_template) {
/* FIXME: _O_TEMPORARY causes file to disappear on close causing a test to fail */
fd = _wopen( utf16_template, _O_BINARY | _O_CREAT /*| _O_TEMPORARY*/ | _O_EXCL, _S_IREAD | _S_IWRITE);
fd = _wopen( utf16_template, _O_BINARY | _O_CREAT /*| _O_TEMPORARY*/ | _O_RDWR | _O_EXCL, _S_IREAD | _S_IWRITE);
}
/* FIXME: this will crash if utf16_template == NULL */

View File

@ -814,6 +814,7 @@ gboolean g_spawn_command_line_sync (const gchar *command_line, gchar **standard_
gboolean g_spawn_async_with_pipes (const gchar *working_directory, gchar **argv, gchar **envp, GSpawnFlags flags, GSpawnChildSetupFunc child_setup,
gpointer user_data, GPid *child_pid, gint *standard_input, gint *standard_output, gint *standard_error, GError **error);
int eg_getdtablesize (void);
/*
* Timer

View File

@ -132,6 +132,7 @@ g_assertion_message (const gchar *format, ...)
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
va_end (args);
exit (0);
}

View File

@ -74,7 +74,7 @@
#define NO_INTR(var,cmd) do { (var) = (cmd); } while ((var) == -1 && errno == EINTR)
#define CLOSE_PIPE(p) do { close (p [0]); close (p [1]); } while (0)
#if defined(__APPLE__) && !defined (__arm__)
#if defined(__APPLE__) && !defined (__arm__) && !defined (__aarch64__)
/* Apple defines this in crt_externs.h but doesn't provide that header for
* arm-apple-darwin9. We'll manually define the symbol on Apple as it does
* in fact exist on all implementations (so far)
@ -218,8 +218,8 @@ write_all (int fd, const void *vbuf, size_t n)
}
#ifndef G_OS_WIN32
static int
g_getdtablesize (void)
int
eg_getdtablesize (void)
{
#ifdef HAVE_GETRLIMIT
struct rlimit limit;
@ -232,6 +232,12 @@ g_getdtablesize (void)
return getdtablesize ();
#endif
}
#else
int
eg_getdtablesize (void)
{
g_error ("Should not be called");
}
#endif
gboolean
@ -277,7 +283,7 @@ g_spawn_command_line_sync (const gchar *command_line,
close (stderr_pipe [0]);
dup2 (stderr_pipe [1], STDERR_FILENO);
}
for (i = g_getdtablesize () - 1; i >= 3; i--)
for (i = eg_getdtablesize () - 1; i >= 3; i--)
close (i);
/* G_SPAWN_SEARCH_PATH is always enabled for g_spawn_command_line_sync */
@ -438,7 +444,7 @@ g_spawn_async_with_pipes (const gchar *working_directory,
}
if ((flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN) != 0) {
for (i = g_getdtablesize () - 1; i >= 3; i--)
for (i = eg_getdtablesize () - 1; i >= 3; i--)
close (i);
}

View File

@ -0,0 +1 @@
Mono binary reference assemblies repository.

Binary file not shown.

View File

@ -0,0 +1 @@
b33e46b88a9909425a16fd41a4a7e7cd74af6ab0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
14a80d560756aa506c1c2bc4309bc17efce764ef

View File

@ -0,0 +1 @@
4f145df4d92b31fcaf5b7312bcae16816c95c1e3

View File

@ -0,0 +1 @@
17c8e614d3e5128008cd646c4efaee79dc676c4e

Binary file not shown.

View File

@ -0,0 +1 @@
a81771b3144272d5577b37fd19c3b319b56d46fb

Binary file not shown.

View File

@ -0,0 +1 @@
e2a06329b04a5f3c51e7a8e7f2be7190946a8ed3

View File

@ -0,0 +1 @@
03fa8018942f0e0cfb427b3307e503ceaccd4f7e

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
06d292c8203a916133b5aa7c10bfa0f52a98fd54

Binary file not shown.

View File

@ -0,0 +1 @@
50d8e7efbf94d3fdb3635c97a161972af737c49f

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
c03c26a0090a2df776b55c8f6fd5187d43f548bd

View File

@ -0,0 +1 @@
908d2c0903f62b71b135b1895e4bc685681cb6d8

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
f1e4cfa2aecfab6603f118fa0ccebcb19d31490a

View File

@ -0,0 +1 @@
e025cec3cfb7afced21026907c5974fbeffd4d0e

Binary file not shown.

View File

@ -0,0 +1 @@
97fc21acf192a6b6f9eb3713e963a2a66b7009f6

View File

@ -0,0 +1 @@
6720d10dcbafc7a27604dda8ef383240ff51cc9f

View File

@ -0,0 +1 @@
dd8e91ac3613ca8e9b45799e5bfdf1587e713e3a

View File

@ -0,0 +1 @@
e6033d887557b99c9153f86bbbebbd4cb1dca5b7

Binary file not shown.

View File

@ -0,0 +1 @@
4242d2a265fc4cde44720a57a15a27a501fbf8e5

View File

@ -0,0 +1 @@
eba68ac126ee25422cc90385d5c6b306ca7e027c

Binary file not shown.

View File

@ -0,0 +1 @@
f58fac6dbe4ae077a2f1a44ec2a357dd2d34ccb1

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
04a60616ee0c48d47362c8fcc79e7e7c25a16779

Binary file not shown.

View File

@ -0,0 +1 @@
d8fec58fa4eb6a3d30e4a15aa232f7a6af8ee409

View File

@ -0,0 +1 @@
7d1c7715d28a1eb4b2f1401404b0af9ca282db3a

Some files were not shown because too many files have changed in this diff Show More