Imported Upstream version 4.3.2.467
Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
parent
f302175246
commit
f3e3aab35a
25
Makefile.am
25
Makefile.am
@ -5,15 +5,15 @@ AM_CFLAGS = $(WERROR_CFLAGS)
|
|||||||
MONOTOUCH_SUBDIRS = $(libgc_dir) eglib/src mono
|
MONOTOUCH_SUBDIRS = $(libgc_dir) eglib/src mono
|
||||||
|
|
||||||
if CROSS_COMPILING
|
if CROSS_COMPILING
|
||||||
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) acceptance-tests
|
||||||
# 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 acceptance-tests
|
||||||
else
|
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) acceptance-tests
|
||||||
# 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 acceptance-tests
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: update_submodules
|
all: update_submodules
|
||||||
@ -25,13 +25,14 @@ update_submodules:
|
|||||||
.PHONY: update_submodules
|
.PHONY: update_submodules
|
||||||
|
|
||||||
EXTRA_DIST= \
|
EXTRA_DIST= \
|
||||||
README.md \
|
README.md \
|
||||||
LICENSE \
|
LICENSE \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
mkinstalldirs \
|
mkinstalldirs \
|
||||||
mono-uninstalled.pc.in \
|
mono-uninstalled.pc.in \
|
||||||
winconfig.h \
|
winconfig.h \
|
||||||
external
|
code_of_conduct.md \
|
||||||
|
external
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
||||||
|
|
||||||
@ -56,7 +57,7 @@ DISTCLEANFILES= mono-uninstalled.pc
|
|||||||
mcslib = $(mcs_topdir)/class/lib
|
mcslib = $(mcs_topdir)/class/lib
|
||||||
monolite = $(mcslib)/monolite
|
monolite = $(mcslib)/monolite
|
||||||
mono_corlib_version = $(shell sed -n "s/\#define MONO_CORLIB_VERSION //p" $(srcdir)/mono/metadata/appdomain.c)
|
mono_corlib_version = $(shell sed -n "s/\#define MONO_CORLIB_VERSION //p" $(srcdir)/mono/metadata/appdomain.c)
|
||||||
monolite_url = http://storage.bos.xamarin.com/mono-dist-master/latest/monolite-$(mono_corlib_version)-latest.tar.gz
|
monolite_url = http://download.mono-project.com/monolite/monolite-$(mono_corlib_version)-latest.tar.gz
|
||||||
.PHONY: get-monolite-latest
|
.PHONY: get-monolite-latest
|
||||||
get-monolite-latest:
|
get-monolite-latest:
|
||||||
-rm -fr $(mcslib)/monolite-*
|
-rm -fr $(mcslib)/monolite-*
|
||||||
|
31
Makefile.in
31
Makefile.in
@ -214,8 +214,6 @@ AUTOMAKE = @AUTOMAKE@
|
|||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||||
BUILD_EXEEXT = @BUILD_EXEEXT@
|
BUILD_EXEEXT = @BUILD_EXEEXT@
|
||||||
BUILD_GLIB_CFLAGS = @BUILD_GLIB_CFLAGS@
|
|
||||||
BUILD_GLIB_LIBS = @BUILD_GLIB_LIBS@
|
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CCAS = @CCAS@
|
CCAS = @CCAS@
|
||||||
CCASDEPMODE = @CCASDEPMODE@
|
CCASDEPMODE = @CCASDEPMODE@
|
||||||
@ -231,9 +229,9 @@ CXXCPP = @CXXCPP@
|
|||||||
CXXDEPMODE = @CXXDEPMODE@
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
CXXFLAGS = @CXXFLAGS@
|
CXXFLAGS = @CXXFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFAULT_PROFILE = @DEFAULT_PROFILE@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
DEPDIR = @DEPDIR@
|
DEPDIR = @DEPDIR@
|
||||||
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
|
|
||||||
DLLTOOL = @DLLTOOL@
|
DLLTOOL = @DLLTOOL@
|
||||||
DOLT_BASH = @DOLT_BASH@
|
DOLT_BASH = @DOLT_BASH@
|
||||||
DSYMUTIL = @DSYMUTIL@
|
DSYMUTIL = @DSYMUTIL@
|
||||||
@ -251,8 +249,6 @@ GDKX11 = @GDKX11@
|
|||||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||||
GLIB_LIBS = @GLIB_LIBS@
|
GLIB_LIBS = @GLIB_LIBS@
|
||||||
GMODULE_CFLAGS = @GMODULE_CFLAGS@
|
|
||||||
GMODULE_LIBS = @GMODULE_LIBS@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
GMSGFMT_015 = @GMSGFMT_015@
|
GMSGFMT_015 = @GMSGFMT_015@
|
||||||
GREP = @GREP@
|
GREP = @GREP@
|
||||||
@ -413,21 +409,22 @@ 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@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) acceptance-tests
|
||||||
@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) acceptance-tests
|
||||||
# Keep in sync with SUBDIRS
|
# Keep in sync with SUBDIRS
|
||||||
@CROSS_COMPILING_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 acceptance-tests
|
||||||
# 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 acceptance-tests
|
||||||
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'
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
README.md \
|
README.md \
|
||||||
LICENSE \
|
LICENSE \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
mkinstalldirs \
|
mkinstalldirs \
|
||||||
mono-uninstalled.pc.in \
|
mono-uninstalled.pc.in \
|
||||||
winconfig.h \
|
winconfig.h \
|
||||||
external
|
code_of_conduct.md \
|
||||||
|
external
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
|
||||||
# Disable this for now because it is very slow and causes wrench to timeout:
|
# Disable this for now because it is very slow and causes wrench to timeout:
|
||||||
@ -440,7 +437,7 @@ DISTCLEANFILES = mono-uninstalled.pc
|
|||||||
mcslib = $(mcs_topdir)/class/lib
|
mcslib = $(mcs_topdir)/class/lib
|
||||||
monolite = $(mcslib)/monolite
|
monolite = $(mcslib)/monolite
|
||||||
mono_corlib_version = $(shell sed -n "s/\#define MONO_CORLIB_VERSION //p" $(srcdir)/mono/metadata/appdomain.c)
|
mono_corlib_version = $(shell sed -n "s/\#define MONO_CORLIB_VERSION //p" $(srcdir)/mono/metadata/appdomain.c)
|
||||||
monolite_url = http://storage.bos.xamarin.com/mono-dist-master/latest/monolite-$(mono_corlib_version)-latest.tar.gz
|
monolite_url = http://download.mono-project.com/monolite/monolite-$(mono_corlib_version)-latest.tar.gz
|
||||||
all: config.h
|
all: config.h
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ Community supported architectures:
|
|||||||
[8]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/
|
[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
|
[11]: https://jenkins.mono-project.com/job/z/label=centos-s390x/badge/icon
|
||||||
[12]: http://jenkins.mono-project.com/job/test-mono-mainline-communityarchitectures/label=nealef-s390x-1/
|
[12]: https://jenkins.mono-project.com/job/z/label=centos-s390x
|
||||||
|
|
||||||
Compilation and Installation
|
Compilation and Installation
|
||||||
============================
|
============================
|
||||||
@ -80,8 +80,7 @@ Testing and Installation
|
|||||||
You can run the mono and mcs test suites with the command: `make 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
|
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/](https://wrench.mono-project.com/Wrench/)
|
can compare the failures you got with [https://jenkins.mono-project.com/](https://jenkins.mono-project.com/).
|
||||||
and [http://jenkins.mono-project.com/](http://jenkins.mono-project.com/).
|
|
||||||
|
|
||||||
You can now install mono with: `make install`
|
You can now install mono with: `make install`
|
||||||
|
|
||||||
@ -497,4 +496,3 @@ to do at all), first edit `.gitmodules` to point to the new location, then:
|
|||||||
The desired output diff is a change in `.gitmodules` to reflect the
|
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
|
change in the remote URL, and a change in /<submodule> where you see
|
||||||
the desired change in the commit hash.
|
the desired change in the commit hash.
|
||||||
|
|
||||||
|
1
acceptance-tests/Makefile.am.REMOVED.git-id
Normal file
1
acceptance-tests/Makefile.am.REMOVED.git-id
Normal file
@ -0,0 +1 @@
|
|||||||
|
68b9ff90e7dc4c8e38686a067a75eb9365f9504b
|
1
acceptance-tests/Makefile.in.REMOVED.git-id
Normal file
1
acceptance-tests/Makefile.in.REMOVED.git-id
Normal file
@ -0,0 +1 @@
|
|||||||
|
e59629639b73555931e60aa95d850ac5dd3e4a5e
|
14
acceptance-tests/README.md
Normal file
14
acceptance-tests/README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
This directory contains acceptance tests, handled by optional non git submodule based submodules. Run the tests via "make check-full" (there are also targets for individual test suites).
|
||||||
|
|
||||||
|
The SUBMODULES.json file stores information about the submodules, and make targets are used to check out submodules, check their versions, and update the submodule information.
|
||||||
|
|
||||||
|
By convention, submodules repositories are at the same level as the mono repository.
|
||||||
|
|
||||||
|
Make targets available:
|
||||||
|
|
||||||
|
make check-<module> - Checks whenever <module> is checked out and matches the version in the info file.
|
||||||
|
make reset-<module> - Clones <module>if neccesary and checks out the revision specified in the info file.
|
||||||
|
make bump-<module> - Updates the revision stored in the info file for <module>.
|
||||||
|
make bump-current-<module> - Updates the revision stored in the info file for <module> to the current revision.
|
||||||
|
make commit-bump-<module> - Same as make bump-<module>, but commits the change.
|
||||||
|
make commit-bump-current-<module> - Same as make bump-current-<module>, but commits the change.
|
26
acceptance-tests/SUBMODULES.json
Normal file
26
acceptance-tests/SUBMODULES.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "roslyn",
|
||||||
|
"url": "git://github.com/dotnet/roslyn.git",
|
||||||
|
"rev": "322bd5b2bbf07df6a67de35cbcb2365484412f70",
|
||||||
|
"remote-branch": "origin/master",
|
||||||
|
"branch": "master",
|
||||||
|
"directory": "roslyn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "coreclr",
|
||||||
|
"url": "git://github.com/mono/coreclr.git",
|
||||||
|
"rev": "96cf61f96b42cf9d013e641609cb7787f6e3a71f",
|
||||||
|
"remote-branch": "origin/mono",
|
||||||
|
"branch": "mono",
|
||||||
|
"directory": "coreclr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ms-test-suite",
|
||||||
|
"url": "git@github.com:xamarin/ms-test-suite.git",
|
||||||
|
"rev": "8eb26bd72a38e2c78675db45b13e89237dbdf4f2",
|
||||||
|
"remote-branch": "origin/master",
|
||||||
|
"branch": "master",
|
||||||
|
"directory": "ms-test-suite"
|
||||||
|
}
|
||||||
|
]
|
159
acceptance-tests/versions.mk
Normal file
159
acceptance-tests/versions.mk
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
.PHONY: validate-versions reset-versions
|
||||||
|
|
||||||
|
CONFIG=SUBMODULES.json
|
||||||
|
|
||||||
|
# usage $(call ValidateVersionTemplate (name,MAKEFILE VAR,repo name))
|
||||||
|
# usage $(call ValidateVersionTemplate (mono,MONO,mono))
|
||||||
|
|
||||||
|
define ValidateVersionTemplate
|
||||||
|
#$(eval REPOSITORY_$(2):=$(shell test -z $(3) && echo $(1) || echo "$(3)"))
|
||||||
|
#$(eval DIRECTORY_$(2):=$(shell python versions.py get-dir $(1)))
|
||||||
|
#$(eval DIRECTORY_$(2):=$(shell test -z $(DIRECTORY_$(2)) && echo $(1) || echo $(DIRECTORY_$(2))))
|
||||||
|
#$(eval MODULE_$(2):=$(shell python versions.py get-url $(1)))
|
||||||
|
#$(eval NEEDED_$(2)_VERSION:=$(shell python versions.py get-rev $(1)))
|
||||||
|
#$(eval $(2)_BRANCH_AND_REMOTE:=$(shell python versions.py get-remote-branch $(1)))
|
||||||
|
|
||||||
|
#$(eval $(2)_VERSION:=$$$$(shell cd $($(2)_PATH) 2>/dev/null && git rev-parse HEAD ))
|
||||||
|
|
||||||
|
#$(eval NEEDED_$(2)_BRANCH:=$(word 2, $(subst /, ,$($(2)_BRANCH_AND_REMOTE))))
|
||||||
|
#$(eval NEEDED_$(2)_REMOTE:=$(word 1, $(subst /, ,$($(2)_BRANCH_AND_REMOTE))))
|
||||||
|
#$(eval $(2)_BRANCH:=$$$$(shell cd $($(2)_PATH) 2>/dev/null && git symbolic-ref --short HEAD 2>/dev/null))
|
||||||
|
|
||||||
|
validate-$(1)::
|
||||||
|
@if test x$$(IGNORE_$(2)_VERSION) = "x"; then \
|
||||||
|
if test ! -d $($(2)_PATH); then \
|
||||||
|
if test x$$(RESET_VERSIONS) != "x"; then \
|
||||||
|
$(MAKE) reset-$(1) || exit 1; \
|
||||||
|
else \
|
||||||
|
echo "Your $(1) checkout is missing, please run 'make reset-$(1)'"; \
|
||||||
|
touch .validate-versions-failure; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
if test "x$($(2)_VERSION)" != "x$(NEEDED_$(2)_VERSION)" ; then \
|
||||||
|
if test x$$(RESET_VERSIONS) != "x"; then \
|
||||||
|
$(MAKE) reset-$(1) || exit 1; \
|
||||||
|
else \
|
||||||
|
echo "Your $(1) version is out of date, please run 'make reset-$(1)' (found $($(2)_VERSION), expected $(NEEDED_$(2)_VERSION))"; \
|
||||||
|
test -z "$(BUILD_REVISION)" || $(MAKE) test-$(1); \
|
||||||
|
touch .validate-versions-failure; \
|
||||||
|
fi; \
|
||||||
|
elif test "x$($(2)_BRANCH)" != "x$(NEEDED_$(2)_BRANCH)" ; then \
|
||||||
|
if test x$$(RESET_VERSIONS) != "x"; then \
|
||||||
|
test -z "$(BUILD_REVISION)" || $(MAKE) test-$(1); \
|
||||||
|
$(MAKE) reset-$(1) || exit 1; \
|
||||||
|
else \
|
||||||
|
echo "Your $(1) branch is out of date, please run 'make reset-$(1)' (found $($(2)_BRANCH), expected $(NEEDED_$(2)_BRANCH))"; \
|
||||||
|
touch .validate-versions-failure; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
test-$(1)::
|
||||||
|
@echo $(1)
|
||||||
|
@echo " REPOSITORY_$(2)=$(REPOSITORY_$(2))"
|
||||||
|
@echo " DIRECTORY_$(2)=$(DIRECTORY_$(2))"
|
||||||
|
@echo " MODULE_$(2)=$(MODULE_$(2))"
|
||||||
|
@echo " NEEDED_$(2)_VERSION=$(NEEDED_$(2)_VERSION)"
|
||||||
|
@echo " $(2)_VERSION=$($(2)_VERSION)"
|
||||||
|
@echo " $(2)_BRANCH_AND_REMOTE=$($(2)_BRANCH_AND_REMOTE)"
|
||||||
|
@echo " NEEDED_$(2)_BRANCH=$(NEEDED_$(2)_BRANCH)"
|
||||||
|
@echo " NEEDED_$(2)_REMOTE=$(NEEDED_$(2)_REMOTE)"
|
||||||
|
@echo " $(2)_BRANCH=$($(2)_BRANCH)"
|
||||||
|
@echo " $(2)_PATH=$($(2)_PATH) => $(abspath $($(2)_PATH))"
|
||||||
|
|
||||||
|
reset-$(1)::
|
||||||
|
@if test -d $($(2)_PATH); then \
|
||||||
|
if ! (cd $($(2)_PATH) && git show $(NEEDED_$(2)_VERSION) >/dev/null 2>&1 && git log -1 $(NEEDED_$(2)_REMOTE) >/dev/null 2>&1) ; then \
|
||||||
|
echo "*** git fetch `basename $$($(2)_PATH)`" && (cd $($(2)_PATH) && git fetch); \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo "*** git clone $(MODULE_$(2)) --recursive $(DIRECTORY_$(2))" && (cd `dirname $($(2)_PATH)` && git clone $(MODULE_$(2)) --recursive $(DIRECTORY_$(2)) || exit 1 ); \
|
||||||
|
fi
|
||||||
|
@if test x$$(IGNORE_$(2)_VERSION) = "x"; then \
|
||||||
|
echo "*** [$(1)] git checkout -f" $(NEEDED_$(2)_BRANCH) && (cd $($(2)_PATH) ; git checkout -f $(NEEDED_$(2)_BRANCH) || git checkout -f -b $($(2)_BRANCH_AND_REMOTE)); \
|
||||||
|
echo "*** [$(1)] git reset --hard $(NEEDED_$(2)_VERSION)" && (cd $($(2)_PATH) && git reset --hard $(NEEDED_$(2)_VERSION)); \
|
||||||
|
fi
|
||||||
|
@echo "*** [$(1)] git submodule update --init --recursive" && (cd $($(2)_PATH) && git submodule update --init --recursive)
|
||||||
|
|
||||||
|
print-$(1)::
|
||||||
|
@printf "*** %-16s %-45s %s (%s)\n" "$(DIRECTORY_$(2))" "$(MODULE_$(2))" "$(NEEDED_$(2)_VERSION)" "$(NEEDED_$(2)_BRANCH)"
|
||||||
|
|
||||||
|
.PHONY: validate-$(1) reset-$(1) print-$(1)
|
||||||
|
|
||||||
|
reset-versions:: reset-$(1)
|
||||||
|
validate-versions:: Validate-$(1)
|
||||||
|
print-versions:: print-$(1)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call ValidateVersionTemplate,roslyn,ROSLYN))
|
||||||
|
$(eval $(call ValidateVersionTemplate,coreclr,CORECLR))
|
||||||
|
$(eval $(call ValidateVersionTemplate,ms-test-suite,MSTESTSUITE))
|
||||||
|
|
||||||
|
reset-versions::
|
||||||
|
|
||||||
|
validate-versions::
|
||||||
|
@if test -e .validate-versions-failure; then \
|
||||||
|
rm .validate-versions-failure; \
|
||||||
|
echo One or more modules needs update; \
|
||||||
|
exit 1; \
|
||||||
|
else \
|
||||||
|
echo All dependent modules up to date; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
reset:
|
||||||
|
@$(MAKE) validate-versions RESET_VERSIONS=1
|
||||||
|
|
||||||
|
__bump-version-%:
|
||||||
|
@if [ "$(REV)" = "" ]; then echo "Usage: make bump-version-$* REV=<ref>"; exit 1; fi
|
||||||
|
python versions.py set-rev $* $(REV)
|
||||||
|
@if [ "$(COMMIT)" = "1" ]; then echo "[acceptance-tests] Bump $* to pick up $(REV)." | git commit -F - $(CONFIG); fi
|
||||||
|
|
||||||
|
__bump-branch-%:
|
||||||
|
@if [ "$(BRANCH)" = "" ]; then echo "Usage: make bump-branch-$* BRANCH=<branch> REMOTE_BRANCH=<remote branch>"; exit 1; fi
|
||||||
|
@if [ "$(REMOTE_BRANCH)" == "" ]; then echo "Usage: make bump-branch-$* BRANCH=<branch> REMOTE_BRANCH=<remote branch>"; exit 1; fi
|
||||||
|
python versions.py set-branch $* $(BRANCH)
|
||||||
|
python versions.py set-remote-branch $* $(REMOTE_BRANCH)
|
||||||
|
@if [ "$(COMMIT)" = "1" ]; then echo "[acceptance-tests] Bump $* to switch to $(BRANCH) $(REMOTE BRANCH)." | git commit -F - $(CONFIG); fi
|
||||||
|
|
||||||
|
__bump-current-version-%:
|
||||||
|
REV=$(shell cd $(TOP)/../$* && git log -1 --pretty=format:%H); \
|
||||||
|
python versions.py set-rev $* $$REV; \
|
||||||
|
if [ "$(COMMIT)" = "1" ]; then echo "[acceptance-tests] Bump $* to pick up $$REV:" | git commit -F - $(CONFIG); fi
|
||||||
|
|
||||||
|
# Bump the given submodule to the revision given by the REV make variable
|
||||||
|
# If COMMIT is 1, commit the change
|
||||||
|
bump-roslyn: __bump-version-roslyn
|
||||||
|
bump-coreclr: __bump-version-coreclr
|
||||||
|
bump-ms-test-suite: __bump-version-ms-test-suite
|
||||||
|
|
||||||
|
# Bump the given submodule to the branch given by the BRANCH/REMOTE_BRANCH make variables
|
||||||
|
# If COMMIT is 1, commit the change
|
||||||
|
bump-branch-roslyn: __bump-branch-roslyn
|
||||||
|
bump-branch-coreclr: __bump-branch-coreclr
|
||||||
|
bump-branch-ms-test-suite: __bump-branch-ms-test-suite
|
||||||
|
|
||||||
|
# Bump the given submodule to its current GIT version
|
||||||
|
# If COMMIT is 1, commit the change
|
||||||
|
bump-current-roslyn: __bump-current-version-roslyn
|
||||||
|
bump-current-coreclr: __bump-current-version-coreclr
|
||||||
|
bump-current-ms-test-suite: __bump-current-version-ms-test-suite
|
||||||
|
|
||||||
|
commit-bump-roslyn:
|
||||||
|
$(MAKE) bump-roslyn COMMIT=1
|
||||||
|
|
||||||
|
commit-bump-coreclr:
|
||||||
|
$(MAKE) bump-coreclr COMMIT=1
|
||||||
|
|
||||||
|
commit-bump-ms-test-suite:
|
||||||
|
$(MAKE) bump-ms-test-suite COMMIT=1
|
||||||
|
|
||||||
|
commit-bump-current-roslyn:
|
||||||
|
$(MAKE) bump-current-roslyn COMMIT=1
|
||||||
|
|
||||||
|
commit-bump-current-coreclr:
|
||||||
|
$(MAKE) bump-current-coreclr COMMIT=1
|
||||||
|
|
||||||
|
commit-bump-current-ms-test-suite:
|
||||||
|
$(MAKE) bump-current-ms-test-suite COMMIT=1
|
52
acceptance-tests/versions.py
Executable file
52
acceptance-tests/versions.py
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
|
||||||
|
def find_module(submodules, name):
|
||||||
|
for item in submodules:
|
||||||
|
if item["name"] == name:
|
||||||
|
return item
|
||||||
|
|
||||||
|
print "Not found"
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print "Usage: versions.py <command>"
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
CONFIG_FILE = "SUBMODULES.json"
|
||||||
|
command = sys.argv[1]
|
||||||
|
|
||||||
|
submodules = json.load(open(CONFIG_FILE))
|
||||||
|
|
||||||
|
if command == "get-rev":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
print mod["rev"]
|
||||||
|
elif command == "get-url":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
print mod["url"]
|
||||||
|
elif command == "get-dir":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
print mod["directory"]
|
||||||
|
elif command == "get-remote-branch":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
print mod["remote-branch"]
|
||||||
|
elif command == "set-rev":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
mod["rev"] = sys.argv[3]
|
||||||
|
json.dump(submodules, open(CONFIG_FILE, "w"), indent = 2)
|
||||||
|
elif command == "set-branch":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
mod["branch"] = sys.argv[3]
|
||||||
|
json.dump(submodules, open(CONFIG_FILE, "w"), indent = 2)
|
||||||
|
elif command == "set-remote-branch":
|
||||||
|
mod = find_module(submodules, sys.argv[2])
|
||||||
|
mod["remote-branch"] = sys.argv[3]
|
||||||
|
json.dump(submodules, open(CONFIG_FILE, "w"), indent = 2)
|
||||||
|
elif command == "cat":
|
||||||
|
print json.dumps(submodules, indent = 2)
|
||||||
|
else:
|
||||||
|
print "Unknown command "" + command + ""."
|
||||||
|
sys.exit(1)
|
50
code_of_conduct.md
Normal file
50
code_of_conduct.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Contributor Code of Conduct
|
||||||
|
|
||||||
|
As contributors and maintainers of this project, and in the interest of
|
||||||
|
fostering an open and welcoming community, we pledge to respect all people who
|
||||||
|
contribute through reporting issues, posting feature requests, updating
|
||||||
|
documentation, submitting pull requests or patches, and other activities.
|
||||||
|
|
||||||
|
We are committed to making participation in this project a harassment-free
|
||||||
|
experience for everyone, regardless of level of experience, gender, gender
|
||||||
|
identity and expression, sexual orientation, disability, personal appearance,
|
||||||
|
body size, race, ethnicity, age, religion, or nationality.
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery
|
||||||
|
* Personal attacks
|
||||||
|
* Trolling or insulting/derogatory comments
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing other's private information, such as physical or electronic
|
||||||
|
addresses, without explicit permission
|
||||||
|
* Other unethical or unprofessional conduct
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
By adopting this Code of Conduct, project maintainers commit themselves to
|
||||||
|
fairly and consistently applying these principles to every aspect of managing
|
||||||
|
this project. Project maintainers who do not follow or enforce the Code of
|
||||||
|
Conduct may be permanently removed from the project team.
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces and in public spaces
|
||||||
|
when an individual is representing the project or its community.
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting a project maintainer at miguel@xamarin.com. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. Maintainers are
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an
|
||||||
|
incident.
|
||||||
|
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 1.3.0, available at
|
||||||
|
[http://contributor-covenant.org/version/1/3/0/][version]
|
||||||
|
|
||||||
|
[homepage]: http://contributor-covenant.org
|
||||||
|
[version]: http://contributor-covenant.org/version/1/3/0/
|
57
config.h.in
57
config.h.in
@ -1,7 +1,7 @@
|
|||||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
/* The architecture this is running on */
|
/* Enable checked build. */
|
||||||
#undef ARCHITECTURE
|
#undef CHECKED_BUILD
|
||||||
|
|
||||||
/* GC description */
|
/* GC description */
|
||||||
#undef DEFAULT_GC_NAME
|
#undef DEFAULT_GC_NAME
|
||||||
@ -10,7 +10,7 @@
|
|||||||
#undef DISABLED_FEATURES
|
#undef DISABLED_FEATURES
|
||||||
|
|
||||||
/* Disable AOT Compiler */
|
/* Disable AOT Compiler */
|
||||||
#undef DISABLE_AOT_COMPILER
|
#undef DISABLE_AOT
|
||||||
|
|
||||||
/* Disable support for multiple appdomains. */
|
/* Disable support for multiple appdomains. */
|
||||||
#undef DISABLE_APPDOMAINS
|
#undef DISABLE_APPDOMAINS
|
||||||
@ -94,9 +94,6 @@
|
|||||||
/* Disable Shadow Copy for AppDomains */
|
/* Disable Shadow Copy for AppDomains */
|
||||||
#undef DISABLE_SHADOW_COPY
|
#undef DISABLE_SHADOW_COPY
|
||||||
|
|
||||||
/* Disable inter-process shared handles */
|
|
||||||
#undef DISABLE_SHARED_HANDLES
|
|
||||||
|
|
||||||
/* Disable shared perfcounters. */
|
/* Disable shared perfcounters. */
|
||||||
#undef DISABLE_SHARED_PERFCOUNTERS
|
#undef DISABLE_SHARED_PERFCOUNTERS
|
||||||
|
|
||||||
@ -133,6 +130,9 @@
|
|||||||
/* Enable the LLVM back end */
|
/* Enable the LLVM back end */
|
||||||
#undef ENABLE_LLVM
|
#undef ENABLE_LLVM
|
||||||
|
|
||||||
|
/* Runtime support code for llvm enabled */
|
||||||
|
#undef ENABLE_LLVM_RUNTIME
|
||||||
|
|
||||||
/* Enable using `perf` for profiling on Linux */
|
/* Enable using `perf` for profiling on Linux */
|
||||||
#undef ENABLE_PERF_EVENTS
|
#undef ENABLE_PERF_EVENTS
|
||||||
|
|
||||||
@ -260,6 +260,12 @@
|
|||||||
/* Define to 1 if you have the <execinfo.h> header file. */
|
/* Define to 1 if you have the <execinfo.h> header file. */
|
||||||
#undef HAVE_EXECINFO_H
|
#undef HAVE_EXECINFO_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `execv' function. */
|
||||||
|
#undef HAVE_EXECV
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `execve' function. */
|
||||||
|
#undef HAVE_EXECVE
|
||||||
|
|
||||||
/* Define to 1 if you have the `execvp' function. */
|
/* Define to 1 if you have the `execvp' function. */
|
||||||
#undef HAVE_EXECVP
|
#undef HAVE_EXECVP
|
||||||
|
|
||||||
@ -272,6 +278,9 @@
|
|||||||
/* Define to 1 if you have the `finite' function. */
|
/* Define to 1 if you have the `finite' function. */
|
||||||
#undef HAVE_FINITE
|
#undef HAVE_FINITE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `fork' function. */
|
||||||
|
#undef HAVE_FORK
|
||||||
|
|
||||||
/* Define to 1 if you have the <fstab.h> header file. */
|
/* Define to 1 if you have the <fstab.h> header file. */
|
||||||
#undef HAVE_FSTAB_H
|
#undef HAVE_FSTAB_H
|
||||||
|
|
||||||
@ -332,9 +341,6 @@
|
|||||||
/* Define to 1 if you have the `getpriority' function. */
|
/* Define to 1 if you have the `getpriority' function. */
|
||||||
#undef HAVE_GETPRIORITY
|
#undef HAVE_GETPRIORITY
|
||||||
|
|
||||||
/* Define if GetProcessId is available */
|
|
||||||
#undef HAVE_GETPROCESSID
|
|
||||||
|
|
||||||
/* Have getprotobyname */
|
/* Have getprotobyname */
|
||||||
#undef HAVE_GETPROTOBYNAME
|
#undef HAVE_GETPROTOBYNAME
|
||||||
|
|
||||||
@ -413,6 +419,9 @@
|
|||||||
/* isinf available */
|
/* isinf available */
|
||||||
#undef HAVE_ISINF
|
#undef HAVE_ISINF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `kill' function. */
|
||||||
|
#undef HAVE_KILL
|
||||||
|
|
||||||
/* Define to 1 if you have the `kqueue' function. */
|
/* Define to 1 if you have the `kqueue' function. */
|
||||||
#undef HAVE_KQUEUE
|
#undef HAVE_KQUEUE
|
||||||
|
|
||||||
@ -470,6 +479,9 @@
|
|||||||
/* Define to 1 if you have the `mmap' function. */
|
/* Define to 1 if you have the `mmap' function. */
|
||||||
#undef HAVE_MMAP
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
|
/* Moving collector */
|
||||||
|
#undef HAVE_MOVING_COLLECTOR
|
||||||
|
|
||||||
/* Define to 1 if you have the `mremap' function. */
|
/* Define to 1 if you have the `mremap' function. */
|
||||||
#undef HAVE_MREMAP
|
#undef HAVE_MREMAP
|
||||||
|
|
||||||
@ -575,12 +587,6 @@
|
|||||||
/* Define to 1 if you have the `remap_file_pages' function. */
|
/* Define to 1 if you have the `remap_file_pages' function. */
|
||||||
#undef HAVE_REMAP_FILE_PAGES
|
#undef HAVE_REMAP_FILE_PAGES
|
||||||
|
|
||||||
/* Define to 1 if you have the `rint' function. */
|
|
||||||
#undef HAVE_RINT
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `round' function. */
|
|
||||||
#undef HAVE_ROUND
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sched_getcpu' function. */
|
/* Define to 1 if you have the `sched_getcpu' function. */
|
||||||
#undef HAVE_SCHED_GETCPU
|
#undef HAVE_SCHED_GETCPU
|
||||||
|
|
||||||
@ -632,6 +638,9 @@
|
|||||||
/* Define to 1 if you have the `sigaction' function. */
|
/* Define to 1 if you have the `sigaction' function. */
|
||||||
#undef HAVE_SIGACTION
|
#undef HAVE_SIGACTION
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `signal' function. */
|
||||||
|
#undef HAVE_SIGNAL
|
||||||
|
|
||||||
/* Define to 1 if you have the <signal.h> header file. */
|
/* Define to 1 if you have the <signal.h> header file. */
|
||||||
#undef HAVE_SIGNAL_H
|
#undef HAVE_SIGNAL_H
|
||||||
|
|
||||||
@ -707,6 +716,9 @@
|
|||||||
/* Define to 1 if `kp_proc' is a member of `struct kinfo_proc'. */
|
/* Define to 1 if `kp_proc' is a member of `struct kinfo_proc'. */
|
||||||
#undef HAVE_STRUCT_KINFO_PROC_KP_PROC
|
#undef HAVE_STRUCT_KINFO_PROC_KP_PROC
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `struct linger'. */
|
||||||
|
#undef HAVE_STRUCT_LINGER
|
||||||
|
|
||||||
/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
|
/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
|
||||||
#undef HAVE_STRUCT_PASSWD_PW_GECOS
|
#undef HAVE_STRUCT_PASSWD_PW_GECOS
|
||||||
|
|
||||||
@ -806,9 +818,6 @@
|
|||||||
/* Define to 1 if you have the <sys/select.h> header file. */
|
/* Define to 1 if you have the <sys/select.h> header file. */
|
||||||
#undef HAVE_SYS_SELECT_H
|
#undef HAVE_SYS_SELECT_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/sem.h> header file. */
|
|
||||||
#undef HAVE_SYS_SEM_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/sendfile.h> header file. */
|
/* Define to 1 if you have the <sys/sendfile.h> header file. */
|
||||||
#undef HAVE_SYS_SENDFILE_H
|
#undef HAVE_SYS_SENDFILE_H
|
||||||
|
|
||||||
@ -896,6 +905,9 @@
|
|||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
#undef HAVE_UNISTD_H
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unwind.h> header file. */
|
||||||
|
#undef HAVE_UNWIND_H
|
||||||
|
|
||||||
/* Define to 1 if you have /usr/include/malloc.h. */
|
/* Define to 1 if you have /usr/include/malloc.h. */
|
||||||
#undef HAVE_USR_INCLUDE_MALLOC_H
|
#undef HAVE_USR_INCLUDE_MALLOC_H
|
||||||
|
|
||||||
@ -945,6 +957,9 @@
|
|||||||
*/
|
*/
|
||||||
#undef LT_OBJDIR
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
|
/* The architecture this is running on */
|
||||||
|
#undef MONO_ARCHITECTURE
|
||||||
|
|
||||||
/* 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
|
||||||
|
|
||||||
@ -957,6 +972,9 @@
|
|||||||
/* native types */
|
/* native types */
|
||||||
#undef MONO_NATIVE_TYPES
|
#undef MONO_NATIVE_TYPES
|
||||||
|
|
||||||
|
/* AOT cross offsets file */
|
||||||
|
#undef MONO_OFFSETS_FILE
|
||||||
|
|
||||||
/* Reduce runtime requirements (and capabilities) */
|
/* Reduce runtime requirements (and capabilities) */
|
||||||
#undef MONO_SMALL_CONFIG
|
#undef MONO_SMALL_CONFIG
|
||||||
|
|
||||||
@ -1071,6 +1089,9 @@
|
|||||||
/* ... */
|
/* ... */
|
||||||
#undef TARGET_SPARC64
|
#undef TARGET_SPARC64
|
||||||
|
|
||||||
|
/* The JIT/AOT targets WatchOS */
|
||||||
|
#undef TARGET_WATCHOS
|
||||||
|
|
||||||
/* Target Platform is Win32 */
|
/* Target Platform is Win32 */
|
||||||
#undef TARGET_WIN32
|
#undef TARGET_WIN32
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
08afe9df2791baac02e8201b01cce1aca3beb124
|
79ba3854a41b122e90badfb88a8aba24b6abc54c
|
@ -1 +1 @@
|
|||||||
4fa615ca8fe030cfede44041b86cf5bfc38aceaf
|
568cb227ed520bd10d312bf4a66ccba0f772b016
|
@ -14,7 +14,8 @@ EXTRA_DIST = \
|
|||||||
net_1_1/machine.config \
|
net_1_1/machine.config \
|
||||||
gdb/mono-gdb.py \
|
gdb/mono-gdb.py \
|
||||||
gdb/gdb-python.diff \
|
gdb/gdb-python.diff \
|
||||||
lldb/mono.py
|
lldb/mono.py \
|
||||||
|
lldb/monobt.py
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
|
||||||
|
@ -237,8 +237,6 @@ AUTOMAKE = @AUTOMAKE@
|
|||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||||
BUILD_EXEEXT = @BUILD_EXEEXT@
|
BUILD_EXEEXT = @BUILD_EXEEXT@
|
||||||
BUILD_GLIB_CFLAGS = @BUILD_GLIB_CFLAGS@
|
|
||||||
BUILD_GLIB_LIBS = @BUILD_GLIB_LIBS@
|
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CCAS = @CCAS@
|
CCAS = @CCAS@
|
||||||
CCASDEPMODE = @CCASDEPMODE@
|
CCASDEPMODE = @CCASDEPMODE@
|
||||||
@ -254,9 +252,9 @@ CXXCPP = @CXXCPP@
|
|||||||
CXXDEPMODE = @CXXDEPMODE@
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
CXXFLAGS = @CXXFLAGS@
|
CXXFLAGS = @CXXFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFAULT_PROFILE = @DEFAULT_PROFILE@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
DEPDIR = @DEPDIR@
|
DEPDIR = @DEPDIR@
|
||||||
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
|
|
||||||
DLLTOOL = @DLLTOOL@
|
DLLTOOL = @DLLTOOL@
|
||||||
DOLT_BASH = @DOLT_BASH@
|
DOLT_BASH = @DOLT_BASH@
|
||||||
DSYMUTIL = @DSYMUTIL@
|
DSYMUTIL = @DSYMUTIL@
|
||||||
@ -274,8 +272,6 @@ GDKX11 = @GDKX11@
|
|||||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||||
GLIB_LIBS = @GLIB_LIBS@
|
GLIB_LIBS = @GLIB_LIBS@
|
||||||
GMODULE_CFLAGS = @GMODULE_CFLAGS@
|
|
||||||
GMODULE_LIBS = @GMODULE_LIBS@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
GMSGFMT_015 = @GMSGFMT_015@
|
GMSGFMT_015 = @GMSGFMT_015@
|
||||||
GREP = @GREP@
|
GREP = @GREP@
|
||||||
@ -447,7 +443,8 @@ EXTRA_DIST = \
|
|||||||
net_1_1/machine.config \
|
net_1_1/machine.config \
|
||||||
gdb/mono-gdb.py \
|
gdb/mono-gdb.py \
|
||||||
gdb/gdb-python.diff \
|
gdb/gdb-python.diff \
|
||||||
lldb/mono.py
|
lldb/mono.py \
|
||||||
|
lldb/monobt.py
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
@SUPPORT_SGEN_FALSE@SGENPCFILE =
|
@SUPPORT_SGEN_FALSE@SGENPCFILE =
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
|
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
|
||||||
<dllmap dll="oci" target="libclntsh@libsuffix@" os="!windows"/>
|
<dllmap dll="oci" target="libclntsh@libsuffix@" os="!windows"/>
|
||||||
<dllmap dll="db2cli" target="libdb2_36@libsuffix@" os="!windows"/>
|
<dllmap dll="db2cli" target="libdb2_36@libsuffix@" os="!windows"/>
|
||||||
<dllmap dll="MonoPosixHelper" target="@prefix@/@reloc_libdir@/libMonoPosixHelper@libsuffix@" os="!windows" />
|
<dllmap dll="MonoPosixHelper" target="$mono_libdir/libMonoPosixHelper@libsuffix@" os="!windows" />
|
||||||
<dllmap dll="i:msvcrt" target="@LIBC@" os="!windows"/>
|
<dllmap dll="i:msvcrt" target="@LIBC@" os="!windows"/>
|
||||||
<dllmap dll="i:msvcrt.dll" target="@LIBC@" os="!windows"/>
|
<dllmap dll="i:msvcrt.dll" target="@LIBC@" os="!windows"/>
|
||||||
<dllmap dll="sqlite" target="@SQLITE@" os="!windows"/>
|
<dllmap dll="sqlite" target="@SQLITE@" os="!windows"/>
|
||||||
|
@ -48,7 +48,7 @@ def stringify_class_name(ns, name):
|
|||||||
if ns == "":
|
if ns == "":
|
||||||
return name
|
return name
|
||||||
else:
|
else:
|
||||||
return "%s.%s".format (ns, name)
|
return "{}.{}".format (ns, name)
|
||||||
|
|
||||||
class ArrayPrinter:
|
class ArrayPrinter:
|
||||||
"Print a C# array"
|
"Print a C# array"
|
||||||
@ -61,7 +61,7 @@ class ArrayPrinter:
|
|||||||
def to_string(self):
|
def to_string(self):
|
||||||
obj = self.val.cast (gdb.lookup_type ("MonoArray").pointer ()).dereference ()
|
obj = self.val.cast (gdb.lookup_type ("MonoArray").pointer ()).dereference ()
|
||||||
length = obj ['max_length']
|
length = obj ['max_length']
|
||||||
return "%s [%d]".format (stringify_class_name (self.class_ns, self.class_name [0:len(self.class_name) - 2]), int(length))
|
return "{} [{}]".format (stringify_class_name (self.class_ns, self.class_name [0:len(self.class_name) - 2]), int(length))
|
||||||
|
|
||||||
class ObjectPrinter:
|
class ObjectPrinter:
|
||||||
"Print a C# object"
|
"Print a C# object"
|
||||||
@ -91,7 +91,7 @@ class ObjectPrinter:
|
|||||||
return (field.name, self.obj [field.name])
|
return (field.name, self.obj [field.name])
|
||||||
except:
|
except:
|
||||||
# Superclass
|
# Superclass
|
||||||
return (field.name, self.obj.cast (gdb.lookup_type ("%s".format (field.name))))
|
return (field.name, self.obj.cast (gdb.lookup_type ("{}".format (field.name))))
|
||||||
|
|
||||||
def children(self):
|
def children(self):
|
||||||
# FIXME: It would be easier if gdb.Value would support iteration itself
|
# FIXME: It would be easier if gdb.Value would support iteration itself
|
||||||
@ -105,7 +105,7 @@ class ObjectPrinter:
|
|||||||
if class_name [-2:len(class_name)] == "[]":
|
if class_name [-2:len(class_name)] == "[]":
|
||||||
return {}.__iter__ ()
|
return {}.__iter__ ()
|
||||||
try:
|
try:
|
||||||
gdb_type = gdb.lookup_type ("struct %s_%s".format (class_ns.replace (".", "_"), class_name))
|
gdb_type = gdb.lookup_type ("struct {}_{}".format (class_ns.replace (".", "_"), class_name))
|
||||||
return self._iterator(obj.cast (gdb_type))
|
return self._iterator(obj.cast (gdb_type))
|
||||||
except:
|
except:
|
||||||
return {}.__iter__ ()
|
return {}.__iter__ ()
|
||||||
@ -127,12 +127,12 @@ class ObjectPrinter:
|
|||||||
return ArrayPrinter (self.val,class_ns,class_name).to_string ()
|
return ArrayPrinter (self.val,class_ns,class_name).to_string ()
|
||||||
if class_ns != "":
|
if class_ns != "":
|
||||||
try:
|
try:
|
||||||
gdb_type = gdb.lookup_type ("struct %s.%s".format (class_ns, class_name))
|
gdb_type = gdb.lookup_type ("struct {}.{}".format (class_ns, class_name))
|
||||||
except:
|
except:
|
||||||
# Maybe there is no debug info for that type
|
# Maybe there is no debug info for that type
|
||||||
return "%s.%s".format (class_ns, class_name)
|
return "{}.{}".format (class_ns, class_name)
|
||||||
#return obj.cast (gdb_type)
|
#return obj.cast (gdb_type)
|
||||||
return "%s.%s".format (class_ns, class_name)
|
return "{}.{}".format (class_ns, class_name)
|
||||||
return class_name
|
return class_name
|
||||||
except:
|
except:
|
||||||
print (sys.exc_info ()[0])
|
print (sys.exc_info ()[0])
|
||||||
@ -152,9 +152,9 @@ class MonoMethodPrinter:
|
|||||||
val = self.val.dereference ()
|
val = self.val.dereference ()
|
||||||
klass = val ["klass"].dereference ()
|
klass = val ["klass"].dereference ()
|
||||||
class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
|
class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
|
||||||
return "\"%s:%s ()\"".format (class_name, val ["name"].string ())
|
return "\"{}:{} ()\"".format (class_name, val ["name"].string ())
|
||||||
# This returns more info but requires calling into the inferior
|
# This returns more info but requires calling into the inferior
|
||||||
#return "\"%s\"".format (gdb.parse_and_eval ("mono_method_full_name (%s, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ())
|
#return "\"{}\"".format (gdb.parse_and_eval ("mono_method_full_name ({}, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ())
|
||||||
|
|
||||||
class MonoClassPrinter:
|
class MonoClassPrinter:
|
||||||
"Print a MonoClass structure"
|
"Print a MonoClass structure"
|
||||||
@ -168,13 +168,13 @@ class MonoClassPrinter:
|
|||||||
klass = self.val.dereference ()
|
klass = self.val.dereference ()
|
||||||
class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
|
class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
|
||||||
if klass ["generic_class"].cast (gdb.lookup_type ("guint64")) != 0:
|
if klass ["generic_class"].cast (gdb.lookup_type ("guint64")) != 0:
|
||||||
class_name = "%s<%s>".format (class_name, str (klass ["generic_class"]["context"]["class_inst"]))
|
class_name = "{}<{}>".format (class_name, str (klass ["generic_class"]["context"]["class_inst"]))
|
||||||
if add_quotes:
|
if add_quotes:
|
||||||
return "\"%s\"".format (class_name)
|
return "\"{}\"".format (class_name)
|
||||||
else:
|
else:
|
||||||
return class_name
|
return class_name
|
||||||
# This returns more info but requires calling into the inferior
|
# This returns more info but requires calling into the inferior
|
||||||
#return "\"%s\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*)%s)->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64")))))))
|
#return "\"{}\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*){})->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64")))))))
|
||||||
|
|
||||||
def to_string(self):
|
def to_string(self):
|
||||||
try:
|
try:
|
||||||
@ -222,7 +222,7 @@ class MonoGenericClassPrinter:
|
|||||||
method_inst_str = ""
|
method_inst_str = ""
|
||||||
if int(method_inst.cast (gdb.lookup_type ("guint64"))) != 0:
|
if int(method_inst.cast (gdb.lookup_type ("guint64"))) != 0:
|
||||||
method_inst_str = str(method_inst)
|
method_inst_str = str(method_inst)
|
||||||
return "%s, [%s], [%s]>".format (container_str, class_inst_str, method_inst_str)
|
return "{}, [{}], [{}]>".format (container_str, class_inst_str, method_inst_str)
|
||||||
|
|
||||||
def to_string(self):
|
def to_string(self):
|
||||||
try:
|
try:
|
||||||
@ -252,9 +252,9 @@ class MonoTypePrinter:
|
|||||||
info = str(t ["data"]["generic_class"])
|
info = str(t ["data"]["generic_class"])
|
||||||
|
|
||||||
if info != "":
|
if info != "":
|
||||||
return "{%s, %s}".format (kind, info)
|
return "{{}, {}}".format (kind, info)
|
||||||
else:
|
else:
|
||||||
return "{%s}".format (kind)
|
return "{{}}".format (kind)
|
||||||
except:
|
except:
|
||||||
#print (sys.exc_info ()[0])
|
#print (sys.exc_info ()[0])
|
||||||
#print (sys.exc_info ()[1])
|
#print (sys.exc_info ()[1])
|
||||||
@ -283,7 +283,7 @@ class MonoMethodRgctxPrinter:
|
|||||||
if i > 0:
|
if i > 0:
|
||||||
inst_str = inst_str + ", "
|
inst_str = inst_str + ", "
|
||||||
inst_str = inst_str + type_printer.to_string ()
|
inst_str = inst_str + type_printer.to_string ()
|
||||||
return "MRGCTX[%s, [%s]]".format (klass_printer.to_string(), inst_str)
|
return "MRGCTX[{}, [{}]]".format (klass_printer.to_string(), inst_str)
|
||||||
|
|
||||||
class MonoVTablePrinter:
|
class MonoVTablePrinter:
|
||||||
"Print a MonoVTable structure"
|
"Print a MonoVTable structure"
|
||||||
@ -298,7 +298,7 @@ class MonoVTablePrinter:
|
|||||||
klass = vtable ["klass"]
|
klass = vtable ["klass"]
|
||||||
klass_printer = MonoClassPrinter (klass)
|
klass_printer = MonoClassPrinter (klass)
|
||||||
|
|
||||||
return "vtable(%s)".format (klass_printer.to_string ())
|
return "vtable({})".format (klass_printer.to_string ())
|
||||||
|
|
||||||
def lookup_pretty_printer(val):
|
def lookup_pretty_printer(val):
|
||||||
t = str (val.type)
|
t = str (val.type)
|
||||||
|
56
data/lldb/monobt.py
Normal file
56
data/lldb/monobt.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
import lldb
|
||||||
|
|
||||||
|
def print_frames(thread, num_frames, current_thread):
|
||||||
|
# TODO: Make output header similar to bt.
|
||||||
|
print '%c thread #%i' % ('*' if current_thread else ' ', thread.idx)
|
||||||
|
|
||||||
|
if current_thread:
|
||||||
|
selected_frame = thread.GetSelectedFrame()
|
||||||
|
|
||||||
|
for frame in thread.frames[:+num_frames]:
|
||||||
|
pc = str(frame.addr)
|
||||||
|
fmt = ' %c %s'
|
||||||
|
var = frame
|
||||||
|
if pc[0] == '0':
|
||||||
|
try:
|
||||||
|
framestr = frame.EvaluateExpression('(char*)mono_pmip((void*)%s)' % pc).summary[1:-1]
|
||||||
|
var = 'frame #%i: %s%s' % (frame.idx, pc, framestr)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
print fmt % ('*' if current_thread and frame.idx == selected_frame.idx else ' ', var)
|
||||||
|
|
||||||
|
def monobt(debugger, command, result, dict):
|
||||||
|
opts = {'all_bt': False, 'num_frames': None}
|
||||||
|
|
||||||
|
if command == 'all':
|
||||||
|
opts['all_bt'] = True
|
||||||
|
elif command.isdigit():
|
||||||
|
opts['num_frames'] = int(command)
|
||||||
|
elif command != '':
|
||||||
|
print 'error: monobt [<number>|all]'
|
||||||
|
return
|
||||||
|
|
||||||
|
target = debugger.GetSelectedTarget()
|
||||||
|
process = target.process
|
||||||
|
|
||||||
|
if not process.IsValid():
|
||||||
|
print 'error: invalid process'
|
||||||
|
return
|
||||||
|
|
||||||
|
if opts['all_bt']:
|
||||||
|
for thread in process.threads:
|
||||||
|
print_frames(thread, len(thread), process.selected_thread == thread)
|
||||||
|
print ''
|
||||||
|
else:
|
||||||
|
thread = process.selected_thread
|
||||||
|
num_frames = len(thread) if opts['num_frames'] is None else opts['num_frames']
|
||||||
|
print_frames(thread, num_frames, True)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __lldb_init_module (debugger, dict):
|
||||||
|
# This initializer is being run from LLDB in the embedded command interpreter
|
||||||
|
# Add any commands contained in this module to LLDB
|
||||||
|
debugger.HandleCommand('command script add -f monobt.monobt monobt')
|
||||||
|
print '"monobt" command installed'
|
@ -6,4 +6,4 @@ libdir=${exec_prefix}/lib
|
|||||||
Name: Mono NUnit
|
Name: Mono NUnit
|
||||||
Description: Mono's version of NUnit
|
Description: Mono's version of NUnit
|
||||||
Version: @VERSION@
|
Version: @VERSION@
|
||||||
Libs: -r:${libdir}/mono/2.0/nunit.core.dll -r:${libdir}/mono/2.0/nunit.core.interfaces.dll -r:${libdir}/mono/2.0/nunit.core.extensions.dll -r:${libdir}/mono/2.0/nunit.framework.dll -r:${libdir}/mono/2.0/nunit.framework.extensions.dll -r:${libdir}/mono/2.0/nunit.mocks.dll -r:${libdir}/mono/2.0/nunit.util.dll -r:${libdir}/mono/2.0/nunit-console-runner.dll
|
Libs: -r:${libdir}/mono/4.5/nunit.core.dll -r:${libdir}/mono/4.5/nunit.core.interfaces.dll -r:${libdir}/mono/4.5/nunit.core.extensions.dll -r:${libdir}/mono/4.5/nunit.framework.dll -r:${libdir}/mono/4.5/nunit.framework.extensions.dll -r:${libdir}/mono/4.5/nunit.mocks.dll -r:${libdir}/mono/4.5/nunit.util.dll -r:${libdir}/mono/4.5/nunit-console-runner.dll
|
||||||
|
@ -159,8 +159,6 @@ AUTOMAKE = @AUTOMAKE@
|
|||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||||
BUILD_EXEEXT = @BUILD_EXEEXT@
|
BUILD_EXEEXT = @BUILD_EXEEXT@
|
||||||
BUILD_GLIB_CFLAGS = @BUILD_GLIB_CFLAGS@
|
|
||||||
BUILD_GLIB_LIBS = @BUILD_GLIB_LIBS@
|
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CCAS = @CCAS@
|
CCAS = @CCAS@
|
||||||
CCASDEPMODE = @CCASDEPMODE@
|
CCASDEPMODE = @CCASDEPMODE@
|
||||||
@ -176,9 +174,9 @@ CXXCPP = @CXXCPP@
|
|||||||
CXXDEPMODE = @CXXDEPMODE@
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
CXXFLAGS = @CXXFLAGS@
|
CXXFLAGS = @CXXFLAGS@
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFAULT_PROFILE = @DEFAULT_PROFILE@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
DEPDIR = @DEPDIR@
|
DEPDIR = @DEPDIR@
|
||||||
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
|
|
||||||
DLLTOOL = @DLLTOOL@
|
DLLTOOL = @DLLTOOL@
|
||||||
DOLT_BASH = @DOLT_BASH@
|
DOLT_BASH = @DOLT_BASH@
|
||||||
DSYMUTIL = @DSYMUTIL@
|
DSYMUTIL = @DSYMUTIL@
|
||||||
@ -196,8 +194,6 @@ GDKX11 = @GDKX11@
|
|||||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||||
GLIB_LIBS = @GLIB_LIBS@
|
GLIB_LIBS = @GLIB_LIBS@
|
||||||
GMODULE_CFLAGS = @GMODULE_CFLAGS@
|
|
||||||
GMODULE_LIBS = @GMODULE_LIBS@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
GMSGFMT_015 = @GMSGFMT_015@
|
GMSGFMT_015 = @GMSGFMT_015@
|
||||||
GREP = @GREP@
|
GREP = @GREP@
|
||||||
|
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