--- mono-2.4.4~svn151842.orig/mcs/class/System.Web/System.Web.UI.WebControls/TableRow.cs +++ mono-2.4.4~svn151842/mcs/class/System.Web/System.Web.UI.WebControls/TableRow.cs @@ -47,8 +47,6 @@ TableCellCollection cells; #if NET_2_0 bool tableRowSectionSet; - - internal TableRowCollection Container { get; set; } #endif public TableRow () @@ -131,9 +129,6 @@ throw new ArgumentOutOfRangeException ("TableSection"); ViewState ["TableSection"] = (int) value; tableRowSectionSet = true; - TableRowCollection container = Container; - if (container != null) - container.RowTableSectionSet (); } } #endif --- mono-2.4.4~svn151842.orig/mcs/class/System.Web/System.Web.UI.WebControls/TableRowCollection.cs +++ mono-2.4.4~svn151842/mcs/class/System.Web/System.Web.UI.WebControls/TableRowCollection.cs @@ -43,9 +43,6 @@ internal TableRowCollection (Table table) { - if (table == null) - throw new ArgumentNullException ("table"); - cc = table.Controls; owner = table; } @@ -72,12 +69,9 @@ public int Add (TableRow row) { - if (row == null) - throw new NullReferenceException (); // .NET compatibility #if NET_2_0 if (row.TableRowSectionSet) owner.GenerateTableSections = true; - row.Container = this; #endif int index = cc.IndexOf (row); if (index < 0) { @@ -89,14 +83,10 @@ public void AddAt (int index, TableRow row) { - if (row == null) - throw new NullReferenceException (); // .NET compatibility - if (cc.IndexOf (row) < 0) { #if NET_2_0 if (row.TableRowSectionSet) owner.GenerateTableSections = true; - row.Container = this; #endif cc.AddAt (index, row); } @@ -105,14 +95,10 @@ public void AddRange (TableRow[] rows) { foreach (TableRow tr in rows) { - if (tr == null) - throw new NullReferenceException (); // .NET compatibility - if (cc.IndexOf (tr) < 0) { #if NET_2_0 if (tr.TableRowSectionSet) owner.GenerateTableSections = true; - tr.Container = this; #endif cc.Add (tr); } @@ -142,30 +128,13 @@ return cc.IndexOf (row); } -#if NET_2_0 - internal void RowTableSectionSet () - { - owner.GenerateTableSections = true; - } -#endif - public void Remove (TableRow row) { -#if NET_2_0 - if (row != null) - row.Container = null; -#endif cc.Remove (row); } public void RemoveAt (int index) { -#if NET_2_0 - TableRow row = this [index] as TableRow; - if (row != null) - row.Container = null; -#endif - cc.RemoveAt (index); } @@ -187,27 +156,28 @@ int IList.Add (object value) { - return Add (value as TableRow); + cc.Add ((TableRow)value); + return cc.IndexOf ((TableRow)value); } bool IList.Contains (object value) { - return cc.Contains (value as TableRow); + return cc.Contains ((TableRow)value); } int IList.IndexOf (object value) { - return cc.IndexOf (value as TableRow); + return cc.IndexOf ((TableRow)value); } void IList.Insert (int index, object value) { - AddAt (index, value as TableRow); + cc.AddAt (index, (TableRow)value); } void IList.Remove (object value) { - Remove (value as TableRow); + cc.Remove ((TableRow)value); } } } --- mono-2.4.4~svn151842.orig/debian/mono.runtime-script +++ mono-2.4.4~svn151842/debian/mono.runtime-script @@ -0,0 +1,147 @@ +#!/usr/bin/perl + +# +# Setup +# + +# Directives +use strict; +use warnings; + +# Modules +use File::Basename; + +# Figure out the mode +my $mode = shift @ARGV; + +if (!defined $mode) +{ + print STDERR "E: You must supply a mode\n"; + print STDERR "E: Use: install, remove, or name\n"; + exit 1; +} + +# Name is simply +if ($mode eq "name") +{ + print "Mono\n"; + exit 0; +} + +# This program gets the name of a file (ending in .installcligac) and +# a list of assemblies to install, as full paths. The ones given are +# the only ones that passed the white/blacklisting. + +# Get the base file +my $basename = shift @ARGV; +my $cligac = "/usr/share/cli-common/packages.d/$basename.installcligac"; + +if (! -f $cligac) +{ + print STDERR "E: File does not exist: $cligac\n"; + exit 1; +} + +# Get the base directory +my $basedir = "/usr/share/cli-common/packages.d/"; + +# Removing is also simple +if ($mode eq "remove") +{ + # Get the uninstall file + my $uninstall = "$basedir/$basename.mono"; + + if (-f $uninstall) + { + # Go through the file + open UNINSTALL, "<$uninstall" or + die "E: Cannot open uninstall file ($!)"; + + while () + { + my $assembly = $_; + chomp($assembly); + my $cmd = "/usr/bin/gacutil -u $assembly > /dev/null"; + my $res = system($cmd); + if ($res > 0) { + print STDERR "W: removing assembly: $assembly failed!\n"; + } + } + + close UNINSTALL; + + # Unlike the file + unlink($uninstall); + } + + # We are good + exit 0; +} + +# The only thing left should be "install" +if ($mode ne "install") +{ + print STDERR "E: Unknown mode: $mode\n"; + print STDERR "E: Use: install, remove or name\n"; + exit 1; +} + + +# Open up our uninstall file +open UNINSTALL, ">$basedir/$basename.mono" + or die "E: Cannot open uninstall: $basedir/$basename.mono"; + +# Go through the file +open CLIGAC, "<$cligac" or die "E: Cannot open: $cligac ($!)"; + +while (@ARGV) +{ + # Get the assembly name + my $dll = shift @ARGV; + + # Make sure it is there + if (! -f $dll) + { + print STDERR "E: Assembly does not exist: $dll\n"; + exit 1; + } + + # Figure out the mono's precise name + my $fullname = get_full_name($dll); + + # Write out the uninstall file + print UNINSTALL "$fullname\n"; + + # Install the file. We use the "../../../.." to make it a + # relative path to this program (since gacutil doesn't like + # absolute paths). There isn't a problem of doing too many + # since we typically run from the root context. + my $cmd = "(cd `dirname $dll` && " + . "/usr/bin/gacutil -i `basename $dll`" + . " > /dev/null)"; + system($cmd) == 0 or die "E: installing Assembly $dll failed\n"; +} + +close CLIGAC; +close UNINSTALL; + +# Finish up successfully +exit 0; + +# Get the name of the assembly in a manner suitable for uninstall +# using gacutil. +sub get_full_name +{ + # Get the name + my $dll = shift; + + # Open a pipe to monop + my $cmd = "LANG=C /usr/bin/mono /usr/share/mono/MonoGetAssemblyName.exe $dll"; + open PIPE, "$cmd |" or die "E: Cannot open pipe to assembly builder $dll"; + + # This generate a single line that produces the desired results + $_ = ; + chomp; + # assembly1, Version=1.0.0.0, Culture=en, PublicKeyToken=0123456789abcdef + return $_; +} --- mono-2.4.4~svn151842.orig/debian/libmono-i18n-west2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-i18n-west2.0-cil.install @@ -0,0 +1,4 @@ +/usr/lib/mono/gac/I18N/2.0.*/ +/usr/lib/mono/gac/I18N.West/2.0.*/ +/usr/lib/mono/2.0/I18N.dll +/usr/lib/mono/2.0/I18N.West.dll --- mono-2.4.4~svn151842.orig/debian/libmono-wcf3.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-wcf3.0-cil.install @@ -0,0 +1,10 @@ +/usr/lib/mono/gac/System.IdentityModel.Selectors/3.0.0.0__*/ +/usr/lib/mono/gac/System.IdentityModel/3.0.0.0__*/ +/usr/lib/mono/gac/System.Runtime.Serialization/3.0.0.0__*/ +/usr/lib/mono/gac/System.ServiceModel.Web/3.0.0.0__*/ +/usr/lib/mono/gac/System.ServiceModel/3.0.0.0__*/ +/usr/lib/mono/2.0/System.IdentityModel.Selectors.dll +/usr/lib/mono/2.0/System.IdentityModel.dll +/usr/lib/mono/2.0/System.Runtime.Serialization.dll +/usr/lib/mono/2.0/System.ServiceModel.Web.dll +/usr/lib/mono/2.0/System.ServiceModel.dll --- mono-2.4.4~svn151842.orig/debian/rules +++ mono-2.4.4~svn151842/debian/rules @@ -0,0 +1,509 @@ +#!/usr/bin/make -f + +#export DH_VERBOSE=1 +export MONO_SHARED_DIR=$(CURDIR) + +# Assume Debian behaviour by default. +DISTRO = $(shell lsb_release -si) + +MAKEFILE = $(firstword $(MAKEFILE_LIST)) +DEBIAN_DIR = $(dir $(MAKEFILE)) +SOURCE_DIR = $(DEBIAN_DIR)/.. + +VERSION = $(shell dpkg-parsechangelog -l$(DEBIAN_DIR)/changelog | grep ^Vers | cut -d\ -f2) +UPVERSION = $(shell echo $(VERSION) | sed 's,-.*,,' | sed 's,+dfsg.*,,') +NEXT_UPVERSION = $(shell perl -e '$$_=pop; s/(\d+)$$/$$1+1/e; print' $(UPVERSION)) +DEB_SOURCE_NAME = $(shell dpkg-parsechangelog -l$(DEBIAN_DIR)/changelog | grep ^Source | cut -d" " -f2) + +RUN_MONO = LD_LIBRARY_PATH=debian/tmp/usr/lib MONO_PATH=debian/tmp/usr/lib/mono/2.0 debian/tmp/usr/bin/mono +DH_INTERNAL_MONO_PARAM = --internal-mono +ifeq ($(shell dpkg --compare-versions $$(dpkg-query -f '$${Version}' -W debhelper) lt 7.1; echo $$?), 0) + DH_INTERNAL_MONO_PARAM = internal-mono +endif + +DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + CONF_FLAGS += --build $(DEB_HOST_GNU_TYPE) +else + CONF_FLAGS += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) +endif + +ifeq ($(DEB_BUILD_ARCH_OS), kfreebsd) + CONF_FLAGS += --enable-minimal=aot +endif + +ifeq ($(DEB_BUILD_ARCH), armel) + CONF_FLAGS += --with-fpu=NONE + # the build-system picks __thread for armel which is not working, + # thus we have to explicitly pick pthread + CONF_FLAGS += --with-tls=pthread +endif + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 -g +else + CFLAGS += -O2 -g +endif + +ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + MINI_TEST = true + MONO_TEST = true +else + MINI_TEST = cd mono/mini && make check + MONO_TEST = cd mono/tests && make test +endif + +CONFIGURE = CFLAGS="$(CFLAGS)" \ + ./configure $(CONF_FLAGS) --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info --sysconfdir=/etc \ + --with-jit=yes --with-ikvm-native=no --with-preview=yes \ + --with-libgdiplus=installed --with-x=yes \ + --with-moonlight=no \ + --enable-quiet-build=no + +# Mono's build system doesn't like -j > 1 +MAKE_FLAGS += -j1 +export MAKEFLAGS=$(MAKE_FLAGS) + +#ifeq ($(DEB_BUILD_ARCH), i386) +# MAKE_FLAGS += RUNTIME=$(CURDIR)/debian/mono-aot-wrapper +#endif + +# Include dpatch stuff. +include /usr/share/dpatch/dpatch.make + +autoreconf: patch autoreconf-stamp +autoreconf-stamp: + autoreconf -f -i -s + touch $@ + +configure-arch: configure-arch-stamp +configure-arch-stamp: autoreconf + dh_testdir + $(CONFIGURE) --disable-mcs-build + touch $@ + +configure-indep: patch configure-indep-stamp +configure-indep-stamp: autoreconf + dh_testdir + $(CONFIGURE) + touch $@ + +build: build-arch +build-all: build-arch build-indep + +build-arch: configure-arch build-arch-stamp +build-arch-stamp: + dh_testdir + LC_ALL=C $(MAKE) $(MAKE_FLAGS) EXTERNAL_MCS=false EXTERNAL_MONO=false + cd mcs/jay && \ + $(MAKE) + cd debian/detector && \ + $(MAKE) + #debian/mono-aot-bootstrap + touch $@ + +build-indep: configure-indep build-indep-stamp +build-indep-stamp: + dh_testdir + LC_ALL=C $(MAKE) $(MAKE_FLAGS) EXTERNAL_MCS=false EXTERNAL_MONO=false + cd docs && $(MAKE) + chmod +x debian/dh_makeclilibs \ + debian/dh_clideps \ + debian/dh_clistrip \ + debian/dh_clifixperms \ + debian/dh_monoaot + touch $@ + +test: test-arch +test-arch: test-arch-stamp +test-arch-stamp: configure-indep + # we have to depend on configure-indep here because configure-arch + # passes --disable-mcs-build to ./configure which skips generating + # mcs/build/config.make which is required when we wan't to build + # assemblies here as thats where RUNTIME etc is defined. + + # runtime tests need gmcs, ilasm and mkbundle, so let's build them + + # bootstrap 1.1 needs basic + cd mcs && LC_ALL=C $(MAKE) EXTERNAL_MCS=false EXTERNAL_MONO=false PROFILE=basic + + # mcs needs bootstrap 1.1 + cd mcs && LC_ALL=C $(MAKE) EXTERNAL_MCS=false EXTERNAL_MONO=false NO_DIR_CHECK=1 PROFILE=net_1_1_bootstrap + + # mcs needs mscorlib, System, System.Xml and Mono.CompilerServices.SymbolWriter + cd mcs/class/corlib && LC_ALL=C $(MAKE) PROFILE=net_1_1 + cd mcs/class/System && LC_ALL=C $(MAKE) PROFILE=net_1_1 + cd mcs/class/System.XML && LC_ALL=C $(MAKE) PROFILE=net_1_1 + cd mcs/class/Mono.CompilerServices.SymbolWriter && LC_ALL=C $(MAKE) PROFILE=net_1_1 + # build mcs + cd mcs/mcs && LC_ALL=C $(MAKE) PROFILE=net_1_1 + + # gmcs needs bootstrap 2.0, + cd mcs && LC_ALL=C $(MAKE) EXTERNAL_MCS=false EXTERNAL_MONO=false NO_DIR_CHECK=1 PROFILE=net_2_0_bootstrap + # build gmcs + cd mcs/mcs && LC_ALL=C $(MAKE) PROFILE=net_2_0 + + # PEAPI need mscorlib, System, System.Xml and Mono.CompilerServices.SymbolWriter + cd mcs/class/corlib && LC_ALL=C $(MAKE) PROFILE=net_2_0 + cd mcs/class/System && LC_ALL=C $(MAKE) PROFILE=net_2_0 + cd mcs/class/System.XML && LC_ALL=C $(MAKE) PROFILE=net_2_0 + cd mcs/class/Mono.CompilerServices.SymbolWriter && LC_ALL=C $(MAKE) PROFILE=net_2_0 + + # ilasm needs PEAPI and Mono.Security + cd mcs/class/PEAPI && LC_ALL=C $(MAKE) PROFILE=net_2_0 + cd mcs/class/Mono.Security && LC_ALL=C $(MAKE) PROFILE=net_2_0 + # build ilasm + cd mcs/ilasm && LC_ALL=C $(MAKE) PROFILE=net_2_0 + + # mkbundle needs Mono.Posix and ICSharpCode.SharpZipLib + cd mcs/class/Mono.Posix && LC_ALL=C $(MAKE) PROFILE=net_2_0 + cd mcs/class/ICSharpCode.SharpZipLib && LC_ALL=C $(MAKE) PROFILE=net_2_0 + # build mkbundle + cd mcs/tools/mkbundle && LC_ALL=C $(MAKE) PROFILE=net_2_0 + + # some tests need System.Core + cd mcs/class/System.Core && LC_ALL=C $(MAKE) PROFILE=net_2_0 + + # mono/mini tests need Mono.Simd + cd mcs/class/Mono.Simd && LC_ALL=C $(MAKE) PROFILE=net_2_0 + + # show time baby: run all tests + -$(MINI_TEST) + -$(MONO_TEST) + + # clean up + cd mono/mini && $(MAKE) clean + cd mono/tests && $(MAKE) clean + # funny bug-459094.cs creates too long directory names which + # pbuilder is unable to remove, eh + rm -rf mono/tests/abcde12345abcde12345abcde12345abcde12345/ + # delete the assemblies we built here, to make sure they get cleanly + # rebuild in the build-indep target + rm -rf \ + mcs/class/lib/basic \ + mcs/class/lib/net_1_1 \ + mcs/class/lib/net_1_1_bootstrap \ + mcs/class/lib/net_2_0 \ + mcs/class/lib/net_2_0_bootstrap + + touch $@ + +clean: clean-patched unpatch +clean-patched: + echo "distro is $(DISTRO)" + dh_testdir + dh_testroot + [ ! -f Makefile ] || $(MAKE) distclean + # distclean misses stuff + find -name "*.mdb" -delete + # AOT stuff we created using mono-aot-wrapper/mono-aot-bootstrap + find mcs/class/lib -name "*.so" -delete + -cd debian/detector && $(MAKE) clean + rm -f debian/MonoGetAssemblyName.exe \ + debian/mono-api-diff.exe + rm -rf $(MONO_SHARED_DIR)/.wapi + + rm -f mcs/class/lib/default/mono-api-info.exe \ + mcs/class/lib/net_2_0/mono-api-info.exe \ + mcs/class/Managed.Windows.Forms/resources/*.resources \ + mcs/class/Mono.Data.Sqlite/resources/SR.resources \ + mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resources \ + mcs/class/System.Web/resources/TranslationResources.resources + + # clean stuff handled by autoreconf + rm -rf configure config.sub config.guess ltmain.sh aclocal.m4 autom4te.cache/ + find . -name "Makefile.in" -delete + + rm -f autoreconf-stamp + rm -f configure-*-stamp + rm -f build-*-stamp + rm -f install-*-stamp + + dh_clean + +install: install-all +install-all: install-arch install-indep + +install-arch: install-arch-stamp +install-arch-stamp: + dh_testdir + dh_testroot + #dh_clean -k -s + dh_installdirs -s + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + cd mcs/jay && \ + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp prefix=/usr INSTALL=../../install-sh + touch install-arch-stamp + +install-indep: install-indep-stamp +install-indep-stamp: + dh_testdir + dh_testroot + #dh_clean -k -i + dh_installdirs -i + cd mcs && \ + $(MAKE) install NO_DIR_CHECK=1 DESTDIR=$(CURDIR)/debian/tmp PROFILE=net_1_1 && \ + $(MAKE) install NO_DIR_CHECK=1 DESTDIR=$(CURDIR)/debian/tmp PROFILE=net_2_0 && \ + $(MAKE) install NO_DIR_CHECK=1 DESTDIR=$(CURDIR)/debian/tmp PROFILE=net_3_5 + + # upstream forgot to remove this one + rm -f debian/tmp/usr/bin/mbas + # don't want docs of bundled libgc + rm -rf debian/tmp/usr/share/libgc-mono + # Mono.WebBrowser.dll is linked with CLI 2.0, thus the symlink in 1.0/ doesn't make sense + rm -f debian/tmp/usr/lib/mono/1.0/Mono.WebBrowser.dll + # Mono.Security.Win32.dll is only useful on windows, as it wrap the win api + rm -rf $(CURDIR)/debian/tmp/usr/lib/mono/gac/Mono.Security.Win32/1.0.5000.0__*/ \ + $(CURDIR)/debian/tmp/usr/lib/mono/gac/Mono.Security.Win32/2.0.0.0__*/ + rm -f $(CURDIR)/debian/tmp/usr/lib/mono/1.0/Mono.Security.Win32.dll \ + $(CURDIR)/debian/tmp/usr/lib/mono/2.0/Mono.Security.Win32.dll + # bug in Mono 2.4: if you meant on 2.4 that was a bug + rm -rf $(CURDIR)/debian/tmp/usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.5.0__*/ + # CLI 1.0 is only kept for compat, don't ship new 1.0 libs + rm -rf $(CURDIR)/debian/tmp/usr/lib/mono/gac/Mono.Messaging/1.0.5000.0__*/ + + # copy missing 2.0 manpages + cp $(CURDIR)/debian/tmp/usr/share/man/man1/al.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/al2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/gacutil.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/gacutil2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/mcs.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/gmcs.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/mcs.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/smcs.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/mono-service.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/mono-service2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/mkbundle.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/mkbundle2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/wsdl.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/wsdl2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/monop.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/monop2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/ilasm.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/ilasm2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/resgen.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/resgen2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/genxs.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/genxs2.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/xsd.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/xsd2.1 + # copy missing 1.0 manpages + cp $(CURDIR)/debian/tmp/usr/share/man/man1/al.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/al1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/gacutil.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/gacutil1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/genxs.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/genxs1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/ilasm.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/ilasm1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/mkbundle.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/mkbundle1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/monop.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/monop1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/resgen.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/resgen1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/wsdl.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/wsdl1.1 + cp $(CURDIR)/debian/tmp/usr/share/man/man1/xsd.1 \ + $(CURDIR)/debian/tmp/usr/share/man/man1/xsd1.1 + # copy missing default scripts + cp $(CURDIR)/debian/tmp/usr/bin/xsd \ + $(CURDIR)/debian/tmp/usr/bin/xsd1 + # gacutil should be 2.0 by default (like all other development tools) + mv $(CURDIR)/debian/tmp/usr/bin/gacutil \ + $(CURDIR)/debian/tmp/usr/bin/gacutil1 + cp $(CURDIR)/debian/tmp/usr/bin/gacutil2 \ + $(CURDIR)/debian/tmp/usr/bin/gacutil + + touch install-indep-stamp + +binary: binary-arch binary-indep + +binary-indep: build-arch install-arch build-indep install-indep + dh_testdir + dh_testroot + + # Build the late-GAC tool, + # using the built Mono runtime from debian/tmp + # (thus the install-arch target dependency!) + $(RUN_MONO) mcs/class/lib/net_2_0/gmcs.exe \ + -target:exe \ + -out:debian/MonoGetAssemblyName.exe \ + debian/MonoGetAssemblyName.cs + + # Build mono-api-diff + $(RUN_MONO) mcs/class/lib/net_2_0/gmcs.exe \ + -target:exe \ + -out:debian/mono-api-diff.exe \ + debian/mono-api-diff.cs + + # that exclude list are programs for arch-dep packages + dh_install -i -Xbin/monodis -Xbin/monograph -Xbin/mono-find-provides -Xbin/mono-find-requires -Xbin/pedump -Xbin/jay + + # Late GAC + install -D -m 755 debian/mono.runtime-script debian/mono-gac/usr/share/cli-common/runtimes.d/mono + + install -m 644 debian/System.Data.dll.config debian/libmono-system-data1.0-cil/usr/lib/mono/gac/System.Data/1.0.*/ + install -m 644 debian/System.Data.dll.config debian/libmono-system-data2.0-cil/usr/lib/mono/gac/System.Data/2.0.*/ + install -m 644 debian/System.Drawing.dll.config debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Drawing/1.0.*/ + install -m 644 debian/System.Drawing.dll.config debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Drawing/2.0.*/ + install -m 644 debian/System.Windows.Forms.dll.config debian/libmono-winforms1.0-cil/usr/lib/mono/gac/System.Windows.Forms/1.0.*/ + install -m 644 debian/System.Windows.Forms.dll.config debian/libmono-winforms2.0-cil/usr/lib/mono/gac/System.Windows.Forms/2.0.*/ + install -m 644 debian/Mono.Cairo.dll.config debian/libmono-cairo1.0-cil/usr/lib/mono/gac/Mono.Cairo/1.0.*/ + install -m 644 debian/Mono.Cairo.dll.config debian/libmono-cairo2.0-cil/usr/lib/mono/gac/Mono.Cairo/2.0.*/ + install -m 644 debian/Mono.Data.SqliteClient.dll.config debian/libmono-sqlite1.0-cil/usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/ + install -m 644 debian/Mono.Data.SqliteClient.dll.config debian/libmono-sqlite2.0-cil/usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/ + install -m 644 debian/Mono.Data.Sqlite.dll.config debian/libmono-sqlite1.0-cil/usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/ + install -m 644 debian/Mono.Data.Sqlite.dll.config debian/libmono-sqlite2.0-cil/usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/ + install -m 644 debian/FirebirdSql.Data.Firebird.dll.config debian/libmono-firebirdsql1.7-cil/usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/ + + dh_link -i + dh_installchangelogs -i -X ChangeLog + dh_installdocs -i + dh_installman -i + debian/dh_clistrip -i --dbg-package=mono-dbg + dh_compress -i + + # Hack workaround to allow Ubuntu to run its own preinst (e.g. to kill symlinked docdirs) + if [ "$(DISTRO)" = "Ubuntu" ]; then \ + for p in $$(dh_listpackages -i); do \ + sed "s/#PACKAGENAME#/$$p/g" $(CURDIR)/debian/preinst.ubuntu >> debian/$$p.preinst.debhelper; \ + done; \ + fi + + dh_fixperms -i + debian/dh_clifixperms -i + dh_installdeb -i + #DH_VERBOSE=1 DH_AUTOSCRIPTDIR=$(CURDIR)/debian debian/dh_monoaot -i + debian/dh_makeclilibs -i -m 1.0 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono1.0-cil -m 2.0 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono2.0-cil -m 2.0 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-cairo1.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-cairo2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-corlib1.0-cil -m 1.2.2.1 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-corlib2.0-cil -m 1.2.2.1 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-data1.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-data2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-data-tds1.0-cil -m 2.4.3 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-data-tds2.0-cil -m 2.4.3 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-ldap1.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-ldap2.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-microsoft-build2.0-cil -m 2.4.3 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-oracle2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-peapi1.0-cil -m 2.4.2 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-peapi2.0-cil -m 2.4.2 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-posix1.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-posix2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-relaxng1.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-relaxng2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system1.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system2.0-cil -m 2.4.3 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system-data1.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system-data2.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system-ldap2.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system-runtime2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-system-web2.0-cil -m 1.9.1 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-security1.0-cil -m 2.4.3 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-security2.0-cil -m 2.4.3 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-sqlite1.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-sqlite2.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-web1.0-cil -m 1.9 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-web2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-webbrowser0.5-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-winforms1.0-cil -m 1.2.6 $(DH_INTERNAL_MONO_PARAM) + debian/dh_makeclilibs -p libmono-winforms2.0-cil -m 2.4 $(DH_INTERNAL_MONO_PARAM) + # preview APIs get tighter clilibs + debian/dh_makeclilibs -p libmono-system2.1-cil -m 2.0 $(DH_INTERNAL_MONO_PARAM) + debian/dh_clideps -i -l debian/tmp $(DH_INTERNAL_MONO_PARAM) + #DH_VERBOSE=1 debian/dh_clideps -i -l debian/tmp $(DH_INTERNAL_MONO_PARAM) + # mono-1.0/2.0-gac needs special runtime dep, to prevent circular dep (mono-runtime <-> mono-1.0/2.0-gac) + debian/dh_clideps -p mono-1.0-gac -r $(DH_INTERNAL_MONO_PARAM) + debian/dh_clideps -p mono-2.0-gac -r $(DH_INTERNAL_MONO_PARAM) + dh_gencontrol -i -- -Vmono:upversion=$(UPVERSION) -Vmono:next-upversion=$(NEXT_UPVERSION) + dh_md5sums -i + dh_builddeb -i + +binary-arch: build-arch install-arch test-arch-stamp + dh_testdir + dh_testroot + + cd debian/detector && \ + install -D -m 755 binfmt-detector-cli $(CURDIR)/debian/mono-runtime/usr/lib/cli/binfmt-detector-cli + install -D -m 644 -o root -g root debian/cli.binfmt \ + debian/mono-runtime/usr/share/binfmts/cli + + dh_install -s + dh_link -s + dh_installchangelogs -s -X ChangeLog + dh_installchangelogs -pmono-runtime + dh_installchangelogs -pmono-jay $(CURDIR)/mcs/jay/ChangeLog + dh_installdocs -s + dh_installman -s + dh_installexamples -s + dh_installexamples -pmono-jay $(CURDIR)/mcs/jay/skeleton.cs + dh_strip -pmono-runtime --dbg-package=mono-runtime-dbg + dh_strip -plibmono0 --dbg-package=libmono0-dbg + dh_strip -s + dh_compress -s -Xskeleton.cs + + # Hack workaround to allow Ubuntu to run its own preinst (e.g. to kill symlinked docdirs) + if [ "$(DISTRO)" = "Ubuntu" ]; then \ + for p in $$(dh_listpackages -a); do \ + sed "s/#PACKAGENAME#/$$p/g" $(CURDIR)/debian/preinst.ubuntu >> debian/$$p.preinst.debhelper; \ + done; \ + fi + + dh_fixperms -s + dh_makeshlibs -s -V + dh_makeshlibs -plibmono0 -V 'libmono0 (>= $(UPVERSION))' + dh_installdeb -s + dh_shlibdeps -s -Xlibmono-profiler-cov -ldebian/libmono0/usr/lib + dh_gencontrol -s + dh_md5sums -s + dh_builddeb -s + +get-orig-source: TARBALL_DIR = $(DEB_SOURCE_NAME)-$(UPVERSION) +get-orig-source: + uscan \ + --package $(DEB_SOURCE_NAME) \ + --watchfile $(DEBIAN_DIR)/watch \ + --upstream-version $(UPVERSION) \ + --download-version $(UPVERSION) \ + --destdir . \ + --force-download \ + --rename \ + --repack + if [ -d $(TARBALL_DIR) ]; then \ + echo "$(TARBALL_DIR) is in the way, bailing out!"; \ + exit 1; \ + fi + if [ -d $(TARBALL_DIR)+dfsg ]; then \ + echo "$(TARBALL_DIR)+dfsg is in the way, bailing out!"; \ + exit 1; \ + fi + tar -xzf $(DEB_SOURCE_NAME)_$(UPVERSION).orig.tar.gz + rm $(DEB_SOURCE_NAME)_$(UPVERSION).orig.tar.gz + rm -rf $(TARBALL_DIR)/mcs/class/RabbitMQ.Client/docs/specs/ + find $(TARBALL_DIR) -name "*.dll" -not -path "$(TARBALL_DIR)/mcs/class/lib/monolite/*" -print -delete + find $(TARBALL_DIR) -name "*.exe" -not -path "$(TARBALL_DIR)/mcs/class/lib/monolite/*" -print -delete + mv $(TARBALL_DIR) $(TARBALL_DIR)+dfsg + tar -czf $(DEB_SOURCE_NAME)_$(UPVERSION)+dfsg.orig.tar.gz $(TARBALL_DIR)+dfsg + rm -r $(TARBALL_DIR)+dfsg + +.PHONY: autoreconf \ + configure-arch configure-indep \ + clean clean-patched \ + build build-all build-arch build-indep \ + test test-arch \ + install install-all install-arch install-indep \ + binary binary-arch binary-indep \ + patch unpatch \ + get-orig-source + +.NOTPARALLEL: --- mono-2.4.4~svn151842.orig/debian/libmono0.install +++ mono-2.4.4~svn151842/debian/libmono0.install @@ -0,0 +1 @@ +/usr/lib/libmono.so.* --- mono-2.4.4~svn151842.orig/debian/mono-2.0-devel.install +++ mono-2.4.4~svn151842/debian/mono-2.0-devel.install @@ -0,0 +1,24 @@ +debian/tmp/etc/mono/mconfig +debian/tmp/usr/bin/al2 +debian/tmp/usr/bin/genxs2 +debian/tmp/usr/bin/httpcfg +debian/tmp/usr/bin/ilasm2 +debian/tmp/usr/bin/mconfig +debian/tmp/usr/bin/mkbundle2 +debian/tmp/usr/bin/monop2 +debian/tmp/usr/bin/resgen2 +debian/tmp/usr/bin/sgen +debian/tmp/usr/bin/wsdl2 +debian/tmp/usr/bin/xsd2 +debian/tmp/usr/lib/mono/2.0/al.exe +debian/tmp/usr/lib/mono/2.0/genxs.exe +debian/tmp/usr/lib/mono/2.0/httpcfg.exe +debian/tmp/usr/lib/mono/2.0/ilasm.exe +debian/tmp/usr/lib/mono/2.0/installutil.exe +debian/tmp/usr/lib/mono/2.0/mconfig.exe +debian/tmp/usr/lib/mono/2.0/mkbundle.exe +debian/tmp/usr/lib/mono/2.0/monop.exe +debian/tmp/usr/lib/mono/2.0/resgen.exe +debian/tmp/usr/lib/mono/2.0/sgen.exe +debian/tmp/usr/lib/mono/2.0/wsdl.exe +debian/tmp/usr/lib/mono/2.0/xsd.exe --- mono-2.4.4~svn151842.orig/debian/libmono-system-web2.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system-web2.0-cil.clideps-override @@ -0,0 +1 @@ +suggests libmono-winforms2.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-system-ldap2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-ldap2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.DirectoryServices/2.0.*/ +debian/tmp/usr/lib/mono/2.0/System.DirectoryServices.dll --- mono-2.4.4~svn151842.orig/debian/libmono-corlib2.1-cil.install +++ mono-2.4.4~svn151842/debian/libmono-corlib2.1-cil.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/mono/2.1/mscorlib.dll* --- mono-2.4.4~svn151842.orig/debian/mono-runtime.manpages +++ mono-2.4.4~svn151842/debian/mono-runtime.manpages @@ -0,0 +1,3 @@ +debian/tmp/usr/share/man/man1/mono.1 +debian/tmp/usr/share/man/man5/mono-config.5 +debian/man/cli-wrapper.1 --- mono-2.4.4~svn151842.orig/debian/mono-api-check +++ mono-2.4.4~svn151842/debian/mono-api-check @@ -0,0 +1,198 @@ +#!/bin/bash + +NAME=$(basename $0) +MONO_API_INFO1="/usr/lib/mono/1.0/mono-api-info.exe" +MONO_API_INFO2="/usr/lib/mono/2.0/mono-api-info.exe" +MONO_API_DIFF="/usr/lib/mono/2.0/mono-api-diff.exe" + +RUNTIME_VERSION=2 +if [ "$1" = "-2" ]; then + if [ ! -x $MONO_API_INFO2 ]; then + echo "Error: $MONO_API_INFO2 does not exist, you need to install the mono-devel package" + exit 1 + fi + MONO_API_INFO=$MONO_API_INFO2 + RUNTIME_VERSION=2 + shift +else + MONO_API_INFO=$MONO_API_INFO1 +fi + +KEEP=0 +if [ "$1" = "-k" ]; then + KEEP=1 + shift +fi + +if [ $# -lt 2 ]; then + echo "usage: $NAME [-2] [-k] old.dll|deb|changes new.dll|deb|changes" + exit 1 +fi + +if [ ! -r $1 ]; then + echo "Error: $1 does not exist or is not readable" + exit 1 +fi + +if [ ! -r $2 ]; then + echo "Error: $2 does not exist or is not readable" + exit 1 +fi + +if ! [ "$1" = "${1%.deb}" ]; then + DEB_TMP_DIR1=/tmp/$NAME-$$-$RANDOM + DEB_TMP_DIR2=/tmp/$NAME-$$-$RANDOM + + mkdir $DEB_TMP_DIR1 + if [ $? != 0 ]; then + echo "Error: could not create: $DEB_TMP_DIR1" + exit 1 + fi + + mkdir $DEB_TMP_DIR2 + if [ $? != 0 ]; then + echo "Error: could not create: $DEB_TMP_DIR2" + exit 1 + fi + + dpkg -x $1 $DEB_TMP_DIR1 + if [ $? != 0 ]; then + echo "Error: could extract: $1" + exit 1 + fi + + dpkg -x $2 $DEB_TMP_DIR2 + if [ $? != 0 ]; then + echo "Error: could extract: $2" + exit 1 + fi + + DLLS=$(find $DEB_TMP_DIR1 -type f -name "*.dll") + for DLL1 in $DLLS; do + FILE=${DLL1#$DEB_TMP_DIR1/} + DLL2=$DEB_TMP_DIR2/$FILE + #echo $DLL1 + #echo $DLL2 + + if [ $RUNTIME_VERSION = 2 ]; then + RUNTIME_VERSION_PARAM="-2" + fi + if [ $KEEP = 1 ]; then + KEEP_PARAM="-k" + fi + echo -e "Library:\t\t/$FILE" + $0 $RUNTIME_VERSION_PARAM $KEEP_PARAM $DLL1 $DLL2 + echo + done + + rm -rf $DEB_TMP_DIR1 + rm -rf $DEB_TMP_DIR2 + + exit 0 +fi + +if ! [ "$1" = "${1%.changes}" ]; then + DEB_DIR1=$(dirname $1) + DEB_DIR2=$(dirname $2) + DEBS=$(grep ".deb$" $2 | cut -d ' ' -f 6) + for DEB in $DEBS; do + PKG_VERSION2=$(dpkg -I $DEB_DIR2/$DEB | grep Version: | cut -d ':' -f 2 | sed -e 's/^ *//') + break + done + + DEBS=$(grep ".deb$" $1 | cut -d ' ' -f 6) + for DEB1 in $DEBS; do + PKG_NAME=$(dpkg -I $DEB_DIR1/$DEB1 | grep Package: | cut -d ':' -f 2 | sed -e 's/^ *//') + PKG_ARCH=$(dpkg -I $DEB_DIR1/$DEB1 | grep Architecture: | cut -d ':' -f 2 | sed -e 's/^ *//') + DEB2=$DEB_DIR2/${PKG_NAME}_${PKG_VERSION2}_${PKG_ARCH}.deb + + if [ $RUNTIME_VERSION = 2 ]; then + RUNTIME_VERSION_PARAM="-2" + fi + if [ $KEEP = 1 ]; then + KEEP_PARAM="-k" + fi + echo -e "Package:\t\t$PKG_NAME" + echo "------------------------------------------------------" + $0 $RUNTIME_VERSION_PARAM $KEEP_PARAM $DEB1 $DEB2 + echo + done + + exit 0 +fi + +ASM_NAME=$(basename $1) +API_OLD=$(tempfile --suffix=_$ASM_NAME.api-old) +API_NEW=$(tempfile --suffix=_$ASM_NAME.api-new) +API_DIFF=$(tempfile --suffix=_$ASM_NAME.api-diff) + +/usr/bin/cli ${MONO_API_INFO} "$1" > ${API_OLD} 2> /dev/null +if [ $? != 0 ]; then + echo "Error: ${MONO_API_INFO} on $1 failed!" + exit 1 +fi +/usr/bin/cli ${MONO_API_INFO} "$2" > ${API_NEW} 2> /dev/null +if [ $? != 0 ]; then + echo "Error: ${MONO_API_INFO} on $2 failed!" + exit 1 +fi +/usr/bin/cli ${MONO_API_DIFF} ${API_OLD} ${API_NEW} > ${API_DIFF} 2> /dev/null +if [ $? != 0 ]; then + echo "Error: ${MONO_API_DIFF} failed!" + exit 1 +fi + +version_changed=0 +grep -q 'Assembly version not equal: ' ${API_DIFF} +if [ $? = 0 ]; then + version_changed=1 +fi + +name=$(head -n3 ${API_DIFF} | tail -n1 | sed 's;\ ;\n;g' | grep ^name | cut -d\= -f2 | sed 's;\";;g') +missing_total=$(head -n3 ${API_DIFF} | tail -n1 | sed 's;\ ;\n;g' | grep ^missing_total | cut -d\= -f2 | sed 's;\";;g') +extra_total=$(head -n3 ${API_DIFF} | tail -n1 | sed 's;\ ;\n;g' | grep ^extra_total | cut -d\= -f2 | sed 's;\";;g') + +if [ -z $missing_total ]; then + missing_total=0 +fi +if [ -z $extra_total ]; then + extra_total=0 +fi + +echo "CLI API Check" +echo -e "Assembly Name:\t\t$name" +echo -e "Missing Interfaces:\t$missing_total" +echo -e "Additional Interfaces:\t$extra_total" + +if [ $missing_total ] +then + if [ $missing_total -gt 0 ] + then + echo + echo "The two assemblies you compared are NOT API compatible!" + echo "You must use a new package name!" + fi +fi + +if [ $extra_total ] +then + if [ $extra_total -gt 0 ] + then + echo + echo "The new assembly has additional interfaces. You must raise" + echo "the minimal version in clilibs!" + fi +fi + +if [ $version_changed = 1 ]; then + echo + echo "The assembly versions do NOT MATCH!" + echo "If they are API compatible you MUST generate and install a GAC policy file!" +fi + +rm -f ${API_OLD} ${API_NEW} +if [ $KEEP = 1 ]; then + echo "API diff file: ${API_DIFF}" +else + rm -f ${API_OLD} ${API_NEW} +fi --- mono-2.4.4~svn151842.orig/debian/libmono-c5-1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-c5-1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.C5/1.0.*/ +debian/tmp/usr/lib/mono/2.0/Mono.C5.dll --- mono-2.4.4~svn151842.orig/debian/libmono-i18n1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-i18n1.0-cil.install @@ -0,0 +1,8 @@ +/usr/lib/mono/gac/I18N.CJK/1.0.*/ +/usr/lib/mono/gac/I18N.MidEast/1.0.*/ +/usr/lib/mono/gac/I18N.Other/1.0.*/ +/usr/lib/mono/gac/I18N.Rare/1.0.*/ +/usr/lib/mono/1.0/I18N.CJK.dll +/usr/lib/mono/1.0/I18N.MidEast.dll +/usr/lib/mono/1.0/I18N.Other.dll +/usr/lib/mono/1.0/I18N.Rare.dll --- mono-2.4.4~svn151842.orig/debian/libmono-npgsql2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-npgsql2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Npgsql/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Npgsql.dll --- mono-2.4.4~svn151842.orig/debian/mono-1.0-service.manpages +++ mono-2.4.4~svn151842/debian/mono-1.0-service.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/mono-service.1 --- mono-2.4.4~svn151842.orig/debian/System.Data.dll.config +++ mono-2.4.4~svn151842/debian/System.Data.dll.config @@ -0,0 +1,4 @@ + + + + --- mono-2.4.4~svn151842.orig/debian/libmono0.shlibs.in +++ mono-2.4.4~svn151842/debian/libmono0.shlibs.in @@ -0,0 +1 @@ +libmono 0 libmono0 (= _VERSION_) --- mono-2.4.4~svn151842.orig/debian/libmono-system1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system1.0-cil.install @@ -0,0 +1,18 @@ +debian/tmp/usr/lib/mono/1.0/CustomMarshalers.dll +debian/tmp/usr/lib/mono/1.0/System.Configuration.Install.dll +debian/tmp/usr/lib/mono/1.0/System.Drawing.dll +debian/tmp/usr/lib/mono/1.0/System.EnterpriseServices.dll +debian/tmp/usr/lib/mono/1.0/System.Management.dll +debian/tmp/usr/lib/mono/1.0/System.Security.dll +debian/tmp/usr/lib/mono/1.0/System.ServiceProcess.dll +debian/tmp/usr/lib/mono/1.0/System.Xml.dll +debian/tmp/usr/lib/mono/1.0/System.dll +debian/tmp/usr/lib/mono/gac/CustomMarshalers/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.Configuration.Install/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.Drawing/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.EnterpriseServices/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.Management/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.Security/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.ServiceProcess/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System.Xml/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/System/1.0.5000.0__*/ --- mono-2.4.4~svn151842.orig/debian/libmono-oracle1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-oracle1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.Data.OracleClient/1.0.*/ +debian/tmp/usr/lib/mono/1.0/System.Data.OracleClient.dll --- mono-2.4.4~svn151842.orig/debian/README.Debian +++ mono-2.4.4~svn151842/debian/README.Debian @@ -0,0 +1,107 @@ +Mono for Debian +--------------- + +1. Documentation can be found in the separated monodoc packages. + +2. Supported Processor Architectures for Mono 1.1.x (current) + JIT: + Linux/x86 + Linux/AMD64 + Linux/PPC + Linux/S390 (not functional) + Linux/ARM + Solaris/SPARC + + Interpreter (deprecated/unmaintained): + - + + Supported Processor Architectures for Mono 1.0.x (old) + JIT: + Linux/x86 + Linux/PPC + MacOS/PPC + + Interpreter (deprecated/unmaintained): + Linux/x86 + Linux/PPC + HP-UX/HPPA + S390 + StrongARM + Solaris/SPARC + Solaris/SPARC v9 + +3. Typical problems: +3a. Purge your ~/.wapi directory if you see messages like: + + ** (/tmp/hello.exe:23770): WARNING **: Shared memory sanity check + failed. + + ** (/tmp/hello.exe:23770): WARNING **: Failed to attach shared memory! + Falling back to non-shared handles + + Reason: + 02:00:00 < totte> .wapi is the shared memory file folder used to handle process.start and someother functions for our IO lib +3b. Question: + Mono does not work for me (wrong version of mscorlib reported) or + monodevelop breaks on start (MonoDevelop.Core.dll has incorrect + version...) + Answer: + Most likely you have compiled some old Mono version before and have + a funny mixture of upstream and Debian files in different versions. + Make sure that /usr/local does not appear in the output of the + following commands and remove the particular files in /usr/local/...: + + which mono + which mint + ldd $(which mono) + ls /usr/local/lib/Mono*dll + ls /usr/local/lib/System*dll + ls /usr/local/lib/I18*dll + (and maybe most other dll files there) + +4. (for developers) + The main coordination site of the maintainers is on + http://pkg-mono.alioth.debian.org/, more details can be found there. + CLI Policy for packaging Mono libraries/applications can be found on + http://pkg-mono.alioth.debian.org/cli-policy/ + An offline version is in /usr/share/doc/cli-common/ of the the cli-common package. + +----------------------------------------------------------------------------- + +PS: Some comparisons (not real benchmarks!), testing different +invocation methods: + + The "native" method via exec, binfmt_misc, binfmpt-support (Perl + script), binfmt-detector-cli: + +time for x in `seq 1000` ; do ./hello.exe > /dev/null; done + +real 3m2.969s +user 2m8.060s +sys 0m14.540s + + The shell wrapper method using mono: + +time for x in `seq 1000` ; do ./hello.sh > /dev/null; done + +real 2m43.146s +user 1m45.990s +sys 0m11.140s + + Using "cli-wrapper" with a symlink: + +time for x in `seq 1000` ; do ./hello > /dev/null; done + +real 2m23.958s +user 1m32.720s +sys 0m9.640s + + The "interpreter" method using mono: + +time for x in `seq 1000` ; do /usr/bin/cli ./hello.exe > /dev/null; done + +real 2m23.699s +user 1m33.140s +sys 0m8.920s + + Eduard Bloch -- Sat, 19 Jun 2004 02:28:40 +0200 --- mono-2.4.4~svn151842.orig/debian/monodoc-manual.install +++ mono-2.4.4~svn151842/debian/monodoc-manual.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/monodoc/monodoc.xml +debian/tmp/usr/lib/monodoc/sources/*.source +debian/tmp/usr/lib/monodoc/sources/*.tree +debian/tmp/usr/lib/monodoc/sources/*.zip --- mono-2.4.4~svn151842.orig/debian/mono-jay.docs +++ mono-2.4.4~svn151842/debian/mono-jay.docs @@ -0,0 +1,5 @@ +debian/tmp/usr/share/jay/ACKNOWLEDGEMENTS +debian/tmp/usr/share/jay/NEW_FEATURES +debian/tmp/usr/share/jay/NOTES +debian/tmp/usr/share/jay/README +debian/tmp/usr/share/jay/README.jay --- mono-2.4.4~svn151842.orig/debian/libmono2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono2.0-cil.install @@ -0,0 +1,9 @@ +debian/tmp/usr/lib/mono/2.0/Mono.CompilerServices.SymbolWriter.dll +debian/tmp/usr/lib/mono/2.0/Mono.Http.dll +debian/tmp/usr/lib/mono/2.0/Mono.Web.dll +debian/tmp/usr/lib/mono/2.0/OpenSystem.C.dll +debian/tmp/usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Http/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Web/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/OpenSystem.C/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/mono-service/2.0.0.0__*/ --- mono-2.4.4~svn151842.orig/debian/Mono.Data.Sqlite.dll.config +++ mono-2.4.4~svn151842/debian/Mono.Data.Sqlite.dll.config @@ -0,0 +1,4 @@ + + + + --- mono-2.4.4~svn151842.orig/debian/libmono-sharpzip0.84-cil.install +++ mono-2.4.4~svn151842/debian/libmono-sharpzip0.84-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.*/ +debian/tmp/usr/lib/mono/1.0/ICSharpCode.SharpZipLib.dll --- mono-2.4.4~svn151842.orig/debian/monodoc-base.triggers +++ mono-2.4.4~svn151842/debian/monodoc-base.triggers @@ -0,0 +1 @@ +interest /usr/lib/monodoc/sources --- mono-2.4.4~svn151842.orig/debian/mono-runtime.install +++ mono-2.4.4~svn151842/debian/mono-runtime.install @@ -0,0 +1,8 @@ +/usr/bin/mono +/etc/mono/browscap.ini +/etc/mono/config +/etc/mono/1.0/ +/etc/mono/2.0/ +/usr/share/mono-1.0/mono/cil/cil-opcodes.xml +/usr/lib/libMonoPosixHelper.so +/usr/lib/libMonoSupportW.so --- mono-2.4.4~svn151842.orig/debian/mono-jay.manpages +++ mono-2.4.4~svn151842/debian/mono-jay.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/jay.1 --- mono-2.4.4~svn151842.orig/debian/libmono-cil-dev.links +++ mono-2.4.4~svn151842/debian/libmono-cil-dev.links @@ -0,0 +1 @@ +usr/lib/pkgconfig/nunit.pc usr/lib/pkgconfig/mono-nunit.pc --- mono-2.4.4~svn151842.orig/debian/mono-runtime.NEWS +++ mono-2.4.4~svn151842/debian/mono-runtime.NEWS @@ -0,0 +1,108 @@ +mono (2.4-1) unstable; urgency=low + + * Mono 2.4 ships a lot of goodies: + + SIMD support in Mono. + + No expensive polls in the threading implementation any longer. + + Speed-up garbarge collection on multi-core systems. + + Optimized XPath (using 15% less memory). + + Faster DateTime.TryParse implementation (by not using try/catch). + + Support for precompiled ASP.NET pages. + * Complete Announcement of Mono 2.4 (vs Mono 2.2): + http://www.mono-project.com/Release_Notes_Mono_2.4 + + * Mono 2.2 also ships with lovely things: + + The tree-based code generation engine in the JIT was replaced with the + Linear IL engine, which allows better optimizations. + + Generic sharing is now used in all cases (reduces memory usage). + + Generic sharing is now supported on ARM. + + Support of full Ahead of Time Compilation. + + New PerformanceCounters implementation that allows to monitor the runtime + internals. Including the GUI tool "mperfmon" to view them. + + Interactive shell called "csharp" that allows to execute C# + expressions inside a shell. There is also a GUI version available + called "gsharp". + + Live Inspection. You can attach using the csharp shell to a + running process and run code inside to debug things. + + The C# compiler will now optimize empty strings ("") away with + String.Empty (which reduces memory usage). + + The Regular Expressions engine has been rewritten being more efficient. + At the same time compiled regex are also supported now. + + ASP.NET supports now new routing handlers needed by ASP.NET MVC. + + In the WinForms implementation were almost 200 bugs fixed (since Mono 2.0) + * Complete Announcement of Mono 2.2 (vs Mono 2.0): + http://www.mono-project.com/Release_Notes_Mono_2.2 + + * Mono 2.0 shipped with: + + A console debugger (mdb) part of the mono-debugger package. + + WinForms 2.0 API is complete. + + WinForms's WebBrowser was implemented using Mozilla's Gecko HTML + rendering engine. + + WinForms now supports international keyboard input through XIM. + + Performance of locking (used by threading) was significally improved. + + New debug parameter "--debug=cast" which print outs the types in for + InvalidCastException. + + The C# compiler supports now expression trees (for LINQ) which completes + the C# 3.0 support. + + The C# compiler is now dual-licensed under MIT/X11 and GPLv2 (only). + + LINQ and LINQ to XML are now complete. + + Big Arrays for 64bit architectures are now support (but have to be + compiled using the --enable-big-arrays configure switch) + * Complete Announcement of Mono 2.0: + http://www.mono-project.com/Release_Notes_Mono_2.0 + + -- Mirco Bauer Fri, 10 Apr 2009 00:58:39 +0200 + +mono (1.2.2.1-1) unstable; urgency=low + + * Here we go, Mono 1.2 is now official stable and released! + + * Mono 1.2 brings a lot of new features in: + - The C# 2.0 compiler is now stable, and the ECMA standard was updated, so + it's safe to use C# 2.0 (gmcs) now. _But_ the 2.0 API is not complete, thus + there are classes/methods still missing. + - Mono is now officially supported on the following architectures: + + 32bit: i386, powerpc, arm, s390, sparc. + + 64bit: amd64, s390x, ia64. + The debian packages are available for: i386, powerpc arm, amd64 and ia64. + Packages for s390, s390x, sparc and kfreebsd-i386 are under review, when + the ports are prooved to be stable enough, we will include them. + - Complete System.Windows.Forms 1.1 API + This version is not using wine! SWF runs natively on Linux (X11 driver) + using an own implementation (libgdiplus). + - File System Watching API now supports inotify. + + * Complete Announcement of Mono 1.2 (vs Mono 1.0): + http://www.go-mono.com/archive/1.2/ + + * Announcement of Mono 1.2.1: + http://www.go-mono.com/archive/1.2.1/ + + * Announcement of Mono 1.2.2: + http://www.go-mono.com/archive/1.2.2/ + + -- Debian Mono Group Wed, 6 Nov 2006 23:00:28 +0200 + +mono (0.96-1) unstable; urgency=low + + * It has been quite a while since the last Mono release in Debian and + we feel that it's time to announce few things changed in the + meantime: + + - dependencies management and debhelper integration - the new + mono-utils package contains scripts to create and manage dependencies + between the .NET library packages. They work in a similar way to the + .shlibs system in Debian. For more details, see dh_makenetlibs(1), + dh_netdeps(1) and monodoc's rules file as example. + Another script available now is dh_installxsp which will install + snippets of configuration files for XSP packages (HTML/ASP.NET server + and Apache module). + + - the GAC - except of mscorlib.dll, all DLLs are moved into + /usr/share/dotnet hierarchy and are now loaded using the GAC (Global + Assembly Cache) method. This also makes sane versioning possible, + similar to SONAME handling on native shared libraries. + + - see README.Debian for further details about changes and the current + .NET Debian policy + + -- Debian Mono Group Sat, 19 Jun 2004 14:39:08 +0200 --- mono-2.4.4~svn151842.orig/debian/libmono-profiler.postrm +++ mono-2.4.4~svn151842/debian/libmono-profiler.postrm @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if [ "$1" = "remove" ]; then + ldconfig +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/mono-api-diff.cs +++ mono-2.4.4~svn151842/debian/mono-api-diff.cs @@ -0,0 +1,1857 @@ +// +// mono-api-diff.cs - Compares 2 xml files produced by mono-api-info and +// produces a file suitable to build class status pages. +// +// Authors: +// Gonzalo Paniagua Javier (gonzalo@ximian.com) +// Marek Safar (marek.safar@gmail.com) +// +// (C) 2003 Novell, Inc (http://www.novell.com) +// + +using System; +using System.Collections; +using System.IO; +using System.Reflection; +using System.Text; +using System.Xml; + +namespace Mono.AssemblyCompare +{ + class Driver + { + static int Main (string [] args) + { + if (args.Length != 2) { + Console.WriteLine ("Usage: mono mono-api-diff.exe "); + return 1; + } + + XMLAssembly ms = CreateXMLAssembly (args [0]); + XMLAssembly mono = CreateXMLAssembly (args [1]); + XmlDocument doc = ms.CompareAndGetDocument (mono); + + XmlTextWriter writer = new XmlTextWriter (Console.Out); + writer.Formatting = Formatting.Indented; + doc.WriteTo (writer); + + return 0; + } + + static XMLAssembly CreateXMLAssembly (string file) + { + XmlDocument doc = new XmlDocument (); + doc.Load (File.OpenRead (file)); + + XmlNode node = doc.SelectSingleNode ("/assemblies/assembly"); + XMLAssembly result = new XMLAssembly (); + try { + result.LoadData (node); + } catch (Exception e) { + Console.Error.WriteLine ("Error loading {0}: {1}\n{2}", file, e.Message, e); + Environment.Exit (1); + } + + return result; + } + } + + class Counters + { + public int Present; + public int PresentTotal; + public int Missing; + public int MissingTotal; + public int Todo; + public int TodoTotal; + + public int Extra; + public int ExtraTotal; + public int Warning; + public int WarningTotal; + public int ErrorTotal; + + public Counters () + { + } + + public void AddPartialToPartial (Counters other) + { + Present += other.Present; + Extra += other.Extra; + Missing += other.Missing; + + Todo += other.Todo; + Warning += other.Warning; + AddPartialToTotal (other); + } + + public void AddPartialToTotal (Counters other) + { + PresentTotal += other.Present; + ExtraTotal += other.Extra; + MissingTotal += other.Missing; + + TodoTotal += other.Todo; + WarningTotal += other.Warning; + } + + public void AddTotalToPartial (Counters other) + { + Present += other.PresentTotal; + Extra += other.ExtraTotal; + Missing += other.MissingTotal; + + Todo += other.TodoTotal; + Warning += other.WarningTotal; + AddTotalToTotal (other); + } + + public void AddTotalToTotal (Counters other) + { + PresentTotal += other.PresentTotal; + ExtraTotal += other.ExtraTotal; + MissingTotal += other.MissingTotal; + + TodoTotal += other.TodoTotal; + WarningTotal += other.WarningTotal; + ErrorTotal += other.ErrorTotal; + } + + public int Total { + get { return Present + Missing; } + } + + public int AbsTotal { + get { return PresentTotal + MissingTotal; } + } + + public int Ok { + get { return Present - Todo; } + } + + public int OkTotal { + get { return PresentTotal - TodoTotal - ErrorTotal; } + } + + public override string ToString () + { + StringWriter sw = new StringWriter (); + sw.WriteLine ("Present: {0}", Present); + sw.WriteLine ("PresentTotal: {0}", PresentTotal); + sw.WriteLine ("Missing: {0}", Missing); + sw.WriteLine ("MissingTotal: {0}", MissingTotal); + sw.WriteLine ("Todo: {0}", Todo); + sw.WriteLine ("TodoTotal: {0}", TodoTotal); + sw.WriteLine ("Extra: {0}", Extra); + sw.WriteLine ("ExtraTotal: {0}", ExtraTotal); + sw.WriteLine ("Warning: {0}", Warning); + sw.WriteLine ("WarningTotal: {0}", WarningTotal); + sw.WriteLine ("ErrorTotal: {0}", ErrorTotal); + sw.WriteLine ("--"); + return sw.GetStringBuilder ().ToString (); + } + } + + abstract class XMLData + { + protected XmlDocument document; + protected Counters counters; + bool haveWarnings; + + public XMLData () + { + counters = new Counters (); + } + + public virtual void LoadData (XmlNode node) + { + } + + protected object [] LoadRecursive (XmlNodeList nodeList, Type type) + { + ArrayList list = new ArrayList (); + foreach (XmlNode node in nodeList) { + XMLData data = (XMLData) Activator.CreateInstance (type); + data.LoadData (node); + list.Add (data); + } + + return (object []) list.ToArray (type); + } + + public static bool IsMeaninglessAttribute (string s) + { + if (s == null) + return false; + if (s == "System.Runtime.CompilerServices.CompilerGeneratedAttribute") + return true; + return false; + } + + public static bool IsMonoTODOAttribute (string s) + { + if (s == null) + return false; + if (//s.EndsWith ("MonoTODOAttribute") || + s.EndsWith ("MonoDocumentationNoteAttribute") || + s.EndsWith ("MonoExtensionAttribute") || +// s.EndsWith ("MonoInternalNoteAttribute") || + s.EndsWith ("MonoLimitationAttribute") || + s.EndsWith ("MonoNotSupportedAttribute")) + return true; + return s.EndsWith ("TODOAttribute"); + } + + protected void AddAttribute (XmlNode node, string name, string value) + { + XmlAttribute attr = document.CreateAttribute (name); + attr.Value = value; + node.Attributes.Append (attr); + } + + protected void AddExtra (XmlNode node) + { + //TODO: count all the subnodes? + AddAttribute (node, "presence", "extra"); + AddAttribute (node, "ok", "1"); + AddAttribute (node, "ok_total", "1"); + AddAttribute (node, "extra", "1"); + AddAttribute (node, "extra_total", "1"); + } + + public void AddCountersAttributes (XmlNode node) + { + if (counters.Missing > 0) + AddAttribute (node, "missing", counters.Missing.ToString ()); + + if (counters.Present > 0) + AddAttribute (node, "present", counters.Present.ToString ()); + + if (counters.Extra > 0) + AddAttribute (node, "extra", counters.Extra.ToString ()); + + if (counters.Ok > 0) + AddAttribute (node, "ok", counters.Ok.ToString ()); + + if (counters.Total > 0) { + int percent = (100 * counters.Ok / counters.Total); + AddAttribute (node, "complete", percent.ToString ()); + } + + if (counters.Todo > 0) + AddAttribute (node, "todo", counters.Todo.ToString ()); + + if (counters.Warning > 0) + AddAttribute (node, "warning", counters.Warning.ToString ()); + + if (counters.MissingTotal > 0) + AddAttribute (node, "missing_total", counters.MissingTotal.ToString ()); + + if (counters.PresentTotal > 0) + AddAttribute (node, "present_total", counters.PresentTotal.ToString ()); + + if (counters.ExtraTotal > 0) + AddAttribute (node, "extra_total", counters.ExtraTotal.ToString ()); + + if (counters.OkTotal > 0) + AddAttribute (node, "ok_total", counters.OkTotal.ToString ()); + + if (counters.AbsTotal > 0) { + int percent = (100 * counters.OkTotal / counters.AbsTotal); + AddAttribute (node, "complete_total", percent.ToString ()); + } + + if (counters.TodoTotal > 0) { + AddAttribute (node, "todo_total", counters.TodoTotal.ToString ()); + //TODO: should be different on error. check error cases in corcompare. + AddAttribute (node, "error_total", counters.Todo.ToString ()); + } + + if (counters.WarningTotal > 0) + AddAttribute (node, "warning_total", counters.WarningTotal.ToString ()); + + } + + protected void AddWarning (XmlNode parent, string fmt, params object [] args) + { + counters.Warning++; + haveWarnings = true; + XmlNode warnings = parent.SelectSingleNode ("warnings"); + if (warnings == null) { + warnings = document.CreateElement ("warnings", null); + parent.AppendChild (warnings); + } + + AddAttribute (parent, "error", "warning"); + XmlNode warning = document.CreateElement ("warning", null); + AddAttribute (warning, "text", String.Format (fmt, args)); + warnings.AppendChild (warning); + } + + public bool HaveWarnings { + get { return haveWarnings; } + } + + public Counters Counters { + get { return counters; } + } + + public abstract void CompareTo (XmlDocument doc, XmlNode parent, object other); + } + + abstract class XMLNameGroup : XMLData + { + protected XmlNode group; + protected Hashtable keys; + + public override void LoadData (XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + if (node.Name != GroupName) + throw new FormatException (String.Format ("Expecting <{0}>", GroupName)); + + keys = new Hashtable (); + foreach (XmlNode n in node.ChildNodes) { + string name = n.Attributes ["name"].Value; + if (CheckIfAdd (name, n)) { + string key = GetNodeKey (name, n); + //keys.Add (key, name); + keys [key] = name; + LoadExtraData (key, n); + } + } + } + + protected virtual bool CheckIfAdd (string value, XmlNode node) + { + return true; + } + + protected virtual void LoadExtraData (string name, XmlNode node) + { + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + this.document = doc; + if (group == null) + group = doc.CreateElement (GroupName, null); + + Hashtable okeys = null; + if (other != null && ((XMLNameGroup) other).keys != null) { + okeys = ((XMLNameGroup) other).keys; + } + + XmlNode node = null; + bool onull = (okeys == null); + if (keys != null) { + foreach (DictionaryEntry entry in keys) { + node = doc.CreateElement (Name, null); + group.AppendChild (node); + string key = (string) entry.Key; + string name = (string) entry.Value; + AddAttribute (node, "name", name); + + if (!onull && HasKey (key, okeys)) { + CompareToInner (key, node, (XMLNameGroup) other); + okeys.Remove (key); + counters.Present++; + } else { + AddAttribute (node, "presence", "missing"); + counters.Missing++; + } + } + } + + if (!onull && okeys.Count != 0) { + foreach (string value in okeys.Values) { + node = doc.CreateElement (Name, null); + AddAttribute (node, "name", (string) value); + AddAttribute (node, "presence", "extra"); + group.AppendChild (node); + counters.Extra++; + } + } + + if (group.HasChildNodes) + parent.AppendChild (group); + } + + protected virtual void CompareToInner (string name, XmlNode node, XMLNameGroup other) + { + } + + public virtual string GetNodeKey (string name, XmlNode node) + { + return name; + } + + public virtual bool HasKey (string key, Hashtable other) + { + return other.ContainsKey (key); + } + + public abstract string GroupName { get; } + public abstract string Name { get; } + } + + class XMLAssembly : XMLData + { + XMLAttributes attributes; + XMLNamespace [] namespaces; + string name; + string version; + + public override void LoadData (XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + name = node.Attributes ["name"].Value; + version = node.Attributes ["version"].Value; + XmlNode atts = node.FirstChild; + attributes = new XMLAttributes (); + if (atts.Name == "attributes") { + attributes.LoadData (atts); + atts = atts.NextSibling; + } + + if (atts == null || atts.Name != "namespaces") { + Console.Error.WriteLine ("Warning: no namespaces found!"); + return; + } + + namespaces = (XMLNamespace []) LoadRecursive (atts.ChildNodes, typeof (XMLNamespace)); + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + XMLAssembly assembly = (XMLAssembly) other; + + XmlNode childA = doc.CreateElement ("assembly", null); + AddAttribute (childA, "name", name); + AddAttribute (childA, "version", version); + if (name != assembly.name) + AddWarning (childA, "Assembly names not equal: {0}, {1}", name, assembly.name); + + if (version != assembly.version) + AddWarning (childA, "Assembly version not equal: {0}, {1}", version, assembly.version); + + parent.AppendChild (childA); + + attributes.CompareTo (doc, childA, assembly.attributes); + counters.AddPartialToPartial (attributes.Counters); + + CompareNamespaces (childA, assembly.namespaces); + if (assembly.attributes != null && assembly.attributes.IsTodo) { + counters.Todo++; + counters.TodoTotal++; + counters.ErrorTotal++; + AddAttribute (childA, "error", "todo"); + if (assembly.attributes.Comment != null) + AddAttribute (childA, "comment", assembly.attributes.Comment); + } + + AddCountersAttributes (childA); + } + + void CompareNamespaces (XmlNode parent, XMLNamespace [] other) + { + ArrayList newNS = new ArrayList (); + XmlNode group = document.CreateElement ("namespaces", null); + parent.AppendChild (group); + + Hashtable oh = CreateHash (other); + XmlNode node = null; + int count = (namespaces == null) ? 0 : namespaces.Length; + for (int i = 0; i < count; i++) { + XMLNamespace xns = namespaces [i]; + + node = document.CreateElement ("namespace", null); + newNS.Add (node); + AddAttribute (node, "name", xns.Name); + + int idx = -1; + if (oh.ContainsKey (xns.Name)) + idx = (int) oh [xns.Name]; + XMLNamespace ons = idx >= 0 ? (XMLNamespace) other [idx] : null; + xns.CompareTo (document, node, ons); + if (idx >= 0) + other [idx] = null; + xns.AddCountersAttributes (node); + counters.Present++; + counters.PresentTotal++; + counters.AddPartialToTotal (xns.Counters); + } + + if (other != null) { + count = other.Length; + for (int i = 0; i < count; i++) { + XMLNamespace n = other [i]; + if (n == null) + continue; + + node = document.CreateElement ("namespace", null); + newNS.Add (node); + AddAttribute (node, "name", n.Name); + AddExtra (node); + counters.ExtraTotal++; + } + } + + XmlNode [] nodes = (XmlNode []) newNS.ToArray (typeof (XmlNode)); + Array.Sort (nodes, XmlNodeComparer.Default); + foreach (XmlNode nn in nodes) + group.AppendChild (nn); + } + + static Hashtable CreateHash (XMLNamespace [] other) + { + Hashtable result = new Hashtable (); + if (other != null) { + int i = 0; + foreach (XMLNamespace n in other) { + result [n.Name] = i++; + } + } + + return result; + } + + public XmlDocument CompareAndGetDocument (XMLAssembly other) + { + XmlDocument doc = new XmlDocument (); + this.document = doc; + XmlNode parent = doc.CreateElement ("assemblies", null); + doc.AppendChild (parent); + + CompareTo (doc, parent, other); + + XmlNode decl = doc.CreateXmlDeclaration ("1.0", null, null); + doc.InsertBefore (decl, doc.DocumentElement); + + return doc; + } + } + + class XMLNamespace : XMLData + { + string name; + XMLClass [] types; + + public override void LoadData (XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + if (node.Name != "namespace") + throw new FormatException ("Expecting "); + + name = node.Attributes ["name"].Value; + XmlNode classes = node.FirstChild; + if (classes == null) { + Console.Error.WriteLine ("Warning: no classes for {0}", node.Attributes ["name"]); + return; + } + + if (classes.Name != "classes") + throw new FormatException ("Expecting . Got <" + classes.Name + ">"); + + types = (XMLClass []) LoadRecursive (classes.ChildNodes, typeof (XMLClass)); + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + this.document = doc; + XMLNamespace nspace = (XMLNamespace) other; + + XmlNode childA = doc.CreateElement ("classes", null); + parent.AppendChild (childA); + + CompareTypes (childA, nspace != null ? nspace.types : new XMLClass [0]); + } + + void CompareTypes (XmlNode parent, XMLClass [] other) + { + ArrayList newNodes = new ArrayList (); + Hashtable oh = CreateHash (other); + XmlNode node = null; + int count = (types == null) ? 0 : types.Length; + for (int i = 0; i < count; i++) { + XMLClass xclass = types [i]; + + node = document.CreateElement ("class", null); + newNodes.Add (node); + AddAttribute (node, "name", xclass.Name); + AddAttribute (node, "type", xclass.Type); + + int idx = -1; + if (oh.ContainsKey (xclass.Name)) + idx = (int) oh [xclass.Name]; + xclass.CompareTo (document, node, idx >= 0 ? other [idx] : new XMLClass ()); + if (idx >= 0) + other [idx] = null; + counters.AddPartialToPartial (xclass.Counters); + } + + if (other != null) { + count = other.Length; + for (int i = 0; i < count; i++) { + XMLClass c = other [i]; + if (c == null || IsMonoTODOAttribute (c.Name)) + continue; + + node = document.CreateElement ("class", null); + newNodes.Add (node); + AddAttribute (node, "name", c.Name); + AddAttribute (node, "type", c.Type); + AddExtra (node); + counters.Extra++; + counters.ExtraTotal++; + } + } + + XmlNode [] nodes = (XmlNode []) newNodes.ToArray (typeof (XmlNode)); + Array.Sort (nodes, XmlNodeComparer.Default); + foreach (XmlNode nn in nodes) + parent.AppendChild (nn); + } + + static Hashtable CreateHash (XMLClass [] other) + { + Hashtable result = new Hashtable (); + if (other != null) { + int i = 0; + foreach (XMLClass c in other) { + result [c.Name] = i++; + } + } + + return result; + } + + public string Name { + get { return name; } + } + } + + class XMLClass : XMLData + { + string name; + string type; + string baseName; + bool isSealed; + bool isSerializable; + bool isAbstract; + string charSet; + string layout; + XMLAttributes attributes; + XMLInterfaces interfaces; + XMLGenericTypeConstraints genericConstraints; + XMLFields fields; + XMLConstructors constructors; + XMLProperties properties; + XMLEvents events; + XMLMethods methods; + XMLClass [] nested; + + public override void LoadData (XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + name = node.Attributes ["name"].Value; + type = node.Attributes ["type"].Value; + XmlAttribute xatt = node.Attributes ["base"]; + if (xatt != null) + baseName = xatt.Value; + + xatt = node.Attributes ["sealed"]; + isSealed = (xatt != null && xatt.Value == "true"); + + xatt = node.Attributes ["abstract"]; + isAbstract = (xatt != null && xatt.Value == "true"); + + xatt = node.Attributes["serializable"]; + isSerializable = (xatt != null && xatt.Value == "true"); + + xatt = node.Attributes["charset"]; + if (xatt != null) + charSet = xatt.Value; + + xatt = node.Attributes["layout"]; + if (xatt != null) + layout = xatt.Value; + + XmlNode child = node.FirstChild; + if (child == null) { + // Console.Error.WriteLine ("Empty class {0} {1}", name, type); + return; + } + + if (child.Name == "attributes") { + attributes = new XMLAttributes (); + attributes.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "interfaces") { + interfaces = new XMLInterfaces (); + interfaces.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "generic-type-constraints") { + genericConstraints = new XMLGenericTypeConstraints (); + genericConstraints.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "fields") { + fields = new XMLFields (); + fields.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "constructors") { + constructors = new XMLConstructors (); + constructors.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "properties") { + properties = new XMLProperties (); + properties.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "events") { + events = new XMLEvents (); + events.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "methods") { + methods = new XMLMethods (); + methods.LoadData (child); + child = child.NextSibling; + } + + if (child != null && child.Name == "generic-parameters") { + // HACK: ignore this tag as it doesn't seem to + // add any value when checking for differences + return; + } + + if (child == null) + return; + + if (child.Name != "classes") { + Console.WriteLine ("name: {0} type: {1} {2}", name, type, child.NodeType); + throw new FormatException ("Expecting . Got <" + child.Name + ">"); + } + + nested = (XMLClass []) LoadRecursive (child.ChildNodes, typeof (XMLClass)); + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + this.document = doc; + XMLClass oclass = (XMLClass) other; + + if (attributes != null || oclass.attributes != null) { + if (attributes == null) + attributes = new XMLAttributes (); + + attributes.CompareTo (doc, parent, oclass.attributes); + counters.AddPartialToPartial (attributes.Counters); + if (oclass.attributes != null && oclass.attributes.IsTodo) { + counters.Todo++; + counters.TodoTotal++; + counters.ErrorTotal++; + AddAttribute (parent, "error", "todo"); + if (oclass.attributes.Comment != null) + AddAttribute (parent, "comment", oclass.attributes.Comment); + } + } + + if (type != oclass.type) + AddWarning (parent, "Class type is wrong: {0} != {1}", type, oclass.type); + + if (baseName != oclass.baseName) + AddWarning (parent, "Base class is wrong: {0} != {1}", baseName, oclass.baseName); + + if (isAbstract != oclass.isAbstract || isSealed != oclass.isSealed) { + if ((isAbstract && isSealed) || (oclass.isAbstract && oclass.isSealed)) + AddWarning (parent, "Should {0}be static", (isAbstract && isSealed) ? "" : "not "); + else if (isAbstract != oclass.isAbstract) + AddWarning (parent, "Should {0}be abstract", isAbstract ? "" : "not "); + else if (isSealed != oclass.isSealed) + AddWarning (parent, "Should {0}be sealed", isSealed ? "" : "not "); + } + + if (isSerializable != oclass.isSerializable) + AddWarning (parent, "Should {0}be serializable", isSerializable ? "" : "not "); + + if (charSet != oclass.charSet) + AddWarning (parent, "CharSet is wrong: {0} != {1}", charSet, oclass.charSet); + + if (layout != oclass.layout) + AddWarning (parent, "Layout is wrong: {0} != {1}", layout, oclass.layout); + + if (interfaces != null || oclass.interfaces != null) { + if (interfaces == null) + interfaces = new XMLInterfaces (); + + interfaces.CompareTo (doc, parent, oclass.interfaces); + counters.AddPartialToPartial (interfaces.Counters); + } + + if (genericConstraints != null || oclass.genericConstraints != null) { + if (genericConstraints == null) + genericConstraints = new XMLGenericTypeConstraints (); + + genericConstraints.CompareTo (doc, parent, oclass.genericConstraints); + counters.AddPartialToPartial (genericConstraints.Counters); + } + + if (fields != null || oclass.fields != null) { + if (fields == null) + fields = new XMLFields (); + + fields.CompareTo (doc, parent, oclass.fields); + counters.AddPartialToPartial (fields.Counters); + } + + if (constructors != null || oclass.constructors != null) { + if (constructors == null) + constructors = new XMLConstructors (); + + constructors.CompareTo (doc, parent, oclass.constructors); + counters.AddPartialToPartial (constructors.Counters); + } + + if (properties != null || oclass.properties != null) { + if (properties == null) + properties = new XMLProperties (); + + properties.CompareTo (doc, parent, oclass.properties); + counters.AddPartialToPartial (properties.Counters); + } + + if (events != null || oclass.events != null) { + if (events == null) + events = new XMLEvents (); + + events.CompareTo (doc, parent, oclass.events); + counters.AddPartialToPartial (events.Counters); + } + + if (methods != null || oclass.methods != null) { + if (methods == null) + methods = new XMLMethods (); + + methods.CompareTo (doc, parent, oclass.methods); + counters.AddPartialToPartial (methods.Counters); + } + + if (nested != null || oclass.nested != null) { + XmlNode n = doc.CreateElement ("classes", null); + parent.AppendChild (n); + CompareTypes (n, oclass.nested); + } + + AddCountersAttributes (parent); + } + + void CompareTypes (XmlNode parent, XMLClass [] other) + { + ArrayList newNodes = new ArrayList (); + Hashtable oh = CreateHash (other); + XmlNode node = null; + int count = (nested == null) ? 0 : nested.Length; + for (int i = 0; i < count; i++) { + XMLClass xclass = nested [i]; + + node = document.CreateElement ("class", null); + newNodes.Add (node); + AddAttribute (node, "name", xclass.Name); + AddAttribute (node, "type", xclass.Type); + + if (oh.ContainsKey (xclass.Name)) { + int idx = (int) oh [xclass.Name]; + xclass.CompareTo (document, node, other [idx]); + other [idx] = null; + counters.AddPartialToPartial (xclass.Counters); + } else { + // TODO: Should I count here? + AddAttribute (node, "presence", "missing"); + counters.Missing++; + counters.MissingTotal++; + } + } + + if (other != null) { + count = other.Length; + for (int i = 0; i < count; i++) { + XMLClass c = other [i]; + if (c == null || IsMonoTODOAttribute (c.Name)) + continue; + + node = document.CreateElement ("class", null); + newNodes.Add (node); + AddAttribute (node, "name", c.Name); + AddAttribute (node, "type", c.Type); + AddExtra (node); + counters.Extra++; + counters.ExtraTotal++; + } + } + + XmlNode [] nodes = (XmlNode []) newNodes.ToArray (typeof (XmlNode)); + Array.Sort (nodes, XmlNodeComparer.Default); + foreach (XmlNode nn in nodes) + parent.AppendChild (nn); + } + + static Hashtable CreateHash (XMLClass [] other) + { + Hashtable result = new Hashtable (); + if (other != null) { + int i = 0; + foreach (XMLClass c in other) { + result [c.Name] = i++; + } + } + + return result; + } + + public string Name { + get { return name; } + } + + public string Type { + get { return type; } + } + } + + class XMLParameter : XMLData + { + string name; + string type; + string attrib; + string direction; + bool isUnsafe; + bool isOptional; + string defaultValue; + XMLAttributes attributes; + + public override void LoadData (XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + if (node.Name != "parameter") + throw new ArgumentException ("Expecting "); + + name = node.Attributes["name"].Value; + type = node.Attributes["type"].Value; + attrib = node.Attributes["attrib"].Value; + if (node.Attributes ["direction"] != null) + direction = node.Attributes["direction"].Value; + if (node.Attributes["unsafe"] != null) + isUnsafe = bool.Parse (node.Attributes["unsafe"].Value); + if (node.Attributes["optional"] != null) + isOptional = bool.Parse (node.Attributes["optional"].Value); + if (node.Attributes["defaultValue"] != null) + defaultValue = node.Attributes["defaultValue"].Value; + + XmlNode child = node.FirstChild; + if (child == null) + return; + + if (child.Name == "attributes") { + attributes = new XMLAttributes (); + attributes.LoadData (child); + child = child.NextSibling; + } + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + this.document = doc; + + XMLParameter oparm = (XMLParameter) other; + + if (name != oparm.name) + AddWarning (parent, "Parameter name is wrong: {0} != {1}", name, oparm.name); + + if (type != oparm.type) + AddWarning (parent, "Parameter type is wrong: {0} != {1}", type, oparm.type); + + if (attrib != oparm.attrib) + AddWarning (parent, "Parameter attributes wrong: {0} != {1}", attrib, oparm.attrib); + + if (direction != oparm.direction) + AddWarning (parent, "Parameter direction wrong: {0} != {1}", direction, oparm.direction); + + if (isUnsafe != oparm.isUnsafe) + AddWarning (parent, "Parameter unsafe wrong: {0} != {1}", isUnsafe, oparm.isUnsafe); + + if (isOptional != oparm.isOptional) + AddWarning (parent, "Parameter optional wrong: {0} != {1}", isOptional, oparm.isOptional); + + if (defaultValue != oparm.defaultValue) + AddWarning (parent, "Parameter default value wrong: {0} != {1}", (defaultValue == null) ? "(no default value)" : defaultValue, (oparm.defaultValue == null) ? "(no default value)" : oparm.defaultValue); + + if (attributes != null || oparm.attributes != null) { + if (attributes == null) + attributes = new XMLAttributes (); + + attributes.CompareTo (doc, parent, oparm.attributes); + counters.AddPartialToPartial (attributes.Counters); + if (oparm.attributes != null && oparm.attributes.IsTodo) { + counters.Todo++; + counters.TodoTotal++; + counters.ErrorTotal++; + AddAttribute (parent, "error", "todo"); + if (oparm.attributes.Comment != null) + AddAttribute (parent, "comment", oparm.attributes.Comment); + } + } + } + + public string Name { + get { return name; } + } + } + + class XMLAttributeProperties: XMLNameGroup + { + static Hashtable ignored_properties; + static XMLAttributeProperties () + { + ignored_properties = new Hashtable (); + ignored_properties.Add ("System.Reflection.AssemblyKeyFileAttribute", "KeyFile"); + ignored_properties.Add ("System.Reflection.AssemblyCompanyAttribute", "Company"); + ignored_properties.Add ("System.Reflection.AssemblyConfigurationAttribute", "Configuration"); + ignored_properties.Add ("System.Reflection.AssemblyCopyrightAttribute", "Copyright"); + ignored_properties.Add ("System.Reflection.AssemblyProductAttribute", "Product"); + ignored_properties.Add ("System.Reflection.AssemblyTrademarkAttribute", "Trademark"); + ignored_properties.Add ("System.Reflection.AssemblyInformationalVersionAttribute", "InformationalVersion"); + + ignored_properties.Add ("System.ObsoleteAttribute", "Message"); + ignored_properties.Add ("System.IO.IODescriptionAttribute", "Description"); + ignored_properties.Add ("System.Diagnostics.MonitoringDescriptionAttribute", "Description"); + } + + Hashtable properties = new Hashtable (); + string attribute; + + public XMLAttributeProperties (string attribute) + { + this.attribute = attribute; + } + + public override void LoadData(XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + if (node.ChildNodes == null) + return; + + string ignored = ignored_properties [attribute] as string; + + foreach (XmlNode n in node.ChildNodes) { + string name = n.Attributes ["name"].Value; + if (ignored == name) + continue; + + if (n.Attributes ["null"] != null) { + properties.Add (name, null); + continue; + } + string value = n.Attributes ["value"].Value; + properties.Add (name, value); + } + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + this.document = doc; + + Hashtable other_properties = ((XMLAttributeProperties)other).properties; + foreach (DictionaryEntry de in other_properties) { + object other_value = properties [de.Key]; + + if (de.Value == null) { + if (other_value != null) + AddWarning (parent, "Property '{0}' is 'null' and should be '{1}'", de.Key, other_value); + continue; + } + + if (de.Value.Equals (other_value)) + continue; + + AddWarning (parent, "Property '{0}' is '{1}' and should be '{2}'", + de.Key, de.Value, other_value == null ? "null" : other_value); + } + } + + public override string GroupName { + get { + return "properties"; + } + } + + public override string Name { + get { + return ""; + } + } + } + + class XMLAttributes : XMLNameGroup + { + Hashtable properties = new Hashtable (); + + bool isTodo; + string comment; + + protected override bool CheckIfAdd (string value, XmlNode node) + { + if (IsMonoTODOAttribute (value)) { + isTodo = true; + + XmlNode pNode = node.SelectSingleNode ("properties"); + if (pNode != null && pNode.ChildNodes.Count > 0 && pNode.ChildNodes [0].Attributes ["value"] != null) { + comment = pNode.ChildNodes [0].Attributes ["value"].Value; + } + return false; + } + + return !IsMeaninglessAttribute (value); + } + + protected override void CompareToInner (string name, XmlNode node, XMLNameGroup other) + { + XMLAttributeProperties other_prop = ((XMLAttributes)other).properties [name] as XMLAttributeProperties; + XMLAttributeProperties this_prop = properties [name] as XMLAttributeProperties; + if (other_prop == null || this_prop == null) + return; + + this_prop.CompareTo (document, node, other_prop); + counters.AddPartialToPartial (this_prop.Counters); + } + + public override string GetNodeKey (string name, XmlNode node) + { + string key = null; + + // if multiple attributes with the same name (type) exist, then we + // cannot be sure which attributes correspond, so we must use the + // name of the attribute (type) and the name/value of its properties + // as key + XmlNodeList attributes = node.ParentNode.SelectNodes("attribute[@name='" + name + "']"); + if (attributes.Count > 1) { + ArrayList keyParts = new ArrayList (); + + XmlNodeList properties = node.SelectNodes ("properties/property"); + foreach (XmlNode property in properties) { + XmlAttributeCollection attrs = property.Attributes; + if (attrs["value"] != null) { + keyParts.Add (attrs["name"].Value + "=" + attrs["value"].Value); + } else { + keyParts.Add (attrs["name"].Value + "="); + } + } + + // sort properties by name, as order of properties in XML is + // undefined + keyParts.Sort (); + + // insert name (type) of attribute + keyParts.Insert (0, name); + + StringBuilder sb = new StringBuilder (); + foreach (string value in keyParts) { + sb.Append (value); + sb.Append (';'); + } + key = sb.ToString (); + } else { + key = name; + } + + return key; + } + + protected override void LoadExtraData(string name, XmlNode node) + { + XmlNode pNode = node.SelectSingleNode ("properties"); + + if (IsMonoTODOAttribute (name)) { + isTodo = true; + if (pNode.ChildNodes [0].Attributes ["value"] != null) { + comment = pNode.ChildNodes [0].Attributes ["value"].Value; + } + return; + } + + if (pNode != null) { + XMLAttributeProperties p = new XMLAttributeProperties (name); + p.LoadData (pNode); + + properties[name] = p; + } + } + + public override string GroupName { + get { return "attributes"; } + } + + public override string Name { + get { return "attribute"; } + } + + public bool IsTodo { + get { return isTodo; } + } + + public string Comment { + get { return comment; } + } + } + + class XMLInterfaces : XMLNameGroup + { + public override string GroupName { + get { return "interfaces"; } + } + + public override string Name { + get { return "interface"; } + } + } + + abstract class XMLGenericGroup : XMLNameGroup + { + string attributes; + + protected override void LoadExtraData (string name, XmlNode node) + { + attributes = ((XmlElement) node).GetAttribute ("generic-attribute"); + } + + protected override void CompareToInner (string name, XmlNode parent, XMLNameGroup other) + { + base.CompareToInner (name, parent, other); + + XMLGenericGroup g = (XMLGenericGroup) other; + if (attributes != g.attributes) + AddWarning (parent, "Incorrect generic attributes: '{0}' != '{1}'", attributes, g.attributes); + } + } + + class XMLGenericTypeConstraints : XMLGenericGroup + { + public override string GroupName { + get { return "generic-type-constraints"; } + } + + public override string Name { + get { return "generic-type-constraint"; } + } + } + + class XMLGenericMethodConstraints : XMLGenericGroup + { + public override string GroupName { + get { return "generic-method-constraints"; } + } + + public override string Name { + get { return "generic-method-constraint"; } + } + } + + abstract class XMLMember : XMLNameGroup + { + Hashtable attributeMap; + Hashtable access = new Hashtable (); + + protected override void LoadExtraData (string name, XmlNode node) + { + XmlAttribute xatt = node.Attributes ["attrib"]; + if (xatt != null) + access [name] = xatt.Value; + + XmlNode orig = node; + + node = node.FirstChild; + while (node != null) { + if (node != null && node.Name == "attributes") { + XMLAttributes a = new XMLAttributes (); + a.LoadData (node); + if (attributeMap == null) + attributeMap = new Hashtable (); + + attributeMap [name] = a; + break; + } + node = node.NextSibling; + } + + base.LoadExtraData (name, orig); + } + + protected override void CompareToInner (string name, XmlNode parent, XMLNameGroup other) + { + base.CompareToInner (name, parent, other); + XMLMember mb = other as XMLMember; + XMLAttributes att = null; + XMLAttributes oatt = null; + if (attributeMap != null) + att = attributeMap [name] as XMLAttributes; + + if (mb != null && mb.attributeMap != null) + oatt = mb.attributeMap [name] as XMLAttributes; + + if (att != null || oatt != null) { + if (att == null) + att = new XMLAttributes (); + + att.CompareTo (document, parent, oatt); + counters.AddPartialToPartial(att.Counters); + if (oatt != null && oatt.IsTodo) { + counters.Todo++; + counters.ErrorTotal++; + AddAttribute (parent, "error", "todo"); + if (oatt.Comment != null) + AddAttribute (parent, "comment", oatt.Comment); + } + } + + XMLMember member = (XMLMember) other; + string acc = access [name] as string; + if (acc == null) + return; + + string oacc = null; + if (member.access != null) + oacc = member.access [name] as string; + + string accName = ConvertToString (Int32.Parse (acc)); + string oaccName = ""; + if (oacc != null) + oaccName = ConvertToString (Int32.Parse (oacc)); + + if (accName != oaccName) + AddWarning (parent, "Incorrect attributes: '{0}' != '{1}'", accName, oaccName); + } + + protected virtual string ConvertToString (int att) + { + return null; + } + } + + class XMLFields : XMLMember + { + Hashtable fieldTypes; + Hashtable fieldValues; + + protected override void LoadExtraData (string name, XmlNode node) + { + XmlAttribute xatt = node.Attributes ["fieldtype"]; + if (xatt != null) { + if (fieldTypes == null) + fieldTypes = new Hashtable (); + + fieldTypes [name] = xatt.Value; + } + + xatt = node.Attributes ["value"]; + if (xatt != null) { + if (fieldValues == null) + fieldValues = new Hashtable (); + + fieldValues[name] = xatt.Value; + } + + base.LoadExtraData (name, node); + } + + protected override void CompareToInner (string name, XmlNode parent, XMLNameGroup other) + { + base.CompareToInner (name, parent, other); + XMLFields fields = (XMLFields) other; + if (fieldTypes != null) { + string ftype = fieldTypes [name] as string; + string oftype = null; + if (fields.fieldTypes != null) + oftype = fields.fieldTypes [name] as string; + + if (ftype != oftype) + AddWarning (parent, "Field type is {0} and should be {1}", oftype, ftype); + } + if (fieldValues != null) { + string fvalue = fieldValues [name] as string; + string ofvalue = null; + if (fields.fieldValues != null) + ofvalue = fields.fieldValues [name] as string; + + if (fvalue != ofvalue) + AddWarning (parent, "Field value is {0} and should be {1}", ofvalue, fvalue); + } + } + + protected override string ConvertToString (int att) + { + FieldAttributes fa = (FieldAttributes) att; + return fa.ToString (); + } + + public override string GroupName { + get { return "fields"; } + } + + public override string Name { + get { return "field"; } + } + } + + class XMLParameters : XMLNameGroup + { + public override void LoadData (XmlNode node) + { + if (node == null) + throw new ArgumentNullException ("node"); + + if (node.Name != GroupName) + throw new FormatException (String.Format ("Expecting <{0}>", GroupName)); + + keys = new Hashtable (); + foreach (XmlNode n in node.ChildNodes) { + string name = n.Attributes["name"].Value; + string key = GetNodeKey (name, n); + XMLParameter parm = new XMLParameter (); + parm.LoadData (n); + keys.Add (key, parm); + LoadExtraData (key, n); + } + } + + public override string GroupName { + get { + return "parameters"; + } + } + + public override string Name { + get { + return "parameter"; + } + } + + public override string GetNodeKey (string name, XmlNode node) + { + return node.Attributes["position"].Value; + } + + public override void CompareTo (XmlDocument doc, XmlNode parent, object other) + { + this.document = doc; + if (group == null) + group = doc.CreateElement (GroupName, null); + + Hashtable okeys = null; + if (other != null && ((XMLParameters) other).keys != null) { + okeys = ((XMLParameters) other).keys; + } + + XmlNode node = null; + bool onull = (okeys == null); + if (keys != null) { + foreach (DictionaryEntry entry in keys) { + node = doc.CreateElement (Name, null); + group.AppendChild (node); + string key = (string) entry.Key; + XMLParameter parm = (XMLParameter) entry.Value; + AddAttribute (node, "name", parm.Name); + + if (!onull && HasKey (key, okeys)) { + parm.CompareTo (document, node, okeys[key]); + counters.AddPartialToPartial (parm.Counters); + okeys.Remove (key); + counters.Present++; + } else { + AddAttribute (node, "presence", "missing"); + counters.Missing++; + } + } + } + + if (!onull && okeys.Count != 0) { + foreach (XMLParameter value in okeys.Values) { + node = doc.CreateElement (Name, null); + AddAttribute (node, "name", value.Name); + AddAttribute (node, "presence", "extra"); + group.AppendChild (node); + counters.Extra++; + } + } + + if (group.HasChildNodes) + parent.AppendChild (group); + } + } + + class XMLProperties : XMLMember + { + Hashtable nameToMethod = new Hashtable (); + + protected override void CompareToInner (string name, XmlNode parent, XMLNameGroup other) + { + Counters copy = counters; + counters = new Counters(); + + XMLProperties oprop = other as XMLProperties; + if (oprop != null) { + XMLMethods m = nameToMethod [name] as XMLMethods; + XMLMethods om = oprop.nameToMethod [name] as XMLMethods; + if (m != null || om != null) { + if (m == null) + m = new XMLMethods (); + + m.CompareTo(document, parent, om); + counters.AddPartialToPartial(m.Counters); + } + } + + base.CompareToInner (name, parent, other); + AddCountersAttributes(parent); + + copy.AddPartialToPartial(counters); + counters = copy; + } + + protected override void LoadExtraData (string name, XmlNode node) + { + XmlNode orig = node; + node = node.FirstChild; + while (node != null) { + if (node != null && node.Name == "methods") { + XMLMethods m = new XMLMethods (); + XmlNode parent = node.ParentNode; + string key = GetNodeKey (name, parent); + m.LoadData (node); + nameToMethod [key] = m; + break; + } + node = node.NextSibling; + } + + base.LoadExtraData (name, orig); + } + + public override string GetNodeKey (string name, XmlNode node) + { + XmlAttributeCollection atts = node.Attributes; + return String.Format ("{0}:{1}:{2}", + (atts["name"] != null ? atts["name"].Value : ""), + (atts["ptype"] != null ? atts["ptype"].Value : ""), + (atts["params"] != null ? atts["params"].Value : "") + ); + } + + public override string GroupName { + get { return "properties"; } + } + + public override string Name { + get { return "property"; } + } + } + + class XMLEvents : XMLMember + { + Hashtable eventTypes; + Hashtable nameToMethod = new Hashtable (); + + protected override void LoadExtraData (string name, XmlNode node) + { + XmlAttribute xatt = node.Attributes ["eventtype"]; + if (xatt != null) { + if (eventTypes == null) + eventTypes = new Hashtable (); + + eventTypes [name] = xatt.Value; + } + + XmlNode child = node.FirstChild; + while (child != null) { + if (child != null && child.Name == "methods") { + XMLMethods m = new XMLMethods (); + XmlNode parent = child.ParentNode; + string key = GetNodeKey (name, parent); + m.LoadData (child); + nameToMethod [key] = m; + break; + } + child = child.NextSibling; + } + + base.LoadExtraData (name, node); + } + + protected override void CompareToInner (string name, XmlNode parent, XMLNameGroup other) + { + Counters copy = counters; + counters = new Counters (); + + try { + base.CompareToInner (name, parent, other); + AddCountersAttributes (parent); + if (eventTypes == null) + return; + + XMLEvents evt = (XMLEvents) other; + string etype = eventTypes [name] as string; + string oetype = null; + if (evt.eventTypes != null) + oetype = evt.eventTypes [name] as string; + + if (etype != oetype) + AddWarning (parent, "Event type is {0} and should be {1}", oetype, etype); + + XMLMethods m = nameToMethod [name] as XMLMethods; + XMLMethods om = evt.nameToMethod [name] as XMLMethods; + if (m != null || om != null) { + if (m == null) + m = new XMLMethods (); + + m.CompareTo (document, parent, om); + counters.AddPartialToPartial (m.Counters); + } + } finally { + AddCountersAttributes (parent); + copy.AddPartialToPartial (counters); + counters = copy; + } + } + + protected override string ConvertToString (int att) + { + EventAttributes ea = (EventAttributes) att; + return ea.ToString (); + } + + public override string GroupName { + get { return "events"; } + } + + public override string Name { + get { return "event"; } + } + } + + class XMLMethods : XMLMember + { + Hashtable returnTypes; + Hashtable parameters; + Hashtable genericConstraints; + Hashtable signatureFlags; + + [Flags] + enum SignatureFlags + { + None = 0, + Abstract = 1, + Virtual = 2, + Static = 4, + Final = 8, + } + + protected override void LoadExtraData (string name, XmlNode node) + { + XmlAttribute xatt = node.Attributes ["returntype"]; + if (xatt != null) { + if (returnTypes == null) + returnTypes = new Hashtable (); + + returnTypes [name] = xatt.Value; + } + + SignatureFlags flags = SignatureFlags.None; + if (((XmlElement) node).GetAttribute ("abstract") == "true") + flags |= SignatureFlags.Abstract; + if (((XmlElement) node).GetAttribute ("static") == "true") + flags |= SignatureFlags.Static; + if (((XmlElement) node).GetAttribute ("virtual") == "true") + flags |= SignatureFlags.Virtual; + if (((XmlElement) node).GetAttribute ("final") == "true") + flags |= SignatureFlags.Final; + if (flags != SignatureFlags.None) { + if (signatureFlags == null) + signatureFlags = new Hashtable (); + signatureFlags [name] = flags; + } + + XmlNode parametersNode = node.SelectSingleNode ("parameters"); + if (parametersNode != null) { + if (parameters == null) + parameters = new Hashtable (); + + XMLParameters parms = new XMLParameters (); + parms.LoadData (parametersNode); + + parameters[name] = parms; + } + + XmlNode genericNode = node.SelectSingleNode ("generic-method-constraints"); + if (genericNode != null) { + if (genericConstraints == null) + genericConstraints = new Hashtable (); + XMLGenericMethodConstraints csts = new XMLGenericMethodConstraints (); + csts.LoadData (genericNode); + genericConstraints [name] = csts; + } + + base.LoadExtraData (name, node); + } + + public override string GetNodeKey (string name, XmlNode node) + { + // for explicit/implicit operators we need to include the return + // type in the key to allow matching; as a side-effect, differences + // in return types will be reported as extra/missing methods + // + // for regular methods we do not need to take into account the + // return type for matching methods; differences in return types + // will be reported as a warning on the method + if (name.StartsWith ("op_")) { + XmlAttribute xatt = node.Attributes ["returntype"]; + string returnType = xatt != null ? xatt.Value + " " : string.Empty; + return returnType + name; + } + return name; + } + + protected override void CompareToInner (string name, XmlNode parent, XMLNameGroup other) + { + // create backup of actual counters + Counters copy = counters; + // initialize counters for current method + counters = new Counters(); + + try { + base.CompareToInner(name, parent, other); + XMLMethods methods = (XMLMethods) other; + + SignatureFlags flags = signatureFlags != null && + signatureFlags.ContainsKey (name) ? + (SignatureFlags) signatureFlags [name] : + SignatureFlags.None; + SignatureFlags oflags = methods.signatureFlags != null && + methods.signatureFlags.ContainsKey (name) ? + (SignatureFlags) methods.signatureFlags [name] : + SignatureFlags.None; + + if (flags!= oflags) { + if (flags == SignatureFlags.None) + AddWarning (parent, String.Format ("should not be {0}", oflags)); + else if (oflags == SignatureFlags.None) + AddWarning (parent, String.Format ("should be {0}", flags)); + else + AddWarning (parent, String.Format ("{0} and should be {1}", oflags, flags)); + } + + if (returnTypes != null) { + string rtype = returnTypes[name] as string; + string ortype = null; + if (methods.returnTypes != null) + ortype = methods.returnTypes[name] as string; + + if (rtype != ortype) + AddWarning (parent, "Return type is {0} and should be {1}", ortype, rtype); + } + + if (parameters != null) { + XMLParameters parms = parameters[name] as XMLParameters; + parms.CompareTo (document, parent, methods.parameters[name]); + counters.AddPartialToPartial (parms.Counters); + } + } finally { + // output counter attributes in result document + AddCountersAttributes(parent); + + // add temporary counters to actual counters + copy.AddPartialToPartial(counters); + // restore backup of actual counters + counters = copy; + } + } + + protected override string ConvertToString (int att) + { + MethodAttributes ma = (MethodAttributes) att; + // ignore ReservedMasks + ma &= ~ MethodAttributes.ReservedMask; + ma &= ~ MethodAttributes.VtableLayoutMask; + if ((ma & MethodAttributes.FamORAssem) != 0) + ma = (ma & ~ MethodAttributes.FamORAssem) | MethodAttributes.Family; + + // ignore the HasSecurity attribute for now + if ((ma & MethodAttributes.HasSecurity) != 0) + ma = (MethodAttributes) (att - (int) MethodAttributes.HasSecurity); + + // ignore the RequireSecObject attribute for now + if ((ma & MethodAttributes.RequireSecObject) != 0) + ma = (MethodAttributes) (att - (int) MethodAttributes.RequireSecObject); + + // we don't care if the implementation is forwarded through PInvoke + if ((ma & MethodAttributes.PinvokeImpl) != 0) + ma = (MethodAttributes) (att - (int) MethodAttributes.PinvokeImpl); + + return ma.ToString (); + } + + public override string GroupName { + get { return "methods"; } + } + + public override string Name { + get { return "method"; } + } + } + + class XMLConstructors : XMLMethods + { + public override string GroupName { + get { return "constructors"; } + } + + public override string Name { + get { return "constructor"; } + } + } + + class XmlNodeComparer : IComparer + { + public static XmlNodeComparer Default = new XmlNodeComparer (); + + public int Compare (object a, object b) + { + XmlNode na = (XmlNode) a; + XmlNode nb = (XmlNode) b; + return String.Compare (na.Attributes ["name"].Value, nb.Attributes ["name"].Value); + } + } +} + --- mono-2.4.4~svn151842.orig/debian/mono-1.0-gac.manpages +++ mono-2.4.4~svn151842/debian/mono-1.0-gac.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/gacutil1.1 --- mono-2.4.4~svn151842.orig/debian/mono-2.0-service.install +++ mono-2.4.4~svn151842/debian/mono-2.0-service.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/mono-service2 +debian/tmp/usr/lib/mono/2.0/mono-service.exe* --- mono-2.4.4~svn151842.orig/debian/libmono-sqlite1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-sqlite1.0-cil.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/ +debian/tmp/usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Mono.Data.Sqlite.dll +debian/tmp/usr/lib/mono/1.0/Mono.Data.SqliteClient.dll --- mono-2.4.4~svn151842.orig/debian/libmono-relaxng1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-relaxng1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Commons.Xml.Relaxng/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Commons.Xml.Relaxng.dll --- mono-2.4.4~svn151842.orig/debian/libmono-winforms2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-winforms2.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/gac/System.Windows.Forms/2.0.*/ +debian/tmp/usr/lib/mono/gac/System.Drawing.Design/2.0.*/ +debian/tmp/usr/lib/mono/gac/System.Design/2.0.*/ +debian/tmp/usr/lib/mono/2.0/System.Windows.Forms.dll +debian/tmp/usr/lib/mono/2.0/System.Drawing.Design.dll +debian/tmp/usr/lib/mono/2.0/System.Design.dll --- mono-2.4.4~svn151842.orig/debian/mono-2.0-devel.manpages +++ mono-2.4.4~svn151842/debian/mono-2.0-devel.manpages @@ -0,0 +1,11 @@ +debian/tmp/usr/share/man/man1/al2.1 +debian/tmp/usr/share/man/man1/genxs2.1 +debian/tmp/usr/share/man/man1/httpcfg.1 +debian/tmp/usr/share/man/man1/ilasm2.1 +debian/tmp/usr/share/man/man1/mconfig.1 +debian/tmp/usr/share/man/man1/mkbundle2.1 +debian/tmp/usr/share/man/man1/monop2.1 +debian/tmp/usr/share/man/man1/resgen2.1 +debian/tmp/usr/share/man/man1/sgen.1 +debian/tmp/usr/share/man/man1/wsdl2.1 +debian/tmp/usr/share/man/man1/xsd2.1 --- mono-2.4.4~svn151842.orig/debian/libmono-system-data2.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system-data2.0-cil.clideps-override @@ -0,0 +1,2 @@ +suggests libgda2-3 +suggests libglib2.0-0 --- mono-2.4.4~svn151842.orig/debian/mono-xbuild.install +++ mono-2.4.4~svn151842/debian/mono-xbuild.install @@ -0,0 +1,10 @@ +debian/tmp/usr/bin/xbuild +debian/tmp/usr/lib/mono/2.0/xbuild.exe* +debian/tmp/usr/lib/mono/2.0/xbuild.rsp +debian/tmp/usr/lib/mono/2.0/Microsoft.Build.xsd +debian/tmp/usr/lib/mono/2.0/Microsoft.CSharp.targets +debian/tmp/usr/lib/mono/2.0/Microsoft.Common.tasks +debian/tmp/usr/lib/mono/2.0/Microsoft.Common.targets +debian/tmp/usr/lib/mono/2.0/Microsoft.VisualBasic.targets +debian/tmp/usr/lib/mono/2.0/MSBuild/ +debian/tmp/usr/lib/mono/xbuild/ --- mono-2.4.4~svn151842.orig/debian/libmono-system1.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system1.0-cil.clideps-override @@ -0,0 +1,6 @@ +suggests libfam0 +suggests libgamin0 +suggests libx11-6 +suggests libcups2 +suggests libgdiplus +suggests libmono-winforms1.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-peapi1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-peapi1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/PEAPI/1.0.*/ +debian/tmp/usr/lib/mono/1.0/PEAPI.dll --- mono-2.4.4~svn151842.orig/debian/mono-csharp-shell.manpages +++ mono-2.4.4~svn151842/debian/mono-csharp-shell.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/csharp.1 --- mono-2.4.4~svn151842.orig/debian/libmono-posix2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-posix2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/2.0/Mono.Posix.dll +debian/tmp/usr/lib/mono/gac/Mono.Posix/2.0.0.0__*/ --- mono-2.4.4~svn151842.orig/debian/mono-devel.manpages +++ mono-2.4.4~svn151842/debian/mono-devel.manpages @@ -0,0 +1,30 @@ +debian/tmp/usr/share/man/man1/al.1 +debian/man/caspol.1 +debian/tmp/usr/share/man/man1/lc.1 +debian/tmp/usr/share/man/man1/cert2spc.1 +debian/tmp/usr/share/man/man1/certmgr.1 +debian/tmp/usr/share/man/man1/chktrust.1 +debian/tmp/usr/share/man/man1/cilc.1 +debian/tmp/usr/share/man/man1/disco.1 +debian/tmp/usr/share/man/man1/dtd2xsd.1 +debian/tmp/usr/share/man/man1/genxs.1 +debian/tmp/usr/share/man/man1/ilasm.1 +debian/tmp/usr/share/man/man1/macpack.1 +debian/tmp/usr/share/man/man1/makecert.1 +debian/tmp/usr/share/man/man1/mkbundle.1 +debian/tmp/usr/share/man/man1/mono-cil-strip.1 +debian/tmp/usr/share/man/man1/mono-shlib-cop.1 +debian/tmp/usr/share/man/man1/mono-xmltool.1 +debian/tmp/usr/share/man/man1/monolinker.1 +debian/tmp/usr/share/man/man1/monop.1 +debian/tmp/usr/share/man/man1/mozroots.1 +debian/tmp/usr/share/man/man1/permview.1 +debian/tmp/usr/share/man/man1/resgen.1 +debian/tmp/usr/share/man/man1/secutil.1 +debian/tmp/usr/share/man/man1/setreg.1 +debian/tmp/usr/share/man/man1/signcode.1 +debian/tmp/usr/share/man/man1/sn.1 +debian/tmp/usr/share/man/man1/soapsuds.1 +debian/tmp/usr/share/man/man1/sqlsharp.1 +debian/tmp/usr/share/man/man1/wsdl.1 +debian/tmp/usr/share/man/man1/xsd.1 --- mono-2.4.4~svn151842.orig/debian/System.Windows.Forms.dll.config +++ mono-2.4.4~svn151842/debian/System.Windows.Forms.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + --- mono-2.4.4~svn151842.orig/debian/mono-mcs.manpages +++ mono-2.4.4~svn151842/debian/mono-mcs.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/mcs.1 --- mono-2.4.4~svn151842.orig/debian/mono-1.0-devel.manpages +++ mono-2.4.4~svn151842/debian/mono-1.0-devel.manpages @@ -0,0 +1,8 @@ +debian/tmp/usr/share/man/man1/al1.1 +debian/tmp/usr/share/man/man1/genxs1.1 +debian/tmp/usr/share/man/man1/ilasm1.1 +debian/tmp/usr/share/man/man1/mkbundle1.1 +debian/tmp/usr/share/man/man1/monop1.1 +debian/tmp/usr/share/man/man1/resgen1.1 +debian/tmp/usr/share/man/man1/wsdl1.1 +debian/tmp/usr/share/man/man1/xsd1.1 --- mono-2.4.4~svn151842.orig/debian/libmono-system-ldap1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-ldap1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.DirectoryServices/1.0.*/ +debian/tmp/usr/lib/mono/1.0/System.DirectoryServices.dll --- mono-2.4.4~svn151842.orig/debian/mono-devel.links +++ mono-2.4.4~svn151842/debian/mono-devel.links @@ -0,0 +1 @@ +usr/bin/gmcs usr/bin/mono-csc --- mono-2.4.4~svn151842.orig/debian/mono-devel.install +++ mono-2.4.4~svn151842/debian/mono-devel.install @@ -0,0 +1,66 @@ +debian/tmp/usr/bin/al +debian/tmp/usr/bin/caspol +debian/tmp/usr/bin/cert2spc +debian/tmp/usr/bin/certmgr +debian/tmp/usr/bin/chktrust +debian/tmp/usr/bin/cilc +debian/tmp/usr/bin/disco +debian/tmp/usr/bin/dtd2xsd +debian/tmp/usr/bin/dtd2rng +debian/tmp/usr/bin/genxs +debian/tmp/usr/bin/ilasm +debian/tmp/usr/bin/installvst +debian/tmp/usr/bin/macpack +debian/tmp/usr/bin/mkbundle +debian/tmp/usr/bin/mono-api-info +debian/tmp/usr/bin/mono-cil-strip +debian/tmp/usr/bin/mono-shlib-cop +debian/tmp/usr/bin/mono-xmltool +debian/tmp/usr/bin/monop +debian/tmp/usr/bin/monolinker +debian/tmp/usr/bin/mozroots +debian/tmp/usr/bin/permview +debian/tmp/usr/bin/resgen +debian/tmp/usr/bin/secutil +debian/tmp/usr/bin/setreg +debian/tmp/usr/bin/signcode +debian/tmp/usr/bin/sn +debian/tmp/usr/bin/soapsuds +debian/tmp/usr/bin/sqlsharp +debian/tmp/usr/bin/wsdl +debian/tmp/usr/bin/xsd +debian/tmp/usr/lib/mono/1.0/browsercaps-updater.exe +debian/tmp/usr/lib/mono/1.0/caspol.exe +debian/tmp/usr/lib/mono/1.0/cert2spc.exe +debian/tmp/usr/lib/mono/1.0/certmgr.exe +debian/tmp/usr/lib/mono/1.0/chktrust.exe +debian/tmp/usr/lib/mono/1.0/cilc.exe +debian/tmp/usr/lib/mono/1.0/culevel.exe +debian/tmp/usr/lib/mono/1.0/disco.exe +debian/tmp/usr/lib/mono/1.0/dtd2rng.exe +debian/tmp/usr/lib/mono/1.0/dtd2xsd.exe +debian/tmp/usr/lib/mono/1.0/ictool.exe +debian/tmp/usr/lib/mono/1.0/installvst.exe +debian/tmp/usr/lib/mono/1.0/macpack.exe +debian/tmp/usr/lib/mono/1.0/makecert.exe +debian/tmp/usr/lib/mono/1.0/mono-xmltool.exe +debian/tmp/usr/lib/mono/1.0/mozroots.exe +debian/tmp/usr/lib/mono/1.0/secutil.exe +debian/tmp/usr/lib/mono/1.0/setreg.exe +debian/tmp/usr/lib/mono/1.0/signcode.exe +debian/tmp/usr/lib/mono/2.0/lc.exe +debian/tmp/usr/lib/mono/1.0/sn.exe +debian/tmp/usr/lib/mono/1.0/soapsuds.exe +debian/tmp/usr/lib/mono/2.0/permview.exe +debian/tmp/usr/lib/mono/2.0/monolinker.exe +debian/tmp/usr/lib/mono/2.0/mono-api-info.exe +debian/tmp/usr/lib/mono/2.0/mono-cil-strip.exe +debian/tmp/usr/lib/mono/2.0/mono-shlib-cop.exe* +debian/tmp/usr/lib/mono/2.0/sqlsharp.exe +debian/tmp/usr/lib/mono-source-libs/getline.cs +debian/tmp/usr/lib/mono-source-libs/Options.cs +debian/tmp/usr/lib/pkgconfig/mono-lineeditor.pc +debian/tmp/usr/lib/pkgconfig/mono-options.pc +debian/tmp/usr/share/locale/*/LC_MESSAGES/mcs.mo +debian/mono-api-check /usr/bin/ +debian/mono-api-diff.exe /usr/lib/mono/2.0/ --- mono-2.4.4~svn151842.orig/debian/mono-mjs.manpages +++ mono-2.4.4~svn151842/debian/mono-mjs.manpages @@ -0,0 +1 @@ +debian/man/mjs.1 --- mono-2.4.4~svn151842.orig/debian/libmono-security2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-security2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.Security/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Mono.Security.dll --- mono-2.4.4~svn151842.orig/debian/mono-utils.manpages +++ mono-2.4.4~svn151842/debian/mono-utils.manpages @@ -0,0 +1,5 @@ +debian/man/pedump.1 +debian/man/monograph.1 +debian/man/mono-find-provides.1 +debian/man/mono-find-requires.1 +debian/tmp/usr/share/man/man1/monodis.1 --- mono-2.4.4~svn151842.orig/debian/dh_clistrip +++ mono-2.4.4~svn151842/debian/dh_clistrip @@ -0,0 +1,105 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_clistrip - strips CLI debug symbols from package build directories + +=cut + +use strict; +use File::Find; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-X>I] [--dbg-package=package] + +=head1 DESCRIPTION + +dh_clistrip is a debhelper program that removes debug symbols from +CLI libraries and applications. + +dh_clistrip deletes all *.exe.mdb and *.dll.mdb files. + +=head1 OPTIONS + +=over 4 + +=item B<-X>I, B<--exclude=>I + +Exclude files that contain "item" anywhere in their filename from being +deleted. You may use this option multiple times to build up a list of things +to exclude. + +=item B<--dbg-package=>I + +Moves the debug symbols to the specified package. + +=back + +=cut + +init(); + +my $pwd = `pwd`; +chomp $pwd; + +# This variable can be used to turn off stripping (see Policy). +if (defined $ENV{DEB_BUILD_OPTIONS} && $ENV{DEB_BUILD_OPTIONS} =~ /nostrip/) { + exit; +} + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp = tmpdir($package); + + my $debug_pkg = ''; + if (defined($dh{DEBUGPACKAGES})) { + $debug_pkg = @{$dh{DEBUGPACKAGES}}[0]; + verbose_print("debug_pkg: $debug_pkg"); + } + + if ($package eq $debug_pkg) { + # skip debug package + next; + } + + # find debug symbols + find (sub { + foreach my $exclude (@{$dh{EXCLUDE}}) { + return if /$exclude/; + } + return unless -f && /\.(exe|dll)\.mdb$/; + + my $file = $_; + my $dir = $File::Find::dir; + + if ($debug_pkg ne '') { + my $debug_dir = $dir; + verbose_print("dir: $dir"); + $debug_dir =~ s!$tmp!!; + verbose_print("debug_dir: $debug_dir"); + $debug_dir = $pwd . "/debian/$debug_pkg/" . $debug_dir; + verbose_print("debug_dir: $debug_dir"); + if (! -d $debug_dir) { + doit("install", "-d", $debug_dir); + } + verbose_print("moving $file to $debug_dir"); + doit("mv", $file, $debug_dir); + } else { + verbose_print("deleting $file"); + doit("rm", $file); + } + }, $tmp); +} + +=head1 SEE ALSO + +L + +This program is a part of cli-common. + +=head1 AUTHOR + +Mirco Bauer + +=cut --- mono-2.4.4~svn151842.orig/debian/mono-gmcs.install +++ mono-2.4.4~svn151842/debian/mono-gmcs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/gmcs +debian/tmp/usr/lib/mono/2.0/gmcs.exe* --- mono-2.4.4~svn151842.orig/debian/libmono-management2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-management2.0-cil.install @@ -0,0 +1,2 @@ +/usr/lib/mono/gac/Mono.Management/2.0.0.0__*/ +/usr/lib/mono/2.0/Mono.Management.dll --- mono-2.4.4~svn151842.orig/debian/libmono-cairo2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-cairo2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.Cairo/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Mono.Cairo.dll --- mono-2.4.4~svn151842.orig/debian/mono-gac.postinst +++ mono-2.4.4~svn151842/debian/mono-gac.postinst @@ -0,0 +1,13 @@ +#!/bin/sh -e + +# Install the GAC +if [ -x /usr/share/cli-common/gac-install ]; then + /usr/share/cli-common/gac-install mono +fi + +# Update the alternatives +update-alternatives \ + --install /usr/bin/cli-gacutil global-assembly-cache-tool /usr/bin/gacutil 10 \ + --slave /usr/share/man/man1/cli-gacutil.1.gz cli-gacutil.1.gz /usr/share/man/man1/gacutil.1.gz + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-bytefx0.7.6.1-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-bytefx0.7.6.1-cil.clideps-override @@ -0,0 +1 @@ +suggests libmono-winforms1.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-system-web1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-web1.0-cil.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/mono/gac/System.Web/1.0.*/ +debian/tmp/usr/lib/mono/gac/System.Web.Services/1.0.*/ +debian/tmp/usr/lib/mono/1.0/System.Web.dll +debian/tmp/usr/lib/mono/1.0/System.Web.Services.dll --- mono-2.4.4~svn151842.orig/debian/changelog.1 +++ mono-2.4.4~svn151842/debian/changelog.1 @@ -0,0 +1,1783 @@ +mono (1.9.1+dfsg-4) unstable; urgency=high + + [ Mirco Bauer ] + * Added lpia to Architecture fields. + (to make Jo Shields more happy) + * debian/fix_Assembly.LoadFrom_deadlock.dpatch: + + Fixes deadlock in loading assemblies code like Assembly.LoadFrom(), + causing deadlocks (mostly) on SMP systems. + (patches taken from upstream SVN revisions: r105036, r105153, r113458, + r115451 and r115697) + + [ Jo Shields ] + * Add myself to Uploaders + * debian/patches/fix_sloppy_attribute_encode_CVE-2008-3422.dpatch: + + Fixes CVE-2008-3422, thus urgency set to high (Closes: #494406) + * debian/patches/fix_CRLF_injection_CVE-2008-3906.dpatch: + + Fixes CVE-2008-3906, thus urgency set to high (Closes: #498894) + * debian/patches/fix_IsolatedStorage_regression_r99231_r101171_r101172.dpatch: + + Fix regression in IsolatedStorage behaviour causing exceptions + with subdirectories (Closes: #501505) + * debian/patches/fix_mono-config_man_page_r111681.dpatch: + + Fix minor manpage typo (Closes: #495624) + * debian/control: + + Tweak description of mono-xbuild package (Closes: #493478) + * debian/man/*: + + Update default manpage to point to correct URL for documentation + (Closes: #500771) + + -- Jo Shields Mon, 13 Oct 2008 23:21:40 +0200 + +mono (1.9.1+dfsg-3) unstable; urgency=medium + + * debian/control + debian/rules + debian/libmono-nunit2.2-cil.install: + + Added libmono-nunit2.2-cil package needed by packages like monodevelop + and mono-tools, the nunit 2.4 API (libnunit2.4-cil) changed too much to + port these packages. (thus urgency set to medium) + * debian/shlibs.local: + + Updated for the Mono 1.9 release (forgot this in -1). + * debian/rules: + debian/libmono-system2.0-cil.install: + + Added System.Xml.Linq library but with the correct compiler-directory. + (Closes: #487996) + * debian/control: + + Added libdiplus to dependencies of libmono-system-web1.0-cil and + libmono-system-web2.0-cil as System.Web.UI.WebControls.WebColorConverter + invokes it (which is needed by most web applications). (Closes: #479683) + + Removed -1 revision of all Replaces lines with << as condition, as it's + useless and makes backports and Ubuntu integration easier. + + Added Conflicts on mono-classlib-{1,2}.0 (<< 1.1.13.6) and + mono-classlib-{1,2}.0-dbg to ensure they are removed on all systems and + the transition was finished long time ago. + * debian/patches/fix_Dictionary_preventing_GC_r102114.dpatch: + Clear empty slots in keySlots and valueSlots. Otherwise the garbage + collector cannot reclaim the referenced key/value. + (patch taken from upstream SVN revision 102114) + * debian/patches/fix_TdsConnectionPool_svn.dpatch: + + Don't leak connections in the pool, would cause an infinitely timeout. + (patch taken from upstream SVN revisions 105424, 105432, 105433, 105719, + 106448 and 107325) + * debian/libmono-system1.0-cil.clideps-override + debian/libmono-system2.0-cil.clideps-override: + + libcupsys2 package was renamed to libcups2, moving the dependeny on + libcups2 to suggests (as it was before). + * debian/rules: + + Removed --list-missing from dh_install call, it's useless in the current + implementation. + * debian/patches/fix-mono-nunit.pc.in.dpatch: + + Remove stupid relative path from prefix variable. + + -- Mirco Bauer Tue, 05 Aug 2008 21:46:48 +0200 + +mono (1.9.1+dfsg-2) unstable; urgency=medium + + * Urgency set to medium as this release contains important bugfixes for + different architectures. + * debian/control: + + Added xdg-utils | libgnome2-0 | konqueror to suggests of mono-jit as + starting processes can make use of those if installed (to emulate + ShellExecute). + * debian/patches/fix_bound_checking_r98524_r98527.dpatch: + + Fixes bound checking caused SIGSEGV on AMD64 when building XSP. + (Closes: #486652, patch taken from upstream SVN revision 98524 and 98527) + (thanks to Jo Shields for investigation and + providing the dpatch) + * debian/patches/fix_softfloat_r105848.dpatch: + + Fixed softfloat caused SIGABRT on armel when building banshee. + (Closes: #485112, patch taken from upstream SVN revision 105848) + * debian/patches/fix_stack_alignment_r105650_r105651.dpatch: + + Fixes stack alignment, caused assertions on AMD64. (Closes: #473119) + (patch taken from upstream SVN revision 105650 and 105651) + * debian/patches/fix_xen_support_r103474_r103475.dpatch: + + Fixes XEN support caused "4gb seg fixup" messages. (Closes: #481699) + (patch taken from upstream SVN revision 103474 and 103475) + (thanks to Andrew Deason for investigation and + providing the dpatch) + * debian/patches/99_autoreconf.dpatch: + + Updated + + -- Mirco Bauer Tue, 17 Jun 2008 23:59:52 +0200 + +mono (1.9.1+dfsg-1) unstable; urgency=low + + * DFSG version of Mono 1.9.1 + + Deleted the mcs/class/System.Web.Extensions/ directory as + mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JSON/*.cs + is licensed under Creative Commons Attribution 2.5 which is not + DFSG-free. + * New upstream release. + * debian/libmono1.0-cil.install: + + Added internal cecil.pc as mono-tools >= 1.9 needs it. + * debian/patches/pass_CPPFLAGS_nicely_r98803.dpatch: + + Updated + * debian/mono-api-check: + + Fixed bashism. (Closes: #471879) + + Implemented support to check APIs on .deb and .changes files. + * debian/rules: + + clilibs are now defined much more granularly now (per package). + Checked APIs of mono 1.2.2.1 vs 1.2.6 and 1.2.6 vs 1.9. + + Bumped clilibs of libmono-system-web2.0-cil to 1.9.1 + + -- Mirco Bauer Tue, 22 Apr 2008 20:09:39 +0200 + +mono (1.9+dfsg-3) unstable; urgency=low + + * debian/patches/pass_CPPFLAGS_nicely_r98803.dpatch: + + Pass CPPFLAGS nicely to libgc, fixes FTBFS. (Closes: #475972) + (taken from upstream SVN revision 98803) + * debian/patches/99_autoreconf.dpatch: + + Updated + + -- Mirco Bauer Tue, 15 Apr 2008 22:26:39 +0200 + +mono (1.9+dfsg-2) unstable; urgency=low + + * Upload to unstable. + * debian/control: + + Fixed Vcs-Svn field. + + Cleaned up Uploaders field. + * debian/rules: + + Delete binaries missed by "make clean". (Closes: #424576) + (thanks to Sandro Tosi for the patch) + * debian/mono-common.preinst: + + Removed empty script. + + -- Mirco Bauer Mon, 07 Apr 2008 22:11:03 +0200 + +mono (1.9+dfsg-1) experimental; urgency=low + + [ Mirco Bauer ] + * DFSG version of Mono 1.9 + + Deleted the mcs/class/System.Web.Extensions/ directory as + mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JSON/*.cs + is licensed under Creative Commons Attribution 2.5 which is not + DFSG-free. + * New upstream release. + * debian/rules: + + Bumped clilibs to 1.9 + * debian/mono-api-check: + + Implemented -k switch to keep and inspect the XML diff file. + + Fixed application invocation. + * debian/patches/fix_threads.h.dpatch + debian/patches/fix_Mono.Cecil_linkage.dpatch + debian/patches/ppc_fix_flushing_of_icache_r92014.dpatch: + + Removed, already applied upstream. + * debian/libmono2.0-cil.install: + + Added Mono.Web.dll + * debian/control + debian/libmono-mozilla0.1-cil.install + debian/libmono-mozilla0.2-cil.install: + + Renamed libmono-mozilla0.1-cil to libmono-mozilla0.2-cil, as the assembly + version (ABI) was bumped from 0.1 to 0.2. + + [ Sebastian Dröge ] + * debian/patches/method-signature-testing.dpatch: + + Patch from upstream SVN to fix db4o build failure with cecil 0.6, + improves checking of method signatures. + * debian/rules: + + Put CFLAGS into "" to make the shell happy and fix FTBFS. + + Set default CFLAGS to -O2 -g. + + -- Mirco Bauer Mon, 04 Feb 2008 22:11:53 +0100 + +mono (1.2.6+dfsg-6) unstable; urgency=high + + * debian/mono-mcs.postinst + debian/mono-1.0-devel.postinst: + + Moved alternatives handling for cli-sn, cli-resgen and cli-al from + mono-mcs to mono-1.0-devel, as mono-1.0-devel ships those applications + (since mono 1.2.6+dfsg-1). (Closes: #460513) + This caused FTBS for different source packages that didn't explicitly + build-depend on mono-mcs, thus urgency set to high. + (Thanks to Laurent Bigonville for the investigation) + * debian/mono-utils.postint + debian/mono-utils.postinst: + + Fixed file name. + * debian/control: + + Added libmono-dev and pkg-config to recommends of mono-{1,2}.0-devel, as + mkbundle(2) uses pkg-config and needs mono.pc. + * debian/patches/ppc_disable_delegate_trampoline_optimization.dpatch + debian/patches/ppc_fix_flushing_of_icache_r92014.dpatch + + Replaced ppc_disable_delegate_trampoline_optimization with + ppc_fix_flushing_of_icache_r92014, as that one fixes instead of + workarounds the PPC SIGILL issue (taken from upstream's SVN). + + -- Mirco Bauer Mon, 04 Feb 2008 20:57:20 +0100 + +mono (1.2.6+dfsg-5) unstable; urgency=low + + * debian/rules: + + Reverted the changed target dependecies, which caused no patches being + applied anymore. Thus the fix_implicit_pointer_conversions patch for IA64 + is applied again. (Closes: #457868) + + -- Mirco Bauer Thu, 27 Dec 2007 20:54:20 +0100 + +mono (1.2.6+dfsg-4) unstable; urgency=low + + * debian/patches/ppc_disable_delegate_trampoline_optimization.dpatch: + + Disables delegate trampoline code for PPC, fixes instant SIGILL runtime + crashes for every invoked application (as seen in PPC build logs of + gtk-sharp2, gnome-sharp2 or beagle). + * debian/patches/fix_threads.h.dpatch: + + Don't include threads-type.h in threads.h and moved functions to the + correct header, fixes compiling of OpenOffice.org's Mono bridge. + (taken from upstream SVN revision 91687 + 91817) + * debian/rules: + + Make sure -j1 is passed to make, Mono's build system doesn't like -j > 1. + + -- Mirco Bauer Wed, 26 Dec 2007 23:29:28 +0100 + +mono (1.2.6+dfsg-3) unstable; urgency=low + + * debian/rules: + + Pass -D to cli.binfmt install call, makes it not failing on archs that + are not listed in debian/control. + (thanks to Emanuele Rocca for the hint) + + Enhanced "make distclean" error handling, making lintian happy. + * debian/libmono-system-messaging{1,2}.0-cil.clideps-override + debian/libmono-bytefx0.7.6.{1,2}-cil.clideps-override: + + Added suggests libmono-winforms{1,2}.0-cil, doesn't make sense to pull in + System.Windows.Forms for designer classes (which are only used by VS.NET) + * debian/patches/fix_implicit_pointer_conversions.dpatch: + + Fixed implicit pointer conversions by including a missing header, which + caused FTBFS on IA64. + * debian/control: + + Added Homepage, Vcs-Svn and Vcs-Browser fields. + + Updated Standards-Version to 3.7.3, no changes needed. + + Changed Section of libmono-dev to libmono-dev. + + Added Suggests (using cli:Suggests) fields for + libmono-system-messaging{1,2}.0-cil and libmono-bytefx0.7.6.{1,2}-cil. + + Use cli:Depends for libmono-bytefx0.7.6.{1,2}-cil instead of manual + dependencies. + * debian/NEWS: + + Fixed typo and indention. + + -- Mirco Bauer Tue, 25 Dec 2007 13:40:33 +0100 + +mono (1.2.6+dfsg-2) unstable; urgency=low + + * The "Welcome SPARC and S390 Users!" release + * debian/mono-2.0-devel.install + debian/mono-2.0-devel.manpages: + + Added mconfig + * debian/control: + + Added sparc and s390 to Architecture fields. (Closes: #332511, #377584) + (as the last 3 feature-releases of Mono were able to build on sparc, and + upstream is getting sparc port contributions again, it should be safe + to enable sparc now) + + Added Replaces << mono-common 1.2.6+dfsg-2 to mono-2.0-devel, as + /etc/mono/mconfig/ was moved to mono-2.0-devel. + * debian/libmono-system{1,2}.0-cil.clideps-override: + + Added suggests libmono-winforms{1,2}.0-cil, doesn't make sense to pull in + System.Windows.Forms for designer classes (which are only used by VS.NET) + * debian/patches/g_thread_init.dpatch: + + Dropped, already applied upstream. + + -- Mirco Bauer Fri, 21 Dec 2007 01:35:40 +0100 + +mono (1.2.6+dfsg-1) unstable; urgency=low + + * DFSG version of Mono 1.2.6 + + Deleted mcs/class/System.Web.Extensions/System.Web.Script.Serialization/ + JSON/* as those source files are licensed under Creative Commons + Attribution 2.5 which is not DFSG-free. + * New upstream release + + Invoking GetFields on emitted type doesn't crash anymore, as seen with + nemerle. (Closes: #452585) + * debian/rules: + + Updated MONO_API to 1.2.6 + + Enabled moonlight support in configure call. + + Removed all "rm debian/tmp/usr/lib/mono/gac/"... calls, instead list + libraries explicitly in .install files. + (this is pretty error prone when upstream introduces new libraries and + the rm list became way too long) + + Copy various 1.0 manpages to 2.0 manpages for missing 2.0 manpages. + + Remove +dfsg part in upstream version detection (UPVERSION variable). + * debian/control: + + Added new packages (mono-mcs/gmcs needed to be split as some parts of the + runtime relies on the compiler, like the XmlSerializer class): + - mono-mcs was split to: mono-1.0-devel and mono-1.0-service. + (monolinker.exe is now shipped part of mono-1.0-devel, Closes: #443833) + - mono-gmcs was split to: mono-2.0-devel, mono-2.0-service and + mono-xbuild. + - mono-smcs, containing the new compiler for moonlight/silverlight + applications. + - libmono-corlib2.1-cil and libmono-system2.1-cil, containing the + moonlight/silverlight runtime libraries. + - libmono-db2-1.0-cil, containing IBM DB2 database connector. + - libmono-mozilla0.1-cil, containing the WebControl implementation using + the Mozilla engine. + - libmono-i18n1.0-cil and libmono-i18n2.0-cil, containing I18N libraries + with code page definitions, moved from libmono-corlib{1,2}.0-cil. + - prj2make-sharp, upstream moved distribution of prj2make-sharp to Mono. + + libmono-corlib{1,2}.0-cil recommends libmono-i18n{1,2}.0-cil now. + + Removed mono and mono-devel meta packages, as they are not useful for + anyone. + * debian/dh_clideps: + + Synced from cli-common 0.5.3, needed for CLI 2.1 support. + * debian/patches/00list: + + Disabled armel_fix_configure_fpu_check.dpatch + (FPU check is fixed upstream) + * debian/patches/kfreebsd_support.dpatch: + + Updated (and re-autoconfed) + * debian/patches/fix-mono.pc.in.dpatch: + + Updated + * debian/patches/ppc_fix_mono_class_proxy_vtable_r84948.dpatch: + + Removed, already applied upstream. + * debian/patches/fix_Mono.Cecil_linkage.dpatch: + + Link Mono.Cecil(.Mdb) against CLI 1.0 instead of 2.0, patch taken from + upstream. + * debian/libmono1.0-cil.install: + + Added Mono.Cecil.dll and Mono.Cecil.Mdb.dll. + * debian/update-shlibs.local.sh: + + Wrote this script to ease updating the debian/shlibs.local file. + * debian/shlibs.local: + + Updated + + -- Mirco Bauer Sun, 16 Dec 2007 15:44:33 +0100 + +mono (1.2.5.1-2) unstable; urgency=high + + * Mirco 'meebey' Bauer: + + debian/mono.runtime-script: + - When removing GAC libraries, output the assembly name correctly on + errors. + + debian/patches/fix_BigInteger_overflow_CVE-2007-5197.dpatch: + - Fixes CVE-2007-5197, thus urgency set to high. + + -- Mirco Bauer Sun, 04 Nov 2007 15:34:08 +0100 + +mono (1.2.5.1-1) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + New upstream (bugfix) release. (Closes: #443468) + + debian/System.Windows.Forms.dll.config: + - Added libX11 and libXcursor. + + -- Mirco Bauer Sat, 22 Sep 2007 19:33:05 +0200 + +mono (1.2.5-3) unstable; urgency=high + + * Mirco 'meebey' Bauer: + + debian/patches/ppc_fix_mono_class_proxy_vtable_r84948.dpatch: + - Fixes crash bug on PPC for all applications that use DBus, + thus setting urgency to high. (Closes: #437452, #441795, #441879) + (Thanks to Bram Senders for testing the patch) + + -- Mirco Bauer Thu, 13 Sep 2007 21:44:16 +0200 + +mono (1.2.5-2) unstable; urgency=medium + + * Sebastian 'slomo' Dröge: + + debian/FirebirdSql.Data.Firebird.dll.config, + debian/shlibs.local: + - Use libfbclient2 instead of old and to be removed libfbclient1. + Thanks to Damyan Ivanov for the + patch (Closes: #440850). + + debian/changelog: + - Use urgency=medium because of the RC bugfix. + + -- Sebastian Dröge Wed, 05 Sep 2007 07:02:15 +0200 + +mono (1.2.5-1) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + New upstream release + + debian/watch: + - Updated + + debian/rules: + - Bumped MONO_API to 1.2.5 + + debian/patches/kfreebsd_support.dpatch + debian/patches/armel_fix_configure_fpu_check.dpatch: + - Updated (re-autoconfed) + - Updated + + debian/patches/ppc_fix_memory_corruption_r81413.dpatch: + debian/patches/fix_delegate_memory_leak_r79001.dpatch + debian/patches/remove_broken_dllmap_from_mono-shlib-cop.dpatch: + - Removed, already applied upstream. + + debian/mono-utils.install + debian/mono-utils.manpages: + - Removed monodiet as removed by upstream + + debian/man/resgen.1: + - Removed, supplied upstream. + + debian/mono-mcs.manpages: + - Added monolinker.1 + - Updated resgen.1 + + debian/mono-mcs.manpages + debian/mono-mjs.manpages: + - Moved mono-mjs.1 manpage to mono-mjs package. + + debian/control: + - Added "Replaces" for mono-mjs.1 move to mono-mjs package. + + -- Mirco Bauer Sun, 02 Sep 2007 21:36:13 +0200 + +mono (1.2.4-6) unstable; urgency=medium + + * Mirco 'meebey' Bauer: + + debian/patches/kfreebsd_support.dpatch: + - Patch configure script too, as we are not re-autogening. + This made kfreebsd-* FTBFS. + + Urgency set to medium, as the last upload fixes an important crash + bug (#428190) for PPC. + + -- Mirco Bauer Thu, 09 Aug 2007 19:36:21 +0200 + +mono (1.2.4-5) unstable; urgency=low + + * The "there is more than Linux and X86" release + * Mirco 'meebey' Bauer: + + debian/control: + - Replaced ${Source-Version} with ${source:Version} and ${binary:Version} + + debian/patches/ppc_fix_memory_corruption_r81413.dpatch: + - Fix memory corruption on PPC, caused all Gtk# programs to crash. + Patch taken from upstream SVN. + (Closes: #428209, #430614, #427934, #428190, #429685) + (Thanks to Wouter Verhelst for testing the patch) + + debian/patches/armel_fix_configure_fpu_check.dpatch: + - Detect FPU correctly. (Closes: #430582) + (Thanks to Riku Voipio for the patch) + + debian/patches/fix_delegate_memory_leak_r79001.dpatch: + - Fix memory leak for delegates passed to unmanaged land, taken from + upstream SVN. (Closes: #428781) + (Thanks to Chris Howie for investigation) + + debian/patches/kfreebsd_support.dpatch: + - Updated, added support for kfreebsd-amd64 + + debian/rules: + - Use softfloat on armel. + * Sebastian 'slomo' Dröge: + + debian/patches/armel_fix_configure_fpu_check.dpatch: + - Regenerate configure for the change. + + -- Mirco Bauer Sat, 21 Jul 2007 15:48:05 +0200 + +mono (1.2.4-4) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + debian/rules: + - Use pthread for arm/armeb/armel, should fix FTBFS for ARM. + * Sebastian 'slomo' Dröge: + + debian/patches/g_thread_init.dpatch: + - Call g_thread_init() as early as possible as this is required for newer + glib versions. See: + http://bugzilla.ximian.com/show_bug.cgi?id=81862 + http://bugzilla.gnome.org/show_bug.cgi?id=331853 + Patch from upstream SVN, rev. 78018. + + -- Mirco Bauer Wed, 13 Jun 2007 01:31:55 +0200 + +mono (1.2.4-3) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + debian/rules: + - Enable sigaltstack only for i386 and amd64, fixes FTBFS for ia64 and + possibly other archs. + + -- Mirco Bauer Tue, 29 May 2007 22:54:24 +0200 + +mono (1.2.4-2) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + debian/patches/00list: + - Disabled dont_remap_non-runtime_libs patch, has side effects + and breaks banshee, means applications using libmono-cairo{1,2}.0-cil + running on CLR 2.0 need again to depend on the 2.0 version explicitly + + debian/rules: + - Call dh_strip in binary-arch target, else mono-utils binaries have + debugging symbols. + + debian/control: + - Strictly depend on upstream version for assemblies doing ICalls + (internal calls into the runtime implementation). + * Sebastian 'slomo' Dröge: + + debian/rules: + - Set executable bit on dh_clistrip and the other debhelper scripts + to fix FTBFS. + + -- Mirco Bauer Mon, 28 May 2007 16:18:53 +0200 + +mono (1.2.4-1) unstable; urgency=medium + + * The clean me harder and be nicer to embedded devices upload + * Mirco 'meebey' Bauer: + + New upstream release + - Fixes endian problem with UDP multicasts (Closes: #406909) + + debian/patches/dont_remap_non-runtime_libs.dpatch: + - Don't remap referenced versions for libraries that are not part of the + runtime (like Npgsql, Novell.Directory.Ldap and Mono.* specially + Mono.Cairo) because that makes predictable dependency tracking + impossible for such libraries and is pretty insane as the remapped + version must be 100% ABI compatible. + This caused FTBFS for applications using Gtk# (which uses Mono.Cairo + version 1.0) but runs and compiles (gmcs) under CLR 2.0. + (Closes: #425194) + + debian/control: + - New package mono-dbg, containing all debug sybols (*.mdb), which is + 27 MB for all libraries and applications of the mono source package. + This new package should make specially embedded device users happy. + - New package mono-jit-dbg, unstripped mono-jit + - New package libmono0-dbg, unstripped libmono0 + - Add libgdiplus dependency to libmono-winforms{1,2}.0-cil, as it's only + indirectly used via System.Drawing of libmono-system{1,2}.0-cil, which + only suggests libgdiplus. + + debian/rules: + - Bumped MONO_API to 1.2.4 + - Install Mono.Data.Sqlite.dll.config + - Enabled sigaltstack in ./configure call, since we use __thread / NPTL. + - Call debian/dh_clifixperms in binary-indep target + - Call debian/dh_clistrip in binary-indep target + + debian/libmono-sqlite{1,2}.0-cil.install: + - Added Mono.Data.Sqlite.dll + + debian/libmono-dev.install: + - Added dotnet.pc + + debian/patches/fix-mono.pc.in.dpatch + debian/patches/fix-mono-cairo.pc.in.dpatch: + - Replace ../../ with @prefix@ + + debian/mono-gmcs.install: + - Added httpcfg and mono-api-info2 + + debian/libmono-system1.0-cil.clideps-override: + - Move libcupsys2 to Suggests. + - Move libgdiplus to Suggests. + + debian/libmono-system-data{1,2}.0-cil.clideps-override: + - Move libglib2.0-0 to Suggests. + + debian/libmono-winforms{1,2}.0-cil.clideps-override: + - Move libglib2.0-0 to Suggests. + + debian/dh_clifixperms: + - Copied from cli-common-dev + + debian/dh_clistrip: + - Copied from cli-common-dev + + debian/shlibs.local: + - Added libgda-2 + + -- Mirco Bauer Mon, 21 May 2007 01:04:08 +0200 + +mono (1.2.3.1-5) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + debian/control: + - Added Conflicts: mono-utils (<< 1.2.3.1-4) to libmono0, to aid partial + upgrade of Mono from etch to lenny or sid, thanks to Rene Engelhard for + the hints. (really Closes: #412970) + - Moved binfmt-support dependency to recommends. (Closes: #418765) + The mono-common.postinst and mono-common.prerm scripts already checks + if binfmt-support is actually installed. + - Updated to use my Debian email address now. + + -- Mirco Bauer Mon, 16 Apr 2007 01:12:04 +0200 + +mono (1.2.3.1-4) unstable; urgency=low + + * Upload to unstable + * Sebastian 'slomo' Dröge: + + debian/control: + - Let mono-utils depend on exactly the same upstream version of libmono0 + that it was build with and remove the other workarounds for bug #412970 + as this is now the correct fix. Thanks to Mirco Bauer for investigating + - Add armel to architectures + + debian/rules: + - The shlibs file of libmono0 now contains >= $UPVERSION + + -- Sebastian Dröge Sun, 15 Apr 2007 21:06:21 +0200 + +mono (1.2.3.1-3) experimental; urgency=low + + * Sebastian 'slomo' Dröge: + + debian/control: + - Also let mono-jit conflict with mono-utils (<< 1.2.3.1), otherwise the + previously added stricter dependencies in mono-utils don't have any + effect for pre-1.2.3.1-2 mono versions. (Closes: #412970) + + -- Sebastian Dröge Tue, 6 Mar 2007 07:32:55 +0100 + +mono (1.2.3.1-2) experimental; urgency=low + + * Sebastian 'slomo' Dröge: + + debian/control: + - Also add kfreebsd-amd64 to archs + - Let libmono-winforms*.0-cil suggest shared-mime-info (Closes: #394674) + - Make mono-utils depend on libmono-corlib1.0-cil with a stricter + version requirement as it most probably breaks with other + versions. (Closes: #412970) + + -- Sebastian Dröge Mon, 5 Mar 2007 08:00:35 +0100 + +mono (1.2.3.1-1) experimental; urgency=low + + * Mirco 'meebey' Bauer: + + debian/rules: + - Split the package build system into arch and indep for the configure, + install and build target. + - Added --disable-mcs-build to configure-indep call. + (buildds doesn't need to build the complete base-class-libraries, + since it's arch-indep, in arch-indep packages, and already in the + archive when uploaded. This should reduce the build time from 10 + hours to about 1 hour for arm) + - Added kfreebsd checks for configure confflags. + - Moved building of MonoGetAssemblyName.exe from install to binary-indep, + else the compiler isn't available yet (if only binary-arch is build). + + debian/dh_clideps: + - Synced from cli-common (contains support for kfreebsd) + + debian/patches/kfreebsd_support.dpatch: + - Adds kfreebsd support to Mono. + (Closes: #394456, thanks to Petr Salinger + and Aurelien Jarno for the patch) + + * Sebastian 'slomo' Dröge: + + New upstream release (Closes: #411924): + - Fixes assertion failures on PPC (Closes: #403495) + + debian/libmono-system2.0-cil.clideps-override: + - Move libasound2 to Suggests + + debian/libmono-system1.0-cil.install, + debian/libmono-system2.0-cil.install: + - Add CustomMarshalers.dll + + debian/libmono-system-data1.0-cil.clideps-override, + debian/libmono-system-data2.0-cil.clideps-override: + - Move libgda2-3 to Suggests + + debian/libmono-winforms1.0-cil.clideps-override, + debian/libmono-winforms2.0-cil.clideps-override: + - Move librsvg2-2 to Suggests + + debian/mono-common.install: + - Update path for cil-opcodes.xml + + debian/mono-gmcs.install: + - Add /usr/bin/al2 utility + - Update path for xbuild stuff + + debian/rules: + - Install new System.Data.dll.config file + - Remove new utilities from mono-mcs as they're already elsewhere + - Update MONO_API to 1.2.3 + + debian/shlibs.local: + - Add shlibs entry for libasound2 + + debian/System.Data.dll.config: + - Added new dllmaps + + debian/shlibs.local, + debian/patches/firebird-fbclient.dpatch, + debian/FirebirdSql.Data.Firebird.dll.config: + - Use libfbclient1 instead of the embedded libfbembed1 + library which is not thread-safe (Closes: #410379) + + debian/control: + - Clean up Build-Depends-Indep + + debian/rules, + debian/mono-gac.install: + - Fix various build failures caused by the binary-arch / binary-indep + split + + -- Sebastian Dröge Tue, 27 Feb 2007 09:44:02 +0100 + +mono (1.2.2.1-2) unstable; urgency=high + + * Sebastian 'slomo' Dröge: + + Urgency high for RC bugfix + + debian/control: + - Build depend on dpkg-dev (>= 1.13.19) for ${source:Version} + substitution (Closes: #411915) + - Update to use my debian.org address + + -- Sebastian Dröge Sat, 24 Feb 2007 16:51:10 +0100 + +mono (1.2.2.1-1) unstable; urgency=low + + * New upstream release + + Mono 1.2.2.1 contains important bugfixes for the ARM architecture + (see #394418), but urgency is not raised because it's a new version. + + Mono 1.2 has upstream security support for 7 years as it's used + in enterprise distributions by upstream. + + For more Mono 1.2 news check the NEWS file. + + * Mirco 'meebey' Bauer: + + New upstream release (1.2.1) + + debian/NEWS: + - Added entry for Mono 1.2 + + debian/control: + - Removed unstable warning from mono-gmcs description. + + debian/patches/gmcs-static-anonmethods.dpatch: + - Removed, already applied upstream. + + debian/mono-gmcs.install: + - Added mkbundle2 + - Added sgen + + debian/libmono-system-web2.0-cil.clideps-override: + - Override for GUI/X11 dependency on libmono-winforms2.0-cil to suggests. + + debian/dh_clideps: + - Synced from cli-common-dev 0.4.7. + + debian/shlibs.local: + - Synced versions from /var/lib/dpkg/info/*.shlibs + * Sebastian 'slomo' Dröge: + + New upstream release (1.2.2) + + New upstream release (1.2.2.1) + + debian/rules: + - Update MONO_API to 1.2.2 + + debian/libmono{1,2}.0-cil.install: + - Add OpenSystem.C library + + debian/patches/*: + - Remove obsolete patches + + -- Debian Mono Group Tue, 5 Dec 2006 20:03:41 +0100 + +mono (1.1.18-3) unstable; urgency=low + + * Sebastian 'slomo' Dröge: + + debian/patches/gmcs-static-anonmethods.dpatch: + - Fix from SVN (r66807) for compilation of static anonymous methods + + -- Debian Mono Group Thu, 19 Oct 2006 06:58:20 +0200 + +mono (1.1.18-2) unstable; urgency=medium + + * The "clean me harder for etch" and "please build on arm this time" release + * Mirco 'meebey' Bauer: + + debian/control: + - Removed obsolete mono-classlib-{1,2}.0 transition packages. + - Changed dependency of mono-runtime on mono-gac to + (= ${source:Version}) for making Mono binNMUable. + - Removed libgc-dev build-dep for kfreebsd. + + debian/rules: + - Added --enable-minimal=aot to configure call for kfreebsd, this might + give us a successful build. + + -- Debian Mono Group Wed, 18 Oct 2006 23:09:35 +0200 + +mono (1.1.18-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer: + + debian/patches/arm_support_larger_stack_r65218.dpatch + debian/patches/fix_tmp_race_r65441.dpatch: + - Removed, already applied upstream. + + debian/control: + - Removed Mono from Build-Conflicts. + + debian/rules: + - Added parameters to $(MAKE) so an existing Mono install is not used. + (thanks to Raja R Harinath to for the hint) + + debian/libmono-winforms{1,2}.0-cil.clideps-override: + - Added suggests libgnomeui-0. + + debian/watch: + - Updated location again. + + -- Debian Mono Group Sun, 15 Oct 2006 13:03:38 +0200 + +mono (1.1.17.1-5) unstable; urgency=high + + * Mirco 'meebey' Bauer: + + debian/patches/fix_tmp_race_r65441.dpatch: + - Fixes tempfile race condition (CVE-2006-5072), taken from upstream SVN. + + debian/control: + - Added mono binary packages to Build-Conflicts, else it tries to use it + during bootstrap and fails. + + debian/dh_clideps + debian/dh_makeclilibs: + - Synced from cli-common-dev 0.4.6. + + -- Debian Mono Group Tue, 3 Oct 2006 14:02:21 +0200 + +mono (1.1.17.1-4) unstable; urgency=high + + * Mirco 'meebey' Bauer: + + debian/control: + - Added zlib1g-dev to build-deps, needed by the System.IO.Compression API + in System.dll 2.0. (Closes: #379225) + + debian/dh_clideps: + - Synced from cli-common package, contains bugfix for libc6 dependencies, + makes Mono installable on ia64 again. (Closes: #388557) + - Also supports -l switch now for controlling the MONO_GAC_PREFIX + environment variable. + + -- Debian Mono Group Sat, 23 Sep 2006 23:09:49 +0200 + +mono (1.1.17.1-3) unstable; urgency=high + + * Mirco 'meebey' Bauer: + + debian/patches/arm_support_larger_stack_r65218.dpatch: + - Should fix ARM FTBFS, taken from upstream SVN, thus urgency=medium. + + debian/dh_clideps: + - Synced from cli-common package, contains bugfix for dependencies on + libmono0 and other packages. + + debian/control: + - Added "Suggests: ${cli:Suggests}" to libmono-system{1,2}.0-cil and + libmono-winforms{1,2}.0-cil. + - Added libxml-dom-perl to build-deps (needed by debian/dh_clideps) + + libmono-system2.0-cil.clideps-override + libmono-winforms1.0-cil.clideps-override + libmono-system1.0-cil.clideps-override + libmono-winforms2.0-cil.clideps-override: + - Added, used to override specific Depends to Suggests for assembly + references. + + debian/shlibs.local: + - Updated + + debian/mono-common.postinst: + - Removed old /usr/share/dotnet/mono to /usr/lib/mono transition code. + - Added removal of unneeded /usr/share/dotnet/mono symlink. + (Closes: #387277) + + debian/rules: + - Honor noopt in DEB_BUILD_OPTIONS. + (thanks to Timo Lindfors , Closes: #380617) + + -- Debian Mono Group Mon, 4 Sep 2006 22:44:55 +0200 + +mono (1.1.17.1-2) unstable; urgency=high + + * Mirco 'meebey' Bauer: + + debian/rules: + - Removed --with-static_mono=no from configure call, caused bad runtime + bugs (random crashes, e.g. FTBFS for ARM). According to upstream this + is an untested feature, and should not be used by the runtime itself. + (thanks to Sebastian 'slomo' Dröge for the investigation) + + debian/watch: + - Updated + + -- Debian Mono Group Mon, 4 Sep 2006 22:44:55 +0200 + +mono (1.1.17.1-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer: + + debian/patches/unix-end-point-serialize.dpatch + + debian/patches/unix-end-point-equals.dpatch + + debian/patches/fix-mono-cairo-image-surface-constructor-signature.dpatch + + debian/patches/ppc_missing_lock.dpatch + + debian/patches/sqliteclient-ppc.dpatch + + debian/patches/gacutil-remove-full-assembly-name.dpatch: + - Removed, already applied upstream. + + debian/patches/console-no-utf8-bom.dpatch: + - Updated, thanks to Sebastian 'slomo' Dröge. + + debian/control: + - Removed mono-mbas package. + + debian/libmono-microsoft{7,8}.0-cil.install + debian/mono-mbas.install + debian/mono-mcs.manpages: + - Removed VB.NET, upstream split it into a separate tarball. + + debian/mono-gmcs.install: + - Added bin/resgen2 and bin/mono-service2 + + debian/libmono{1,2}.0-cil.install: + - Added mono-service.exe + + Updated to Standards Version 3.7.2 (no changes needed). + * Sebastian 'slomo' Dröge: + + debian/mono.runtime-script: + - don't fail on removal if an assembly can't be removed. This is most + likely the case because the assembly is already gone. + + -- Debian Mono Group Sun, 3 Sep 2006 17:19:37 +0200 + +mono (1.1.13.8-1) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + Updated debian/watch to use URL for stable releases. + * Sebastian 'slomo' Dröge: + + New upstream release + + debian/patches/ppc_missing_lock.dpatch: + - Add a missing lock and make some memory executable to fix + various segfaults on PPC64 SMP machines with 32 bit userland. + Patch from mono SVN (rev 61756). Thanks to Johannes Berg + (Closes: #371134) + + debian/patches/sqliteclient-ppc.dpatch: + - LastInsertRowID() returns long, not int for sqlite3. + Fixes it to not return always 0 on PPC. Patch from mono SVN (rev 60676). + + debian/patches/resource-manager-boo.dpatch: + - dropped, upstream now + + debian/patches/console-no-utf8-bom.dpatch: + - don't output the Byte Order Mark on UTF8 locales to the console. This + breaks scripts and everything that parses the output of mono programs. + + debian/patches/gacutil-remove-full-assembly-name.dpatch: + - Allow removal of assemblies with neutral culture info when given as + full assembly name to gacutil + + debian/mono.runtime-scripts: + - added LANG=C to all calls of external programs where the output is + parsed + - Exit with a non-0 exit code if something goes wrong + - Use the full assembly name and gacutil /u for uninstallation + + -- Debian Mono Group Tue, 27 Jun 2006 15:11:24 +0200 + +mono (1.1.13.6-4) unstable; urgency=low + + * Mirco 'meebey' Bauer: + + debian/mono-api-check: + - Added .NET 2.0 support (-2 parameter). + + debian/rules: + - pass -r to dh_clideps call for mono-gac, to prevent a circular + dependency between mono-gac <-> mono-runtime. (Closes: #365822) + * Sebastian 'slomo' Dröge: + + debian/patches/fix-mono-cairo-image-surface-constructor-signature.dpatch: + - Fix the signature of the Mono.Cairo.ImageSurface constructor. It should + take a byte array, not a string. The old version with the string could + never work and would've caused a segfault instead. (SVN rev 60175) + + -- Debian Mono Group Tue, 9 May 2006 22:34:09 +0200 + +mono (1.1.13.6-3) unstable; urgency=medium + + * Mirco 'meebey' Bauer: + + debian/control: + - Package mono-gac can not depend on cli-common >= 0.4.0 yet, which is + still in the NEW queue. Changed to use "Recommends" instead. + This caused FTBFS for packages that build-depend on cli-common or + mono-gac, thus using urgency=medium. + - Removed stdout and stderr redirect in mono-common.{postinst,prerm} to + aid debugging a problem with binfmt. + + -- Debian Mono Group Sun, 23 Apr 2006 15:32:29 +0200 + +mono (1.1.13.6-2) unstable; urgency=low + + * Dylan R. E. Moonfire + + Included the late-GAC install hooks. + * Mirco 'meebey' Bauer: + + synced dh_clideps and dh_makeclilibs from cli-common 0.4.0 + + debian/control: + - New meta package mono-runtime. + - Removed libmono-$version provides of libmono0, not needed anymore. + The shlibs file uses now libmono0. + + -- Debian Mono Group Sun, 9 Apr 2006 14:07:23 -0500 + +mono (1.1.13.6-1) unstable; urgency=high + + * New upstream release + * Mirco 'meebey' Bauer + + This upload solves a dependency chain hell that made Mono not installable + on all archs except i386 and amd64, this caused FTBFS for gtk-sharp and + could also for dbus, avahi and probably other source packages, too, + and blocking their migration to testing. Thus urgency=high. + Unfortunately, I can't close any bugreports here, because there is none + filed against Mono for this issue (yet). + + Splitted left libraries of mono-classlib-1.0 and mono-classlib-2.0 + into own packages to avoid ABI breakages and meet the CLI Policy. + All libraries in a package must have the same version number + (required for versioned package names), see CLI Policy 0.4.0 + mono-classlib-1.0/2.0 are now empty transition packages. + This also solves the circular depedency. (Closes: #358363) + + debian/mono-classlib-1.0.install + debian/mono-classlib-1.0-dbg.install + debian/mono-classlib-2.0.install + debian/mono-classlib-2.0-dbg.install: + - Removed, not needed anymore because of splitting. + + debian/control: + - Removed mono-classlib-1.0/2.0-dbg package + Removed mono-assemblies-base package: + - Changed mono-classlib-1.0/2.0 to have a minimum as depencies for the + transition to avoid a dependency hell. (Closes: #360996) + All packages that have a binary dependency on + mono-classlib-1.0/2.0 should be rebuild! + - Removed pnet-compiler Build-Conflicts and Conflicts. + - Updated libgdiplus dependency of libmono-winforms1.0/2.0-cil + to >= 1.1.13.4 + - Moved System.Drawing.Design and System.Design to + libmono-winforms1.0/2.0-cil + - Added mono-mbas package, to avoid GUI dependency chain + - Added mono-mjs package, to avoid GUI dependency chain + - Added libmono-corlib2.0-cil to mono-utils Suggests, needed when + monodis parses 2.0 libraries. + - Added libmono1.0-cil package + - Added libmono2.0-cil package + - Added libmono-system1.0-cil package + - Added libmono-system2.0-cil package + - Added libmono-system-data1.0-cil package + - Added libmono-system-data2.0-cil package + - Added libmono-system-ldap1.0-cil package + - Added libmono-system-ldap2.0-cil package + - Added libmono-data-tds1.0-cil package + - Added libmono-data-tds2.0-cil package + - Added libmono-accessibility1.0-cil package + - Added libmono-accessibility2.0-cil package + - Added libmono-c5-1.0-cil package + - Added libmono-cscompmgd7.0-cil package + - Added libmono-cscompmgd8.0-cil package + - Added libmono-ldap1.0-cil package + - Added libmono-ldap2.0-cil package + - Added libmono-microsoft-build2.0-cil package + - Added libmono-microsoft7.0-cil package + - Added libmono-microsoft8.0-cil package + - Added libmono-oracle1.0-cil package + - Added libmono-oracle2.0-cil package + - Added libmono-peapi1.0-cil package + - Added libmono-peapi2.0-cil package + - Added libmono-relaxng1.0-cil package + - Added libmono-relaxng2.0-cil package + + debian/rules: + - Added dh_makeclilibs call for 2.0 libraries, with tighter dependencies. + + * Sebastian Dröge + + Add myself to Uploaders + + Added debian/mono-api-check: + - small wrapper script for comparing two assemblies and testing whether + their API is compatible. + + debian/patches/unix-end-point-equals.dpatch (SVN rev 57754:57757): + - Fix Equals() and GetHashCode() of Mono.Unix.UnixEndPoint. + http://bugzilla.ximian.com/show_bug.cgi?id=77747 + + debian/patches/resource-manager-boo.dpatch: + - Fix the long outstanding breakage of boo. See + http://bugzilla.ximian.com/show_bug.cgi?id=77242 + + debian/patches/*.dpatch: + - Removed all obsolete, old patches + + -- Debian Mono Group Wed, 5 Apr 2006 23:47:48 +0200 + +mono (1.1.13.4-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + Splitted some ABI problematic libraries into own packages. + Conforming to CLI Policy 0.3.0, for more details see: + http://pkg-mono.alioth.debian.org/cli-policy/ch3.html#s3.1 + + debian/control: + - Added libmono-corlib1.0-cil package + - Added libmono-corlib2.0-cil package + (this solves tight dependency problems on mono-jit) + - Removed mono-classlib-1.0 dependency from mono-jit. + - Added libmono-firebirdsql1.7-cil package + - Added libmono-bytefx0.7.6.1-cil package + - Added libmono-bytefx0.7.6.2-cil package + - Added libmono-npgsql1.0-cil package + - Added libmono-npgsql2.0-cil package + - Added libmono-sharpzip0.6-cil package + - Added libmono-sharpzip0.84-cil package + - Added libmono-sharpzip2.6-cil package + - Added libmono-sharpzip2.84-cil package + - Added libmono-winforms1.0-cil package + - Added libmono-winforms2.0-cil package + - Added libmono-sqlite1.0-cil package + - Added libmono-sqlite2.0-cil package + - Added libmono-cairo1.0-cil package + - Added libmono-cairo2.0-cil package + - Added replaces for mono-classlib-1.0/2.0(-dbg). + - Added splitted packages to mono-classlib-1.0/2.0 depends, for + transistion. + + debian/mono-classlib-1.0.install: + - Moved mscorlib.dll to libmono-corlib1.0-cil.install + + debian/mono-classlib-2.0.install: + - Moved mscorlib.dll to libmono-corlib2.0-cil.install + + debian/README.Debian: + - Updated support archs list. + + debian/changelog: + - Fixed indentation of some entries. + * Sebastian Dröge + + debian/patches/unix-end-point-serialize.dpatch (SVN rev 57026): + - Fix the serialization of UnixEndPoint + + debian/rules: + - Add debian/libmono0/usr/lib to the search path of dh_shlibdeps to get + the missing libmono0 dependencies in mono-jit and mono-utils. + + -- Debian Mono Group Sat, 11 Mar 2006 22:46:42 +0100 + +mono (1.1.13.2-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + debian/control: + - Added arm and armeb to arch lists + + -- Debian Mono Group Sat, 28 Jan 2006 22:57:07 +0100 + +mono (1.1.13.1-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + synced dh_clideps and dh_makeclilibs from cli-common + + debian/rules: + - Added --with-static_mono=no to configure call, else the libmono0 + package would be useless and loading a 1.7mb shared library is not + _that_ slow. + - Removed chrpath hack + + debian/control: + - Updated debhelper build-dep to >= 5.0.0 + - Removed chrpath from build-deps. + - Adjusted some package descriptions. + - Added replaces to mono-gmcs for mono-mcs. + - Added ${misc:Depends} to all arch dep packages. + + debian/mono-jay.manpages: + - Updated path of jay.1 + + debian/mono-common.dirs: + - Added usr/share/dotnet (Closes: #311540) + + debian/mono-gmcs.install: + - Added xbuild + - Added ilasm2 + + debian/libmono0.install: + - Added libMonoSupportW.so + + debian/libmono-dev.install: + - Added libMonoSupportW.a + + -- Debian Mono Group Sat, 14 Jan 2006 17:21:28 +0100 + +mono (1.1.12.1-1) unstable; urgency=low + + * New upstream release (Closes: #344531) + * Mirco 'meebey' Bauer + + debian/control: + - Added libx11-dev and libxt-dev to build-deps. + - Added libgc-dev [kfreebsd-i386] to build-deps. (Closes: #322599) + + debian/rules: + - Added kfreebsd check for configure call. + - Added --with-libgdiplus=installed and --with-x=yes to configure call. + + debian/compat: + - Changed to 5. + + debian/mono-classlib-1.0.install: + - Added usr/lib/mono/compat-1.0/ + - Added usr/lib/pkgconfig/mono-cairo.pc + + debian/mono-classlib-1.0-dbg.install: + - Removed usr/lib/mono/gac/Microsoft.VisualBasic/7.0.*/*.mdb + + debian/mono-classlib-2.0.install: + - Added usr/lib/mono/compat-2.0/ + - Added usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/ + - Added usr/lib/mono/gac/Microsoft.Build.*/2.*/ + - Removed usr/lib/mono/gac/Microsoft.VisualBasic/8.0.*/*.mdb + + debian/mono-classlib-2.0-dbg.install: + - Added usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/*.mdb + - Added usr/lib/mono/gac/Microsoft.Build.*/2.*/*.mdb + + -- Debian Mono Group Tue, 27 Dec 2005 12:58:11 +0100 + +mono (1.1.10-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + debian/patches/00list: + - Removed fix_xsp2_inherits, already applied upstream. + - Removed datetime_doparse_fix, already applied upstream. + - Removed s390_compile_fix, already applied upstream. + - Removed 64bit_implicit_pointer_cast_fix, already applied upstream. + + debian/mono-mcs.manpages: + - Added mozroots.1 + + debian/mono-classlib-1.0.install: + - Added dotnet.pc + + debian/control: + - Added libgdiplus to "Recommends" of mono. (Closes: #333851) + + -- Debian Mono Group Sat, 12 Nov 2005 21:54:15 +0200 + +mono (1.1.9.2-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + debian/patches/00list: + - Removed io_layer_fix_r50689, already applied upstream. + - Removed amd64_compile_fix_r50553, already applied upstream. + + debian/mono-utils.install: + - Removed dh_installxsp, postrm-monoxsp and postinst-monoxsp. Those files + will be in the XSP package (mono-xsp-base) instead. + + debian/mono-utils.manpages: + - Removed dh_installxsp.1 + + debian/patches/s390_compile_fix.dpatch: + - Updated the patch, one "break" was missing in an empty default label. + + debian/patches/fix_xsp2_inherits.dpatch: + - Added patch to fix class inheritance with XSP2. + (thanks to Dylan R. E. Moonfire for the patch) + + -- Debian Mono Group Sun, 16 Oct 2005 14:01:28 +0200 + +mono (1.1.9.1-3) unstable; urgency=medium + + * Mirco 'meebey' Bauer + + debian/patches/amd64_compile_fix_r50553.dpatch: + - Backport from upstream's SVN, should fix amd64 build. + (Closes: #330369) + + debian/patches/64bit_implicit_pointer_cast_fix.dpatch: + - Should fix problems with amd64 and ia64 build. + (Closes: #330982, thanks to David Mosberger-Tang + for the patch) + + Synced dh_makeclilibs and dh_clideps from cli-common. + + -- Debian Mono Group Sun, 2 Oct 2005 17:17:19 +0200 + +mono (1.1.9.1-2) unstable; urgency=medium + + * Mirco 'meebey' Bauer + + debian/control: + - Added dc to build-deps, required for full bootstrap (solves FTBFS). + (Closes: #330280) + + debian/rules: + - Making debian/dh_makeclilibs and debian/dh_clideps now executable. + (Closes: #330283) + + debian/patches/io_layer_fix_r50689.dpatch: + - Backport from upstream's SVN, fixes process signalling bug. + + debian/patches/s390_compile_fix.dpatch: + - Backport from upstream's SVN, should fix s390 build. + * Eduard Bloch + + fixed bashisms in maintainer scripts and added removal of rpath (chrpath) + + -- Debian Mono Group Tue, 27 Sep 2005 11:58:34 +0200 + +mono (1.1.9.1-1) unstable; urgency=low + + * The "Mono becomes architecture friendly" release + - Mono 1.1.9 supports now IA-64 and ARM too + * New upstream release + * Mirco 'meebey' Bauer + + debian/readme: + - Removed MonoConventions. + - Added link to CLI Policy. + + debian/rules: + - Deleting more nunit files. + + debian/control: + - Dropped cli-common build dependency. + - Added ia64 arch-dep packages. + + debian/mono-gmcs.install: + - Added monop2. + + debian/patches/remove_broken_dllmap_from_mono-shlib-cop.dpatch: + - Wrote patch to remove a dllmap which was causing that dh_clidep + generates a dependency for libc6. + + Copied dh_makeclilibs and dh_clideps of cli-common to debian/ for + bootstrapping reasons, Mono is now autobuildable. + + Applied patch for binfmt-detector-cli which makes it 64bit clean. + (Closes: #325313, thanks to Colin Watson for the + patch) + + -- Debian Mono Group Sat, 24 Sep 2005 15:51:03 +0200 + +mono (1.1.8.3-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + debian/rules: + - Copying monodis to debian/tmp/usr/bin now, else dh_clideps in + internal-mono mode will fail. + - Copying monograph from mono/monograph/.libs to debian/tmp/usr/bin. + "make install" is still on drugs installing libtool wrapper scripts. + (Closes: #320479) + + debian/mono-utils.install: + - Use monodis from debian/tmp again. + + debian/control: + - Updated versioned cli-common build-dep to >= 0.2.1, this version + will generate proper deps now when using internal-mono mode. + (Closes: #325473) + - Updated to Standards Version 3.6.2.1 (no changes). + + -- Debian Mono Group Fri, 2 Sep 2005 18:42:39 +0200 + +mono (1.1.8.2-1) unstable; urgency=low + + * New upstream release + * Mirco 'meebey' Bauer + + debian/rules: + - Using new feature of cli-common (internal-mono), this allows to use + the built Mono (in debian/) instead of an installed Mono + (thanks to Ingo Saitz for working on this). + + debian/control: + - Added mono-gmcs to "Suggests" of mono-devel. + - Changed "Priority" of mono-classlib-(1.0|2.0)-dbg to extra. + - Changed dependency of mono-classlib-2.0-dbg from mono-classlib-1.0 + to mono-classlib-2.0. + - Updated versioned cli-common build-dep to >= 0.1.4 + - Removed mono-common dependency from many packages (it's not required + and breaks autobuilding of new packages). + - Removed mono-classlib-1.0/2.0 from build-deps. + + -- Debian Mono Group Sun, 10 Jul 2005 16:08:12 +0200 + +mono (1.1.8.1-3) unstable; urgency=low + + * Mirco 'meebey' Bauer + + debian/mono-gmcs.install: + + debian/mono-gmcs.manpages: + - those 2 files were missing, thus the mono-gmcs package was empty. + (Closes: #316742) + + -- Debian Mono Group Sun, 3 Jul 2005 15:51:55 +0200 + +mono (1.1.8.1-2) unstable; urgency=medium + + * Mirco 'meebey' Bauer + + debian/control: + - Added "Replaces" to mono-utils for mono-mcs (<= 1.1.6-4). + This broke upgrading mono packages from 1.1.6 to 1.1.8.1, thus urgency + set to medium. (Closes: #316691) + + -- Debian Mono Group Sun, 3 Jul 2005 12:43:24 +0200 + +mono (1.1.8.1-1) unstable; urgency=low + + * New upstream release + + Fixed DirectoryInfo.GetFiles(), it failed when filename had a backspace + or space at the end. (Closes: #285287) + + With this release we also package the C# 2.0 part, for details see below. + * Mirco 'meebey' Bauer + + debian/mono-mcs.manpages: + - removed monoresgen.1 and prj2make.1 + (the programs for those don't exist in the packages anymore). + + debian/rules: + - disabled 07_no_libc_fun.dpatch + (upstream doesn't use internal libc symbols anymore) + - Deleting prj2make from build + (it is shipped with the prj2make-sharp package). + - Added --preview=yes and --with-ikvm-native=no to ./configure call + (libikvm-native.so is shipped by the ikvm package). + - A lot of changes to make the split of classlib 1.0/2.0 possible. + + debian/control: + - Updated versioned cli-common build-dep to >= 0.1.3 + - Moved libMonoPosixHelper.so from libmono-dev to libmono0, because it's + an unversioned library now. + - Added "Replaces" to libmono0 for libmono-dev (<= 1.1.6-4). + - Renamed mono-assmeblies-base to mono-classlib-1.0 and set "Replaces" + and "Conflicts" for it. + - Added mono-assmeblies-base transistion package. + - Added new packages: mono-gmcs, mono-classlib-2.0, mono-classlib-1.0-dbg + and mono-classlib-2.0-dbg. + - Removed ${cli:Depends} from "Depends" of mono-classlib-1.0. + - Dropped mono-assemblies-arch package, there aren't any arch specific + CIL libraries. + - Changed static depends of mono-mcs to ${cli:Depends} + - Added mono-classlib-1.0 and mono-classlib-2.0 to build-deps + (required for dh_makeclilibs). + + debian/mono-utils.install: + - Using mono/dis/.libs/monodis because the Makefile is confused and + installs a libtool wrapper script instead. + - Added missing /usr/bin/monodiet + - Added new /usr/bin/mono-find-provides and /usr/bin/mono-find-requires + + -- Debian Mono Group Tue, 21 Jun 2005 21:30:36 +0200 + +mono (1.1.6-4) unstable; urgency=low + + * upload to unstable + * Mirco 'meebey' Bauer + + added debian/watch file + + -- Debian Mono Group Sun, 29 May 2005 19:51:35 +0200 + +mono (1.1.6-3) experimental; urgency=low + + * Mirco 'meebey' Bauer + + updated "Section" fields in debian/control. + + added amd64 to the arch fields (Closes: #253542) + (thanks to Kurt Roeckx for testing it on AMD64) + + -- Debian Mono Group Sat, 14 May 2005 18:58:59 +0200 + +mono (1.1.6-2) experimental; urgency=low + + * Mirco 'meebey' Bauer + + removed cli-common from mono-common deps, it's for build-deps. + + updated versioned build-dep of cli-common to >= 0.1.1 + + -- Debian Mono Group Sun, 17 Apr 2005 21:19:58 +0200 + +mono (1.1.6-1) experimental; urgency=low + + * New upstream release + + New version (Closes: #296353, #301268) + + New build system, using one source tarball. + + Almost all programs have a manpage now. + + Mono 1.1.x branch supports AMD64 architecture. + + Remoting is fast again with 1.1.6 + (Closes: #303349) + * Mirco 'meebey' Bauer + + Upstream merged mcs and mono into one mono tarball, this makes the + build process a lot easier. + + Dropping /usr/share/dotnet structure with this release, upstream + provides now a FHS conform solution. + + Added versioned mono-common dependency to mono, makes lintian happy. + + Added cli-common to build-dependencies. + + Added transition code to mono-common.postinst for moving + /usr/share/dotnet/mono to /usr/lib/mono + (thanks to Ingo Saitz aka Salz for helping with this) + + Added c-sharp-compiler, resource-file-generator, assembly-linker, + strong-name-tool, global-assembly-cache-tool and cil-disassembler + alternatives (those are common CLI programs). + + Added mono-devel metapackage. + + Added mono-common dependecy to all related packages. + + Removed a lot of hacks in debian/rules, not required anymore. + + Removed old Conflicts/Replaces. + + Removed icu28-dev from buil-dependencies (ICU is not recommended by + upstream anymore, and does break things). + + Added pkg-config to "Recommends" of mono-mcs. (Closes: #294606) + + created 07_no_libc_fun.dpatch + (Mono 1.1.x tries to use internal libc symbols, which is not required) + + -- Debian Mono Group Sat, 2 Apr 2005 12:48:09 +0200 + +mono (1.0.5-2) unstable; urgency=high + + * Mirco 'meebey' Bauer + + removed mono-mint package and all packages for s390. + The mono-mint (the interpeter) is deprecated, unmaintained upstream + and was just a proof-of-concept programm. + The mono-jit is no longer supported for s390 by upstream in the stable + release and has a lot of bugs on that arch. This prevents Mono to enter + "testing", thus removed. + + -- Debian Mono Group Tue, 15 Feb 2005 22:58:39 +0200 + +mono (1.0.5-1) unstable; urgency=high + + * New upstream release + * Mirco 'meebey' Bauer + + disabled building of .NET 2.0 classlib, because it breaks too much. + Upstream said it should not be used, even Novell does not ship it. + This fixes some very strange bugs, all tested against 1.0.5. + (Closes: #286270, #276464, #287279) + + cleanups in debian/rules + + -- Debian Mono Group Sun, 30 Jan 2005 01:07:36 +0200 + +mono (1.0.4-1) unstable; urgency=high + + * New upstream release + * Mirco 'meebey' Bauer + + removed automake from build-deps + + JIT seems to be stable now (Closes: #258041) + + -- Debian Mono Group Sun, 05 Dec 2004 16:09:32 +0200 + +mono (1.0.2-1) unstable; urgency=high + + * The "All or Nothing" release + * New upstream release (Closes: #273675) + * Mirco 'meebey' Bauer + + applied debian/rules patch to fix FTBFS on i386 with amd64 kernel + (Closes: #265510 thanks to Kurt Roeckx ) + + removed all not official supported architectures + (Closes: #272846, #259680) + + cosmetic cleanups in debian/rules + + -- Debian Mono Group Thu, 11 Oct 2004 21:21:02 +0200 + +mono (1.0.1-1) unstable; urgency=medium + + * New upstream (bugfix) release + + -- Debian Mono Group Thu, 12 Aug 2004 13:46:04 +0200 + +mono (1.0-4) unstable; urgency=medium + + * the "sorry for forgetting the NOT RELEASED YET tags" release + * Mono BSP + * Mirco 'meebey' Bauer + + debian/rules: s390 build should work now + (showstopper for sarge, thus medium urgency) + + debian/control: fixed typo, tuned Architecture field for mono (should + finaly prevent "unallowed" architectures from trying to build mono) + + debian/README.Debian: fixed typo + * Eduard Bloch + + --with-ntpl=no! When compiled with NTPL support, it still breaks on + kernel 2.4 though not using the other libs (closes: #256755, #257412) + + patched Makefiles to link explicitely with glib and dl, thanks to + Russ Allbery (closes: #262023) + + disabled mono-mint build for i386 and powerpc, upstream wish + + -- Debian Mono Group Sun, 08 Aug 2004 16:38:32 +0200 + +mono (1.0-3) unstable; urgency=low + + * NOT RELEASED YET + + -- Eduard Bloch Wed, 7 Jul 2004 19:03:57 +0200 + +mono (1.0-2) unstable; urgency=medium + + * Eduard Bloch + + Workarounds for FTBFS on architectures that have we already built for in + the past + + dh_makenetlibs: extremely ugly workaround for collecting library data + even when not the whole assembly chain works (we need something more + mature than monodis to do this; closes: #258040) + + -- Debian Mono Group Wed, 07 Jul 2004 18:53:32 +0200 + +mono (1.0-1) unstable; urgency=low + + * New upstream release (1.0 final) + * Mirco 'meebey' Bauer + + debian/rules: cleanup + + -- Debian Mono Group Mon, 30 Jun 2004 18:41:27 +0200 + +mono (0.97-1) unstable; urgency=medium + + * New upstream release (Release Candidate) + + basicaly a bugfix release, solves JIT crash problems with kernel 2.4.x + (closes: #255485, #256200), thus this urgency + * Eduard Bloch + + Added libMonoPosixHelper... to libmono... packages (closes: #256697) + + monosn is gone, using sn to get the signature strings now + + set alternative dependency on mono-assemblies-base-0.96, + apparently compatible + + -- Debian Mono Group Mon, 28 Jun 2004 01:14:32 +0200 + +mono (0.96-1) unstable; urgency=low + + * New upstream release + * Eduard Bloch + + setting virtual ".shlibs" for libmono via provides, currently + libmono-0.96 + + created new dh_makenetlibs and dh_netdeps tools to manage assembly + dependencies in the Perl/Python way + + Moved Pablo's dh_installxsp script to mono-utils to mono-utils + + mono-common.preinst now moves /usr/lib/mono directory (if exists) to + /usr/share/dotnet + + moved the check for mono-vs.-mint priority to debian/rules + + applied the patch (as dpatch) from Jackson Harper, + http://bugzilla.ximian.com/showattachment.cgi?attach_id=8206 to fix the + monodis segfault while operating on unresolved assembly references + * Mirco 'meebey' Bauer + + New upstream release updates + + enabled preview features (.NET 1.2, generics) + * Michael Schiansky + + Since beta1 (0.91) dllmaps are handled cleanly (Closes: #241686) + * Pablo Fischer + + Added autoscript support to dh_installxsp + + -- Debian Mono Group Sat, 19 Jun 2004 14:38:57 +0200 + +mono (0.91-1) unstable; urgency=low + + * New upstream release (Closes: Bug#249419) + * JIT is more stable now (Closes: Bug#238420) + * FTBFS fixes for sparc in rules/control + * added s390 architecture to mono-jit, libmono0 and libmono-dev + * documented supported architectures in README.Debian + + -- Mirco 'meebey' Bauer Sun, 02 May 2004 19:19:22 +0200 + +mono (0.31-2) unstable; urgency=low + + * kernel detection overridden to build 2.4 compatible version + (closes: #243928, #243940) + * DLL map updates (closes: #241686) + * README.Debian updated with latest MonoConventions + + -- Eduard Bloch Wed, 7 Apr 2004 01:39:55 +0200 + +mono (0.31-1) unstable; urgency=low + + * New upstream release + * Eduard Bloch + + added additional entries to the hard-coded DLL map (closes: #236782) + + included experimental patch for build failures on HPPA (partial fix + for #240272) + + -- Eduard Bloch Tue, 6 Apr 2004 09:44:35 +0200 + +mono (0.30.2-1) unstable; urgency=low + + * New upstream release + * Eduard Bloch: + + debian/control: limited "any" arch lists to those really supported by the + Mono project. libmono0(-dev) to i386 powerpc (closes: #235315) + + added a workaround for gnomeui-2 symbolic name (closes: #235946) + + deleting the alternatives entries only on removal (closes: #234815) + + -- Eduard Bloch Sat, 6 Mar 2004 13:15:43 +0100 + +mono (0.30.1-1) unstable; urgency=low + + * New upstream release + * SONAME wokraround for libgstreamer-0.6.so.1 + + -- Eduard Bloch Tue, 24 Feb 2004 18:15:49 +0100 + +mono (0.29.99.20040114-4) unstable; urgency=low + + * Eduard Bloch: + + catch-them-all cli-wrapper rewrite + + set mono-common conflict with the virtual package cli-common + * Teófilo Ruiz Suárez: + + removed libicu26-dev from Build-Depends so mono-jit don't depend on + libicu26 (Closes: #231966) + + -- Eduard Bloch Mon, 9 Feb 2004 00:23:40 +0100 + +mono (0.29.99.20040114-3) unstable; urgency=low + + * bugfix release, hopefully the last of 0.29* series + * Teófilo Ruiz Suárez: + + added automake1.7 to Build-Deps + * Eduard Bloch: + + Included modified icu-config to use libicu26-dev + + added libtool to Build-Deps (closes: #231271) + + hook to correct SONAMEs in /etc/mono/config file (Closes: #231191) + + included a generic binary wrapper to mono-common to be used as + PROGRAM to run /usr/bin/PROGRAM.exe with /usr/bin/cli + + -- Eduard Bloch Thu, 22 Jan 2004 00:57:56 +0100 + +mono (0.29.99.20040114-2) unstable; urgency=low + + * Finally closing the outstanding ITPs (closes: #132882) + * Maintainer mailing list address fixed + * libmint* removed (upstream request, considered as dead-end package) + * improved description, added pedump to mono-utils, dropped monosn (upstream + request) + + -- Eduard Bloch Sun, 18 Jan 2004 19:15:41 +0100 + +mono (0.29.99.20040114-1) unstable; urgency=low + + * New maintainer: Debian Mono maintainers + after the previous maintainers stoped the work on it + * Package descriptions written or improved + * Library package separation to follow the shared libs conventions + (libmono and libmono-profiler-... seem to belong together, though) + * libmono-dev depends on libmint-dev since the last contains the headers and + is available on all supported arches + * Package renaming to avoid confusion (mono in mono-jit, mint in mono-mint) + * merged binfmt-detector-cli and mono-common since they were already linked + together and another 3kB package makes no much sense + * limited the arch list to those officially supported by the Mono Project + * Adapted the /usr/share/doc/mono-interpreter (now -mint) fixing hooks + + -- Eduard Bloch Sun, 18 Jan 2004 19:11:04 +0100 + +mono (0.26-2) unstable; urgency=low + + * No longer depend on an external libgc + + -- Alp Toker Tue, 26 Aug 2003 23:27:11 +0100 + +mono (0.26-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Fri, 15 Aug 2003 15:41:38 +0100 + +mono (0.24-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Wed, 7 May 2003 02:53:40 +0100 + +mono (0.23-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Fri, 7 Mar 2003 20:32:37 +0000 + +mono (0.22-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Thu, 6 Mar 2003 22:52:19 +0000 + +mono (0.21-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Thu, 27 Feb 2003 22:55:33 +0000 + +mono (0.20-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Mon, 24 Feb 2003 01:09:34 +0000 + +mono (0.19-3) unstable; urgency=low + + * Build libmono as a shared object (needed for mod_mono) + + -- Alp Toker Sat, 25 Jan 2003 05:26:44 +0000 + +mono (0.19-2) unstable; urgency=low + + * Build against the new libgc6c102 + * Pipe binfmt-misc warnings to /dev/null + + -- Alp Toker Tue, 21 Jan 2003 07:17:12 +0000 + +mono (0.19-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Tue, 21 Jan 2003 00:05:56 +0000 + +mono (0.18-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Mon, 13 Jan 2003 17:16:34 +0000 + +mono (0.17-3) unstable; urgency=low + + * Include machine.config and anything else that goes in /etc/mono + + -- Alp Toker Tue, 17 Dec 2002 14:23:30 +0000 + +mono (0.17-2) unstable; urgency=low + + * Disable exuberant debugging in PPC trampoline code + + -- Alp Toker Mon, 16 Dec 2002 17:58:56 +0000 + +mono (0.17-1) unstable; urgency=low + + * New upstream release + + -- Alp Toker Tue, 10 Dec 2002 14:13:18 +0000 + +mono (0.16-1) unstable; urgency=low + + * New upstream version. Sorry I havn't been doing any CVS snapshots for + a month. I'll try and sort something out. + * Include a patch from Michel Danzer to fix + idiotic build failure on non-i386 arches. + * Install /etc/mono/config and the manpage in the mono-common package, + and add a replaces for smooth upgrades (mono-config.5 used to be in + the mono-jit package). + * Switch from setting prefix to DESTDIR so /etc works too. + * Added some {}s to monoburg.y to make it parse correctly. Thanks to + Zoltan Varga's message on mono-list. + * Added data/config to the list of files that need to be cleaned + manually. + + -- Robert McQueen Sat, 19 Oct 2002 16:16:08 +0100 + +mono (0.15-1) unstable; urgency=low + + * New upstream version. + + -- Robert McQueen Sat, 24 Aug 2002 00:36:34 +0100 + +mono (0.13-3) unstable; urgency=low + + * Pass --disable-shared to configure, and link mono-jit statically. + * This turned out to be broken. Thanks to Dick Porter for putting up + with me moaning about libtool combinations for a day, and for fixing + it with the correct method I absolutely failed to see. Applied his + patch for this, should hit CVS soon or I'll back it out. + * Ship only a static libmono-dev for people interested in embedding. + Shared lib is useless because the API is massively unstable. + * Conflict the -dev with the old libmono0 until it is deemed useful + again. + * Change -a to -s in the binary-arch target so debhelper will only + build arch-specific packages if they're available on the build arch. + * Added mono-config.5 manpage to mono-jit package, and libmono.la and + pkg-config/mono files to libmono-dev package. + + -- Robert McQueen Wed, 14 Aug 2002 23:07:40 +0100 + +mono (0.13-2) unstable; urgency=low + + * Holiday maintainer upload. =) + * Switched to pristine upstream source tarball. + * Cleaned up debian/rules file, separated binary-arch/binary-indep + targets for builds on other arches. + * Stole the makefile magic from galeon (I did help write it =) to + automatically run configure or autogen.sh depending on whether we're + building from CVS or not, and then do the correct clean command + later. + * At the advice of Ximian folk, don't provide libmono0/libmono-dev for + the moment - the API is unstable. + * For when it does return... install the .a into libmono-dev and make + it arch: any. + * Include libmono.so.0 and libmono.so.0.0.0 into the mono-jit package. + These will be returned to a seperate package, and headers and static + libraries provided, when libmono's API is stable. To ease + transition, added a Replaces: header. + * Made mono-common arch: all, it contains no binaries currently. + * Leave out cil-opcodes.xml unless someone complains. + * Install documentation in mono-common, and have packages that depend + on it symlink to there instead. Made mono depend directly on + mono-common to prevent lintian griping about this. Added code to + postinsts of mono, mono-jit and mono-interpreter remove their doc + dir and replace it with a symlink on upgrades. Dpkg will not replace + a directory with a symlink, even if it's empty. + * Added -e to /bin/sh in the maintainer scripts. + * Don't ship monostyle.1 and monoburg.1 manpages, the programs are in + the mcs package and we don't ship them currently. + * Added undocumented symlink for monograph.1. + * Added rm to clean target for spare Makefiles left behind. + + -- Robert McQueen Sun, 4 Aug 2002 00:57:15 +0100 + +mono (0.13-1) unstable; urgency=low + + * Initial release. + + -- Alp Toker Sun, 28 Apr 2002 22:10:10 +0100 --- mono-2.4.4~svn151842.orig/debian/libmono-db2-1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-db2-1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/IBM.Data.DB2/1.0.*/ +debian/tmp/usr/lib/mono/1.0/IBM.Data.DB2.dll --- mono-2.4.4~svn151842.orig/debian/libmono-accessibility2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-accessibility2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Accessibility/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Accessibility.dll --- mono-2.4.4~svn151842.orig/debian/libmono-security1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-security1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.Security/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Mono.Security.dll --- mono-2.4.4~svn151842.orig/debian/libmono-sharpzip2.84-cil.install +++ mono-2.4.4~svn151842/debian/libmono-sharpzip2.84-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.84.*/ +debian/tmp/usr/lib/mono/2.0/ICSharpCode.SharpZipLib.dll --- mono-2.4.4~svn151842.orig/debian/mono-1.0-devel.install +++ mono-2.4.4~svn151842/debian/mono-1.0-devel.install @@ -0,0 +1,17 @@ +debian/tmp/usr/bin/al1 +debian/tmp/usr/bin/genxs1 +debian/tmp/usr/bin/ilasm1 +debian/tmp/usr/bin/mkbundle1 +debian/tmp/usr/bin/monop1 +debian/tmp/usr/bin/resgen1 +debian/tmp/usr/bin/wsdl1 +debian/tmp/usr/bin/xsd1 +debian/tmp/usr/lib/mono/1.0/al.exe +debian/tmp/usr/lib/mono/1.0/genxs.exe +debian/tmp/usr/lib/mono/1.0/ilasm.exe +debian/tmp/usr/lib/mono/1.0/installutil.exe +debian/tmp/usr/lib/mono/1.0/mkbundle.exe +debian/tmp/usr/lib/mono/1.0/monop.exe +debian/tmp/usr/lib/mono/1.0/resgen.exe +debian/tmp/usr/lib/mono/1.0/wsdl.exe +debian/tmp/usr/lib/mono/1.0/xsd.exe --- mono-2.4.4~svn151842.orig/debian/libmono-data-tds2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-data-tds2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.Data.Tds/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Mono.Data.Tds.dll --- mono-2.4.4~svn151842.orig/debian/libmono-microsoft7.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-microsoft7.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/gac/Microsoft.JScript/7.0.*/ +debian/tmp/usr/lib/mono/gac/Microsoft.VisualC/7.0.*/ +debian/tmp/usr/lib/mono/gac/Microsoft.Vsa/7.0.*/ +debian/tmp/usr/lib/mono/1.0/Microsoft.JScript.dll +debian/tmp/usr/lib/mono/1.0/Microsoft.VisualC.dll +debian/tmp/usr/lib/mono/1.0/Microsoft.Vsa.dll --- mono-2.4.4~svn151842.orig/debian/libmono-system2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system2.0-cil.install @@ -0,0 +1,26 @@ +debian/tmp/usr/lib/mono/2.0/CustomMarshalers.dll +debian/tmp/usr/lib/mono/2.0/System.Configuration.Install.dll +debian/tmp/usr/lib/mono/2.0/System.Configuration.dll +debian/tmp/usr/lib/mono/2.0/System.Core.dll +debian/tmp/usr/lib/mono/2.0/System.Drawing.dll +debian/tmp/usr/lib/mono/2.0/System.EnterpriseServices.dll +debian/tmp/usr/lib/mono/2.0/System.Management.dll +debian/tmp/usr/lib/mono/2.0/System.Security.dll +debian/tmp/usr/lib/mono/2.0/System.ServiceProcess.dll +debian/tmp/usr/lib/mono/2.0/System.Transactions.dll +debian/tmp/usr/lib/mono/2.0/System.Xml.dll +debian/tmp/usr/lib/mono/2.0/System.Xml.Linq.dll +debian/tmp/usr/lib/mono/2.0/System.dll +debian/tmp/usr/lib/mono/gac/CustomMarshalers/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Configuration.Install/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Configuration/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Core/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Drawing/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.EnterpriseServices/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Management/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Security/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.ServiceProcess/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Transactions/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Xml/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Xml.Linq/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System/2.0.0.0__*/ --- mono-2.4.4~svn151842.orig/debian/libmono-system-data2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-data2.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/gac/System.Data/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Data.DataSetExtensions/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Data.Linq/3.5.0.0__*/ +debian/tmp/usr/lib/mono/2.0/System.Data.dll +debian/tmp/usr/lib/mono/2.0/System.Data.DataSetExtensions.dll +debian/tmp/usr/lib/mono/2.0/System.Data.Linq.dll --- mono-2.4.4~svn151842.orig/debian/libmono-i18n-west1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-i18n-west1.0-cil.install @@ -0,0 +1,4 @@ +/usr/lib/mono/gac/I18N/1.0.*/ +/usr/lib/mono/gac/I18N.West/1.0.*/ +/usr/lib/mono/1.0/I18N.dll +/usr/lib/mono/1.0/I18N.West.dll --- mono-2.4.4~svn151842.orig/debian/dh_clifixperms +++ mono-2.4.4~svn151842/debian/dh_clifixperms @@ -0,0 +1,70 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_clifixperms - fix permissions of files in CLI package build directories + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-X>I] + +=head1 DESCRIPTION + +dh_clifixperms is a debhelper program that is responsible for setting +the permissions of files and directories for CLI assemblies and +executables. + +dh_clifixperms makes all files that end in *.dll, *.mdb, *.cs, +*.aspx, and *.config to mode 644 and *.exe to mode 755. + +=head1 OPTIONS + +=over 4 + +=item B<-X>I, B<--exclude> I + +Exclude files that contain "item" anywhere in their filename from having +their permissions changed. You may use this option multiple times to build +up a list of things to exclude. + +=back + +=cut + +init(); + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + + my $find_options=''; + if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') { + $find_options="! \\( $dh{EXCLUDE_FIND} \\)"; + } + + # Fix the permissions of various CLI-based files + for my $ext (qw(dll mdb cs config aspx)) + { + complex_doit("find $tmp $find_options -name \"*.$ext\" -print0", + "2>/dev/null | xargs -0r chmod 0644"); + } + complex_doit("find $tmp $find_options -name \"*.exe\" -print0", + "2>/dev/null | xargs -0r chmod 0755"); +} + +=head1 SEE ALSO + +L + +This program is a part of cli-common. + +=head1 AUTHOR + +Dylan R. E. Moonfire based on work from Joey Hess +. + +=cut --- mono-2.4.4~svn151842.orig/debian/monodoc-base.postinst +++ mono-2.4.4~svn151842/debian/monodoc-base.postinst @@ -0,0 +1,21 @@ +#!/bin/sh +set -e + +case "$1" in + configure) + + if [ "$2" = "" ]; then + /usr/bin/dpkg-trigger --by-package=monodoc-base /usr/lib/monodoc/sources + fi + + ;; + + triggered) + + /usr/bin/update-monodoc + + ;; + +esac + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/mono-1.0-gac.install +++ mono-2.4.4~svn151842/debian/mono-1.0-gac.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/gacutil1 +debian/tmp/usr/lib/mono/1.0/gacutil.exe --- mono-2.4.4~svn151842.orig/debian/mono-utils.postinst +++ mono-2.4.4~svn151842/debian/mono-utils.postinst @@ -0,0 +1,7 @@ +#!/bin/sh -e + +update-alternatives \ + --install /usr/bin/cli-ildasm cil-disassembler /usr/bin/monodis 10 \ + --slave /usr/share/man/man1/cli-ildasm.1.gz cli-ildasm.1.gz /usr/share/man/man1/monodis.1.gz + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-messaging2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-messaging2.0-cil.install @@ -0,0 +1,2 @@ +/usr/lib/mono/gac/Mono.Messaging/2.0.0.0__*/ +/usr/lib/mono/2.0/Mono.Messaging.dll --- mono-2.4.4~svn151842.orig/debian/mono-smcs.manpages +++ mono-2.4.4~svn151842/debian/mono-smcs.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/smcs.1 --- mono-2.4.4~svn151842.orig/debian/update-shlibs.local.sh +++ mono-2.4.4~svn151842/debian/update-shlibs.local.sh @@ -0,0 +1,48 @@ +#!/bin/sh -e + +VERSION=$(dpkg-parsechangelog | grep ^Vers | cut -d\ -f2) +UPVERSION=$(echo $VERSION | sed 's,-.*,,' | sed 's,+dfsg,,') +MAJOR_MINOR_UPVERSION=$(perl -e '$_=pop; print m/^(\d+\.\d+)/g;' $UPVERSION) + +dpkg-checkbuilddeps -d "\ + libcairo2-dev, \ + firebird2.0-dev, \ + libsqlite0-dev, \ + libsqlite3-dev, \ + libasound2-dev, \ + libgamin-dev, \ + libcups2-dev, \ + librsvg2-dev, \ + libgtk2.0-dev, \ + libgnomeui-dev +" + +echo -n "Updating shlibs.local for Mono $UPVERSION..." + +cp debian/shlibs.local debian/shlibs.local.backup +rm -f debian/shlibs.local.new + +# libs that don't ship shlibs +echo "libMonoPosixHelper 0 mono-runtime (>= $MAJOR_MINOR_UPVERSION)" >> debian/shlibs.local.new +echo "libMonoSupportW 0 mono-runtime (>= $MAJOR_MINOR_UPVERSION)" >> debian/shlibs.local.new +echo "libgdiplus 0 libgdiplus (>= $MAJOR_MINOR_UPVERSION)" >> debian/shlibs.local.new +echo "libgluezilla 0 libgluezilla (>= $MAJOR_MINOR_UPVERSION)" >> debian/shlibs.local.new + +for SONAME in \ + "^libcairo 2" \ + "^libfbclient 2" \ + "^libsqlite 0" \ + "^libsqlite3 0" \ + "^libasound 2" \ + "^libgamin-1 0" \ + "^libcups 2" \ + "^librsvg-2 2" \ + "^libgtk-x11-2.0 0" \ + "^libgnomeui-2 0" \ + ; do + grep --no-filename "$SONAME" /var/lib/dpkg/info/*.shlibs >> debian/shlibs.local.new || echo "ERROR: could not resolve $SONAME" +done + +cp debian/shlibs.local.new debian/shlibs.local + +echo "done." --- mono-2.4.4~svn151842.orig/debian/mono-gac.install +++ mono-2.4.4~svn151842/debian/mono-gac.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/gacutil +debian/MonoGetAssemblyName.exe /usr/share/mono/ --- mono-2.4.4~svn151842.orig/debian/System.Drawing.dll.config +++ mono-2.4.4~svn151842/debian/System.Drawing.dll.config @@ -0,0 +1,5 @@ + + + + + --- mono-2.4.4~svn151842.orig/debian/dh_monoaot +++ mono-2.4.4~svn151842/debian/dh_monoaot @@ -0,0 +1,87 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_monoaot - generates AOT images for assemblies + +=cut + +use strict; +use File::Find; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-n>] + +=head1 DESCRIPTION + +dh_monoaot is a debhelper program that is responsible for +generating AOT images at package install time. + +It also automatically generates the postinst and prerm commands needed +to generate AOT images. See L for an +explanation of how this works. + +This is based on L in the cli-common package. + +=head1 OPTIONS + +=over 4 + +=item B<-n>, B<--noscripts> + +Do not modify postinst/prerm scripts. + +=back + +=head1 NOTES + +Note that this command is not idempotent. "dh_clean -k" should be called +between invocations of this command. Otherwise, it may cause multiple +instances of the same text to be added to maintainer scripts. + +=cut + +init(); + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp = tmpdir($package); + my @files; + + # find binaries + find (sub { + return unless -f and /\.(exe|dll)$/; + return unless $File::Find::dir =~ m!^$tmp/usr/lib!; + + my $fullfilename = $File::Find::name; + + my $filename = $fullfilename; + $filename =~ s/^$tmp//; + + verbose_print("fullfilename: $fullfilename"); + verbose_print("filename: $filename"); + push(@files, $filename); + }, $tmp); + + if (! $dh{NOSCRIPTS}) { + foreach my $file (@files) { + autoscript($package, "postinst", "postinst-monoaot", + "s!#FILE#!$file!"); + autoscript($package, "prerm", "prerm-monoaot", + "s!#FILE#!$file.so!"); + } + } +} + +=head1 SEE ALSO + +L + +This program is a part of cli-common-dev. + +=head1 AUTHOR + +Mirco 'meebey' Bauer + +=cut --- mono-2.4.4~svn151842.orig/debian/libmono-cecil-private-cil.install +++ mono-2.4.4~svn151842/debian/libmono-cecil-private-cil.install @@ -0,0 +1 @@ +/usr/lib/mono/gac/Mono.Cecil/ --- mono-2.4.4~svn151842.orig/debian/libmono-system-data1.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system-data1.0-cil.clideps-override @@ -0,0 +1,2 @@ +suggests libgda2-3 +suggests libglib2.0-0 --- mono-2.4.4~svn151842.orig/debian/mono-gmcs.manpages +++ mono-2.4.4~svn151842/debian/mono-gmcs.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/gmcs.1 --- mono-2.4.4~svn151842.orig/debian/mono-jay.install +++ mono-2.4.4~svn151842/debian/mono-jay.install @@ -0,0 +1 @@ +debian/tmp/usr/bin/jay --- mono-2.4.4~svn151842.orig/debian/libmono-posix1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-posix1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/1.0/Mono.Posix.dll +debian/tmp/usr/lib/mono/gac/Mono.Posix/1.0.5000.0__*/ --- mono-2.4.4~svn151842.orig/debian/libmono-messaging-rabbitmq2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-messaging-rabbitmq2.0-cil.install @@ -0,0 +1,2 @@ +/usr/lib/mono/gac/Mono.Messaging.RabbitMQ/2.0.0.0__*/ +/usr/lib/mono/2.0/Mono.Messaging.RabbitMQ.dll --- mono-2.4.4~svn151842.orig/debian/libmono-dev.install +++ mono-2.4.4~svn151842/debian/libmono-dev.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/libmono.so +debian/tmp/usr/lib/libmono.a +debian/tmp/usr/lib/pkgconfig/mono.pc +debian/tmp/usr/include/ --- mono-2.4.4~svn151842.orig/debian/preinst.ubuntu +++ mono-2.4.4~svn151842/debian/preinst.ubuntu @@ -0,0 +1,6 @@ +# revert Ubuntu doc dir symlinking to Debian style +if [ "$1" = "upgrade" ] + then if dpkg --compare-versions $2 lt 2.4 && [ -L /usr/share/doc/#PACKAGENAME# ] + then rm -fr /usr/share/doc/#PACKAGENAME# + fi +fi --- mono-2.4.4~svn151842.orig/debian/copyright +++ mono-2.4.4~svn151842/debian/copyright @@ -0,0 +1,914 @@ +This package was re-debianized and merged with the "mcs" source package by +Mirco Bauer . + +This package was debianized by Alp Toker using the Monodeb +build system. + +It was downloaded from: +http://www.mono-project.com/Downloads + +Upstream Authors: +Miguel de Icaza (miguel@ximian.com) +Paolo Molaro (lupus@ximian.com) +Dietmar Maurer (dietmar@ximian.com) + +mcs/mcs/* (C# Compiler) +Miguel de Icaza (miguel@ximian.com) + +mcs/class/* (Class Libraries) +Patrik Torstensson +Gaurav Vaish +Jeff Stedfast (fejj@ximian.com) +Joe Shaw (joe@ximian.com) +Miguel de Icaza (miguel@ximian.com) +Sean MacIsaac (macisaac@ximian.com) +Vladimir Vukicevic (vladimir@ximian.com) +Garrett Rooney (rooneg@electricjellyfish.net) +Bob Smith (bob@thestuff.net) +John Barnette (jbarn@httcb.net) + +Copyright: + +------------------------------------------------------------------------------- + +mcs/mcs/* + +The C# Compiler is released under the terms of the GNU GPL. + +On Debian systems, the complete text of the GNU General Public +License can be found in /usr/share/common-licenses/GPL-2 file. + +------------------------------------------------------------------------------- + +mcs/tools/monodoc/Lucene.Net/* + +Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +On Debian systems, the complete text of Apache License, Version 2.0 +can be found in /usr/share/common-licenses/Apache-2.0 file. + +------------------------------------------------------------------------------- + +mcs/tools/lc/* + + (C) 2009 RemObjects Software + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +mcs/tools/lc/Options.cs + + Copyright (C) 2008 Novell (http://www.novell.com) + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +mcs/class/* + +The class libraries are released under the terms of the MIT X11 + +MIT/X11 License + +Copyright (c) 2001-2005 Novell + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +The Mono runtime and the Mono C# Compiler are also available under a +proprietary license for those who can not use the LGPL and the GPL in +their code. + +------------------------------------------------------------------------------- + +mcs/class/MicrosoftAjaxLibrary/* +mcs/class/System.Web.Mvc/* + +Copyright (c) Microsoft Corporation. All rights reserved. + +Microsoft Permissive License (Ms-PL) + +This license governs use of the accompanying software. If you use the software, +you accept this license. If you do not accept the license, do not use the +software. + +1. Definitions + +The terms "reproduce," "reproduction," "derivative works," and "distribution" +have the same meaning here as under U.S. copyright law. + +A "contribution" is the original software, or any additions or changes to the +software. + +A "contributor" is any person that distributes its contribution under this +license. + + "Licensed patents" are a contributor's patent claims that read directly on its + contribution. + +2. Grant of Rights + +(A) Copyright Grant- Subject to the terms of this license, including the license +conditions and limitations in section 3, each contributor grants you a +non-exclusive, worldwide, royalty-free copyright license to reproduce its +contribution, prepare derivative works of its contribution, and distribute its + contribution or any derivative works that you create. + +(B) Patent Grant- Subject to the terms of this license, including the license +conditions and limitations in section 3, each contributor grants you a +non-exclusive, worldwide, royalty-free license under its licensed patents to +make, have made, use, sell, offer for sale, import, and/or otherwise dispose of +its contribution in the software or derivative works of the contribution in the +software. + +3. Conditions and Limitations + +(A) No Trademark License- This license does not grant you rights to use any +contributors' name, logo, or trademarks. + +(B) If you bring a patent claim against any contributor over patents that you +claim are infringed by the software, your patent license from such contributor +to the software ends automatically. + +(C) If you distribute any portion of the software, you must retain all +copyright, patent, trademark, and attribution notices that are present in the +software. + +(D) If you distribute any portion of the software in source code form, you may +do so only under this license by including a complete copy of this license with +your distribution. If you distribute any portion of the software in compiled or +object code form, you may only do so under a license that complies with this +license. + +(E) The software is licensed "as-is." You bear the risk of using it. The +contributors give no express warranties, guarantees or conditions. You may have +additional consumer rights under your local laws which this license cannot +change. To the extent permitted under your local laws, the contributors exclude +the implied warranties of merchantability, fitness for a particular purpose and +non-infringement. + +(F) If you distribute the software or derivative works with programs you +develop, you agree to indemnify, defend, and hold harmless all contributors from +any claims, including attorneys' fees, related to the distribution or use of +your programs. For clarity, you have no such obligations to a contributor for +any claims based solely on the unmodified contributions of that contributor. + +(G) If you make any additions or changes to the original software, you may only +distribute them under a new namespace. In addition, you will clearly identify +your changes or additions as your own. + +------------------------------------------------------------------------------- + +mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JSON/* + +Copyright (c) 2007 James Newton-King + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +mcs/nunit20/* + +Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, + Charlie Poole +Copyright (C) 2000-2004 Philip A. Craig + +This software is provided 'as-is', without any express or implied warranty. In +no event will the authors be held liable for any damages arising from the use +of this software. + +Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim + that you wrote the original software. If you use this software in a product, + an acknowledgment (see the following) in the product documentation is + required. + +Portions Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, +Alexei A. Vorontsov, Charlie Poole or Copyright (C) 2000-2004 Philip A. Craig + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. + +------------------------------------------------------------------------------- + +mcs/class/RabbitMQ.Client/docs/specs/*.xml + +Copyright (c) 2009 AMQP Working Group. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products +derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +mcs/class/RabbitMQ.Client/* + +Copyright (C) 2007, 2008 LShift Ltd. +Copyright (C) 2007, 2008 Cohesive Financial Technologies LLC. +Copyright (C) 2007, 2008 Rabbit Technologies Ltd. + +This source code is dual-licensed under the Apache License, version +2.0, and the Mozilla Public License, version 1.1. + +The APL v2.0: + + Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial + Technologies LLC., and Rabbit Technologies Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. + +On Debian systems, the complete text of the Apache License Version 2.0, +can be found in the /usr/share/common-licenses/Apache-2.0 file. + +The MPL v1.1: + + The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.rabbitmq.com/mpl.html + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is The RabbitMQ .NET Client. + + The Initial Developers of the Original Code are LShift Ltd., + Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd. + + Portions created by LShift Ltd., Cohesive Financial Technologies + LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008 + LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit + Technologies Ltd.; + + All Rights Reserved. + + Contributor(s): ______________________________________. + + + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A - Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is RabbitMQ. + + The Initial Developers of the Original Code are LShift Ltd., + Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd. + + Portions created by LShift Ltd., Cohesive Financial + Technologies LLC., and Rabbit Technologies Ltd. are Copyright (C) + 2007 LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit + Technologies Ltd.; + + All Rights Reserved. + + Contributor(s): ______________________________________.'' + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + +------------------------------------------------------------------------------- + +docs/HtmlAgilityPack/* + +Microsoft Permissive License (Ms-PL) + +This license governs use of the accompanying software. If you use the software, +you accept this license. If you do not accept the license, do not use the +software. + +1. Definitions + +The terms "reproduce," "reproduction," "derivative works," and "distribution" +have the same meaning here as under U.S. copyright law. + +A "contribution" is the original software, or any additions or changes to the +software. + +A "contributor" is any person that distributes its contribution under this +license. + + "Licensed patents" are a contributor's patent claims that read directly on its + contribution. + +2. Grant of Rights + +(A) Copyright Grant- Subject to the terms of this license, including the license +conditions and limitations in section 3, each contributor grants you a +non-exclusive, worldwide, royalty-free copyright license to reproduce its +contribution, prepare derivative works of its contribution, and distribute its + contribution or any derivative works that you create. + +(B) Patent Grant- Subject to the terms of this license, including the license +conditions and limitations in section 3, each contributor grants you a +non-exclusive, worldwide, royalty-free license under its licensed patents to +make, have made, use, sell, offer for sale, import, and/or otherwise dispose of +its contribution in the software or derivative works of the contribution in the +software. + +3. Conditions and Limitations + +(A) No Trademark License- This license does not grant you rights to use any +contributors' name, logo, or trademarks. + +(B) If you bring a patent claim against any contributor over patents that you +claim are infringed by the software, your patent license from such contributor +to the software ends automatically. + +(C) If you distribute any portion of the software, you must retain all +copyright, patent, trademark, and attribution notices that are present in the +software. + +(D) If you distribute any portion of the software in source code form, you may +do so only under this license by including a complete copy of this license with +your distribution. If you distribute any portion of the software in compiled or +object code form, you may only do so under a license that complies with this +license. + +(E) The software is licensed "as-is." You bear the risk of using it. The +contributors give no express warranties, guarantees or conditions. You may have +additional consumer rights under your local laws which this license cannot +change. To the extent permitted under your local laws, the contributors exclude +the implied warranties of merchantability, fitness for a particular purpose and +non-infringement. + +(F) If you distribute the software or derivative works with programs you +develop, you agree to indemnify, defend, and hold harmless all contributors from +any claims, including attorneys' fees, related to the distribution or use of +your programs. For clarity, you have no such obligations to a contributor for +any claims based solely on the unmodified contributions of that contributor. + +(G) If you make any additions or changes to the original software, you may only +distribute them under a new namespace. In addition, you will clearly identify +your changes or additions as your own. + +------------------------------------------------------------------------------- + +debian/detector/* + +The source package contains an additional tool called binfmt-detector-cli. + +Author: +Ilya Konstantinov + +License: +Distributed on the terms of the GNU General Public License which can +be found in the file /usr/share/common-licenses/GPL-2 on Debian systems. --- mono-2.4.4~svn151842.orig/debian/mono-1.0-service.install +++ mono-2.4.4~svn151842/debian/mono-1.0-service.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/mono-service +debian/tmp/usr/lib/mono/1.0/mono-service.exe* --- mono-2.4.4~svn151842.orig/debian/mono-utils.prerm +++ mono-2.4.4~svn151842/debian/mono-utils.prerm @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if [ "$1" = remove ]; then + update-alternatives --remove cil-disassembler /usr/bin/monodis +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-bytefx0.7.6.2-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-bytefx0.7.6.2-cil.clideps-override @@ -0,0 +1 @@ +suggests libmono-winforms2.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-data-tds1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-data-tds1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.Data.Tds/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Mono.Data.Tds.dll --- mono-2.4.4~svn151842.orig/debian/watch +++ mono-2.4.4~svn151842/debian/watch @@ -0,0 +1,3 @@ +version=2 +opts=dversionmangle=s/\+dfsg// \ + http://ftp.novell.com/pub/mono/sources/mono/mono-(2\.4\.[\d\.]+)\.tar\.bz2 --- mono-2.4.4~svn151842.orig/debian/mono-gac.manpages +++ mono-2.4.4~svn151842/debian/mono-gac.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/gacutil.1 --- mono-2.4.4~svn151842.orig/debian/mono-smcs.install +++ mono-2.4.4~svn151842/debian/mono-smcs.install @@ -0,0 +1,3 @@ +debian/tmp/usr/bin/smcs +debian/tmp/usr/lib/mono/2.1/smcs.exe* +debian/tmp/usr/lib/pkgconfig/smcs.pc --- mono-2.4.4~svn151842.orig/debian/libmono-data2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-data2.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/2.0/Mono.Data.SybaseClient.dll +debian/tmp/usr/lib/mono/2.0/Mono.Data.TdsClient.dll +debian/tmp/usr/lib/mono/2.0/Mono.Data.dll +debian/tmp/usr/lib/mono/gac/Mono.Data.SybaseClient/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Data.TdsClient/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Data/2.0.0.0__*/ --- mono-2.4.4~svn151842.orig/debian/libmono1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono1.0-cil.install @@ -0,0 +1,7 @@ +debian/tmp/usr/lib/mono/1.0/Mono.CompilerServices.SymbolWriter.dll +debian/tmp/usr/lib/mono/1.0/Mono.Http.dll +debian/tmp/usr/lib/mono/1.0/OpenSystem.C.dll +debian/tmp/usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Http/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/OpenSystem.C/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/mono-service/1.0.5000.0__*/ --- mono-2.4.4~svn151842.orig/debian/MonoGetAssemblyName.cs +++ mono-2.4.4~svn151842/debian/MonoGetAssemblyName.cs @@ -0,0 +1,14 @@ +using System; +using System.Reflection; + +public class GetAssemblyName +{ + public static void Main(string [] args) + { + if (args.Length == 0) + throw new Exception("You must supply an assembly name"); + + Assembly assembly = Assembly.LoadFile(args[0]); + Console.WriteLine("{0}", assembly.FullName); + } +} --- mono-2.4.4~svn151842.orig/debian/libmono-cscompmgd8.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-cscompmgd8.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/cscompmgd/8.0.*/ +debian/tmp/usr/lib/mono/2.0/cscompmgd.dll --- mono-2.4.4~svn151842.orig/debian/libmono-winforms2.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-winforms2.0-cil.clideps-override @@ -0,0 +1,4 @@ +suggests libgtk2.0-0 +suggests libgnomeui-0 +suggests librsvg2-2 +suggests libglib2.0-0 --- mono-2.4.4~svn151842.orig/debian/mono-xbuild.manpages +++ mono-2.4.4~svn151842/debian/mono-xbuild.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/xbuild.1 --- mono-2.4.4~svn151842.orig/debian/prj2make-sharp.install +++ mono-2.4.4~svn151842/debian/prj2make-sharp.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/prj2make +debian/tmp/usr/lib/mono/1.0/prj2make.exe* --- mono-2.4.4~svn151842.orig/debian/update-monodoc +++ mono-2.4.4~svn151842/debian/update-monodoc @@ -0,0 +1,12 @@ +#!/bin/sh +set -e +if [ ! -x /usr/lib/monodoc/browser.exe ]; then + # nothing to do + exit 0 +fi + +echo "generating monodoc search index..." +monodoc --make-index > /dev/null + +echo "generating monodoc search index... (this can take a while)" +monodoc --make-search-index > /dev/null --- mono-2.4.4~svn151842.orig/debian/mono-2.0-service.manpages +++ mono-2.4.4~svn151842/debian/mono-2.0-service.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/mono-service2.1 --- mono-2.4.4~svn151842.orig/debian/mono-mcs.install +++ mono-2.4.4~svn151842/debian/mono-mcs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/mcs +debian/tmp/usr/lib/mono/1.0/mcs.exe* --- mono-2.4.4~svn151842.orig/debian/libmono-system-web-mvc1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-web-mvc1.0-cil.install @@ -0,0 +1,2 @@ +/usr/lib/mono/gac/System.Web.Mvc/1.0.0.0__*/ +/usr/lib/mono/2.0/System.Web.Mvc.dll --- mono-2.4.4~svn151842.orig/debian/FirebirdSql.Data.Firebird.dll.config +++ mono-2.4.4~svn151842/debian/FirebirdSql.Data.Firebird.dll.config @@ -0,0 +1,3 @@ + + + --- mono-2.4.4~svn151842.orig/debian/mono-gac.prerm +++ mono-2.4.4~svn151842/debian/mono-gac.prerm @@ -0,0 +1,12 @@ +#!/bin/sh -e + +if [ "$1" = remove ]; then + update-alternatives --remove global-assembly-cache-tool /usr/bin/gacutil + + # Remove the GAC + if [ -x /usr/share/cli-common/gac-remove ]; then + /usr/share/cli-common/gac-remove mono + fi +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-system-messaging2.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system-messaging2.0-cil.clideps-override @@ -0,0 +1 @@ +suggests libmono-winforms2.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-microsoft-build2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-microsoft-build2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Microsoft.Build.*/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Microsoft.Build.*.dll --- mono-2.4.4~svn151842.orig/debian/prerm-monoaot +++ mono-2.4.4~svn151842/debian/prerm-monoaot @@ -0,0 +1 @@ +rm -f #FILE# --- mono-2.4.4~svn151842.orig/debian/libmono-system-messaging1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-messaging1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.Messaging/1.0.*/ +debian/tmp/usr/lib/mono/1.0/System.Messaging.dll --- mono-2.4.4~svn151842.orig/debian/mono-runtime.docs +++ mono-2.4.4~svn151842/debian/mono-runtime.docs @@ -0,0 +1,4 @@ +README +AUTHORS +NEWS +debian/changelog.1 --- mono-2.4.4~svn151842.orig/debian/mono-2.0-gac.install +++ mono-2.4.4~svn151842/debian/mono-2.0-gac.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/gacutil2 +debian/tmp/usr/lib/mono/2.0/gacutil.exe --- mono-2.4.4~svn151842.orig/debian/mono-devel.postinst +++ mono-2.4.4~svn151842/debian/mono-devel.postinst @@ -0,0 +1,20 @@ +#!/bin/sh +set -e + +update-alternatives \ + --install /usr/bin/cli-csc c-sharp-compiler /usr/bin/mono-csc 10 \ + --slave /usr/share/man/man1/cli-csc.1.gz cli-csc.1.gz /usr/share/man/man1/csc.1.gz + +update-alternatives \ + --install /usr/bin/cli-resgen resource-file-generator /usr/bin/resgen 10 \ + --slave /usr/share/man/man1/cli-resgen.1.gz cli-resgen.1.gz /usr/share/man/man1/resgen.1.gz + +update-alternatives \ + --install /usr/bin/cli-al assembly-linker /usr/bin/al 10 \ + --slave /usr/share/man/man1/cli-al.1.gz cli-al.1.gz /usr/share/man/man1/al.1.gz + +update-alternatives \ + --install /usr/bin/cli-sn strong-name-tool /usr/bin/sn 10 \ + --slave /usr/share/man/man1/cli-sn.1.gz cli-sn.1.gz /usr/share/man/man1/sn.1.gz + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/autogen.sh +++ mono-2.4.4~svn151842/debian/autogen.sh @@ -0,0 +1,142 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. +# Ripped off from GNOME macros version + +DIE=0 + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +if [ -n "$MONO_PATH" ]; then + # from -> /mono/lib:/another/mono/lib + # to -> /mono /another/mono + for i in `echo ${MONO_PATH} | tr ":" " "`; do + i=`dirname ${i}` + if [ -n "{i}" -a -d "${i}/share/aclocal" ]; then + ACLOCAL_FLAGS="-I ${i}/share/aclocal $ACLOCAL_FLAGS" + fi + if [ -n "{i}" -a -d "${i}/bin" ]; then + PATH="${i}/bin:$PATH" + fi + done + export PATH +fi + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`autoconf' installed to compile Mono." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +if [ -z "$LIBTOOL" ]; then + LIBTOOL=`which glibtool 2>/dev/null` + if [ ! -x "$LIBTOOL" ]; then + LIBTOOL=`which libtool` + fi +fi + +(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { + ($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`libtool' installed to compile Mono." + echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { + grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ + (gettext --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`gettext' installed to compile Mono." + echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`automake' installed to compile Mono." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + NO_AUTOMAKE=yes +} + + +# if no automake, don't bother testing for aclocal +test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: Missing \`aclocal'. The version of \`automake'" + echo "installed doesn't appear recent enough." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "**Warning**: I am going to run \`configure' with no arguments." + echo "If you wish to pass any to it, please specify them on the" + echo \`$0\'" command line." + echo +fi + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + + +if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then + if test -z "$NO_LIBTOOLIZE" ; then + echo "Running libtoolize..." + ${LIBTOOL}ize --force --copy + fi +fi + +echo "Running aclocal $ACLOCAL_FLAGS ..." +aclocal $ACLOCAL_FLAGS || { + echo + echo "**Error**: aclocal failed. This may mean that you have not" + echo "installed all of the packages you need, or you may need to" + echo "set ACLOCAL_FLAGS to include \"-I \$prefix/share/aclocal\"" + echo "for the prefix where you installed the packages whose" + echo "macros were not found" + exit 1 +} + +if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then + echo "Running autoheader..." + autoheader || { echo "**Error**: autoheader failed."; exit 1; } +fi + +echo "Running automake --gnu $am_opt ..." +automake --add-missing --gnu $am_opt || + { echo "**Error**: automake failed."; exit 1; } +echo "Running autoconf ..." +autoconf || { echo "**Error**: autoconf failed."; exit 1; } + +if test -d $srcdir/libgc; then + echo Running libgc/autogen.sh ... + (cd $srcdir/libgc ; NOCONFIGURE=1 ./autogen.sh "$@") + echo Done running libgc/autogen.sh ... +fi + + +conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c + +if test x$NOCONFIGURE = x; then + echo Running $srcdir/configure $conf_flags "$@" ... + $srcdir/configure $conf_flags "$@" \ + && echo Now type \`make\' to compile $PKG_NAME || exit 1 +else + echo Skipping configure process. +fi --- mono-2.4.4~svn151842.orig/debian/mono-mjs.install +++ mono-2.4.4~svn151842/debian/mono-mjs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/mjs +debian/tmp/usr/lib/mono/1.0/mjs.exe* --- mono-2.4.4~svn151842.orig/debian/libmono-getoptions2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-getoptions2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/2.0/Mono.GetOptions.dll +debian/tmp/usr/lib/mono/gac/Mono.GetOptions/2.0.0.0__*/ --- mono-2.4.4~svn151842.orig/debian/README.source +++ mono-2.4.4~svn151842/debian/README.source @@ -0,0 +1,27 @@ +The upstream tarball for this application has been altered to remove +(unneeded) binary-only components. The list of files removed is as follows: + + docs/AgilityPack.dll + +Also the specification and auto-generated code of the RabbitMQ library found +in: mcs/class/RabbitMQ.Client/docs/specs/* had to be removed as those are +licensed under non-DFSG-free terms. Because of the removed files the RabbitMQ +library can no longer be build and had to be disabled in the build process. +The resulting binary packages are not containing RabbitMQ.Client.dll nor +Mono.Messaging.RabbitMQ.dll for that reason. + +To create your own copy of this modified tarball, use the "get-orig-source" +target of the debian/rules makefile. + +The compiler needs to bootstrap using the pre-build binary +mcs/class/lib/monolite/mcs.exe, which requires +mcs/class/lib/monolite/mscorlib.dll, +mcs/class/lib/monolite/System.dll and +mcs/class/lib/monolite/System.Xml.dll in order to operate. + +These binaries are used to compile the code in mcs/mcs/*, mcs/class/corlib/*, +mcs/class/System/* and mcs/class/System.XML/*, which in turn, produce their +own mcs.exe, mscorlib.dll, System.dll and System.Xml.dll. + +Only the resulting binaries are included in packages - not the versions +used for bootstrapping. --- mono-2.4.4~svn151842.orig/debian/libmono-rabbitmq2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-rabbitmq2.0-cil.install @@ -0,0 +1,2 @@ +/usr/lib/mono/gac/RabbitMQ.Client/2.0.0.0__*/ +/usr/lib/mono/2.0/RabbitMQ.Client.dll --- mono-2.4.4~svn151842.orig/debian/mono-mcs.dirs +++ mono-2.4.4~svn151842/debian/mono-mcs.dirs @@ -0,0 +1,2 @@ +usr/bin +usr/lib/mono/1.0 --- mono-2.4.4~svn151842.orig/debian/monodoc-base.manpages +++ mono-2.4.4~svn151842/debian/monodoc-base.manpages @@ -0,0 +1,11 @@ +debian/tmp/usr/share/man/man1/mdassembler.1 +debian/tmp/usr/share/man/man1/mdoc.1 +debian/tmp/usr/share/man/man1/mdoc-assemble.1 +debian/tmp/usr/share/man/man1/mdoc-export-html.1 +debian/tmp/usr/share/man/man1/mdoc-export-msxdoc.1 +debian/tmp/usr/share/man/man1/mdoc-update.1 +debian/tmp/usr/share/man/man1/mdoc-validate.1 +debian/tmp/usr/share/man/man1/mdvalidater.1 +debian/tmp/usr/share/man/man1/monodocer.1 +debian/tmp/usr/share/man/man1/monodocs2html.1 +debian/tmp/usr/share/man/man5/mdoc.5 --- mono-2.4.4~svn151842.orig/debian/mono-runtime.postrm +++ mono-2.4.4~svn151842/debian/mono-runtime.postrm @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if [ "$1" = "remove" ]; then + ldconfig +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-system2.1-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system2.1-cil.install @@ -0,0 +1,18 @@ +debian/tmp/usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.Core/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.Net/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.Runtime.Serialization/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.ServiceModel/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.ServiceModel.Web/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.Xml/2.0.5.0__*/ +debian/tmp/usr/lib/mono/gac/System.Xml.Linq/2.0.5.0__*/ +debian/tmp/usr/lib/mono/2.1/Mono.CompilerServices.SymbolWriter.dll +debian/tmp/usr/lib/mono/2.1/System.dll +debian/tmp/usr/lib/mono/2.1/System.Core.dll +debian/tmp/usr/lib/mono/2.1/System.Net.dll +debian/tmp/usr/lib/mono/2.1/System.Runtime.Serialization.dll +debian/tmp/usr/lib/mono/2.1/System.ServiceModel.dll +debian/tmp/usr/lib/mono/2.1/System.ServiceModel.Web.dll +debian/tmp/usr/lib/mono/2.1/System.Xml.dll +debian/tmp/usr/lib/mono/2.1/System.Xml.Linq.dll --- mono-2.4.4~svn151842.orig/debian/cli.binfmt +++ mono-2.4.4~svn151842/debian/cli.binfmt @@ -0,0 +1,4 @@ +package mono-runtime +detector /usr/lib/cli/binfmt-detector-cli +interpreter /usr/bin/cli +magic MZ --- mono-2.4.4~svn151842.orig/debian/mono-aot-bootstrap +++ mono-2.4.4~svn151842/debian/mono-aot-bootstrap @@ -0,0 +1,5 @@ +#!/bin/sh + +MCS_DIR=mcs/class/lib + +find $MCS_DIR -name "*.exe" -or -name "*.dll" -exec runtime/mono-wrapper --aot {} \; --- mono-2.4.4~svn151842.orig/debian/mono-runtime.postinst +++ mono-2.4.4~svn151842/debian/mono-runtime.postinst @@ -0,0 +1,20 @@ +#!/bin/sh -e + +update-alternatives \ + --install /usr/bin/cli cli /usr/bin/mono 10 \ + --slave /usr/share/man/man1/cli.1.gz cli.1.gz /usr/share/man/man1/mono.1.gz + +if [ configure = "$1" ] && [ -x /usr/sbin/update-binfmts ]; then + update-binfmts --import cli +fi + +if [ configure = "$1" ] && [ -d /usr/share/dotnet/mono/ ] && [ -L /usr/share/dotnet/mono ]; then + # it's a symlink + rm /usr/share/dotnet/mono +fi + +if [ "$1" = "configure" ]; then + ldconfig +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/monodoc-base.dirs +++ mono-2.4.4~svn151842/debian/monodoc-base.dirs @@ -0,0 +1 @@ +usr/bin/ --- mono-2.4.4~svn151842.orig/debian/mono-csharp-shell.install +++ mono-2.4.4~svn151842/debian/mono-csharp-shell.install @@ -0,0 +1,4 @@ +/usr/bin/csharp +/usr/lib/mono/2.0/csharp.exe* +/usr/lib/mono/2.0/Mono.CSharp.dll +/usr/lib/mono/gac/Mono.CSharp/ --- mono-2.4.4~svn151842.orig/debian/libmono-system-messaging2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-messaging2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.Messaging/2.0.*/ +debian/tmp/usr/lib/mono/2.0/System.Messaging.dll --- mono-2.4.4~svn151842.orig/debian/libmono-sharpzip2.6-cil.install +++ mono-2.4.4~svn151842/debian/libmono-sharpzip2.6-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.6.*/ +debian/tmp/usr/lib/mono/compat-2.0/ICSharpCode.SharpZipLib.dll --- mono-2.4.4~svn151842.orig/debian/libmono-sqlite2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-sqlite2.0-cil.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/ +debian/tmp/usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Mono.Data.Sqlite.dll +debian/tmp/usr/lib/mono/2.0/Mono.Data.SqliteClient.dll --- mono-2.4.4~svn151842.orig/debian/libmono-system-runtime2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-runtime2.0-cil.install @@ -0,0 +1,4 @@ +/usr/lib/mono/gac/System.Runtime.Remoting/2.0.0.0__*/ +/usr/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/2.0.0.0__*/ +/usr/lib/mono/2.0/System.Runtime.Remoting.dll +/usr/lib/mono/2.0/System.Runtime.Serialization.Formatters.Soap.dll --- mono-2.4.4~svn151842.orig/debian/postinst-monoaot +++ mono-2.4.4~svn151842/debian/postinst-monoaot @@ -0,0 +1,4 @@ +if [ "$1" = "configure" ] +then + /usr/bin/mono --aot -O=all,shared #FILE# > /dev/null 2>&1 +fi --- mono-2.4.4~svn151842.orig/debian/monodoc-base.install +++ mono-2.4.4~svn151842/debian/monodoc-base.install @@ -0,0 +1,18 @@ +/usr/bin/mdassembler +/usr/bin/mdoc +/usr/bin/mdoc-assemble +/usr/bin/mdoc-export-html +/usr/bin/mdoc-export-msxdoc +/usr/bin/mdoc-update +/usr/bin/mdoc-validate +/usr/bin/mdvalidater +/usr/bin/mod +/usr/bin/monodocer +/usr/bin/monodocs2html +/usr/bin/monodocs2slashdoc +/usr/lib/mono/1.0/mod.exe +/usr/lib/mono/2.0/mdoc.exe +/usr/lib/mono/gac/monodoc/ +/usr/lib/mono/monodoc/monodoc.dll +/usr/lib/pkgconfig/monodoc.pc +debian/update-monodoc /usr/bin/ --- mono-2.4.4~svn151842.orig/debian/control +++ mono-2.4.4~svn151842/debian/control @@ -0,0 +1,1664 @@ +Source: mono +Section: cli-mono +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian Mono Group +Uploaders: Mirco Bauer , Sebastian Dröge , Jo Shields +Build-Depends: debhelper (>= 7), + dpkg-dev (>= 1.13.19), + libglib2.0-dev (>= 2.4), + bison, + libtool, + dpatch, + libxml-dom-perl, + libxslt1-dev, + dc, + lsb-release, + libx11-dev, + libxt-dev, + zlib1g-dev, + autoconf, + automake +Standards-Version: 3.8.4 +Homepage: http://www.mono-project.com/ +Vcs-Git: git://git.debian.org/git/pkg-mono/packages/mono.git +Vcs-Browser: http://git.debian.org/?p=pkg-mono/packages/mono.git + +Package: mono-runtime +Provides: cli-runtime, cli-virtual-machine +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Replaces: mono-common (<< 2.4), mono-jit (<< 2.4), libmono0 (<< 2.4) +Conflicts: mono-common (<< 2.4), + mono-jit (<< 2.4), + mono-1.0-runtime (<< 2.4), + mono-2.0-runtime (<< 2.4) +Suggests: xdg-utils | libgnome2-0 | konqueror +Recommends: binfmt-support (>= 1.1.2) +Depends: ${shlibs:Depends}, + ${misc:Depends}, + mono-gac (= ${source:Version}) +Description: Mono runtime + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Virtual Machine, JIT (Just-in-Time) and + AOT (Ahead-of-Time) code generator "mono". + "mono" executes applications for the CLI (Common Language Infrastructure). + Mono currently only supports the X86, PowerPC, ARM, SPARC, S/390, AMD64 and + IA64 architectures. Optionally this package configures BINFMT support. + +Package: mono-runtime-dbg +Priority: extra +Section: debug +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Replaces: mono-jit-dbg (<< 2.4) +Conflicts: mono-jit-dbg (<< 2.4) +Depends: ${misc:Depends}, mono-runtime (= ${binary:Version}) +Recommends: gdb +Description: Mono runtime, debugging symbols + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the debugging symbols of the Mono JIT/AOT compiler. + +Package: mono-utils +Provides: cil-disassembler +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Replaces: mono-mcs (<= 1.1.6-4) +Depends: ${shlibs:Depends}, ${misc:Depends}, libmono0 (= ${binary:Version}), libmono-corlib2.0-cil (= ${source:Version}) | libmono-corlib1.0-cil (= ${source:Version}) +Description: Mono utilities + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package includes various tools useful for CLI developers, like + pedump, monodis and monograph. + +Package: mono-complete +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Depends: ${misc:Depends}, + mono-runtime (= ${binary:Version}), + libmono0 (= ${binary:Version}), + libmono-profiler (= ${binary:Version}), + mono-utils (= ${binary:Version}), + mono-jay (= ${binary:Version}), + mono-devel (= ${source:Version}), + mono-gmcs (= ${source:Version}), + mono-xbuild (= ${source:Version}), + mono-csharp-shell (= ${source:Version}), + mono-1.0-gac (= ${source:Version}), + mono-2.0-gac (= ${source:Version}), + mono-1.0-service (= ${source:Version}), + mono-2.0-service (= ${source:Version}), + mono-1.0-devel (= ${source:Version}), + mono-2.0-devel (= ${source:Version}), + monodoc-base (= ${source:Version}), + monodoc-manual (= ${source:Version}), + prj2make-sharp (= ${source:Version}), + libmono-cil-dev (= ${source:Version}) +Description: complete Mono runtime, development tools and all libraries + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This is a metapackage and pulls in the Mono runtime, development tools and + all libraries. + . + Install this package if you want to run software for Mono or Microsoft .NET + which you are not installing from a Debian package. + . + For packagers: This package is not to be used as dependency for packages! + You should build-depend on cli-common-dev and the needed libraries instead. + +Package: libmono0 +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Replaces: libmono-dev (<= 1.1.6-4) +Conflicts: mono-utils (<< 1.2.3.1-4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Mono JIT library + Shared library for Mono, used for embedding/hosting of the JIT. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: libmono0-dbg +Priority: extra +Section: debug +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Depends: ${misc:Depends}, libmono0 (= ${binary:Version}) +Recommends: gdb +Description: Mono JIT library, debugging symbols + This package contains the debugging symbols of the Mono JIT library. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: libmono-dev +Section: libdevel +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Depends: ${misc:Depends}, libmono0 (= ${binary:Version}), libglib2.0-dev +Description: Mono JIT library - Development files + Header files and static libraries for libmono. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: libmono-profiler +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Replaces: mono-runtime (<< 2.4.2.3) +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Mono profiler libraries + Profiler libraries for Mono, used for profiling applications running on Mono. + For details how to use them, please take a look at the mono manpage. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: libmono-cil-dev +Architecture: all +Replaces: libmono-nunit2.4-cil (<< 2.4.3), + libmono-cairo2.0-cil (<< 2.4.3), + libmono-cecil-private-cil (<< 2.4.3), + libmono-system-web2.0-cil (<< 2.4.3), + libmono-wcf3.0-cil (<< 2.4.3), + libmono2.0-cil (<< 2.4.3), + mono-devel (<< 2.4.3) +Conflicts: libmono-nunit2.4-cil +Recommends: libmono-firebirdsql1.7-cil (= ${source:Version}) +Depends: ${misc:Depends}, + libmono1.0-cil (= ${source:Version}), + libmono2.0-cil (= ${source:Version}), + libmono-corlib1.0-cil (= ${source:Version}), + libmono-corlib2.0-cil (= ${source:Version}), + libmono-posix1.0-cil (= ${source:Version}), + libmono-posix2.0-cil (= ${source:Version}), + libmono-getoptions1.0-cil (= ${source:Version}), + libmono-getoptions2.0-cil (= ${source:Version}), + libmono-data1.0-cil (= ${source:Version}), + libmono-data2.0-cil (= ${source:Version}), + libmono-c5-1.0-cil (= ${source:Version}), + libmono-cecil-private-cil (= ${source:Version}), + libmono-webbrowser0.5-cil (= ${source:Version}), + libmono-management2.0-cil (= ${source:Version}), + libmono-messaging2.0-cil (= ${source:Version}), + libmono-messaging-rabbitmq2.0-cil (= ${source:Version}), + libmono-rabbitmq2.0-cil (= ${source:Version}), + libmono-simd2.0-cil (= ${source:Version}), + libmono-i18n1.0-cil (= ${source:Version}), + libmono-i18n2.0-cil (= ${source:Version}), + libmono-i18n-west1.0-cil (= ${source:Version}), + libmono-i18n-west2.0-cil (= ${source:Version}), + libmono-system1.0-cil (= ${source:Version}), + libmono-system2.0-cil (= ${source:Version}), + libmono-system-messaging1.0-cil (= ${source:Version}), + libmono-system-messaging2.0-cil (= ${source:Version}), + libmono-security1.0-cil (= ${source:Version}), + libmono-security2.0-cil (= ${source:Version}), + libmono-data-tds1.0-cil (= ${source:Version}), + libmono-data-tds2.0-cil (= ${source:Version}), + libmono-system-data1.0-cil (= ${source:Version}), + libmono-system-data2.0-cil (= ${source:Version}), + libmono-system-web1.0-cil (= ${source:Version}), + libmono-system-web2.0-cil (= ${source:Version}), + libmono-system-web-mvc1.0-cil (= ${source:Version}), + libmono-wcf3.0-cil (= ${source:Version}), + libmono-system-runtime1.0-cil (= ${source:Version}), + libmono-system-runtime2.0-cil (= ${source:Version}), + libmono-system-ldap1.0-cil (= ${source:Version}), + libmono-system-ldap2.0-cil (= ${source:Version}), + libmono-winforms1.0-cil (= ${source:Version}), + libmono-winforms2.0-cil (= ${source:Version}), + libmono-cairo1.0-cil (= ${source:Version}), + libmono-cairo2.0-cil (= ${source:Version}), + libmono-sharpzip0.6-cil (= ${source:Version}), + libmono-sharpzip2.6-cil (= ${source:Version}), + libmono-sharpzip0.84-cil (= ${source:Version}), + libmono-sharpzip2.84-cil (= ${source:Version}), + libmono-npgsql1.0-cil (= ${source:Version}), + libmono-npgsql2.0-cil (= ${source:Version}), + libmono-bytefx0.7.6.1-cil (= ${source:Version}), + libmono-bytefx0.7.6.2-cil (= ${source:Version}), + libmono-db2-1.0-cil (= ${source:Version}), + libmono-oracle1.0-cil (= ${source:Version}), + libmono-oracle2.0-cil (= ${source:Version}), + libmono-sqlite1.0-cil (= ${source:Version}), + libmono-sqlite2.0-cil (= ${source:Version}), + libmono-accessibility1.0-cil (= ${source:Version}), + libmono-accessibility2.0-cil (= ${source:Version}), + libmono-cscompmgd7.0-cil (= ${source:Version}), + libmono-cscompmgd8.0-cil (= ${source:Version}), + libmono-ldap2.0-cil (= ${source:Version}), + libmono-ldap1.0-cil (= ${source:Version}), + libmono-microsoft-build2.0-cil (= ${source:Version}), + libmono-microsoft7.0-cil (= ${source:Version}), + libmono-microsoft8.0-cil (= ${source:Version}), + libmono-peapi1.0-cil (= ${source:Version}), + libmono-peapi2.0-cil (= ${source:Version}), + libmono-relaxng1.0-cil (= ${source:Version}), + libmono-relaxng2.0-cil (= ${source:Version}), + libnunit-cil-dev (>= 2.4) +Description: Mono Base Class Libraries (BCL) - Development files + This package contains development headers for the Mono Base Class Libraries. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: libmono1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono libraries (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various Mono libraries for CLI 1.0: + - Mono.CompilerServices.SymbolWriter + - Mono.Http + - OpenSystem.C + +Package: libmono2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono libraries (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various Mono libraries for CLI 2.0: + - Mono.CompilerServices.SymbolWriter + - Mono.Http + - Mono.Web + - OpenSystem.C + +Package: libmono-posix1.0-cil +Architecture: all +Replaces: libmono1.0-cil (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.Posix library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.Posix library for CLI 1.0 that binds many APIs + found in glibc or intl. + +Package: libmono-posix2.0-cil +Architecture: all +Replaces: libmono2.0-cil (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.Posix library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.Posix library for CLI 2.0 that binds many APIs + found in glibc or intl. + +Package: libmono-getoptions1.0-cil +Architecture: all +Replaces: libmono1.0-cil (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.GetOptions library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.GetOptions library for CLI 1.0 that allows to + parse command line options and arguments easily. + +Package: libmono-getoptions2.0-cil +Architecture: all +Replaces: libmono2.0-cil (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.GetOptions library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.GetOptions library for CLI 2.0 that allows to + parse command line options and arguments easily. + +Package: libmono-cecil-private-cil +Architecture: all +Replaces: libmono1.0-cil (<< 2.4) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.Cecil library + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the private Mono.Cecil library that allows to generate + and inspect programs and libraries in the ECMA CIL format. + +Package: libmono-data1.0-cil +Architecture: all +Replaces: libmono1.0-cil (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.Data.* libraries (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various Mono.Data.* libraries for CLI 1.0 that allow to + use different TDS-based databases: + - Mono.Data + - Mono.Data.TdsClient: + Generic TDS provider (TDS 4.2 by default) for older versions of Sybase and + Microsoft SQL Servers. + - Mono.Data.SybaseClient: + Provider for Sybase SQL Servers (TDS 5.0) + . + If you are looking for a current Microsoft SQL Server library then you want + to check the libmono-system-data1.0-cil package which contains + System.Data.SqlClient. + . + For more information about Mono.Data and TDS see: + http://www.mono-project.com/TDS_Providers + +Package: libmono-data2.0-cil +Architecture: all +Replaces: libmono2.0-cil (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono.Data.* libraries (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various Mono.Data.* libraries for CLI 2.0 that allow to + use different TDS-based databases: + - Mono.Data + - Mono.Data.TdsClient: + Generic TDS provider (TDS 4.2 by default) for older versions of Sybase and + Microsoft SQL Servers. + - Mono.Data.SybaseClient: + Provider for Sybase SQL Servers (TDS 5.0) + . + If you are looking for a current Microsoft SQL Server library then you want + to check the libmono-system-data2.0-cil package which contains + System.Data.SqlClient. + . + For more information about Mono.Data and TDS see: + http://www.mono-project.com/TDS_Providers + +Package: libmono-c5-1.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono C5 library + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono C5 library. + +Package: libmono-webbrowser0.5-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Recommends: libgluezilla +Description: Mono Web Browser library + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the implementation of the WebControl class based on the + Mozilla engine using libgluezilla. + +Package: libmono-management2.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Management library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.Management library for CLI 2.0, which provides + attach functionality for the Mono runtime. It allows to load code externally + into a Mono process to debug or augment code live. + +Package: libmono-messaging2.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Homepage: http://mono-project.com/SystemMessaging +Description: Mono Messaging library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.Messaging library for CLI 2.0, which provides + messaging functionality using different implementations. At this time Mono + does not provide a System.Messaging implementation. + +Package: libmono-messaging-rabbitmq2.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Homepage: http://mono-project.com/SystemMessaging +Description: Mono Messaging RabbitMQ library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler + and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.Messaging.RabbitMQ library for CLI 2.0. + +Package: libmono-rabbitmq2.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Homepage: http://mono-project.com/SystemMessaging +Description: Mono RabbitMQ.Client library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler + and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the RabbitMQ.Client library for CLI 2.0. + +Package: libmono-simd2.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Homepage: http://go-mono.com/docs/index.aspx?tlink=0@N%3aMono.Simd +Description: Mono SIMD (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono.Simd library for CLI 2.0, which provides a + number of classes that are hardware accelerated by mapping the classes and + the actual operations to native SIMD instructions on a processor. + +Package: libmono-corlib1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Conflicts: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, mono-runtime (>= ${mono:upversion}), mono-runtime (<< ${mono:next-upversion}) +Recommends: libmono-i18n-west1.0-cil +Suggests: libmono-i18n1.0-cil +Description: Mono core library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Core Library (mscorlib.dll) of Mono for CLI 1.0, + which is the glue between the BCL (Base Class Libraries) and the JIT. + . + You should install libmono-i18n-west1.0-cil if you are using + ISO 8859-15 (Latin 9) or other common Western European code pages. + US-ASCII, ISO 8859-1 (Latin 1) and UTF-8 users don't need any extra I18N + packages. + +Package: libmono-corlib2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Conflicts: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, mono-runtime (>= ${mono:upversion}), mono-runtime (<< ${mono:next-upversion}) +Recommends: libmono-i18n-west2.0-cil +Suggests: libmono-i18n2.0-cil +Description: Mono core library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Core Library (mscorlib.dll) of Mono for CLI 2.0, + which is the glue between the BCL (Base Class Libraries) and the JIT. + . + You should install libmono-i18n-west2.0-cil if you are using + ISO 8859-15 (Latin 9) or other common Western European code pages. + US-ASCII, ISO 8859-1 (Latin 1) and UTF-8 users don't need any extra I18N + packages. + +Package: libmono-i18n-west1.0-cil +Architecture: all +Replaces: libmono-corlib1.0-cil (<< 1.2.6-1), libmono-i18n1.0-cil (<< 2.4) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono I18N.West library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the I18N.West library for CLI 1.0, containing Central + and Western European code pages such as ISO 8859-3 (Latin 3), + ISO 8859-15 (Latin 9) and others. + . + This package also includes the base I18N library used by all I18N + libraries. + +Package: libmono-i18n-west2.0-cil +Architecture: all +Replaces: libmono-corlib2.0-cil (<< 1.2.6-1), libmono-i18n2.0-cil (<< 2.4) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono I18N.West library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the I18N.West library for CLI 2.0, containing Central + and Western European code pages such as ISO 8859-3 (Latin 3), + ISO 8859-15 (Latin 9) and others. + . + This package also includes the base I18N library used by all I18N + libraries. + +Package: libmono-i18n1.0-cil +Architecture: all +Replaces: libmono-corlib1.0-cil (<< 1.2.6-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono I18N libraries (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains I18N libraries for CLI 1.0, containing various code + pages definitions. + +Package: libmono-i18n2.0-cil +Architecture: all +Replaces: libmono-corlib2.0-cil (<< 1.2.6-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono I18N libraries (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains I18N libraries for CLI 2.0, containing various code + pages definitions. + +Package: libmono-system1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends}, mono-runtime (>= ${mono:upversion}), mono-runtime (<< ${mono:next-upversion}) +Description: Mono System libraries (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the BCL (Base Class Libraries) of Mono for CLI 1.0. + +Package: libmono-system2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends}, mono-runtime (>= ${mono:upversion}), mono-runtime (<< ${mono:next-upversion}) +Description: Mono System libraries (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the BCL (Base Class Libraries) of Mono for CLI 2.0. + +Package: libmono-system-messaging1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.Messaging library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Messaging library for CLI 1.0. + +Package: libmono-system-messaging2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.Messaging Library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Messaging library for CLI 2.0. + +Package: libmono-security1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Security library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Security library for CLI 1.0. + +Package: libmono-security2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Security library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Security library for CLI 2.0. + +Package: libmono-data-tds1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Data library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Data library for CLI 1.0. + +Package: libmono-data-tds2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Data Library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Data library for CLI 2.0. + +Package: libmono-system-data1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.Data library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Data library for CLI 1.0. + +Package: libmono-system-data2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.Data Library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Data library for CLI 2.0. + +Package: libmono-system-web1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends}, mono-runtime (>= ${mono:upversion}), mono-runtime (<< ${mono:next-upversion}), libgdiplus +Description: Mono System.Web library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Web library for CLI 1.0. + +Package: libmono-system-web2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends}, mono-runtime (>= ${mono:upversion}), mono-runtime (<< ${mono:next-upversion}), libgdiplus +Description: Mono System.Web Library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Web library for CLI 2.0. + +Package: libmono-system-web-mvc1.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono ASP.NET MVC Library + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler + and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Web.Mvc library for CLI 2.0. + +Package: libmono-wcf3.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Homepage: http://mono-project.com/WCF +Description: Mono WCF libraries (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Windows Communication Foundation (WCF) libraries + of Mono for CLI 2.0. The WFC stack is for building SOA-based applications. + Its development is in early stages. + . + WCF is also used in Moonlight, but it cuts down huge parts of .NET 3.0 + features but this implementation used by Moonlight should be almost feature + complete. + +Package: libmono-system-runtime1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.Runtime library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Runtime library for CLI 1.0. + +Package: libmono-system-runtime2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.Runtime Library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Runtime library for CLI 2.0. + +Package: libmono-system-ldap1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.DirectoryServices library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.DirectoryServices library for CLI 1.0. + +Package: libmono-system-ldap2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono System.DirectoryServices library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.DirectoryServices library for CLI 2.0. + +Package: libmono-winforms1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests}, shared-mime-info +Depends: ${misc:Depends}, ${cli:Depends}, libgdiplus +Description: Mono System.Windows.Forms library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Windows.Forms library for CLI 1.0. + +Package: libmono-winforms2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Suggests: ${cli:Suggests}, shared-mime-info +Depends: ${misc:Depends}, ${cli:Depends}, libgdiplus +Description: Mono System.Windows.Forms library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono System.Windows.Forms library for CLI 2.0. + +Package: libmono-cairo1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-1.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Cairo library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Cairo library for CLI 1.0. + +Package: libmono-cairo2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.4-1), + mono-classlib-2.0-dbg (<< 1.1.13.4-1), + libmono-cairo1.0-cil (<< 2.4) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Cairo library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Cairo library for CLI 2.0. + +Package: libmono-sharpzip0.6-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-1.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono SharpZipLib library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono SharpZipLib library version 0.6, for CLI 1.0. + +Package: libmono-sharpzip0.84-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-1.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono SharpZipLib library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono SharpZipLib library version 0.84, for CLI 1.0. + +Package: libmono-sharpzip2.6-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.4-1), mono-classlib-2.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono SharpZipLib library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono SharpZipLib library version 2.6, for CLI 2.0. + +Package: libmono-sharpzip2.84-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.4-1), mono-classlib-2.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono SharpZipLib library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono SharpZipLib library version 2.84, for CLI 2.0. + +Package: libmono-npgsql1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-1.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Npgsql library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Npgsql library for CLI 1.0. + +Package: libmono-npgsql2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.4-1), mono-classlib-2.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Npgsql library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Npgsql library for CLI 2.0. + +Package: libmono-bytefx0.7.6.1-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-1.0-dbg (<< 1.1.13.4-1) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono ByteFX.Data library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono ByteFX.Data library version 0.7.6.1, for CLI + 1.0. + +Package: libmono-bytefx0.7.6.2-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.4-1), mono-classlib-2.0-dbg (<< 1.1.13.4-1) +Suggests: ${cli:Suggests} +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono ByteFX.Data library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono ByteFX.Data library version 0.7.6.2, for CLI + 2.0. + +Package: libmono-firebirdsql1.7-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-2.0 (<< 1.1.13.4-1), mono-classlib-2.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono FirebirdSql library + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono FirebirdSql library. + +Package: libmono-db2-1.0-cil +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono DB2 library + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono DB2 library. + +Package: libmono-oracle1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Oracle library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Oracle library for CLI 1.0. + +Package: libmono-oracle2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Oracle library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Oracle library for CLI 2.0. + +Package: libmono-sqlite1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.4-1), mono-classlib-1.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Sqlite library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Sqlite library for CLI 1.0. + +Package: libmono-sqlite2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.4-1), mono-classlib-2.0-dbg (<< 1.1.13.4-1) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Sqlite library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Sqlite library for CLI 2.0. + +Package: libmono-accessibility1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Accessibility library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Accessibility library for CLI 1.0. + +Package: libmono-accessibility2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Accessibility library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Accessibility library for CLI 2.0. + +Package: libmono-cscompmgd7.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono cscompmgd library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono cscompmgd library version 7.0, for CLI 1.0. + +Package: libmono-cscompmgd8.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono cscompmgd library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono cscompmgd library version 8.0, for CLI 2.0. + +Package: libmono-ldap1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono LDAP library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono LDAP library for CLI 1.0. + +Package: libmono-ldap2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono LDAP library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono LDAP library for CLI 2.0. + +Package: libmono-microsoft-build2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Microsoft.Build libraries + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Microsoft.Build libraries version 2.0. + +Package: libmono-microsoft7.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Microsoft libraries (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Microsoft libraries version 7.0, for CLI 1.0. + +Package: libmono-microsoft8.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Microsoft libraries (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Microsoft libraries version 8.0, for CLI 2.0. + +Package: libmono-peapi1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono PEAPI library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono PEAPI library for CLI 1.0. + +Package: libmono-peapi2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono PEAPI library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono PEAPI library for CLI 2.0. + +Package: libmono-relaxng1.0-cil +Architecture: all +Replaces: mono-classlib-1.0 (<< 1.1.13.6), mono-classlib-1.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Relaxng library (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Relaxng library for CLI 1.0. + +Package: libmono-relaxng2.0-cil +Architecture: all +Replaces: mono-classlib-2.0 (<< 1.1.13.6), mono-classlib-2.0-dbg (<< 1.1.13.6) +Depends: ${misc:Depends}, ${cli:Depends} +Description: Mono Relaxng library (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the Mono Relaxng library for CLI 2.0. + +Package: mono-dbg +Priority: extra +Section: debug +Architecture: all +Recommends: mono-debugger +Replaces: libmono1.0-cil (<< 1.2.4-1), + libmono2.0-cil (<< 1.2.4-1), + libmono-c5-1.0-cil (<< 1.2.4-1), + libmono-corlib1.0-cil (<< 1.2.4-1), + libmono-corlib2.0-cil (<< 1.2.4-1), + libmono-system1.0-cil (<< 1.2.4-1), + libmono-system2.0-cil (<< 1.2.4-1), + libmono-system-messaging1.0-cil (<< 1.2.4-1), + libmono-system-messaging2.0-cil (<< 1.2.4-1), + libmono-security1.0-cil (<< 1.2.4-1), + libmono-security2.0-cil (<< 1.2.4-1), + libmono-data-tds1.0-cil (<< 1.2.4-1), + libmono-data-tds2.0-cil (<< 1.2.4-1), + libmono-system-data1.0-cil (<< 1.2.4-1), + libmono-system-data2.0-cil (<< 1.2.4-1), + libmono-system-web1.0-cil (<< 1.2.4-1), + libmono-system-web2.0-cil (<< 1.2.4-1), + libmono-system-runtime1.0-cil (<< 1.2.4-1), + libmono-system-runtime2.0-cil (<< 1.2.4-1), + libmono-system-ldap1.0-cil (<< 1.2.4-1), + libmono-system-ldap2.0-cil (<< 1.2.4-1), + libmono-winforms1.0-cil (<< 1.2.4-1), + libmono-winforms2.0-cil (<< 1.2.4-1), + libmono-cairo1.0-cil (<< 1.2.4-1), + libmono-cairo2.0-cil (<< 1.2.4-1), + libmono-sharpzip0.6-cil (<< 1.2.4-1), + libmono-sharpzip0.84-cil (<< 1.2.4-1), + libmono-sharpzip2.6-cil (<< 1.2.4-1), + libmono-sharpzip2.84-cil (<< 1.2.4-1), + libmono-npgsql1.0-cil (<< 1.2.4-1), + libmono-npgsql2.0-cil (<< 1.2.4-1), + libmono-bytefx0.7.6.1-cil (<< 1.2.4-1), + libmono-bytefx0.7.6.2-cil (<< 1.2.4-1), + libmono-firebirdsql1.7-cil (<< 1.2.4-1), + libmono-oracle1.0-cil (<< 1.2.4-1), + libmono-oracle2.0-cil (<< 1.2.4-1), + libmono-sqlite1.0-cil (<< 1.2.4-1), + libmono-sqlite2.0-cil (<< 1.2.4-1), + libmono-accessibility1.0-cil (<< 1.2.4-1), + libmono-accessibility2.0-cil (<< 1.2.4-1), + libmono-cscompmgd7.0-cil (<< 1.2.4-1), + libmono-cscompmgd8.0-cil (<< 1.2.4-1), + libmono-ldap1.0-cil (<< 1.2.4-1), + libmono-ldap2.0-cil (<< 1.2.4-1), + libmono-microsoft-build2.0-cil (<< 1.2.4-1), + libmono-microsoft7.0-cil (<< 1.2.4-1), + libmono-microsoft8.0-cil (<< 1.2.4-1), + libmono-peapi1.0-cil (<< 1.2.4-1), + libmono-peapi2.0-cil (<< 1.2.4-1), + libmono-relaxng1.0-cil (<< 1.2.4-1), + libmono-relaxng2.0-cil (<< 1.2.4-1), + mono-mcs (<< 1.2.4-1), + mono-mjs (<< 1.2.4-1), + mono-gmcs (<< 1.2.4-1), + mono-gac (<< 1.2.4-1), + monodoc-base (<< 2.4) +Description: Mono debugging symbols + This package contains the debugging symbols of various libmono-* and mono-* + packages. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: mono-mjs +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Replaces: mono-mcs (<< 1.2.5-1) +Description: Mono JScript compiler + This is the Mono JScript compiler, a platform-independent compiler which + produces CIL (Common Intermediate Language) binary executables. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: mono-mcs +Architecture: all +Depends: ${misc:Depends}, + ${cli:Depends}, + libmono-corlib1.0-cil (>= ${mono:upversion}), + libmono-corlib1.0-cil (<< ${mono:next-upversion}) +Recommends: pkg-config +Replaces: mono-devel (<< 2.4.2.3) +Description: Mono C# 1.0 compiler for CLI 1.1 + This is the Mono C# (C-Sharp) 1.0 compiler, a platform-independent compiler + which produces CIL (Common Intermediate Language) binary executables. + This compiler targets the CLI 1.1 runtime version. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: mono-gmcs +Architecture: all +Depends: ${misc:Depends}, + ${cli:Depends}, + libmono-corlib2.0-cil (>= ${mono:upversion}), + libmono-corlib2.0-cil (<< ${mono:next-upversion}) +Recommends: pkg-config +Replaces: mono-mcs (>= 1.1.10), mono-mcs (<= 1.1.13), mono-devel (<< 2.4.2.3) +Description: Mono C# 2.0 and C# 3.0 compiler for CLI 2.0 + This is the Mono C# (C-Sharp) 2.0 and C# 3.0 compiler, a platform-independent + compiler which produces CIL (Common Intermediate Language) binary executables. + The gmcs compiler supports two different featuresets (C# versions). + . + With C# 2.0 (which is the default) it supports: + - generics + - iterators (yield) + - nullable value types + - partial types + - anonymous methods + - static classes + - coalesce operator: ?? + . + With C# 3.0 it supports: + - Language Integrated Query (LINQ) + - object initializers + - collection initializers + - anonymous types + - local variable type inference + - implicitly-typed arrays + - lambda expressions + - automatic properties + - extension methods + - partial methods + . + This compiler targets the CLI 2.0 runtime version. + . + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + +Package: mono-devel +Architecture: all +Provides: c-sharp-compiler, + c-sharp-2.0-compiler, + c-sharp-3.0-compiler, + resource-file-generator, + assembly-linker, + strong-name-tool +Replaces: mono-1.0-devel (<< 2.0), + mono-2.0-devel (<< 2.4), + mono-mcs (<< 2.0), + mono-gmcs (<< 2.0), + libmono-dev (<< 2.4) +Recommends: mono-csharp-shell +Depends: ${misc:Depends}, + ${cli:Depends}, + mono-2.0-devel (= ${source:Version}), + mono-gac (= ${source:Version}), + libmono-cil-dev (= ${source:Version}) +Description: Mono development tools + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various development tools and pulls in the default + development stack for Mono (which is 2.0 currently). + +Package: mono-1.0-devel +Architecture: all +Depends: ${misc:Depends}, + ${cli:Depends}, + mono-mcs (= ${source:Version}), + mono-1.0-gac (= ${source:Version}), + libmono-dev (>= ${source:Version}), + pkg-config +Replaces: mono-mcs (<< 1.2.6-1) +Description: Mono development tools for CLI 1.0 + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various development tools and pulls in a full + development stack for Mono targeting CLI 1.0. + +Package: mono-2.0-devel +Architecture: all +Depends: ${misc:Depends}, + ${cli:Depends}, + mono-gmcs (= ${source:Version}), + mono-2.0-gac (= ${source:Version}), + libmono-dev (>= ${source:Version}), + pkg-config +Replaces: mono-gmcs (<< 1.2.6-1), mono-common (<< 1.2.6-2) +Description: Mono development tools for CLI 2.0 + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains various development tools and pull in a full + development stack for Mono targeting CLI 2.0. + +Package: mono-1.0-service +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Replaces: mono-mcs (<< 1.2.6-1) +Description: Mono service manager for CLI 1.0 + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the mono-service manager, used to start and stop CLI 1.0 + services based on the System.ServiceProcess API. + +Package: mono-2.0-service +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Replaces: mono-gmcs (<< 1.2.6-1) +Description: Mono service manager for CLI 2.0 + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the mono-service2 manager, used to start and stop CLI + 2.0 services based on the System.ServiceProcess API. + +Package: mono-xbuild +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Replaces: mono-gmcs (<< 1.2.6-1) +Description: MSBuild-compatible build system for Mono + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + xbuild is Mono's implementation of msbuild and allows projects that have a + msbuild file to be compiled natively on Linux. + . + Microsoft Build (msbuild) is a build system developed by Microsoft similar in + spirit to Nant (in that it uses XML files for describing the build process) + and in the same spirit as make. + . + http://www.mono-project.com/Microsoft.Build + +Package: mono-gac +Architecture: all +Depends: ${misc:Depends}, mono-2.0-gac (= ${source:Version}) +Provides: global-assembly-cache-tool +Description: Mono GAC tool + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package pulls in the default GAC (Global Assembly Cache) tool (gacutil) + used by Mono to store shared CIL (Common Intermediate Language) libraries. + +Package: mono-1.0-gac +Architecture: all +Replaces: mono-gac (<< 2.0) +Depends: ${misc:Depends}, ${cli:Depends} +Recommends: cli-common (>= 0.4.0) +Description: Mono GAC tool (for CLI 1.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package includes a version of the GAC (Global Assembly Cache) tool + (gacutil) used by Mono to store shared CIL (Common Intermediate Language) + libraries, for CLI 1.0 + +Package: mono-2.0-gac +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Recommends: cli-common (>= 0.4.0) +Description: Mono GAC tool (for CLI 2.0) + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package includes a version of the GAC (Global Assembly Cache) tool + (gacutil) used by Mono to store shared CIL (Common Intermediate Language) + libraries, for CLI 2.0 + +Package: mono-jay +Architecture: i386 lpia kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb armel sparc s390 +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: LALR(1) parser generator oriented to Java/CLI + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + Jay is a Yacc implementation oriented to Java-like input syntax. It + takes a grammar, specified in BNF and augmented with semantic actions, + and generates tables and an interpreter which recognizes the language + defined by the grammar and executes the semantic actions as their + corresponding phrases are recognized. + +Package: prj2make-sharp +Section: devel +Architecture: all +Depends: ${shlibs:Depends}, ${misc:Depends}, ${cli:Depends}, pkg-config, libmono-dev +Description: Convert VS.NET solution files to Makefiles + prj2make-solution is a utility used to read a "solution" file created + with Visual Studio .NET and generate a usual Makefile suitable for + compilation with a C# compiler. + +Package: mono-csharp-shell +Section: shells +Architecture: all +Homepage: http://www.mono-project.com/CsharpRepl +Depends: ${shlibs:Depends}, ${misc:Depends}, ${cli:Depends}, mono-gmcs (= ${source:Version}) +Description: interactive C# shell + Mono is a platform for running and developing applications based on the + ECMA/ISO Standards. Mono is an open source effort led by Novell. + Mono provides a complete CLR (Common Language Runtime) including compiler and + runtime, which can produce and execute CIL (Common Intermediate Language) + bytecode (aka assemblies), and a class library. + . + This package contains the interactive C# shell named csharp. csharp permits + dynamically evaluating C# statements, and can be used for writing scripts or + testing code fragments. + For examples and a brief overview of the commands see: + http://www.mono-project.com/CsharpRepl + +Package: monodoc-base +Architecture: all +Depends: ${misc:Depends}, ${cli:Depends} +Description: shared MonoDoc binaries + The MonoDoc Project is the documentation framework of the Mono project which + provides detailed API documentation for all Mono components and the Mono CLI + implementation. + . + This package contains the shared binaries which are used by the monodoc + programs like the documentation file compiler (assembler.exe aka "monodoc"). + +Package: monodoc-manual +Architecture: all +Section: doc +Depends: ${misc:Depends}, monodoc-browser | monodoc-http | monodoc-viewer +Suggests: monodoc-gtk-manual, + monodoc-gecko-manual, + monodoc-nunit-manual +Description: compiled XML documentation from the Mono project + The MonoDoc Project is the documentation framework of the Mono project which + provides detailed API documentation for all Mono components and the Mono CLI + implementation. + . + This package contains the compiled XML documentation of MonoDoc. --- mono-2.4.4~svn151842.orig/debian/libmono-ldap2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-ldap2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Novell.Directory.Ldap/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Novell.Directory.Ldap.dll --- mono-2.4.4~svn151842.orig/debian/libmono-data1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-data1.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/1.0/Mono.Data.SybaseClient.dll +debian/tmp/usr/lib/mono/1.0/Mono.Data.TdsClient.dll +debian/tmp/usr/lib/mono/1.0/Mono.Data.dll +debian/tmp/usr/lib/mono/gac/Mono.Data.SybaseClient/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Data.TdsClient/1.0.5000.0__*/ +debian/tmp/usr/lib/mono/gac/Mono.Data/1.0.5000.0__*/ --- mono-2.4.4~svn151842.orig/debian/Mono.Cairo.dll.config +++ mono-2.4.4~svn151842/debian/Mono.Cairo.dll.config @@ -0,0 +1,3 @@ + + + --- mono-2.4.4~svn151842.orig/debian/libmono-cairo1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-cairo1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.Cairo/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Mono.Cairo.dll --- mono-2.4.4~svn151842.orig/debian/changelog +++ mono-2.4.4~svn151842/debian/changelog @@ -0,0 +1,753 @@ +mono (2.4.4~svn151842-1ubuntu2) lucid; urgency=low + + * New patch, arm-cpuinfo-parsing, nicer cpuinfo detection, allows running + mono under qemu-arm; LP: #528377. + + -- Loïc Minier Sat, 27 Feb 2010 15:00:50 +0100 + +mono (2.4.4~svn151842-1ubuntu1) lucid; urgency=low + + [ Iain Lane ] + * Merge from Debian unstable, remaining changes: + + fix mono ftbfs with thumb2 on armel; use gcc atomic built-ins. Please + note that this change has been applied in the Debian packaging branch, + so should be dropped after the next upload there. (LP: #525063) + + [ Alexander Sack ] + * mono-thumb2-jit-blx.dpatch, 00list: add fix for more thumb2 + porting issues (LP: #514215) + + -- Alexander Sack Mon, 22 Feb 2010 23:51:28 +0100 + +mono (2.4.4~svn151842-1) unstable; urgency=medium + + [ Jo Shields ] + * debian/patches/dont_assert_on_empty_DGC_field_r146984.dpatch: + + Backport fix from upstream which causes IKVM to fail to build + (Closes: #562393) + * debian/patches/escape_Lucene.Net_search_string_r148946.dpatch: + + Backport fix from upsrream which causes Monodoc to crash when + searching for "()" and other characters (Closes: #516597) + + [ Mirco Bauer ] + * The "Mono 2.4.4 FREE LUV for squeeze & lucid" release + * New upstream SVN snapshot of the mono-2-4 branch + + Fixed assertion failed in fieldref_encode_signature which caused + SIGABRT. (Closes: #565548) + + Mono is now DFSG complaint again by default as the binary-only shipped + files were replaced with source code. Also the non-free XML + specification files were replaced and thus we can ship the RabbitMQ + library again. + * debian/patches/disable_building_convert.exe.dpatch + debian/patches/disable_building_RabbitMQ.Client.dll.dpatch: + + Dropped, we can build the RabbitMQ client library and convert.exe again, + as the source is provided now (see above). + * debian/fix_large_ranges_in_random_generator_r146995.dpatch: + + Dropped, already applied upstream. + * debian/watch: + + We are only watching the 2.4 series for now (until squeeze is released) + * debian/control: + + Added libnunit-cil-dev to Depends of libmono-cil-dev as that one + contains the symlink to the nunit.pc file which is no longer present in + libnunit2.4-cil but libnunit-cil-dev. + + Dropped purpose less libmono-nunit2.4-cil package as libmono-cil-dev + does the job now. + + Added conflicts libmono-nunit2.4-cil to libmono-cil-dev for cleaning up. + + Shortened too long line in the long descroption of libmono-cil-dev. + + Changed section of libmono-dev to libdevel. + + Added ${misc:Depends} to Depends of all packages. + + Bumped Standards-Version to 3.8.4 (no changes needed). + + Re-added libmono-messaging-rabbitmq2.0-cil and libmono-rabbitmq2.0-cil + packages. + * debian/cli.binfmt: + + Replaced mono-common with mono-runtime. (Closes: #565490) + * debian/mono-runtime.postinst: + + Removed obsolete mono-common / mono-jit traces. + * debian/copyright: + + Refere to versioned GPL license file. + + Updated license information of RabbitMQ XML specification files. + + Added license information of docs/HtmlAgilityPack. + + -- Mirco Bauer Wed, 17 Feb 2010 23:17:44 +0100 + +mono (2.4.3+dfsg-1ubuntu2) lucid; urgency=low + + * debian/patches/mono-arm-thumb2-ftbfs.dpatch: + + fix LP:514215 - mono ftbfs with thumb2 on armel; use gcc atomic built-ins + (this time the right way) + + -- Alexander Sack Wed, 10 Feb 2010 13:17:12 +0100 + +mono (2.4.3+dfsg-1ubuntu1) lucid; urgency=low + + * debian/patches/mono-arm-thumb2-ftbfs.dpatch: + + fix LP:514215 - mono ftbfs with thumb2 on armel; use gcc atomic built-ins + + -- Alexander Sack Fri, 29 Jan 2010 16:18:49 +0100 + +mono (2.4.3+dfsg-1) unstable; urgency=medium + + [ Jo Shields ] + * debian/monodoc-base.postinst, + debian/monodoc-base.triggers, + debian/monodoc-base.install, + debian/update-monodoc: + + Add a trigger to handle installation of documentation into monodoc + + [ Iain Lane ] + * debian/monodoc-base.postinst: Only update the monodoc index when we need + to - i.e. when we are being triggered (by a lib installing new docs) or + upon a new install of monodoc-base (to generate the initial index) + + [ Mirco Bauer ] + * The "mince pies for all" release + * New upstream (bugfix) release: + + New license compiler (lc) tool. + + Improved memory usage and performance for ASP.NET. + + Updated xbuild. + + Many bugfixes. + * debian/control + debian/rules + debian/copyright: + debian/patches/disable_building_RabbitMQ.Client.dll.dpatch: + + Dropped the RabbitMQ library with spec sources again, as the + auto-generated API source files without DFSG-free sources for the + generator are not good enough. (Closes: #560151) + * debian/copyright: + + Updated for the new license compiler tool. + * debian/rules: + + Bumped clilibs of libmono-system2.0-cil, libmono-security{1,2}.0-cil, + libmono-data-tds{1,2}.0-cil and libmono-microsoft-build2.0-cil + to >= 2.4.3. + * debian/update-monodoc: + + Handle search index too. + * debian/libmono-profiler.install: + + Install .so symlinks too, bloody pseudo versioned shared libraries. + * debian/libmono-simd2.0-cil.install: + + Added missing compile time symlink. + * debian/control: + + Promote monodoc-viewer from Recommends to Depends for monodoc-manual. + (Closes: #551909) + + Fixed typo in monodoc-base and monodoc-manual package description. + (Closes: #557355, #557379) + + Bumped Standards-Version to 3.8.3 (no changes needed) + * debian/patches/fix_metadata_dup.dpatch + * debian/patches/fix_gridview_r146128_r146133.dpatch: + + Dropped, already applied upstream. + * debian/control: + debian/libmono-cil-dev.install + debian/*.install: + + Added new libmono-cil-dev package which ships now all pkg-config files + and depends on all Mono CLI library packages. + * debian/mono-devel.links: + + Dropped /usr/bin/csc as it was causing a file conflict with the chicken + compiler from the chicken-bin package. Most source packages were + transitioned to use /usr/bin/mono-csc or /usr/bin/cli-csc instead. + (Closes: #509367, #518106) + * debian/patches/fix_DynamicMethod_restrictedSkipVisibility_r138886.dpatch: + + Pass restrictedSkipVisibility parameter correctly to the called + constructor as needed by the DbLinq library. (Closes: #551964) + (thanks goes to Silviu Paragina for the investigation and the patch) + * debian/mono-xbuild.install + debian/man/xbuild.1: + + Replaced xbuild manpage place holder with new upstream manpage. + * debian/mono-xbuild.install: + + Addded new target files. + * debian/mono-devel.install + debian/mono-devel.manpages: + + Added lc tool. + * debian/libmono-system-web2.0-cil.install: + + Added new development symlinks. + * debian/fix_large_ranges_in_random_generator_r146995.dpatch: + + Fix random numbers in large ranges. + + -- Mirco Bauer Mon, 14 Dec 2009 00:01:59 +0100 + +mono (2.4.2.3+dfsg-3) unstable; urgency=low + + [ Jo Shields ] + * Add missing Conflicts/Replaces on monodoc-base from pre-Squeeze due + to monodoc.dll.mdb conflict + * debian/patches/fix_gridview_r146128_r146133.dpatch: + + Add fix from Mono SVN for TableRowCollection in ASP.NET + + [ Mirco Bauer ] + * Added mono-gmcs to mono-csharp-shell dependencies as it links gmcs.exe + (Closes: #552211) + * debian/rules: + + Add dh_makeshlibs call for all remaining libraries. This adds missing + ldconfig calls to the maintainer scripts for libMonoSupportW.so, + libMonoPosixHelper.so and libmono-profiler-*.so. + (Closes: #553008, #553104) + (Obsoletes NMU by Matt Kraai , Closes: #556662) + + -- Mirco Bauer Tue, 17 Nov 2009 23:26:36 +0100 + +mono (2.4.2.3+dfsg-2) unstable; urgency=medium + + * debian/control: + + Add missing cli:Suggests to libmono-bytefx0.7.6.1-cil and + libmono-bytefx0.7.6.2-cil. + * debian/rules: + + Removed mono:upversion and mono:next-version from dh_gencontrol -s + call as those are unused for arch:any packages. + * debian/patches/fix_metadata_dup.dpatch: + + Remove duplicate appdomain.h, fixing FTBFS. + (thanks to Stefan Siegl for the investigation, Closes: #543010) + * debian/patches/fix_CreateDelegate_ArgumentException.dpatch: + + Fixed ArgumentException in System.Delegate.CreateDelegate() which broke + IronPython 2.6 Beta 2. + + -- Mirco Bauer Mon, 07 Sep 2009 22:00:21 +0200 + +mono (2.4.2.3+dfsg-1) unstable; urgency=low + + * New upstream release: + + Fixes XML signature HMAC truncation authentication bypass. + (CVE-2009-0217) + + Shipping the RabbitMQ.Client library now as the non-free bits were + removed. + + Includes ASP.NET MVC. + + Updated xbuild. + * debian/patches/disable_unavailable_cpu_optimizations_r133647.dpatch + debian/patches/fix_disabling_aot_r131940.dpatch + debian/patches/fix_null_funcptr_marshalling_r127347.dpatch + debian/patches/fix_ppc_build_using_gcc-4.4_r131472.dpatch + debian/patches/fix_recursive_unmanaged_types.dpatch + debian/patches/fix_sparc_support_r134797.dpatch: + + Dropped, as already applied upstream. + * debian/rules: + + Bumped clilibs where needed. + * debian/rules + debian/mono-devel.install + debian/mono-api-diff.cs: + + As mono-api-diff was dropped from Mono 2.4 and we need it to track API + changes we bundle it now in the source package. + (thanks to C.J. Adams-Collier for this) + * debian/copyright: + + Updated for ASP.NET MVC. + * debian/control: + + Moved libmono-firebirdsql1.7-cil from Depends to Recommends of + mono-complete, as libfbclient2 as not available on s390. + + Added libmono-system-web-mvc1.0-cil package. + + Added libmono-messaging-rabbitmq2.0-cil and libmono-rabbitmq2.0-cil + package. + * debian/patches/fix_array_compare.dpatch: + + Fix in the compiler needed for IronRuby. + (thanks goes to C.J. Adams-Collier for providing the patch) + * debian/control + debian/mono-runtime.install + debian/libmono-profiler.install: + + Moved the libmono-profiler-* libraries to the new libmono-profiler + package, as they pull libmono0 in which is unneeded for normal usage. + * debian/control + debian/mono-devel.install + debian/mono-mcs.install + debian/mono-gmcs.install: + + Moved mcs to mono-mcs and gmcs to mono-gmcs from mono-devel, as that + caused a lot of confusion. (closes: #525279 and #537081) + + Added mono-csc to mono-devel in preparation to drop csc in the future as + it conflicts with the chicken compiler, see #509367. + + -- Mirco Bauer Thu, 30 Jul 2009 19:35:10 +0200 + +mono (2.4+dfsg-6) unstable; urgency=low + + * debian/rules: + + Force pthread for armel as __thread FTBFS. + + Build Mono.Simd in test target, which hopefully fixes the failing + mono/mini tests. + * debian/control: + + Removed dh_installxsp and monodiet from the package description of + mono-utils. (Closes: #534906) + + Bumped Standards-Version to 3.8.2 (no changes needed) + + -- Mirco Bauer Sun, 05 Jul 2009 14:44:23 +0200 + +mono (2.4+dfsg-5) unstable; urgency=low + + * debian/rules: + + Let the build system decide if sigaltstack() will be used and which TLS + instead of passing explicitly --with-sigaltstack and --with-tls to + the ./configure script. + + Run also the JIT (mono/mini) tests. + * debian/patches/fix_disabling_aot_r131940.dpatch: + + Fixes the build of kfreebsd-amd64 and kfreebsd-i386. + + -- Mirco Bauer Mon, 22 Jun 2009 00:08:35 +0200 + +mono (2.4+dfsg-4) unstable; urgency=low + + * debian/rules: + + Removed the config.make hack as that broke AMD64 builds and instead let + the ./configure script from the configure-indep target create that file. + + -- Mirco Bauer Sun, 14 Jun 2009 16:52:28 +0200 + +mono (2.4+dfsg-3) unstable; urgency=low + + * debian/control: + + Change Section of prj2make-sharp to devel to match archive overrides. + + Added replaces libmono-cairo1.0-cil to libmono-cairo2.0-cil, as the + pkg-config file was moved from that. (Closes: #531006) + + Added conflicts mono-{1,2}.0-runtime to mono-runtime to ensure + aptitude is proposing a happy upgrade path. + * debian/libmono-wcf3.0-cil.install: + + Added missing System.IdentityModel development symlink. + (Closes: #531496) + * debian/shlibs.local + debian/update-shlibs.local.sh: + + Removed libgda-2 entry for the benefit of dh_clideps not picking that as + Suggests for libmono-system-data{1,2}.0-cil up. (Closes: #531870) + * debian/patches/fix_ppc_build_using_gcc-4.4_r131472.dpatch: + + Fixes the build on PPC when using GCC 4.4. + * debian/patches/disable_unavailable_cpu_optimizations_r133647.dpatch: + + Disable CPU optimizations which might be unavailable (like SSE2 on + Pentium 3). + * debian/patches/fix_sparc_support_r134797.patch: + + Fixes the hang for all applications when running on SPARC. + (Closes: #531566) + * debian/rules: + + Implemented test target and run basic runtime tests as part of the build + if nocheck wasn't passed via DEB_BUILD_OPTIONS. + + -- Mirco Bauer Sat, 13 Jun 2009 16:56:43 +0200 + +mono (2.4+dfsg-2) unstable; urgency=low + + [ Jo Shields ] + * debian/rules: + + Implement workaround to force removal of /usr/share/doc symlinks + on Ubuntu systems when upgrading from pre-2.4 packages + * debian/control: + + Add dependency on lsb-release to allow distro detection + + [ Mirco Bauer ] + * Upload to unstable. + * debian/update-shlibs.local.sh: + + Fixed shlibs line of libMonoPosixHelper, was causing incorrect + dependencies on libmono0 instead of mono-runtime. + + Added shlibs line for libMonoSupportW. + * debian/monodoc-base.install: + + Added missing monodoc development symlink. + * debian/mono-1.0-devel.install + debian/mono-2.0-devel.install: + + Added installutil.exe. + * debian/mono-csharp-shell.install: + + Added missing Mono.CSharp development symlink. + * debian/libmono-messaging2.0-cil.install: + + Really install library and development symlink of Mono.Messaging. + * debian/libmono-management2.0-cil.install: + + Added missing Mono.Management development symlink. + * debian/mono-devel.install: + + Install mcs mo-files. + + -- Mirco Bauer Sun, 24 May 2009 15:23:14 +0200 + +mono (2.4+dfsg-1) experimental; urgency=low + + * New upstream release. + + For release highlights see the NEWS.Debian file + * debian/NEWS: + + Updated for Mono 2.4, Mono 2.2 and Mono 2.0. + * DFSG edition of Mono 2.4 as the source taball contained a binary that is + not part of the bootstrapping process (docs/AgilityPack.dll) and is CC + Share-alike 2.5 licensed (non-free). Also it contained non-free + specification files needed by the RabbitMQ.Client library. + * debian/README.source: + + Mention which files we removed and how to create the tarball we use. + + Document which binaries are required to bootstrap the C# compiler. + * debian/rules: + + Made get-orig-source policy conform (by using . as output path). + + Dropped --with-oprofile from configure call as debian doesn't ship the + needed header files for it. + + Pass --with-moonlight=no to configure call as the moon source package + will ship the assemblies with the release containing Silverlight 2.0 + support. + + Build MonoGetAssemblyName using gmcs instead of mcs. + + Don't allow dh_clideps to add mono-runtime dependencies to + mono-1.0/2.0-gac to prevent circular dependency hell. (Closes: #528090) + + Added missing non-stamp/files targets to .PHONY. + + Only pass mono/2.0 to MONO_PATH in RUN_MONO variable, else gmcs.exe + picks up the 1.0 corlib. + + Bumped clilibs of libmono-cairo{1.0,2.0}-cil, libmono-data{1.0,2.0}-cil, + libmono-data-tds{1.0,2.0}-cil, libmono-oracle2.0-cil, + libmono-posix{1.0,2.0}-cil, libmono-relaxng{1.0,2.0}-cil, + libmono-system2.0-cil, libmono-system-runtime2.0-cil, libmono-web2.0-cil, + libmono-winforms2.0-cil and libmono-webbrowser0.5-cil. + + Install upstream changelog and debian news only in the mono-runtime + package. + * debian/cli-wrapper.c + + Dropped as this wrapper is obsolete since mono 1.1.6-1. + * debian/patches/kfreebsd_support.dpatch + debian/patches/build_genxs_2.0.dpatch: + + Updated to cleanly apply again. + * debian/patches/fix_wsdl2_duplicate_keys_r117243.dpatch + debian/patches/fix_NetworkInterface_exception_r120282.dpatch + debian/patches/fix_TcpClient_IPv6_r122598.dpatch: + + Dropped, already applied upstream. + * debian/patches/armel_fix_configure_fpu_check.dpatch: + + Only patch configure.in, autoreconf takes care of configure. + * debian/patches/armel-glibc-2.8.dpatch: + + Dropped, fixed upstream in a different way. + * debian/patches/fix_NetworkInterface_endless_loop.dpatch: + + Fix loop by setting next item. (Closes: #519480) + * debian/libmono-system-web2.0-cil.install: + + Added system.web.extensions_1.0.pc and + system.web.extensions.design_1.0.pc. + * debian/libmono2.0-cil.install: + + Added mono.web.pc. + * debian/control: + debian/patches/99_autoreconf.dpatch: + + Added autoconf to build-deps, as we autoreconf in debian/rules now. + + Dropped autoreconf dpatch. + * debian/control: + + Updated Vcs-* fields for the migrated git repository. + + Added new mono-csharp-shell package. + + mono-devel recommends mono-csharp-shell now (very useful for + debugging). + + Added new libmono-management2.0-cil, libmono-messaging2.0-cil, + libmono-simd2.0-cil and libmono-wcf3.0-cil packages. + + Merged monodoc-base and monodoc-manual packages from the monodoc source + package. + + Dropped mono-smcs, libmono-corlib2.1-cil and libmono-system2.1-cil as + those will be shipped by the moon source package. + + Removed transition dependencies from libmono1.0-cil, libmono2.0-cil + mono-devel, as the Mono 2.0 transition has been completed some weeks ago. + + Renamed libmono-nunit2.2-cil to libmono-nunit2.4-cil and only ship a + symlink to nunit.pc with a binary dependency on libnunit2.4-cil. + + Added mono-complete metapackage to make ISVs and users installing + non-Debian applications happy. + + Changed Section of all packages to cli-mono except *-dbg to match + archive overrides. + + Added automake to build-deps needed for autoreconf. + * debian/libmono-cairo1.0-cil.install + debian/libmono-cairo2.0-cil.install + debian/patches/fix-mono-cairo.pc.in.dpatch: + + Moved mono-cairo.pc from libmono-cairo1.0-cil to libmono-cairo2.0-cil + and reference the CLI 2.0 version in the pkg-config file now. + * debian/mono-devel.install: + + Added mono-cil-strip + + Added getline.cs, mono-lineeditor.pc, Options.cs and mono-options.pc + + Removed CorCompare.exe and mono-api-diff(.exe) as dropped by upstream. + + Updated mono-shlib-cop and sqlsharp as they are now CLI 2.0 + * debian/patches/fix_recursive_unmanaged_types.dpatch: + + Fixes recursive structs regression as seen with OpenOffice.org. + * debian/copyright: + + Added Lucene.Net, RabbitMQ.Client and HtmlAgilityPack licenses. + * debian/patches/build_cecil_as_2.0.dpatch + debian/patches/build_firebirdsql_as_2.0.dpatch + debian/patches/build_permview_as_2.0.dpatch + debian/patches/build_linker_tuner_cil-strip_as_2.0.dpatch: + + Build Mono.Cecil, FirebirdSql.Data.Firebird, permview, tuner, linker and + cil-strip for CLI 2.0. + * debian/control + debian/rules + debian/mono-jt.* + debian/mono-common.* + debian/libmono0.* + debian/mono-runtime.*: + + Merged mono-jit, mono-common and libmono0 (except libmono.so.*) + packages into mono-runtime. libmono0 was pulled in by + libmono-system2.0-cil as it pinvokes libMonoPosixHelper.so for + compression stream APIs. Since the interpreter (mint) was dropped long + time ago and is unmainained upstream, there is no reason to keep those + 3 domains (VM, config / binfmt support, helper libraries) split. + + Renamed mono-jit-dbg package to mono-runtime-dbg. + * debian/shlibs.local: + + Updated using the debian/update-shlibs.local.sh script. + * debian/watch: + + Mangle +dfsg version. + * debian/control + debian/libmono1.0-cil.install + debian/libmono-cecil-private-cil.install: + + Moved Mono.Cecil from libmono1.0-cil to libmono-cecil-private-cil, as + it's now build for CLI 2.0. + * debian/libmono-system-web2.0-cil.install: + + Added System.ComponentModel.DataAnnotations, System.Web.Abstractions, + System.Web.DynamicData and System.Web.Routing. + * debian/control + debian/libmono-i18n1.0-cil.install + debian/libmono-i18n2.0-cil.install + debian/libmono-i18n-west1.0-cil.install + debian/libmono-i18n-west2.0-cil.install: + + Moved I18N.dll and I18N.West.dll from libmono-i18nX.Y-cil to + libmono-i18n-westX.Y-cil, as this is the only code page that is really + needed in 90% of the cases. + * debian/compat + debian/control: + + Bumped debhelper to 7. + * debian/control + debian/mono-1.0-devel.install + debian/mono-2.0-devel.install + debian/mono-devel.install: + + Removed mono-api-info1 as dropped by upstream and moved + 2.0/mono-api-info.exe from mono-2.0-devel to mono-devel. + * debian/control + debian/libmono0.install + debian/libmono-dev.install + debian/mono-devel.install: + + Moved dotnet.pc and dotnet35.pc from libmono-dev to mono-devel. + + Removed libmono-profiler-*.a as unused and unneeded. + * debian/mono-runtime.docs + debian/changelog + debian/changelog.1: + + Moved all entries older than the version in lenny (1.9.1) to + changelog.1 + + Install changelog.1 only in mono-runtime. + + -- Mirco Bauer Thu, 21 May 2009 01:04:54 +0200 + +mono (2.0.1-6) unstable; urgency=low + + [ Jo Shields ] + * debian/control: + + Update package descriptions to make it clearer what is what, and + avoid multiple packages with identical short descriptions + (Closes: #519404) + + [ Sebastian Dröge ] + * debian/patches/fix_null_funcptr_marshalling_r127347.dpatch: + + Fix marshalling for NULL function pointers, they should be mapped + to managed null delegates and vice versa. Patch from upstream SVN. + + -- Sebastian Dröge Fri, 01 May 2009 13:37:07 +0200 + +mono (2.0.1-5) unstable; urgency=low + + * The "Let the show begin!" release + + Upload to unstable starting the Mono 2.0 transition, status available at: + http://wiki.debian.org/Teams/DebianMonoGroup/Mono20TransitionTODO + * debian/control: + + The compilers (mono-mcs and mono-gmcs) are not forward compatible with + newer upstream versions, thus added stronger dependencies. + + Removed libgamin-dev, libcups2-dev, librsvg2-dev, libgtk2.0-dev and + libgnomeui-dev from build-deps-indep as those packages are only needed + to generate the debian/shlibs.local file using the + debian/update-shlibs.local.sh script (the script checks now if those + are installed). This extended hack is needed as shared-mime-info in + unstable conflicts with gnome < 2.24 and gnome 2.24 is blocked by + the Mono 2.0 transition. + * debian/shlibs.local: + + Updated using the debian/update-shlibs.local.sh script. + + -- Mirco Bauer Wed, 25 Feb 2009 00:10:02 +0100 + +mono (2.0.1-4) experimental; urgency=low + + * debian/rules: + + Pass internal-mono instead of --internal-mono if the debhelper version + is older than 7.1, as that one doesn't support custom parameters via + init(). This ensures backwards compatibility with older debhelper + versions, as found in Ubuntu. + * debian/control: + + Lowered debhelper build-dep to >= 5. + * debian/dh_clideps + debian/dh_makeclilibs: + + Re-synced from cli-common 0.6.0, needed for dh 7.0 backwards + compatibilty. + + -- Mirco Bauer Tue, 27 Jan 2009 00:15:04 +0100 + +mono (2.0.1-3) experimental; urgency=low + + * Rebuilt against libc6 and glib from unstable. + + -- Mirco Bauer Mon, 26 Jan 2009 22:49:05 +0100 + +mono (2.0.1-2) experimental; urgency=low + + [ Jo Shields ] + * debian/patches/fix_wsdl2_duplicate_keys_r117243.dpatch: + + Fix bug in wsdl2 preventing parsing of Amazon Web Services + wsdl file (thanks to Iain Lane for help + isolating this bug) + * debian/patches/fix_NetworkInterface_exception_r120282.dpatch: + + Warn, rather than fail, on "funny" network interfaces + (Closes: #507297) + + [ Mirco Bauer ] + * debian/mono-1.0-devel.{postinst,prerm} + debian/mono-mcs.{postinst,prerm} + debian/mono-devel.{postinst,prerm}: + + Moved update-alternatives calls to mono-devel.{postinst,prerm}. + * debian/mono.links + debian/mono.postinst + + Removed, those are just left-overs. + * debian/mono-jit.postinst: + + Lowered alternative priority to 10 like all other alternative we install. + * debian/control: + + Moved cli-* Provides from mono-1.0-devel, mono-mcs and mono-gmcs to + mono-devel, as thats where the cli-* alternatives now lives. + + Added many strong versioned binary dependencies to mono-devel as hack + to make experimental buildds happy, else everything needing + mono-devel >= 2.0 will FTBFS in experimental (e.g. KDE4). + (thanks goes to Modestas Vainius for the investigation) + + Made dependency on libmono0, libmono-corlib2.0-cil and + libmono-corlib1.0-cil strong for mono-utils to ensure that the correct + versions are pulled in (else we might confuse APT or funny buildds). + + Bumped debhelper build-dep to >= 7.1, as needed for the bundled + debian/dh_* scripts. + * debian/dh_clideps + debian/dh_makeclilibs: + + Synced from cli-common 0.6.0, needed for dh 7.1 support. + + [ David Paleino ] + * debian/patches/fix_TcpClient_IPv6_r122598.dpatch: + + Fix bug in TcpClient() implementation preventing IPv6 connections + from working + + -- Mirco Bauer Wed, 21 Jan 2009 23:39:02 +0100 + +mono (2.0.1-1) experimental; urgency=low + + [ Mirco Bauer ] + * New upstream (bugfix) release. + * debian/mono-1.0-devel.manpages: + + Removed mcs1 as it's already shipped in mono-mcs. + * debian/patches/99_autoreconf.dpatch: + + Updated + * debian/mono-devel.links: + + Make csc a symlink to gmcs, a runtime version neutral default + compiler. + * debian/patches/armel_fix_configure_fpu_check.dpatch: + + Forward ported patch from 1.2.4 to fix FTBFS on linux/armel. + * debian/patches/99_autoreconf.dpatch: + + Updated + * debian/mono-common.install: + + Name the /etc files and directories explicitly to make sure not to + install /etc/mconfig by accident when doing a binary-indep binary-arch + (in that order) build. + + [ Jo Shields ] + * debian/patches/armel-glibc-2.8.dpatch: + + Fix build failure on armel architecture on libc6 2.8 (Thanks + to Michael Casadevall for the patch) + + [ David Paleino ] + * Group Policy: + + implemented get-orig-source target in debian/rules + + -- Mirco Bauer Sun, 23 Nov 2008 16:16:00 +0100 + +mono (2.0-1) experimental; urgency=low + + * New upstream release. + + System.Web.Extensions is included in the debian source and binary + packages now, as JSON.NET was relicensed to MIT/X11 and thus no DFSGing + needed anymore! (Closes: #497213) + + With this release, we changed the default development stack from 1.0 to + 2.0. This has no influence to the runtime nor existing binary packages, + for more details see: + http://wiki.debian.org/Teams/DebianMonoGroup/Mono20Transition + * debian/copyright: + + Updated license info of JSON.NET + * debian/control: + + Removed libgda2-dev from buid-deps as debian/update-shlibs.local.sh + takes already care of it. + + mono-utils depends on libmono-corlib2.0-cil and only suggests + libmono-corlib1.0-cil now as the default runtime was changed to 2.0. + + Updated libcupsys2-dev build-dependency to libcups2-dev. + + Updated Standards-Version to 3.8.0 (no changes needed). + * debian/rules: + + Pass --enable-quiet-build=no to configure call, else we get a less + verbose build log. + + Bumped clilibs to 2.0 of libmono{1,2}.0-cil, libmono-cairo{1,2}.0-cil, + libmono-data-tds{1,2}.0-cil, libmono-system2.0-cil, + libmono-system-runtime2.0-cil, libmono-security{1,2}.0-cil, + libmono-web2.0-cil, libmono-winforms2.0-cil and libmono-system2.1-cil. + * debian/mono.runtime-script: + + Call the script of gacutil instead of passing the application filename + directly to mono, as we rely on the default gacutil now provided by the + mono-gac package. + * debian/patches/method-signature-testing.dpatch + debian/patches/pass_CPPFLAGS_nicely_r98803.dpatch + debian/patches/fix_bound_checking_r98524_r98527.dpatch + debian/patches/fix_softfloat_r105848.dpatch + debian/patches/fix_stack_alignment_r105650_r105651.dpatch + debian/patches/fix_xen_support_r103474_r103475.dpatch + debian/patches/fix_Dictionary_preventing_GC_r102114.dpatch + debian/patches/fix_TdsConnectionPool_svn.dpatch + debian/patches/fix_Assembly.LoadFrom_deadlock.dpatch: + + Removed, already applied upstream. + * debian/patches/dont_build_System.Web.Extensions.dpatch: + + Disabled, JSON.NET was re-licensed to MIT/X11. + * debian/libmono-system-web2.0-cil.install: + + Added System.Web.Extensions.dll and System.Web.Extensions.Design.dll. + * debian/update-shlibs.local.sh: + + Fixed grep calls so it doesn't match udeb lines. + * debian/shlibs.local: + + Updated + * debian/control + debian/libmono-mozilla0.2-cil.install + debian/libmono-webbrowser0.5-cil.install: + + Renamed libmono-mozilla0.2-cil to libmono-webbrowser0.5-cil and + removed Replaces. + * debian/control + debian/libmono{1,2}.0-cil.install + debian/libmono-posix{1,2}.0-cil.install: + debian/libmono-getoptions{1,2}.0-cil.install: + debian/libmono-data{1,2}.0-cil.install: + + Moved the Mono.Posix, Mono.GetOptions and Mono.Data.* libraries into + extra packages to support smaller install sizes of typical applications + (e.g. tomboy or gnome-do). + + Added libmono-posix{1,2}.0-cil, libmono-getoptions{1,2}.0-cil and + libmono-data{1,2}.0-cil as dependency of libmono{1,2}-cil to aid a smooth + runtime transition. + * debian/libmono-system-data2.0-cil.install: + + Added System.Data.DataSetExtensions.dll and System.Data.Linq.dll. + * debian/rules + debian/libmono{1,2}.0-cil.install: + + Dropped Mono.Security.Win32.dll as the library is only useful on + Windows. + * debian/patches/build_genxs_2.0.dpatch: + + Enables compiling genxs for CLI 2.0 as upstream provided a genxs2 script + but forgot to build the actual application. + * debian/mono-2.0-devel.install + debian/mono-2.0-devel.manpages: + + Added xsd2 and genxs2 + * debian/mono-devel.install + debian/mono-devel.manpages + debian/mono-1.0-devel.install + debian/mono-1.0-devel.manpages: + + Moved all unversioned tools and default scripts (with their manpages) to + mono-devel. + * debian/mono-mcs.install + debian/mono-mcs.manpages + debian/mono-gmcs.install + debian/mono-gmcs.manpages + debian/mono-devel.install + debian/mono-devel.manpages + debian/control: + + Moved gmcs script and manpage from mono-gmcs to mono-devel. + + Added Replaces for mono-mcs and mono-gmcs to mono-devel. + + Added gmcs2 script and manpage to mono-gmcs + + Added mcs1 script and manpage to mono-mcs. + This changes are needed to get a default compiler target using a single + package that depends on the current default which is 2.0 (gmcs2). + * debian/System.Windows.Forms.dll.config: + + Added dll-map for libgdk_pixbuf-2.0.so + * debian/control: + + Improved many package descriptions by adding the names of the + libraries they contain with a brief description of what they do. + * debian/control + debian/mono-gac.install + debian/mono-{1,2}.0-gac.install: + + The default script "gacutil" is still shipped in mono-gac but + "gacutil1" and "gacutil2" are now in mono-1.0-gac and mono-2.0-gac. + mono-gac pulls in mono-2.0-gac by default. + This is needed to make a 2.0-only install possible. + * debian/control: + + Added mono-1.0-runtime and mono-2.0-runtime package, which pull in the + runtime stack of the specific runtime version in. + mono-runtime pulls in mono-2.0-runtime as the new default runtime. + This is needed to make a 2.0-only install possible. + * debian/libmono-dev.install: + + Added dotnet35.pc + * debian/mono-smcs.install: + + Added smcs.pc + * debian/control: + + s/meta package/metapackage/ as lintian says so. + + -- Mirco Bauer Tue, 11 Nov 2008 00:21:27 +0100 + --- mono-2.4.4~svn151842.orig/debian/libmono-relaxng2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-relaxng2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Commons.Xml.Relaxng/2.0.*/ +debian/tmp/usr/lib/mono/2.0/Commons.Xml.Relaxng.dll --- mono-2.4.4~svn151842.orig/debian/libmono-system2.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system2.0-cil.clideps-override @@ -0,0 +1,7 @@ +suggests libfam0 +suggests libgamin0 +suggests libx11-6 +suggests libasound2 +suggests libcups2 +suggests libgdiplus +suggests libmono-winforms2.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-system-web2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-web2.0-cil.install @@ -0,0 +1,21 @@ +debian/tmp/usr/lib/mono/gac/System.Web/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Extensions/1.0.61025.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Extensions/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Extensions.Design/1.0.61025.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Extensions.Design/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Services/2.0.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.ComponentModel.DataAnnotations/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Abstractions/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.DynamicData/3.5.0.0__*/ +debian/tmp/usr/lib/mono/gac/System.Web.Routing/3.5.0.0__*/ +debian/tmp/usr/lib/mono/2.0/System.Web.dll +debian/tmp/usr/lib/mono/2.0/System.Web.Extensions.dll +debian/tmp/usr/lib/mono/2.0/System.Web.Extensions.Design.dll +debian/tmp/usr/lib/mono/2.0/System.Web.Services.dll +debian/tmp/usr/lib/mono/2.0/System.ComponentModel.DataAnnotations.dll +debian/tmp/usr/lib/mono/2.0/System.Web.Abstractions.dll +debian/tmp/usr/lib/mono/2.0/System.Web.DynamicData.dll +debian/tmp/usr/lib/mono/2.0/System.Web.Routing.dll +debian/tmp/usr/lib/mono/3.5/System.Web.Extensions.Design.dll +debian/tmp/usr/lib/mono/compat-2.0/System.Web.Extensions.Design.dll +debian/tmp/usr/lib/mono/compat-2.0/System.Web.Extensions.dll --- mono-2.4.4~svn151842.orig/debian/libmono-oracle2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-oracle2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.Data.OracleClient/2.0.*/ +debian/tmp/usr/lib/mono/2.0/System.Data.OracleClient.dll --- mono-2.4.4~svn151842.orig/debian/shlibs.local +++ mono-2.4.4~svn151842/debian/shlibs.local @@ -0,0 +1,14 @@ +libMonoPosixHelper 0 mono-runtime (>= 2.4) +libMonoSupportW 0 mono-runtime (>= 2.4) +libgdiplus 0 libgdiplus (>= 2.4) +libgluezilla 0 libgluezilla (>= 2.4) +libcairo 2 libcairo2 (>= 1.8.0-2) +libfbclient 2 libfbclient2 (>= 2.1.2) +libsqlite 0 libsqlite0 (>= 2.8.17) +libsqlite3 0 libsqlite3-0 (>= 3.6.13) +libasound 2 libasound2 (>> 1.0.18) +libgamin-1 0 libgamin0 +libcups 2 libcups2 (>= 1.3.8) +librsvg-2 2 librsvg2-2 (>= 2.22.3) +libgtk-x11-2.0 0 libgtk2.0-0 (>= 2.16.0) +libgnomeui-2 0 libgnomeui-0 (>= 2.22.0) --- mono-2.4.4~svn151842.orig/debian/libmono-microsoft8.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-microsoft8.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/gac/Microsoft.JScript/8.0.*/ +debian/tmp/usr/lib/mono/gac/Microsoft.VisualC/8.0.*/ +debian/tmp/usr/lib/mono/gac/Microsoft.Vsa/8.0.*/ +debian/tmp/usr/lib/mono/2.0/Microsoft.JScript.dll +debian/tmp/usr/lib/mono/2.0/Microsoft.VisualC.dll +debian/tmp/usr/lib/mono/2.0/Microsoft.Vsa.dll --- mono-2.4.4~svn151842.orig/debian/libmono-i18n2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-i18n2.0-cil.install @@ -0,0 +1,8 @@ +/usr/lib/mono/gac/I18N.CJK/2.0.*/ +/usr/lib/mono/gac/I18N.MidEast/2.0.*/ +/usr/lib/mono/gac/I18N.Other/2.0.*/ +/usr/lib/mono/gac/I18N.Rare/2.0.*/ +/usr/lib/mono/2.0/I18N.CJK.dll +/usr/lib/mono/2.0/I18N.MidEast.dll +/usr/lib/mono/2.0/I18N.Other.dll +/usr/lib/mono/2.0/I18N.Rare.dll --- mono-2.4.4~svn151842.orig/debian/libmono-cil-dev.install +++ mono-2.4.4~svn151842/debian/libmono-cil-dev.install @@ -0,0 +1,9 @@ +/usr/lib/pkgconfig/mono-cairo.pc +/usr/lib/pkgconfig/cecil.pc +/usr/lib/pkgconfig/system.web.extensions_1.0.pc +/usr/lib/pkgconfig/system.web.extensions.design_1.0.pc +/usr/lib/pkgconfig/system.web.mvc.pc +/usr/lib/pkgconfig/wcf.pc +/usr/lib/pkgconfig/mono.web.pc +/usr/lib/pkgconfig/dotnet.pc +/usr/lib/pkgconfig/dotnet35.pc --- mono-2.4.4~svn151842.orig/debian/libmono-corlib2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-corlib2.0-cil.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/mono/2.0/mscorlib.dll* --- mono-2.4.4~svn151842.orig/debian/mono-aot-wrapper +++ mono-2.4.4~svn151842/debian/mono-aot-wrapper @@ -0,0 +1,66 @@ +#!/bin/sh + +# Description: This wrapper script pre-compiles (AOT) the passed assembly +# before executing it, and AOTs new assemblies in build output +# directory. + +export MONO_PATH + +DEBIAN_DIR=$(dirname $0) +#MONO_DIR=$DEBIAN_DIR/.. +MONO_DIR=${DEBIAN_DIR/%\/debian} +ASSEMBLY=$1 + +#case $ASSEMBLY in +# *.dll | *.exe) +# if [ -f $ASSEMBLY -a ! -f "$ASSEMBLY.so" ]; then +# $MONO_DIR/runtime/mono-wrapper --aot $ASSEMBLY +# fi +# ;; +#esac + +$MONO_DIR/runtime/mono-wrapper "$@" + +ASSEMBLIES_DIR=$MONO_DIR/mcs/class/lib +ASSEMBLIES=$(find $ASSEMBLIES_DIR -name "*.dll" -or -name "*.exe") +for ASSEMBLY in $ASSEMBLIES; do + ASSEMBLY_DIR=$(dirname $ASSEMBLY) + ASSEMBLY_NAME=$(basename $ASSEMBLY) + if [ ! -f "$ASSEMBLY.so" ]; then + #if [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0" ] || + # [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_1" ] || + # [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_1_tuned" ]; then + # # AOT for 2.0/2.1 is buggy and likes to crash + # true + #elif [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0_bootstrap" ]; then + # # AOT for 2.0 runtime libs seems to work though + # $MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY + #else + # $MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY + #fi + + # only AOT basic / 1.0 bootstrap / 2.0 bootstrap + if [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/basic" ] || + [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_1_1_bootstrap" ] || + [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0_bootstrap" ]; then + $MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY + fi + + # always AOT libs used by the compilers + if [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/default" ]; then + if [ "$ASSEMBLY_NAME" = "mscorlib.dll" ] || + [ "$ASSEMBLY_NAME" = "System.dll" ] || + [ "$ASSEMBLY_NAME" = "System.Xml.dll" ]; then + $MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY + fi + fi + #elif [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0" ] || + # [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_1" ]; then + # if [ "$ASSEMBLY_NAME" = "mscorlib.dll" ] || + # [ "$ASSEMBLY_NAME" = "System.dll" ] || + # [ "$ASSEMBLY_NAME" = "System.Xml.dll" ]; then + # MONO_PATH=$MONO_DIR/class/lib/net_2_0:$MONO_PATH $MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY + # fi + #fi + fi +done --- mono-2.4.4~svn151842.orig/debian/dh_makeclilibs +++ mono-2.4.4~svn151842/debian/dh_makeclilibs @@ -0,0 +1,305 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_makeclilibs - automatically create clilibs file + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-r>] [B<-V>I<[dependancies]>] [B<-m>I] [B<-l>I] [B<-X>I] + +=head1 DESCRIPTION + +dh_makeclilibs is a debhelper program that automatically scans for +versioned CIL (.NET) assemblies, and generates a clilibs file for the +libraries it finds. + +By default, dh_makeclilibs scans the .dll files in the package +directories and writes the discovered compatibility data (major/minor, +build, token) to "clilibs" files in the appropriate packages. + +However, if a file like debian/package.clilibs is found, this one will +be installed and no scanning is performed. + +=head1 OPTIONS + +=over 4 + +=item B<-V>, B<-V>I + +=item B<--version-info>, B<--version-info=>I + +By default, the clilibs file generated by this program does not make packages +depend on any particular version of the package containing the assembly. +It may be necessary for you to add some version dependency +information to the clilibs file. If -V is specified with no dependency +information, the current version of the package is plugged into a +dependency that looks like "packagename (>= packageversion)". If -V is +specified with parameters, the parameters can be used to specify the exact +dependency information needed (be sure to include the package name). + +Beware of using -V without any parameters; this is a conservative setting +that always ensures that other packages' shared library dependencies are at +least as tight as they need to be, so that if the maintainer screws up then +they won't break. The flip side is that packages might end up with +dependencies that are too tight and so find it harder to be upgraded. + +=item B<-m>I + +Like -V, but specifies only the version string, the package name comes +from the package that is actually processed. This option is more +flexible if you try to set a range of valid versions for different +assembly packages coming from one source package. + +=item B<-l>I + +Specifies the (expected) version of this package when the compatibility +to the current assemblies will break. + +=item B<-r> + +An experimental option to automaticaly guess the next incompatible +upstream version and insert them (like working with -l and -m options, +see above). Do not expect the guessed values to be always correct - +normally, the usualy assumed version string has the form +generation.major.minor where versions with changes in "minor" are +compatible and "major" versions break with compatibility. + +=item B<-X>I, B<--exclude=>I + +Exclude files that contain "item" anywhere in their filename or directory +from being treated as shared libraries. + +=item B<--internal-mono> + +Uses the Mono runtime in . (used for bootstrapping Mono packages) + +=back + +=head1 EXAMPLES + + dh_makeclilibs + +Assuming this is a package named libfoobar0.9x-cil, generates a clilibs file that +looks something like: + libfoobar 1.0.2345.0_23a12f34 libfoobar0.9x-cil + + dh_makeclilibs -V + +Assuming the current version of the package is 0.93-3, generates a clilibs +file that looks something like: + libfoobar 1.0.2345.0_23a12f34 libfoobar0.9x-cil (>= 0.93-3) + + dh_makeclilibs -V 'libfoobar0.9x-cil (>= 0.92)' + +Generates a clilibs file that looks something like: + libfoobar 1.0.2345.0_23a12f34 libfoobar0.9x-cil (>= 0.92) + +Assuming that your package creates libfoobar-cil and liblafasel-cil, +which are compatible to 0.92 versions but the upstream is going to break +compatibility in the next version, 0.94: + + dh_makeclilibs -m 0.92 -l 0.94 + +Generates clilibs file that looks something like: + + libfoobar 1.0.2345.0_23a12f34 libfoobar-cil (>= 0.92), libfoobar-cil (<< 0.94) + +and + + liblafasel 1.0.2345.0_23a12f34 liblafasel-cil (>= 0.92), liblafasel-cil (<< 0.94) + +=cut + +# gar, debhelper 7.1 defines -V for all scripts already :( +init(options => { +# "V", => \$dh{V_FLAG}, + "r" => \$dh{R_FLAG}, + "m=s" => \$dh{M_PARAMS}, + "l=s" => \$dh{L_PARAMS}, + "internal-mono" => \$dh{INTERNAL_MONO_FLAG}, +}); + +my $clr; +my $cli = '/usr/bin/cli'; +my $cli_version = `$cli --version 2>&1`; +my $cli_parser; +my $sn = 'sn'; + +if (defined($dh{INTERNAL_MONO_FLAG}) || + (defined($ARGV[0]) && $ARGV[0] eq "internal-mono")) { + $clr = "mono"; + my $mono_path = "LD_LIBRARY_PATH=debian/tmp/usr/lib MONO_PATH=debian/tmp/usr/lib/mono/1.0:debian/tmp/usr/lib/mono/2.0"; + $cli_parser = "$mono_path debian/tmp/usr/bin/monodis"; + $sn = "$mono_path debian/tmp/usr/bin/mono debian/tmp/usr/lib/mono/1.0/sn.exe"; + verbose_print("Will use build Mono (debian/tmp/usr/bin/monodis) for CIL parsing."); +} elsif (-x "/usr/bin/monodis") { + $clr = "mono"; + $cli_parser = "/usr/bin/monodis"; + verbose_print("Will use Mono (/usr/bin/monodis) for CIL parsing."); +} elsif (-x "/usr/bin/ildasm") { + $clr = "pnet"; + $cli_parser = "/usr/share/cli-common/ildasm-monodis"; + verbose_print("Will use Portable.NET (/usr/bin/ildasm) for CIL parsing."); +} else { + error("Could not find a CIL disassembler, aborting."); +} + +{ + local $/=""; + open(FILE, 'debian/control'); + my @filedata = ; + close FILE; + if (!($filedata[0] =~ /Build-Depends(-Indep)?: .*cli-common-dev \(>= 0\.4\.4\)/)) { + warning("Warning! No Build-Depends(-Indep) on cli-common-dev (>= 0.4.4)!"); + } +} + +my $fh; +my %shlibdata; + +foreach my $package (@{$dh{DOPACKAGES}}) { + next if is_udeb($package); + + my $tmp = tmpdir($package); + + my %seen; + my $need_ldconfig = 0; + + doit("rm", "-f", "$tmp/DEBIAN/clilibs"); + if (-e "debian/$package.clilibs" ) { + complex_doit("cat debian/$package.clilibs > $tmp/DEBIAN/clilibs"); + } else { + # So, we look for files or links to existing files with names that + # match "*.so*". Matching *.so.* is not good enough because of + # broken crap like db3. And we only look at real files not + # symlinks, so we don't accidentually add clilibs data to -dev + # packages. This may have a few false positives, which is ok, + # because only if we can get a library name and a major number from + # objdump is anything actually added. + my $exclude = ''; + if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') { + $exclude = "! \\( $dh{EXCLUDE_FIND} \\) "; + } + open(FIND, "find $tmp -type f \\( -name '*.dll' \\) $exclude |"); + + dll: + while () { + chomp; + my ($library, $ver, $libfile); + $libfile = $_; + my $sig = `$sn -T $_ 2> /dev/null`; + $sig =~ s/.*key token: (\w+).*/$1/is; + if ($sig=~/\s/) { + warning "$libfile has no valid signature, ignoring"; + next dll; + } + my $dis = `$cli_parser --assembly $libfile 2>&1`; + if ($dis =~ m/Name:\s+(\S+)/) { + $library = $1; + $dis =~ m/Version:\s+(\S+)/; + $ver = $1; + } else { + # completely broken code, we need a mature app not + # depending on assembly loading + # verbose_print("trouble parsing monodis output, components not installed? Fallback to parsing the pure monodis output."); + # $dis = `monodis $libfile 2>&1`; + # $dis =~ /^module (\S+)/is; + # $library = $1; + # $library =~ s/'|"//; + warning("$cli_parser could not open $libfile, maybe some components not installed yet. Using filename to guess the assembly name :("); + $libfile=~ m,/(\d+\.\d+.\d+.\d+)__(\w+)/([^/]+)\.dll$,is; + next dll if (!($1 && $2 && $3)); + $ver=$1; + $sig=$2; + $library=$3; + } + + if (!-d "$tmp/DEBIAN") { + doit("install", "-d", "$tmp/DEBIAN"); + } + my $deps = $package; + + # Call isnative becuase it sets $dh{VERSION} + # as a side effect. + isnative($package); + my $version = $dh{VERSION}; + + # Old compatibility levels include the + # debian revision, while new do not. + if (!compat(3)) { + # Remove debian version, if any. + $version =~ s/-[^-]+$//; + } + + if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') { + $version = $dh{M_PARAMS}; + } + if ($dh{V_FLAG_SET}) { + if ($dh{V_FLAG} ne '' ) { + $deps = $dh{V_FLAG}; + } else { + $deps = "$package (>= $version)"; + } + } + if (defined($dh{R_FLAG})) { + $version =~ s/-[^-]+$//; + my @uvers = split ( /\./, $version ); + $uvers[1]++; + $deps = "$package (>= $version), $package (<< ".join(".", @uvers).")"; + } + if (defined($dh{M_PARAMS})) { + $deps = "$package (>= ".$dh{M_PARAMS}.")"; + } + if (defined($dh{L_PARAMS})) { + $deps .= ", $package (<< ".$dh{L_PARAMS}.")"; + } + if (defined($library) && + defined($ver) && + defined($deps) && + $library ne '' && + $ver ne '' && + $deps ne '') { + # Prevent duplicate lines from entering the file. + my $line = "$library $ver" . "__$sig $deps"; + + # extra dependencies are to be resolved by dh_clideps, + # don't forward the dependency libs to the apps where it + # does not belong to +# if ( my $extra = extraDeps ($libfile) ) { $line .= ", $extra"; } + if (!$seen{$line}) { + $seen{$line} = 1; + complex_doit("echo '$line' >> $tmp/DEBIAN/clilibs"); + } + } + } + } + close FIND; + + if (-e "$tmp/DEBIAN/clilibs") { + doit("chmod", 644, "$tmp/DEBIAN/clilibs"); + doit("chown", "0:0", "$tmp/DEBIAN/clilibs"); + } +} + +=head1 SEE ALSO + +L + +This program is a part of cli-common-dev. + +=head1 KNOWN BUGS + +Will possibly not work correctly with DH_COMPAT levels 1 and 2. + +=head1 AUTHOR + +Mirco Bauer , Eduard Bloch , +inspired by dh_makeshlibs by Joey Hess + +=cut --- mono-2.4.4~svn151842.orig/debian/libmono-system-messaging1.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-system-messaging1.0-cil.clideps-override @@ -0,0 +1 @@ +suggests libmono-winforms1.0-cil --- mono-2.4.4~svn151842.orig/debian/libmono-bytefx0.7.6.2-cil.install +++ mono-2.4.4~svn151842/debian/libmono-bytefx0.7.6.2-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/ByteFX.Data/0.7.6.2*/ +debian/tmp/usr/lib/mono/2.0/ByteFX.Data.dll --- mono-2.4.4~svn151842.orig/debian/libmono-corlib1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-corlib1.0-cil.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/mono/1.0/mscorlib.dll* --- mono-2.4.4~svn151842.orig/debian/libmono-webbrowser0.5-cil.install +++ mono-2.4.4~svn151842/debian/libmono-webbrowser0.5-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Mono.WebBrowser/0.5.0.0__*/ +debian/tmp/usr/lib/mono/2.0/Mono.WebBrowser.dll --- mono-2.4.4~svn151842.orig/debian/libmono-system-runtime1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-runtime1.0-cil.install @@ -0,0 +1,4 @@ +/usr/lib/mono/gac/System.Runtime.Remoting/1.0.*__*/ +/usr/lib/mono/gac/System.Runtime.Serialization.Formatters.Soap/1.0.*__*/ +/usr/lib/mono/1.0/System.Runtime.Remoting.dll +/usr/lib/mono/1.0/System.Runtime.Serialization.Formatters.Soap.dll --- mono-2.4.4~svn151842.orig/debian/libmono-profiler.postist +++ mono-2.4.4~svn151842/debian/libmono-profiler.postist @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if [ "$1" = "configure" ]; then + ldconfig +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-getoptions1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-getoptions1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/1.0/Mono.GetOptions.dll +debian/tmp/usr/lib/mono/gac/Mono.GetOptions/1.0.5000.0__*/ --- mono-2.4.4~svn151842.orig/debian/mono-runtime.dirs +++ mono-2.4.4~svn151842/debian/mono-runtime.dirs @@ -0,0 +1,3 @@ +usr/bin +usr/share/binfmts +usr/share/dotnet --- mono-2.4.4~svn151842.orig/debian/libmono-sharpzip0.6-cil.install +++ mono-2.4.4~svn151842/debian/libmono-sharpzip0.6-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.*/ +debian/tmp/usr/lib/mono/compat-1.0/ICSharpCode.SharpZipLib.dll --- mono-2.4.4~svn151842.orig/debian/libmono-npgsql1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-npgsql1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Npgsql/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Npgsql.dll --- mono-2.4.4~svn151842.orig/debian/libmono-peapi2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-peapi2.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/PEAPI/2.0.*/ +debian/tmp/usr/lib/mono/2.0/PEAPI.dll --- mono-2.4.4~svn151842.orig/debian/mono-utils.install +++ mono-2.4.4~svn151842/debian/mono-utils.install @@ -0,0 +1,5 @@ +debian/tmp/usr/bin/pedump +debian/tmp/usr/bin/monodis /usr/bin/ +debian/tmp/usr/bin/monograph +debian/tmp/usr/bin/mono-find-provides +debian/tmp/usr/bin/mono-find-requires --- mono-2.4.4~svn151842.orig/debian/libmono-ldap1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-ldap1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Novell.Directory.Ldap/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Novell.Directory.Ldap.dll --- mono-2.4.4~svn151842.orig/debian/prj2make-sharp.manpages +++ mono-2.4.4~svn151842/debian/prj2make-sharp.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/prj2make.1 --- mono-2.4.4~svn151842.orig/debian/mono-devel.prerm +++ mono-2.4.4~svn151842/debian/mono-devel.prerm @@ -0,0 +1,10 @@ +#!/bin/sh -e + +if [ "$1" = remove ]; then + update-alternatives --remove c-sharp-compiler /usr/bin/mono-csc + update-alternatives --remove resource-file-generator /usr/bin/resgen + update-alternatives --remove assembly-linker /usr/bin/al + update-alternatives --remove strong-name-tool /usr/bin/sn +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-simd2.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-simd2.0-cil.install @@ -0,0 +1,2 @@ +/usr/lib/mono/gac/Mono.Simd/2.0.0.0__*/ +/usr/lib/mono/2.0/Mono.Simd.dll --- mono-2.4.4~svn151842.orig/debian/mono-2.0-gac.manpages +++ mono-2.4.4~svn151842/debian/mono-2.0-gac.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/gacutil2.1 --- mono-2.4.4~svn151842.orig/debian/compat +++ mono-2.4.4~svn151842/debian/compat @@ -0,0 +1 @@ +7 --- mono-2.4.4~svn151842.orig/debian/libmono-system-data1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-system-data1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/System.Data/1.0.*/ +debian/tmp/usr/lib/mono/1.0/System.Data.dll --- mono-2.4.4~svn151842.orig/debian/libmono-bytefx0.7.6.1-cil.install +++ mono-2.4.4~svn151842/debian/libmono-bytefx0.7.6.1-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/ByteFX.Data/0.7.6.1*/ +debian/tmp/usr/lib/mono/1.0/ByteFX.Data.dll --- mono-2.4.4~svn151842.orig/debian/Mono.Data.SqliteClient.dll.config +++ mono-2.4.4~svn151842/debian/Mono.Data.SqliteClient.dll.config @@ -0,0 +1,4 @@ + + + + --- mono-2.4.4~svn151842.orig/debian/mono-gac.dirs +++ mono-2.4.4~svn151842/debian/mono-gac.dirs @@ -0,0 +1 @@ +usr/share/cli-common/runtimes.d --- mono-2.4.4~svn151842.orig/debian/dh_clideps +++ mono-2.4.4~svn151842/debian/dh_clideps @@ -0,0 +1,610 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_clideps - calculates CLI (.NET) dependencies + +=cut + +use strict; +use Cwd; +use File::Find; +use File::Temp; +use Debian::Debhelper::Dh_Lib; + +#eval 'use Debian::Debhelper::Dh_Lib'; +#print "You need to install the debhelper package in order to use this program!" if $@; + +=head1 SYNOPSIS + +B [S>] + +=head1 DESCRIPTION + +dh_clideps is a debhelper program that is responsible for generating the +${cli:Depends} substitutions and adding them to substvars files. + +The program will look at .dll/.exe and .config files in your package, and +will use the embedded dependency information to generate a dependency +string on assembly and shared libs packages, including the setting of +version ranges (as declared by the shlibs/clilibs files of the used +packages). The dependency on a certain CLR (Common Language Runtime) +version will be also added to the final variable. + +Note: the dependencies on shared libraries may be not resolved correctly +if there are no .config files associated with the the .exe/.dll file +which refers to the particular shared library (by its SONAME). + +If you use this program, your package should build-depend on cli-common-dev +(>= 0.4.0). + +=head1 OPTIONS + +=over 4 + +=item B<-d> + +Attempt to predict and avoid duplicates that may appear if you package +both, native shared libraries and DLL assemblies in one package. +The list of possibly duplicating candidates is expected to be in the +variable shlib:Depends from debian/package.substvars. + +=item B<-r> + +Don't set a strong versioned dependency on mono-runtime or other CLR packages. +This option can be used to specify a relaxed dependency on the VM/CLR +by-hand in the control file, eg. "mono-runtime | cli-runtime". + +=item B<-l>directory[:directory:directory:..] + +Before mondis is run, MONO_GAC_PREFIX and MONO_PATH are set to the specified directory (or +directories -- separate with colons). This is useful for multi-binary packages where a library is +built in one package and another package contains binaries linked against said library. Relative +paths will be made absolute for the benefit of monodis. + +Note that the directory given should be the complete or relative path to a directory that contains +the library. See example below. + +=item B + +Uses the mono runtime in . (used for bootstrapping mono packages) + +=head1 EXAMPLES + +Suppose that your source package produces libfoo1.0-cil and libbar1.0-cil +binary packages. +In your rules file, first run dh_makeclilibs, then dh_clideps: + (MONO_GAC_PREFIX example) + dh_makeclilibs -V + dh_clideps -l debian/libfoo1.0-cil/usr:debian/libbar1.0-cil/usr +or + (MONO_PATH example) + dh_clideps -l debian/foo-application/usr/lib/foo-application +or + (MONO_GAC_PREFIX example) + dh_clideps -l debian/tmp/usr + +=cut + +# gar, debhelper 7.1 defines -d for all scripts already :( +init(options => { +# "d" => \$dh{D_FLAG}, + "r" => \$dh{R_FLAG}, + "l=s", => \$dh{L_PARAMS}, + "internal-mono" => \$dh{INTERNAL_MONO_FLAG}, +}); + +my $clr; +my $cli = '/usr/bin/cli'; +my $cli_version = `$cli --version 2>&1`; +my $cli_parser; +my $cli_parser_paths; +my $pwd = `pwd`; +chomp $pwd; + +my $mono_gac_prefix = ""; +my $mono_path = ""; +if ($dh{L_PARAMS}) { + my @mono_paths = (); + my @mono_gac_prefixes = (); + # Add to existing paths, if set. + push(@mono_gac_prefixes, $ENV{'MONO_GAC_PREFIX'}) if exists $ENV{'MONO_GAC_PREFIX'}; + push(@mono_paths, $ENV{'MONO_PATH'}) if exists $ENV{'MONO_PATH'}; + foreach (split(/:/, $dh{L_PARAMS})) { + # Force the path absolute. + my $full_path; + if (m:^/:) { + $full_path = $_; + } else { + $full_path = getcwd()."/$_"; + } + if (-d "$full_path/lib/mono/gac") { + # it's a GAC prefix + push(@mono_gac_prefixes, $full_path); + } else { + # it's a Mono PATH + push(@mono_paths, $full_path); + } + } + $mono_gac_prefix .= ":" . join(':', @mono_gac_prefixes); + $mono_path .= ":" . join(':', @mono_paths); +} else { + $mono_gac_prefix = $ENV{'MONO_GAC_PREFIX'} if exists $ENV{'MONO_GAC_PREFIX'}; + $mono_path = $ENV{'MONO_PATH'} if exists $ENV{'MONO_PATH'}; +} + +if (defined($dh{INTERNAL_MONO_FLAG}) || + (defined($ARGV[0]) && $ARGV[0] eq "internal-mono")) { + $clr = "mono"; + $cli_parser = "$pwd/debian/tmp/usr/bin/monodis"; + $cli_parser_paths = "LD_LIBRARY_PATH=$pwd/debian/tmp/usr/lib MONO_PATH=$mono_path:$pwd/debian/tmp/usr/lib/mono/1.0:$pwd/debian/tmp/usr/lib/mono/2.0 MONO_GAC_PREFIX=$mono_gac_prefix "; + $cli_version = `LD_LIBRARY_PATH=$pwd/debian/tmp/usr/lib $pwd/debian/tmp/usr/bin/mono --version 2>&1`; + verbose_print("Will use built Mono (debian/tmp/usr/bin/monodis) for CIL parsing."); +} elsif (-x "/usr/bin/monodis") { + $clr = "mono"; + $cli_parser = "/usr/bin/monodis"; + $cli_parser_paths = "MONO_PATH=$mono_path MONO_GAC_PREFIX=$mono_gac_prefix "; + verbose_print("Will use Mono (/usr/bin/monodis) for CIL parsing."); +} elsif (-x "/usr/bin/ildasm") { + $clr = "pnet"; + $cli_parser = "/usr/share/cli-common/ildasm-monodis"; + verbose_print("Will use Portable.NET (/usr/bin/ildasm) for CIL parsing."); +} else { + error("Could not find a CIL disassembler, aborting."); +} + +{ + local $/=""; + open(FILE, 'debian/control'); + my @filedata = ; + close(FILE); + if (!($filedata[0] =~ /Build-Depends(-Indep)?: .*cli-common-dev \(>= 0\.4\.4\)/)) { + warning("Warning! No Build-Depends(-Indep) on cli-common-dev (>= 0.4.4)!"); + } +} + +if (!defined $cli_version || $cli_version eq "" ) { + warning("Warning! No CLR is installed. (Probably forgot to Build-Depend on cli-virtual-machine.)"); +} else { + if ($clr eq "mono") { + if ($cli_version =~ /(mint|version)\ ([\d\.]+)/) { + $cli_version = "$2"; + } else { + error("Unable to parse Mono version out of \"$cli_version\"."); + } + } elsif ($clr eq "pnet") { + if ($cli_version =~ /ILRUN\ ([\d\.]+)/) { + $cli_version = "$1"; + } else { + error("Unable to parse Portable.NET version out of \"$cli_version\"."); + } + } else { + error("Unable to detect CLR, aborting."); + } +} + + +# Cleaning the paths given on the command line +foreach (@ARGV) { + s#/$##; + s#^/##; +} + +my $fh; + +verbose_print("Loading clilibs..."); +my %clilibdata; +open($fh, "cat /var/lib/dpkg/info/*.clilibs debian/*/DEBIAN/clilibs 2> /dev/null |"); +while (<$fh>) { + /(\S+)\s+(\S+)\s+(\w.*)\n?/; + $clilibdata{"$1/$2"} = $3; +} +close($fh); + + +verbose_print("Loading shlibs..."); +my %shlibdata; +open($fh, "cat /var/lib/dpkg/info/*.shlibs $pwd/debian/shlibs.local $pwd/debian/*/DEBIAN/shlibs 2> /dev/null |"); +while (<$fh>) { + /(\S+)\s+(\S+)\s+(\w.*)\n?/; + my ($soname, $soversion, $dependency); + #chomp; + #my($soname, $soversion, $dependency) = split(/\s+/, $_, 3); + $soname = $1; + $soversion = $2; + $dependency = $3; + $shlibdata{"$soname.so.$soversion"} = $dependency; +} +close($fh); + +our $needs_net_1_0; +our $needs_net_2_0; +our $needs_net_2_1; + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp = tmpdir($package); + my %refs = ( depends => [], + recommends => [], + suggests => [] ); + my $found_exe = 0; + $needs_net_1_0 = 0; + $needs_net_2_0 = 0; + $needs_net_2_1 = 0; + + # for idempotency + delsubstvar($package, "cli:Depends"); + delsubstvar($package, "cli:Suggests"); + delsubstvar($package, "cli:Recommends"); + + # find binaries + find (sub { + return unless -f && !-l && /\.(exe|dll)$/; + my $file = $_; + if (/\.exe$/) { + $found_exe = 1; + } + + verbose_print("Package: $package Assembly: $file"); + + my %shlibRefs = resolveShlibRefs($package, $file); + push(@{$refs{depends}}, @{$shlibRefs{depends}}); + push(@{$refs{recommends}}, @{$shlibRefs{recommends}}); + push(@{$refs{suggests}}, @{$shlibRefs{suggests}}); + + my %clilibRefs = resolveClilibRefs($package, $tmp, $file); + push(@{$refs{depends}}, @{$clilibRefs{depends}}); + push(@{$refs{recommends}}, @{$clilibRefs{recommends}}); + push(@{$refs{suggests}}, @{$clilibRefs{suggests}}); + }, $tmp); + + $refs{depends} = filterDuplicates($package, $refs{depends}); + $refs{recommends} = filterDuplicates($package, $refs{recommends}); + $refs{suggests} = filterDuplicates($package, $refs{suggests}); + + my $vm_ref = ""; + if (!defined($dh{R_FLAG}) && $found_exe) { + if ($clr eq "mono") { + if ($needs_net_2_1) { + $vm_ref = "mono-runtime (>= 1.2.6), "; + } elsif ($needs_net_2_0) { + $vm_ref = "mono-runtime (>= 1.1.8.1), "; + } elsif ($needs_net_1_0) { + $vm_ref = "mono-runtime (>= 1.0), "; + } else { + $vm_ref = "mono-runtime (>= $cli_version), "; + } + } elsif ($clr eq "pnet") { + $vm_ref = "pnet-interpreter (>= $cli_version), "; + } + } + + my $dh_ref = ""; + if (-f "$tmp/usr/share/cli-common/packages.d/$package.installcligac") { + # this package uses late GAC install, thus we need cli-common at package install time + if (-f "debian/cligacpolicy" || -f "debian/$package.cligacpolicy") { + # if this package uses dh_cligacpolicy then we need 0.5.4 for the policy-remove script in .postrm + # and 0.5.6 to get a working .postrm script (tried also to remove on purge) + $dh_ref = "cli-common (>= 0.5.6), "; + } else { + # we still need at least 0.5.1, as older versions silently missed installing policy files + $dh_ref = "cli-common (>= 0.5.1), "; + } + } + $vm_ref .= $dh_ref; + + #$deps .= join(", ", "", + # sort { + # # beautify the sort order, requested by meebey + # my $apkg; + # $a =~ /^\S+/; + # $apkg=$&; + # $b =~ /^\S+/; + # if($apkg eq $&) { + # return -1 if( ($a=~/>=/) && ($b=~/<=/) && ($a=~/<) { + if (/^shlibs:Depends=(.*)\n?/) { + for (split(/\s*,\s*/, $1)) { + delete $packagesFiltered{$_}; + } + } + } + close($fh); + } else { + verbose_print("Could not read $pwd/debian/$package.substvars"); + } + } + + return [ keys %packagesFiltered ]; +} + +sub loadDllMap { + my $filename = shift; + our $dllmapdata = shift; + if (!-f $filename) { + verbose_print("loadDllMap(): DLL map $filename not found, ignoring..."); + return; + } + + use XML::DOM; + my $parser = new XML::DOM::Parser; + my $doc = $parser->parsefile($filename, whitespace => 'strip'); + my $root = $doc->getDocumentElement(); + my @mapentries = $root->getElementsByTagName("dllmap"); + foreach my $mapentry (@mapentries) { + my $dll = $mapentry->getAttribute("dll"); + my $target = $mapentry->getAttribute("target"); + #verbose_print("DLL map: '$dll' target: '$target'"); + $dllmapdata->{$dll} = $target; + } +} + +sub loadOverrides { + my $package = shift; + my $overridedata = shift; + + # load clideps overrides + verbose_print("Loading clideps-override for $package..."); + my $fh; + open($fh, "cat $pwd/debian/$package.clideps-override 2> /dev/null |"); + while (<$fh>) { + /(\S+)\s+(\S+)(?:\s+(\(\S+\s+\S+\)))?\n?/; + my ($type, $package, $version); + $type = $1; + $package = $2; + $version = $3 if defined($3); + if ($version) { + $overridedata->{$package} = $type." ".$version; + } else { + $overridedata->{$package} = $type; + } + } + close($fh); +} + +sub resolveOverride { + my $package = shift; + my $pkgref = shift; + my %ret = ( depends => undef, + recommends => undef, + suggests => undef ); + + my $type = "depends"; + my $newpkgref = $pkgref; + $newpkgref =~ m/(\S+)(?:\s+(\(\S+\s+\S+\)))?/; + my $pkgname = $1; + my $ver = $2; + # hack for libc6, + # for ia64 and alpha the package name is libc6.1, + # for kfreebsd-i386 and kfreebsd-amd64 it is libc0.1 + if ($pkgname =~ m/^libc[06]/) { + $newpkgref = "libc6 $ver | libc6.1 $ver | libc0.1 $ver"; + } + + my %overridedata; + loadOverrides($package, \%overridedata); + if (defined($overridedata{$pkgname})) { + verbose_print("Found clideps-override: $pkgname for: $package"); + + my $override = $overridedata{$pkgname}; + $override =~ m/(\S+)(?:\s+(\(\S+\s+\S+\)))?/; + if ($1 eq "suggests" || + $1 eq "recommends") { + $type = $1; + } elsif ($1 eq "ignores") { + } else { + warning("Warning: unknown override type: $1 in: '$override' for: $package!"); + } + + if (defined($2)) { + $newpkgref = "$pkgname $2"; + } else { + $newpkgref = $pkgref; + } + } + verbose_print("resolved pkgref: $pkgref to $type: $newpkgref"); + $ret{$type} = $newpkgref; + + return %ret; +} + +sub resolveClilibRefs { + my $package = shift; + my $tmp = shift; + my $assembly_filename = shift; + my %ret = ( depends => [], + recommends => [], + suggests => [] ); + + my (undef, $tmpfile) = File::Temp::tempfile("/tmp/".basename($0).".XXXX", UNLINK => 1); + my $command = "LANG=C $cli_parser_paths MONO_GAC_PREFIX=\$MONO_GAC_PREFIX:$tmp/usr $cli_parser --assemblyref $assembly_filename 2>&1 > $tmpfile"; + verbose_print("running CLI parser command: $command"); + + system($command); + if ($?) { + my $output; + { + local *F; + open(F, $tmpfile); + local $/; + $output = ; + close(F); + } + error("cli_parser call failed: '".$command."' rc: $? output: $output"); + return; + } + + my ($ver, $name, $key); + local *F; + open(F, $tmpfile); + while () { + $ver = $1 if /Version=(.*)\n/; + $name = $1 if /Could not find assembly ([^,]+),/; + $name = $1 if /Name=(.*)\n/; + $ver = "$1.$2" if /Major\/Minor:\s*(\d+),(\d+)/; + $ver .= ".$1.$2" if /Build:\s*(\d+),(\d+)/; + + if (/0x\S+:.([ABCDEF0123456789 ]+)\n/ || /Token:\s*(\w+)/) { + $key = $1; + $key =~ s/\ //g; + $key = $ver . "__" . lc($key); + my $compat = "$name/$key"; + if (!defined($clilibdata{$compat})) { + warning("Warning: No Debian dependency data for $name ($key)!"); + } else { + my $pkgref = $clilibdata{$compat}; + my %overriddenRef = resolveOverride($package, $pkgref); + push(@{$ret{depends}}, $overriddenRef{depends}); + push(@{$ret{recommends}}, $overriddenRef{recommends}); + push(@{$ret{suggests}}, $overriddenRef{suggests}); + } + + if ($name eq "mscorlib") { + if ($ver eq "1.0.5000.0") { + $needs_net_1_0 = 1; + } elsif ($ver eq "2.0.3600.0") { + $needs_net_2_0 = 1; + } elsif ($ver eq "2.0.0.0") { + $needs_net_2_0 = 1; + } elsif ($ver eq "2.1.0.0") { + $needs_net_2_1 = 1; + } else { + warning("Warning: Unknown mscorlib version: $ver!"); + } + } + } + } + close(F); + + return %ret; +} + +sub resolveShlibRefs { + my $package = shift; + my $assembly_filename = shift; + my $config_filename = $assembly_filename.".config"; + my %ret = ( depends => [], + recommends => [], + suggests => [] ); + if (-r $config_filename) { + verbose_print("Found DLL map: $config_filename"); + } else { + verbose_print("Found no specific DLL map, but resolving modulerefs anyway"); + } + + # load dll maps + verbose_print("Loading DLL maps for: $assembly_filename..."); + my %dllmapdata; + loadDllMap("/etc/mono/config", \%dllmapdata); + loadDllMap("$pwd/debian/tmp/etc/mono/config", \%dllmapdata); + loadDllMap($config_filename, \%dllmapdata); + + # parse modulerefs + my (undef, $tmpfile) = File::Temp::tempfile("/tmp/".basename($0).".XXXX", UNLINK => 1); + my $command = "LANG=C $cli_parser_paths $cli_parser --moduleref $assembly_filename 2>&1 > $tmpfile"; + + system($command); + if ($?) { + my $output; + { + local *F; + open(F, $tmpfile); + local $/; + $output = ; + close(F); + } + error("cli_parser call failed: '".$command."' rc: $? output: $output"); + return; + } + + local *F; + open(F, $tmpfile); + while () { + my $name = $1 if /\d+:\s+(.*)\n/; + if (!defined($name)) { + next; + } + my $target = $dllmapdata{$name}; + + if (defined($target)) { + $target = basename($target); + verbose_print("Resolved moduleref via DLL map: $name to: $target"); + } elsif (defined($shlibdata{$name})) { + verbose_print("Resolved moduleref via direct match in shlibs"); + } else { + warning("Warning: Could not resolve moduleref: $name for: $assembly_filename!"); + next; + } + + my $pkgref; + if (defined($target) && defined($shlibdata{$target})) { + $pkgref = $shlibdata{$target}; + } elsif (defined($shlibdata{$name})) { + $pkgref = $shlibdata{$name}; + } elsif (defined($target) && defined($shlibdata{$target.".0"})) { + # for DLL maps that have an unversioned library as target + $pkgref = $shlibdata{$target.".0"}; + } else { + warning("Warning: Missing shlibs entry: $target or $name for: $assembly_filename!"); + next; + } + + my %overriddenRef = resolveOverride($package, $pkgref); + push(@{$ret{depends}}, $overriddenRef{depends}); + push(@{$ret{recommends}}, $overriddenRef{recommends}); + push(@{$ret{suggests}}, $overriddenRef{suggests}); + } + close(F); + + return %ret; +} + +=head1 SEE ALSO + +L + +This program is a part of cli-common-dev. + +=head1 AUTHOR + +Mirco Bauer , Eduard Bloch , +partialy based on code from Brendan O'Dea and +Joey Hess . + +=cut --- mono-2.4.4~svn151842.orig/debian/libmono-cscompmgd7.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-cscompmgd7.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/cscompmgd/7.0.*/ +debian/tmp/usr/lib/mono/1.0/cscompmgd.dll --- mono-2.4.4~svn151842.orig/debian/libmono-firebirdsql1.7-cil.install +++ mono-2.4.4~svn151842/debian/libmono-firebirdsql1.7-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/ +debian/tmp/usr/lib/mono/2.0/FirebirdSql.Data.Firebird.dll --- mono-2.4.4~svn151842.orig/debian/libmono-accessibility1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-accessibility1.0-cil.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/mono/gac/Accessibility/1.0.*/ +debian/tmp/usr/lib/mono/1.0/Accessibility.dll --- mono-2.4.4~svn151842.orig/debian/mono-runtime.prerm +++ mono-2.4.4~svn151842/debian/mono-runtime.prerm @@ -0,0 +1,11 @@ +#!/bin/sh -e + +if [ "$1" = remove ] && [ -x /usr/sbin/update-binfmts ]; then + update-binfmts --package mono-runtime --remove cli /usr/bin/cli +fi + +if [ "$1" = remove ]; then + update-alternatives --remove cli /usr/bin/mono +fi + +#DEBHELPER# --- mono-2.4.4~svn151842.orig/debian/libmono-winforms1.0-cil.install +++ mono-2.4.4~svn151842/debian/libmono-winforms1.0-cil.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/mono/gac/System.Windows.Forms/1.0.*/ +debian/tmp/usr/lib/mono/gac/System.Drawing.Design/1.0.*/ +debian/tmp/usr/lib/mono/gac/System.Design/1.0.*/ +debian/tmp/usr/lib/mono/1.0/System.Windows.Forms.dll +debian/tmp/usr/lib/mono/1.0/System.Drawing.Design.dll +debian/tmp/usr/lib/mono/1.0/System.Design.dll --- mono-2.4.4~svn151842.orig/debian/icu-test.cs +++ mono-2.4.4~svn151842/debian/icu-test.cs @@ -0,0 +1,11 @@ + +public class MainClass +{ + public static void Main() + { + System.Console.WriteLine("This should output (depending in your locales) something like:"); + System.Console.WriteLine("\"Thursday, 27 May 2004 22:14:01\""); + System.Console.WriteLine("Actual Output:"); + System.Console.WriteLine("\""+System.DateTime.Now.ToString("F")+"\""); + } +} --- mono-2.4.4~svn151842.orig/debian/libmono-winforms1.0-cil.clideps-override +++ mono-2.4.4~svn151842/debian/libmono-winforms1.0-cil.clideps-override @@ -0,0 +1,4 @@ +suggests libgtk2.0-0 +suggests libgnomeui-0 +suggests librsvg2-2 +suggests libglib2.0-0 --- mono-2.4.4~svn151842.orig/debian/libmono-profiler.install +++ mono-2.4.4~svn151842/debian/libmono-profiler.install @@ -0,0 +1 @@ +/usr/lib/libmono-profiler-*.so* --- mono-2.4.4~svn151842.orig/debian/detector/Makefile +++ mono-2.4.4~svn151842/debian/detector/Makefile @@ -0,0 +1,6 @@ +binfmt-detector-cli: binfmt-detector-cli.c cil-coff.h + $(CC) binfmt-detector-cli.c -o binfmt-detector-cli + strip binfmt-detector-cli + +clean: + rm -f binfmt-detector-cli --- mono-2.4.4~svn151842.orig/debian/detector/binfmt-detector-cli.c +++ mono-2.4.4~svn151842/debian/detector/binfmt-detector-cli.c @@ -0,0 +1,99 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * binfmt PE executable helper, by Ilya Konstantinov + * Based on PE headers structures courtesy of Mono .NET runtime project + * (http://www.go-mono.com). + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "cil-coff.h" + +//Change this to one MSDOS, MSDOS, NATIVE or CLR +#define DETECT CLR + +#define _(String) gettext(String) + +/* Globals */ +enum execTypeEnum { + UNKNOWN, + MSDOS, + NATIVE, + CLR +} execType = UNKNOWN; + +int main(int argc, char **argv) +{ + const char *filename; + FILE *image; + size_t read; + + if (argc < 2) exit(EXIT_FAILURE); + + filename = argv[1]; + image = fopen(filename, "r"); + if (image == NULL) exit(EXIT_FAILURE); + + /* Parse the MSDOS header */ + + { + MSDOSHeader msdos_header; + uint32_t pe_offset; + read = fread(&msdos_header, sizeof(msdos_header), 1, image); + if (read < 1) exit(EXIT_FAILURE); + pe_offset = msdos_header.pe_offset[0] + | msdos_header.pe_offset[1] << 8 + | msdos_header.pe_offset[2] << 16 + | msdos_header.pe_offset[3] << 24; + if ((pe_offset == 0) || + (fseek(image, pe_offset, SEEK_SET) != 0)) + execType = MSDOS; + } + + /* Parse the PE header */ + + if (execType == UNKNOWN) + { + DotNetHeader dotnet_header; + uint16_t pe_magic; + uint32_t rva; + read = fread(&dotnet_header, sizeof(dotnet_header), 1, image); + if (read < 1) exit(EXIT_FAILURE); + pe_magic = dotnet_header.pe.pe_magic[0] + | dotnet_header.pe.pe_magic[1] << 8; + if (dotnet_header.pesig[0] != 'P' || dotnet_header.pesig[1] != 'E' || pe_magic != 0x10B) exit(EXIT_FAILURE); + rva = dotnet_header.datadir.pe_cli_header.rva[0] + | dotnet_header.datadir.pe_cli_header.rva[1] << 8 + | dotnet_header.datadir.pe_cli_header.rva[2] << 16 + | dotnet_header.datadir.pe_cli_header.rva[1] << 24; + if ((dotnet_header.datadir.pe_cli_header.size != 0) && + (rva != 0) && + (fseek(image, rva, SEEK_SET) == 0)) + execType = CLR; + else + execType = NATIVE; + } + fclose(image); + + /* Return a value indicating success or failure */ + if (execType == DETECT) exit(EXIT_SUCCESS); else exit(EXIT_FAILURE); +} --- mono-2.4.4~svn151842.orig/debian/detector/cil-coff.h +++ mono-2.4.4~svn151842/debian/detector/cil-coff.h @@ -0,0 +1,190 @@ + +#ifndef __MONO_CIL_COFF_H__ +#define __MONO_CIL_COFF_H__ + +#include + +/* + * 25.2.1: Method header type values + */ +#define METHOD_HEADER_FORMAT_MASK 7 +#define METHOD_HEADER_TINY_FORMAT 2 +#define METHOD_HEADER_TINY_FORMAT1 6 +#define METHOD_HEADER_FAT_FORMAT 3 + +/* + * 25.2.3.1: Flags for method headers + */ +#define METHOD_HEADER_INIT_LOCALS 0x10 +#define METHOD_HEADER_MORE_SECTS 0x08 + +/* + * For section data (25.3) + */ +#define METHOD_HEADER_SECTION_RESERVED 0 +#define METHOD_HEADER_SECTION_EHTABLE 1 +#define METHOD_HEADER_SECTION_OPTIL_TABLE 2 +#define METHOD_HEADER_SECTION_FAT_FORMAT 0x40 +#define METHOD_HEADER_SECTION_MORE_SECTS 0x80 + +/* 128 bytes */ +typedef struct { + char msdos_sig [2]; + uint16_t nlast_page; + uint16_t npages; + char msdos_header [54]; + unsigned char pe_offset[4]; + char msdos_header2 [64]; +} MSDOSHeader; + +/* 20 bytes */ +typedef struct { + uint16_t coff_machine; + uint16_t coff_sections; + uint32_t coff_time; + uint32_t coff_symptr; + uint32_t coff_symcount; + uint16_t coff_opt_header_size; + uint16_t coff_attributes; +} COFFHeader; + +#define COFF_ATTRIBUTE_EXECUTABLE_IMAGE 0x0002 +#define COFF_ATTRIBUTE_LIBRARY_IMAGE 0x2000 + +/* 28 bytes */ +typedef struct { + unsigned char pe_magic[2]; + unsigned char pe_major; + unsigned char pe_minor; + uint32_t pe_code_size; + uint32_t pe_data_size; + uint32_t pe_uninit_data_size; + uint32_t pe_rva_entry_point; + uint32_t pe_rva_code_base; + uint32_t pe_rva_data_base; +} PEHeader; + +/* 68 bytes */ +typedef struct { + uint32_t pe_image_base; /* must be 0x400000 */ + uint32_t pe_section_align; /* must be 8192 */ + uint32_t pe_file_alignment; /* must be 512 or 4096 */ + uint16_t pe_os_major; /* must be 4 */ + uint16_t pe_os_minor; /* must be 0 */ + uint16_t pe_user_major; + uint16_t pe_user_minor; + uint16_t pe_subsys_major; + uint16_t pe_subsys_minor; + uint32_t pe_reserved_1; + uint32_t pe_image_size; + uint32_t pe_header_size; + uint32_t pe_checksum; + uint16_t pe_subsys_required; + uint16_t pe_dll_flags; + uint32_t pe_stack_reserve; + uint32_t pe_stack_commit; + uint32_t pe_heap_reserve; + uint32_t pe_heap_commit; + uint32_t pe_loader_flags; + uint32_t pe_data_dir_count; +} PEHeaderNT; + +typedef struct { + unsigned char rva[4]; + uint32_t size; +} PEDirEntry; + +/* 128 bytes */ +typedef struct { + PEDirEntry pe_export_table; + PEDirEntry pe_import_table; + PEDirEntry pe_resource_table; + PEDirEntry pe_exception_table; + PEDirEntry pe_certificate_table; + PEDirEntry pe_reloc_table; + PEDirEntry pe_debug; + PEDirEntry pe_copyright; + PEDirEntry pe_global_ptr; + PEDirEntry pe_tls_table; + PEDirEntry pe_load_config_table; + PEDirEntry pe_bound_import; + PEDirEntry pe_iat; + PEDirEntry pe_delay_import_desc; + PEDirEntry pe_cli_header; + PEDirEntry pe_reserved; +} PEDatadir; + +/* 248 bytes */ +typedef struct { + char pesig [4]; + COFFHeader coff; + PEHeader pe; + PEHeaderNT nt; + PEDatadir datadir; +} DotNetHeader; + +typedef struct { + char st_name [8]; + uint32_t st_virtual_size; + uint32_t st_virtual_address; + uint32_t st_raw_data_size; + uint32_t st_raw_data_ptr; + uint32_t st_reloc_ptr; + uint32_t st_lineno_ptr; + uint16_t st_reloc_count; + uint16_t st_line_count; + +#define SECT_FLAGS_HAS_CODE 0x20 +#define SECT_FLAGS_HAS_INITIALIZED_DATA 0x40 +#define SECT_FLAGS_HAS_UNINITIALIZED_DATA 0x80 +#define SECT_FLAGS_MEM_DISCARDABLE 0x02000000 +#define SECT_FLAGS_MEM_NOT_CACHED 0x04000000 +#define SECT_FLAGS_MEM_NOT_PAGED 0x08000000 +#define SECT_FLAGS_MEM_SHARED 0x10000000 +#define SECT_FLAGS_MEM_EXECUTE 0x20000000 +#define SECT_FLAGS_MEM_READ 0x40000000 +#define SECT_FLAGS_MEM_WRITE 0x80000000 + uint32_t st_flags; + +} SectionTable; + +typedef struct { + uint32_t ch_size; + uint16_t ch_runtime_major; + uint16_t ch_runtime_minor; + PEDirEntry ch_metadata; + +#define CLI_FLAGS_ILONLY 0x01 +#define CLI_FLAGS_32BITREQUIRED 0x02 +#define CLI_FLAGS_TRACKDEBUGDATA 0x00010000 + uint32_t ch_flags; + + uint32_t ch_entry_point; + PEDirEntry ch_resources; + PEDirEntry ch_strong_name; + PEDirEntry ch_code_manager_table; + PEDirEntry ch_vtable_fixups; + PEDirEntry ch_export_address_table_jumps; + + /* The following are zero in the current docs */ + PEDirEntry ch_eeinfo_table; + PEDirEntry ch_helper_table; + PEDirEntry ch_dynamic_info; + PEDirEntry ch_delay_load_info; + PEDirEntry ch_module_image; + PEDirEntry ch_external_fixups; + PEDirEntry ch_ridmap; + PEDirEntry ch_debug_map; + PEDirEntry ch_ip_map; +} CLIHeader; + +/* This is not an on-disk structure */ +typedef struct { + DotNetHeader cli_header; + int cli_section_count; + SectionTable *cli_section_tables; + void **cli_sections; + CLIHeader cli_cli_header; +} CLIImageInfo; + +#endif /* __MONO_CIL_COFF_H__ */ --- mono-2.4.4~svn151842.orig/debian/detector/README +++ mono-2.4.4~svn151842/debian/detector/README @@ -0,0 +1,45 @@ +binfmt-pe + + This utility determines the Microsoft PE executable file's + type (Native, .NET CLR) and runs it using the appropriate + runtime (WINE, CLI). It also detects and refuses to run + MS-DOS (non-PE) executables. + + It is inteded to be used in a Linux binfmt configuration, + since binfmt itself is incapable of reliably distinguishing + between various PE file types (since they have no different + "magic string") and runtimes refuse to run files which + they don't support (CLR runtimes refuse to run + Native images and vice versa). + +Technical information + + The file's type is determined from certain characteristics + in the PE / COFF file header. It should be noted that the + techniques used might not be standard and are not throughtly + tested to work, so false detections might occur. + + In short: + - An MS-DOS executable is assumed if the PE offset in the MS-DOS + header is NULL or points to an offset beyond the file's length + - A CLR file is assumed if the PE header's directory entry + for "CLI header" is not NULL and points to a valid offset in + the executable file. + - A native executable file is assumed otherwise. + + The runtime names are hardcoded into the utilit (that is - + not configurable) and are exec'ed from the utility -- + "wine" is used for native images, "cli" is used for CLR images. + +Credits + + This utility is based on the PE / COFF header structures from + Ximian's Mono .NET runtime project ( http://www.go-mono.com/ ). + +Author + + Ilya Konstantinov + +Licenses + + This utility is covered by the GPL license. --- mono-2.4.4~svn151842.orig/debian/patches/fix_csharplib_build.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_csharplib_build.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_csharplib_build.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/csharplib/Makefile mono-2.4+dfsg/mcs/tools/csharplib/Makefile +--- mono-2.4+dfsg~/mcs/tools/csharplib/Makefile 2009-02-14 00:36:12.000000000 +0100 ++++ mono-2.4+dfsg/mcs/tools/csharplib/Makefile 2009-05-21 04:26:27.000000000 +0200 +@@ -2,7 +2,7 @@ + SUBDIRS = + include ../../build/rules.make + +-LINKER = $(topdir)/class/lib/net_1_1/monolinker.exe ++LINKER = $(topdir)/class/lib/net_2_0/monolinker.exe + + LOCAL_MCS_FLAGS = -d:GMCS_SOURCE -d:NET_1_1 -d:NET_2_0 -r:System -r:System.Xml + --- mono-2.4.4~svn151842.orig/debian/patches/fix_mdoc_build.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_mdoc_build.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_mdoc_build.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/mdoc/Makefile mono-2.4+dfsg/mcs/tools/mdoc/Makefile +--- mono-2.4+dfsg~/mcs/tools/mdoc/Makefile 2009-02-14 00:36:16.000000000 +0100 ++++ mono-2.4+dfsg/mcs/tools/mdoc/Makefile 2009-05-21 04:06:40.000000000 +0200 +@@ -11,7 +11,7 @@ + /resource:Resources/overview.xsl,overview.xsl \ + /resource:Resources/stylesheet.xsl,stylesheet.xsl \ + /r:$(topdir)/class/lib/net_1_1/monodoc.dll \ +- /r:$(topdir)/class/lib/net_1_1/Mono.Cecil.dll ++ /r:Mono.Cecil.dll + + MONODOC_RESOURCES = \ + ../monodoc/Resources/mdoc-html-utils.xsl \ --- mono-2.4.4~svn151842.orig/debian/patches/arm-cpuinfo-parsing.dpatch +++ mono-2.4.4~svn151842/debian/patches/arm-cpuinfo-parsing.dpatch @@ -0,0 +1,96 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## arm-cpuinfo-parsing.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Nicer cpuinfo parsing, allowing to run mono under qemu-arm + +@DPATCH@ +diff -urNad mono-2.4.3+dfsg~/mono/mini/mini-arm.c mono-2.4.3+dfsg/mono/mini/mini-arm.c +--- mono-2.4.3+dfsg~/mono/mini/mini-arm.c 2010-02-26 13:00:34.000000000 +0100 ++++ mono-2.4.3+dfsg/mono/mini/mini-arm.c 2010-02-26 13:05:41.489322938 +0100 +@@ -28,8 +28,12 @@ + #define mono_mini_arch_unlock() LeaveCriticalSection (&mini_arch_mutex) + static CRITICAL_SECTION mini_arch_mutex; + +-static int v5_supported = 0; +-static int thumb_supported = 0; ++#define MAYBE 2 ++ ++/* Assume v5 and Thumb are supported unless cpuinfo says otherwise (ARMv4 ++ * without Thumb) */ ++static int v5_supported = MAYBE; ++static int thumb_supported = MAYBE; + + /* + * TODO: +@@ -150,11 +154,11 @@ + static guint8* + emit_call_reg (guint8 *code, int reg) + { +- if (v5_supported) { ++ if (v5_supported != FALSE) { + ARM_BLX_REG (code, reg); + } else { + ARM_MOV_REG_REG (code, ARMREG_LR, ARMREG_PC); +- if (thumb_supported) ++ if (thumb_supported != FALSE) + ARM_BX (code, reg); + else + ARM_MOV_REG_REG (code, ARMREG_PC, reg); +@@ -461,19 +465,33 @@ + while ((line = fgets (buf, 512, file))) { + if (strncmp (line, "Processor", 9) == 0) { + char *ver = strstr (line, "(v"); +- if (ver && (ver [2] == '5' || ver [2] == '6' || ver [2] == '7')) { ++ if (!ver) { ++ /* invalid cpuinfo; perhaps running withing qemu-arm; skip */ ++ break; ++ } ++ if (ver [2] == '5' || ver [2] == '6' || ver [2] == '7') { + v5_supported = TRUE; ++ /* present since ARMv5 for mono's practical purposes */ ++ thumb_supported = TRUE; ++ break; ++ } else if (ver [2] == '4') { ++ v5_supported = FALSE; ++ /* continue scanning for Features */ ++ continue; + } +- continue; ++ /* new or very old ARM architecture? */ ++ g_assert_not_reached (); + } + if (strncmp (line, "Features", 8) == 0) { ++ /* Assume we already parsed Processor and it was v4 */ ++ g_assert (v5_supported == FALSE); + char *th = strstr (line, "thumb"); + if (th) { + thumb_supported = TRUE; +- if (v5_supported) +- break; ++ } else { ++ thumb_supported = FALSE; + } +- continue; ++ break; + } + } + fclose (file); +@@ -1995,7 +2013,7 @@ + */ + code = (guchar*)thunks; + ARM_LDR_IMM (code, ARMREG_IP, ARMREG_PC, 0); +- if (thumb_supported) ++ if (thumb_supported != FALSE) + ARM_BX (code, ARMREG_IP); + else + ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_IP); +@@ -2060,7 +2078,7 @@ + gint tmask = 0xffffffff; + if (tval & 1) { /* entering thumb mode */ + diff = target - 1 - code - 8; +- g_assert (thumb_supported); ++ g_assert (thumb_supported != FALSE); + tbits = 0xf << 28; /* bl->blx bit pattern */ + g_assert ((ins & (1 << 24))); /* it must be a bl, not b instruction */ + /* this low bit of the displacement is moved to bit 24 in the instruction encoding */ --- mono-2.4.4~svn151842.orig/debian/patches/fix-mono.pc.in.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix-mono.pc.in.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix-mono.pc.in.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-1.2.6~/data/mono.pc.in mono-1.2.6/data/mono.pc.in +--- mono-1.2.6~/data/mono.pc.in 2007-11-08 23:07:46.000000000 +0100 ++++ mono-1.2.6/data/mono.pc.in 2007-12-16 15:50:02.000000000 +0100 +@@ -1,5 +1,5 @@ +-prefix=${pcfiledir}/../.. +-exec_prefix=${pcfiledir}/../.. ++prefix=@prefix@ ++exec_prefix=${prefix} + libdir=${prefix}/@reloc_libdir@ + includedir=${prefix}/include/mono-@API_VER@ + sysconfdir=@sysconfdir@ --- mono-2.4.4~svn151842.orig/debian/patches/fix_array_compare.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_array_compare.dpatch @@ -0,0 +1,136 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_array_compare.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad git~/mcs/mcs/statement.cs git/mcs/mcs/statement.cs +--- git~/mcs/mcs/statement.cs 2009-07-29 20:30:47.000000000 +0200 ++++ git/mcs/mcs/statement.cs 2009-07-30 19:34:34.000000000 +0200 +@@ -4886,6 +4886,7 @@ + } + } + ++ // FIXME: Why is it almost exact copy of Using ?? + public class UsingTemporary : ExceptionStatement { + TemporaryVariable local_copy; + public Statement Statement; +@@ -5010,7 +5011,6 @@ + Expression var; + Expression init; + +- Expression converted_var; + ExpressionStatement assign; + + public Using (Expression var, Expression init, Statement stmt, Location l) +@@ -5021,31 +5021,6 @@ + loc = l; + } + +- bool ResolveVariable (EmitContext ec) +- { +- ExpressionStatement a = new SimpleAssign (var, init, loc); +- a = a.ResolveStatement (ec); +- if (a == null) +- return false; +- +- assign = a; +- +- if (TypeManager.ImplementsInterface (a.Type, TypeManager.idisposable_type)) { +- converted_var = var; +- return true; +- } +- +- Expression e = Convert.ImplicitConversionStandard (ec, a, TypeManager.idisposable_type, var.Location); +- if (e == null) { +- Error_IsNotConvertibleToIDisposable (var); +- return false; +- } +- +- converted_var = e; +- +- return true; +- } +- + static public void Error_IsNotConvertibleToIDisposable (Expression expr) + { + Report.SymbolRelatedToPreviousError (expr.Type); +@@ -5066,42 +5041,18 @@ + protected override void EmitFinallyBody (EmitContext ec) + { + ILGenerator ig = ec.ig; ++ Label skip = ig.DefineLabel (); + +- if (!var.Type.IsValueType) { +- Label skip = ig.DefineLabel (); ++ bool emit_null_check = TypeManager.IsReferenceType (var.Type); ++ if (emit_null_check) { + var.Emit (ec); + ig.Emit (OpCodes.Brfalse, skip); +- converted_var.Emit (ec); +- ig.Emit (OpCodes.Callvirt, TypeManager.void_dispose_void); +- ig.MarkLabel (skip); +- } else { +- Expression ml = Expression.MemberLookup(ec.ContainerType, TypeManager.idisposable_type, var.Type, "Dispose", Mono.CSharp.Location.Null); +- +- if (!(ml is MethodGroupExpr)) { +- var.Emit (ec); +- ig.Emit (OpCodes.Box, var.Type); +- ig.Emit (OpCodes.Callvirt, TypeManager.void_dispose_void); +- } else { +- MethodInfo mi = null; +- +- foreach (MethodInfo mk in ((MethodGroupExpr) ml).Methods) { +- if (TypeManager.GetParameterData (mk).Count == 0) { +- mi = mk; +- break; +- } +- } +- +- if (mi == null) { +- Report.Error(-100, Mono.CSharp.Location.Null, "Internal error: No Dispose method which takes 0 parameters."); +- return; +- } ++ } + +- IMemoryLocation mloc = (IMemoryLocation) var; ++ Invocation.EmitCall (ec, false, var, TypeManager.void_dispose_void, null, loc); + +- mloc.AddressOf (ec, AddressOp.Load); +- ig.Emit (OpCodes.Call, mi); +- } +- } ++ if (emit_null_check) ++ ig.MarkLabel (skip); + } + + public override void MutateHoistedGenericType (AnonymousMethodStorey storey) +@@ -5132,6 +5083,27 @@ + return ok; + } + ++ bool ResolveVariable (EmitContext ec) ++ { ++ assign = new SimpleAssign (var, init, loc); ++ assign = assign.ResolveStatement (ec); ++ if (assign == null) ++ return false; ++ ++ if (assign.Type == TypeManager.idisposable_type || ++ TypeManager.ImplementsInterface (assign.Type, TypeManager.idisposable_type)) { ++ return true; ++ } ++ ++ Expression e = Convert.ImplicitConversionStandard (ec, assign, TypeManager.idisposable_type, var.Location); ++ if (e == null) { ++ Error_IsNotConvertibleToIDisposable (var); ++ return false; ++ } ++ ++ throw new NotImplementedException ("covariance?"); ++ } ++ + protected override void CloneTo (CloneContext clonectx, Statement t) + { + Using target = (Using) t; --- mono-2.4.4~svn151842.orig/debian/patches/build_genxs_2.0.dpatch +++ mono-2.4.4~svn151842/debian/patches/build_genxs_2.0.dpatch @@ -0,0 +1,39 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## build_genxs_2.0.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/Makefile mono-2.4+dfsg/mcs/tools/Makefile +--- mono-2.4+dfsg~/mcs/tools/Makefile 2009-05-21 13:52:09.000000000 +0200 ++++ mono-2.4+dfsg/mcs/tools/Makefile 2009-05-21 13:52:35.000000000 +0200 +@@ -35,6 +35,7 @@ + csharp \ + mono-xsd \ + wsdl \ ++ genxs \ + compiler-tester \ + monop \ + xbuild \ +diff -urNad mono-2.4+dfsg~/mcs/tools/genxs/Makefile mono-2.4+dfsg/mcs/tools/genxs/Makefile +--- mono-2.4+dfsg~/mcs/tools/genxs/Makefile 2009-05-21 13:52:08.000000000 +0200 ++++ mono-2.4+dfsg/mcs/tools/genxs/Makefile 2009-05-21 13:52:35.000000000 +0200 +@@ -5,4 +5,6 @@ + LOCAL_MCS_FLAGS = -r:System.Xml.dll + PROGRAM = $(topdir)/class/lib/$(PROFILE)/genxs.exe + ++CLEAN_FILES = *.exe *.mdb ++ + include ../../build/executable.make +diff -urNad mono-2.4+dfsg~/scripts/Makefile.am mono-2.4+dfsg/scripts/Makefile.am +--- mono-2.4+dfsg~/scripts/Makefile.am 2009-02-14 00:32:38.000000000 +0100 ++++ mono-2.4+dfsg/scripts/Makefile.am 2009-05-21 13:54:16.000000000 +0200 +@@ -83,6 +83,7 @@ + + scripts_2_0 = \ + al2$(SCRIPT_SUFFIX) \ ++ genxs2$(SCRIPT_SUFFIX) \ + csharp$(SCRIPT_SUFFIX) \ + gacutil2$(SCRIPT_SUFFIX) \ + gmcs$(SCRIPT_SUFFIX) \ --- mono-2.4.4~svn151842.orig/debian/patches/fix-mono-cairo.pc.in.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix-mono-cairo.pc.in.dpatch @@ -0,0 +1,23 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix-mono-cairo.pc.in.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/data/mono-cairo.pc.in mono-2.4+dfsg/data/mono-cairo.pc.in +--- mono-2.4+dfsg~/data/mono-cairo.pc.in 2009-05-13 01:15:53.000000000 +0200 ++++ mono-2.4+dfsg/data/mono-cairo.pc.in 2009-05-13 01:20:26.000000000 +0200 +@@ -1,9 +1,9 @@ +-prefix=${pcfiledir}/../.. +-exec_prefix=${pcfiledir}/../.. ++prefix=@prefix@ ++exec_prefix=${prefix} + libdir=${prefix}/@reloc_libdir@ + includedir=${prefix}/include + + Name: Mono.Cairo + Description: Cairo bindings for Mono + Version: @VERSION@ +-Libs: -r:${prefix}/lib/mono/1.0/Mono.Cairo.dll ++Libs: -r:${prefix}/lib/mono/2.0/Mono.Cairo.dll --- mono-2.4.4~svn151842.orig/debian/patches/00list +++ mono-2.4.4~svn151842/debian/patches/00list @@ -0,0 +1,28 @@ +debian_version +armel_fix_configure_fpu_check +kfreebsd_support +console-no-utf8-bom +firebird-fbclient +fix-mono.pc.in +fix-mono-cairo.pc.in +fix_BigInteger_overflow_CVE-2007-5197 +fix_implicit_pointer_conversions +fix_array_compare +fix_NetworkInterface_endless_loop +fix_mono-api-info_build +fix_csharplib_build +fix_mdoc_build +fix_tuner_build +fix_CreateDelegate_ArgumentException +fix_DynamicMethod_restrictedSkipVisibility_r138886 +disable_bug-80307_test +build_cecil_as_2.0 +build_firebirdsql_as_2.0 +build_linker_tuner_cil-strip_as_2.0 +build_permview_as_2.0 +build_genxs_2.0 +dont_assert_on_empty_DGC_field_r146984 +skip_docs_build +mono-arm-thumb2-ftbfs +mono-thumb2-jit-blx +arm-cpuinfo-parsing --- mono-2.4.4~svn151842.orig/debian/patches/debian_version.dpatch +++ mono-2.4.4~svn151842/debian/patches/debian_version.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## debian_version.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mono/mini/Makefile.am mono-2.4+dfsg/mono/mini/Makefile.am +--- mono-2.4+dfsg~/mono/mini/Makefile.am 2009-04-18 00:54:50.000000000 +0200 ++++ mono-2.4+dfsg/mono/mini/Makefile.am 2009-04-18 01:03:46.000000000 +0200 +@@ -83,7 +83,7 @@ + # We build this after libmono was built so it contains the date when the final + # link was done + buildver.h: libmono-static.la +- @echo "const char *build_date = \"`date`\";" > buildver.h ++ @echo "const char *build_date;" > buildver.h + + main.$(OBJEXT): buildver.h + +@@ -534,7 +534,7 @@ + echo "#define FULL_VERSION \"$$branch r$$version\""; \ + ); \ + else \ +- echo "#define FULL_VERSION \"tarball\""; \ ++ echo "#define FULL_VERSION \"Debian $$(dpkg-parsechangelog -l$(top_srcdir)/debian/changelog | grep ^Vers | cut -d\ -f2)\""; \ + fi > version.h + + # Utility target for patching libtool to speed up linking --- mono-2.4.4~svn151842.orig/debian/patches/skip_docs_build.dpatch +++ mono-2.4.4~svn151842/debian/patches/skip_docs_build.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## skip_docs_build.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad git~/Makefile.am git/Makefile.am +--- git~/Makefile.am 2010-02-17 21:49:09.000000000 +0100 ++++ git/Makefile.am 2010-02-17 22:16:30.000000000 +0100 +@@ -1,7 +1,7 @@ + AUTOMAKE_OPTIONS = foreign + ACLOCAL_AMFLAGS = -I . + +-SUBDIRS = po $(libgc_dir) $(eglib_dir) mono $(ikvm_native_dir) support data runtime scripts man samples web msvc docs ++SUBDIRS = po $(libgc_dir) $(eglib_dir) mono $(ikvm_native_dir) support data runtime scripts man samples web msvc + + # Keep in sync with SUBDIRS + ## 'tools' is not normally built --- mono-2.4.4~svn151842.orig/debian/patches/mono-arm-thumb2-ftbfs.dpatch +++ mono-2.4.4~svn151842/debian/patches/mono-arm-thumb2-ftbfs.dpatch @@ -0,0 +1,152 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## mono-arm-thumb2-ftbfs.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4.3+dfsg~/libgc/include/private/gc_locks.h mono-2.4.3+dfsg/libgc/include/private/gc_locks.h +--- mono-2.4.3+dfsg~/libgc/include/private/gc_locks.h 2009-10-26 21:44:09.000000000 +0100 ++++ mono-2.4.3+dfsg/libgc/include/private/gc_locks.h 2010-01-29 16:08:49.000000000 +0100 +@@ -218,16 +218,20 @@ + # endif /* ALPHA */ + # ifdef ARM32 + inline static int GC_test_and_set(volatile unsigned int *addr) { +- int oldval; +- /* SWP on ARM is very similar to XCHG on x86. Doesn't lock the +- * bus because there are no SMP ARM machines. If/when there are, +- * this code will likely need to be updated. */ +- /* See linuxthreads/sysdeps/arm/pt-machine.h in glibc-2.1 */ +- __asm__ __volatile__("swp %0, %1, [%2]" +- : "=&r"(oldval) +- : "r"(1), "r"(addr) +- : "memory"); +- return oldval; ++# ifdef __thumb__ ++ return __sync_lock_test_and_set (addr, 1); ++# else ++ int oldval; ++ /* SWP on ARM is very similar to XCHG on x86. Doesn't lock the ++ * bus because there are no SMP ARM machines. If/when there are, ++ * this code will likely need to be updated. */ ++ /* See linuxthreads/sysdeps/arm/pt-machine.h in glibc-2.1 */ ++ __asm__ __volatile__("swp %0, %1, [%2]" ++ : "=&r"(oldval) ++ : "r"(1), "r"(addr) ++ : "memory"); ++ return oldval; ++# endif + } + # define GC_TEST_AND_SET_DEFINED + # endif /* ARM32 */ +diff -urNad mono-2.4.3+dfsg~/mono/io-layer/atomic.h mono-2.4.3+dfsg/mono/io-layer/atomic.h +--- mono-2.4.3+dfsg~/mono/io-layer/atomic.h 2009-10-26 21:44:10.000000000 +0100 ++++ mono-2.4.3+dfsg/mono/io-layer/atomic.h 2010-01-29 16:06:55.000000000 +0100 +@@ -746,6 +746,9 @@ + + static inline gint32 InterlockedCompareExchange(volatile gint32 *dest, gint32 exch, gint32 comp) + { ++#ifdef __thumb__ ++ return __sync_val_compare_and_swap (dest, comp, exch); ++#else + int a, b; + + __asm__ __volatile__ ( "0:\n\t" +@@ -763,10 +766,14 @@ + : "cc", "memory"); + + return a; ++#endif /* !__thumb__ */ + } + + static inline gpointer InterlockedCompareExchangePointer(volatile gpointer *dest, gpointer exch, gpointer comp) + { ++#ifdef __thumb__ ++ return __sync_val_compare_and_swap (dest, comp, exch); ++#else + gpointer a, b; + + __asm__ __volatile__ ( "0:\n\t" +@@ -784,10 +791,14 @@ + : "cc", "memory"); + + return a; ++#endif + } + + static inline gint32 InterlockedIncrement(volatile gint32 *dest) + { ++#ifdef __thumb__ ++ return __sync_add_and_fetch (dest, 1); ++#else + int a, b, c; + + __asm__ __volatile__ ( "0:\n\t" +@@ -802,10 +813,14 @@ + : "cc", "memory"); + + return b; ++#endif + } + + static inline gint32 InterlockedDecrement(volatile gint32 *dest) + { ++#ifdef __thumb__ ++ return __sync_sub_and_fetch (dest, 1); ++#else + int a, b, c; + + __asm__ __volatile__ ( "0:\n\t" +@@ -820,10 +835,14 @@ + : "cc", "memory"); + + return b; ++#endif + } + + static inline gint32 InterlockedExchange(volatile gint32 *dest, gint32 exch) + { ++#ifdef __thumb__ ++ return __sync_lock_test_and_set (dest, exch); ++#else + int a; + + __asm__ __volatile__ ( "swp %0, %2, [%1]" +@@ -831,10 +850,14 @@ + : "r" (dest), "r" (exch)); + + return a; ++#endif + } + + static inline gpointer InterlockedExchangePointer(volatile gpointer *dest, gpointer exch) + { ++#ifdef __thumb__ ++ return __sync_lock_test_and_set (dest, exch); ++#else + gpointer a; + + __asm__ __volatile__ ( "swp %0, %2, [%1]" +@@ -842,10 +865,14 @@ + : "r" (dest), "r" (exch)); + + return a; ++#endif + } + + static inline gint32 InterlockedExchangeAdd(volatile gint32 *dest, gint32 add) + { ++#ifdef __thumb__ ++ return __sync_fetch_and_add (dest, add); ++#else + int a, b, c; + + __asm__ __volatile__ ( "0:\n\t" +@@ -860,6 +887,7 @@ + : "cc", "memory"); + + return a; ++#endif + } + + #elif defined(__ia64__) --- mono-2.4.4~svn151842.orig/debian/patches/dont_assert_on_empty_DGC_field_r146984.dpatch +++ mono-2.4.4~svn151842/debian/patches/dont_assert_on_empty_DGC_field_r146984.dpatch @@ -0,0 +1,44 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dont_assert_on_empty_DGC_field_r146984.dpatch by Jo Shields +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Backport of upstream SVN revision r146984. Stops IKVM from crashing +## DP: during compilation. This was a regression between 2.4 and 2.4.2 + +@DPATCH@ +diff -urNad mono-2.4.2.3+dfsg~/mono/metadata/reflection.c mono-2.4.2.3+dfsg/mono/metadata/reflection.c +--- mono-2.4.2.3+dfsg~/mono/metadata/reflection.c 2010-01-06 16:54:46.000000000 +0000 ++++ mono-2.4.2.3+dfsg/mono/metadata/reflection.c 2010-01-06 16:58:17.000000000 +0000 +@@ -2576,16 +2576,29 @@ + static MonoType* + get_field_on_inst_generic_type (MonoClassField *field) + { ++ MonoClass *class, *gtd; + MonoDynamicGenericClass *dgclass; + int field_index; + + g_assert (is_field_on_inst (field)); + + dgclass = (MonoDynamicGenericClass*)field->parent->generic_class; +- field_index = field - dgclass->fields; + +- g_assert (field_index >= 0 && field_index < dgclass->count_fields); +- return dgclass->field_generic_types [field_index]; ++ if (field >= dgclass->fields && field - dgclass->fields < dgclass->count_fields) { ++ field_index = field - dgclass->fields; ++ return dgclass->field_generic_types [field_index]; ++ } ++ ++ class = field->parent; ++ gtd = class->generic_class->container_class; ++ ++ if (field >= class->fields && field - class->fields < class->field.count) { ++ field_index = field - class->fields; ++ return gtd->fields [field_index].type; ++ } ++ ++ g_assert_not_reached (); ++ return 0; + } + + static guint32 --- mono-2.4.4~svn151842.orig/debian/patches/fix_implicit_pointer_conversions.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_implicit_pointer_conversions.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_implicit_pointer_conversions.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-1.2.6~/mono/metadata/security.c mono-1.2.6/mono/metadata/security.c +--- mono-1.2.6~/mono/metadata/security.c 2007-11-08 23:07:19.000000000 +0100 ++++ mono-1.2.6/mono/metadata/security.c 2007-12-24 15:54:02.000000000 +0100 +@@ -12,6 +12,7 @@ + #endif + + #include ++#include + #include + #include + #include --- mono-2.4.4~svn151842.orig/debian/patches/console-no-utf8-bom.dpatch +++ mono-2.4.4~svn151842/debian/patches/console-no-utf8-bom.dpatch @@ -0,0 +1,16 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run + +@DPATCH@ + +--- trunk/mcs/class/corlib/System/Console.cs.old 2006-08-29 18:21:12.473936000 +0200 ++++ trunk/mcs/class/corlib/System/Console.cs 2006-08-29 18:23:46.607568750 +0200 +@@ -97,8 +97,7 @@ + int code_page = 0; + Encoding.InternalCodePage (ref code_page); + +- if (code_page != -1 && ((code_page & 0x0fffffff) == 3 // UTF8Encoding.UTF8_CODE_PAGE +- || ((code_page & 0x10000000) != 0))) ++ if (code_page == UTF8Encoding.UTF8_CODE_PAGE || ((code_page & 0x10000000) != 0)) + inputEncoding = outputEncoding = Encoding.UTF8Unmarked; + else + inputEncoding = outputEncoding = Encoding.Default; --- mono-2.4.4~svn151842.orig/debian/patches/disable_bug-80307_test.dpatch +++ mono-2.4.4~svn151842/debian/patches/disable_bug-80307_test.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## disable_bug-80307_test.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad git~/mono/tests/Makefile.am git/mono/tests/Makefile.am +--- git~/mono/tests/Makefile.am 2009-05-25 19:46:23.000000000 +0200 ++++ git/mono/tests/Makefile.am 2009-06-14 02:42:33.000000000 +0200 +@@ -330,7 +330,6 @@ + modules.cs \ + bug-81673.cs \ + bug-81691.cs \ +- bug-80307.cs \ + bug-415577.cs \ + filter-stack.cs \ + vararg2.cs \ --- mono-2.4.4~svn151842.orig/debian/patches/fix_NetworkInterface_endless_loop.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_NetworkInterface_endless_loop.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_NetworkInterface_endless_loop.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs mono-2.4+dfsg/mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs +--- mono-2.4+dfsg~/mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs 2009-04-11 02:30:06.000000000 +0200 ++++ mono-2.4+dfsg/mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs 2009-04-11 02:37:01.000000000 +0200 +@@ -183,6 +183,7 @@ + if (((int)sockaddrll.sll_halen) > sockaddrll.sll_addr.Length){ + Console.Error.WriteLine ("Got a bad hardware address length for an AF_PACKET {0} {1}", + sockaddrll.sll_halen, sockaddrll.sll_addr.Length); ++ next = addr.ifa_next; + continue; + } + --- mono-2.4.4~svn151842.orig/debian/patches/build_firebirdsql_as_2.0.dpatch +++ mono-2.4.4~svn151842/debian/patches/build_firebirdsql_as_2.0.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## build_firebirdsql_as_2.0.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/class/Makefile mono-2.4+dfsg/mcs/class/Makefile +--- mono-2.4+dfsg~/mcs/class/Makefile 2009-05-20 00:18:11.000000000 +0200 ++++ mono-2.4+dfsg/mcs/class/Makefile 2009-05-20 00:20:55.000000000 +0200 +@@ -90,8 +90,7 @@ + CustomMarshalers \ + OpenSystem.C + +-net_1_1_dirs := \ +- FirebirdSql.Data.Firebird ++net_1_1_dirs := + + net_2_0_dirs := \ + Microsoft.Build.Framework \ +@@ -119,7 +118,8 @@ + Mono.Options \ + Mono.Simd \ + Mono.Cecil \ +- Mono.Cecil.Mdb ++ Mono.Cecil.Mdb \ ++ FirebirdSql.Data.Firebird + + net_2_1_dirs := \ + corlib \ --- mono-2.4.4~svn151842.orig/debian/patches/build_linker_tuner_cil-strip_as_2.0.dpatch +++ mono-2.4.4~svn151842/debian/patches/build_linker_tuner_cil-strip_as_2.0.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## build_tuner_as_2.0.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/Makefile mono-2.4+dfsg/mcs/tools/Makefile +--- mono-2.4+dfsg~/mcs/tools/Makefile 2009-05-21 14:56:19.000000000 +0200 ++++ mono-2.4+dfsg/mcs/tools/Makefile 2009-05-21 14:57:08.000000000 +0200 +@@ -14,9 +14,6 @@ + browsercaps-updater \ + monop \ + gacutil \ +- linker \ +- tuner \ +- cil-strip \ + resgen \ + macpack \ + mkbundle \ +@@ -53,6 +50,9 @@ + nunitreport \ + sqlsharp \ + gacutil \ ++ linker \ ++ tuner \ ++ cil-strip \ + csharplib + + net_2_1_dirs := \ --- mono-2.4.4~svn151842.orig/debian/patches/firebird-fbclient.dpatch +++ mono-2.4.4~svn151842/debian/patches/firebird-fbclient.dpatch @@ -0,0 +1,15 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run + +@DPATCH@ + +--- mono/mcs/class/FirebirdSql.Data.Firebird/Makefile.old 2007-02-26 23:06:40.510241854 +0100 ++++ mono/mcs/class/FirebirdSql.Data.Firebird/Makefile 2007-02-26 23:07:08.607843047 +0100 +@@ -8,7 +8,7 @@ + LIB_DEFINE_FLAGS = + + ifeq ($(PLATFORM), linux) +-LIB_DEFINE_FLAGS = /d:LINUX ++LIB_DEFINE_FLAGS = /d:LINUX /d:FBCLIENT + endif + + LIB_MCS_FLAGS = \ --- mono-2.4.4~svn151842.orig/debian/patches/armel_fix_configure_fpu_check.dpatch +++ mono-2.4.4~svn151842/debian/patches/armel_fix_configure_fpu_check.dpatch @@ -0,0 +1,39 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## armel_fix_configure_fpu_check.dpatch by Riku Voipio +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.0.1~/configure.in mono-2.0.1/configure.in +--- mono-2.0.1~/configure.in 2008-10-20 19:29:46.000000000 +0200 ++++ mono-2.0.1/configure.in 2008-11-23 16:08:54.000000000 +0100 +@@ -2059,15 +2059,24 @@ + ]) + fi + +-if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_build != xno; then ++AC_ARG_WITH(fpu, [ --with-fpu=FPA,VFP,NONE Select fpu to use on arm],[fpu=$withval]) ++ ++if test ${TARGET} = ARM; then + dnl ****************************************** + dnl *** Check to see what FPU is available *** + dnl ****************************************** + AC_MSG_CHECKING(which FPU to use) + +- AC_TRY_COMPILE([], [ +- __asm__ ("ldfd f0, [r0]"); +- ], fpu=FPA, fpu=NONE) ++ if test "x$fpu" = "x"; then ++ ++ AC_TRY_COMPILE([], [ ++ __asm__ ("ldfd f0, [r0]"); ++ ], fpu=FPA, [ ++ AC_TRY_COMPILE([], [ ++ __asm__ ("fldd d0, [r0]"); ++ ], fpu=VFP, fpu=NONE) ++ ]) ++ fi + + AC_MSG_RESULT($fpu) + CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1" --- mono-2.4.4~svn151842.orig/debian/patches/fix_mono-api-info_build.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_mono-api-info_build.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_mono-api-info_build.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/corcompare/Makefile mono-2.4+dfsg/mcs/tools/corcompare/Makefile +--- mono-2.4+dfsg~/mcs/tools/corcompare/Makefile 2009-02-14 00:36:21.000000000 +0100 ++++ mono-2.4+dfsg/mcs/tools/corcompare/Makefile 2009-05-21 03:22:29.000000000 +0200 +@@ -4,7 +4,7 @@ + + ALL_PROGRAMS = mono-api-info.exe + +-CECIL = ../../class/lib/net_1_1/Mono.Cecil.dll ++CECIL = Mono.Cecil.dll + + COMMON_SOURCES = \ + AssemblyResolver.cs \ --- mono-2.4.4~svn151842.orig/debian/patches/kfreebsd_support.dpatch +++ mono-2.4.4~svn151842/debian/patches/kfreebsd_support.dpatch @@ -0,0 +1,204 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## +## +## All lines beginning with ## DP:' are a description of the patch. +## DP: kfreebsd support - mainly backport of gc 6.8 + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/configure.in mono-2.4+dfsg/configure.in +--- mono-2.4+dfsg~/configure.in 2009-04-11 03:00:41.000000000 +0200 ++++ mono-2.4+dfsg/configure.in 2009-04-11 03:02:23.000000000 +0200 +@@ -98,6 +98,16 @@ + libgc_threads=pthreads + with_sigaltstack=no + ;; ++ *-*-kfreebsd*-gnu) ++ platform_win32=no ++ CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -DTHREAD_LOCAL_ALLOC -pthread" ++ libmono_cflags="-D_REENTRANT -DTHREAD_LOCAL_ALLOC -pthread" ++ libmono_ldflags="-lpthread -pthread" ++ libdl="-ldl" ++ libgc_threads=pthreads ++ need_link_unlink=yes ++ with_sigaltstack=no ++ ;; + *-*-*freebsd*) + platform_win32=no + if test "x$PTHREAD_CFLAGS" = "x"; then +@@ -2011,6 +2021,11 @@ + LIBC="libc.so.12" + INTL="libintl.so.0" + ;; ++ *-*-kfreebsd*-gnu) ++ LIBC="libc.so.0.1" ++ INTL="libc.so.0.1" ++ X11="libX11.so.6" ++ ;; + *-*-*freebsd*) + LIBC="libc.so" + INTL="libintl.so" +diff -urNad mono-2.4+dfsg~/libgc/configure.in mono-2.4+dfsg/libgc/configure.in +--- mono-2.4+dfsg~/libgc/configure.in 2009-04-11 03:00:20.000000000 +0200 ++++ mono-2.4+dfsg/libgc/configure.in 2009-04-11 03:00:52.000000000 +0200 +@@ -112,6 +112,17 @@ + AC_DEFINE(THREAD_LOCAL_ALLOC) + THREADDLLIBS="-lpthread -lrt" + ;; ++ *-*-kfreebsd*-gnu) ++ AC_DEFINE(GC_FREEBSD_THREADS) ++ INCLUDES="$INCLUDES -pthread" ++ THREADDLLIBS=-pthread ++ AC_DEFINE(_REENTRANT) ++ if test "${enable_parallel_mark}" = yes; then ++ AC_DEFINE(PARALLEL_MARK) ++ fi ++ AC_DEFINE(THREAD_LOCAL_ALLOC) ++ AC_DEFINE(USE_COMPILER_TLS) ++ ;; + *-*-freebsd*) + AC_DEFINE(GC_FREEBSD_THREADS) + if test "x$PTHREAD_CFLAGS" != "x"; then +diff -urNad mono-2.4+dfsg~/libgc/dyn_load.c mono-2.4+dfsg/libgc/dyn_load.c +--- mono-2.4+dfsg~/libgc/dyn_load.c 2009-04-11 03:00:20.000000000 +0200 ++++ mono-2.4+dfsg/libgc/dyn_load.c 2009-04-11 03:00:52.000000000 +0200 +@@ -26,7 +26,7 @@ + * None of this is safe with dlclose and incremental collection. + * But then not much of anything is safe in the presence of dlclose. + */ +-#if defined(__linux__) && !defined(_GNU_SOURCE) ++#if (defined(__linux__) || defined(__GLIBC__)) && !defined(_GNU_SOURCE) + /* Can't test LINUX, since this must be define before other includes */ + # define _GNU_SOURCE + #endif +@@ -386,7 +386,7 @@ + /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */ + /* versions. Thanks to Jakub Jelinek for most of the code. */ + +-# if defined(LINUX) /* Are others OK here, too? */ \ ++# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \ + && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ + || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) + +diff -urNad mono-2.4+dfsg~/libgc/include/gc.h mono-2.4+dfsg/libgc/include/gc.h +--- mono-2.4+dfsg~/libgc/include/gc.h 2009-04-11 03:00:20.000000000 +0200 ++++ mono-2.4+dfsg/libgc/include/gc.h 2009-04-11 03:00:52.000000000 +0200 +@@ -488,7 +488,7 @@ + # define GC_RETURN_ADDR (GC_word)__return_address + #endif + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + # include + # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ + && !defined(__ia64__) +diff -urNad mono-2.4+dfsg~/libgc/include/private/gcconfig.h mono-2.4+dfsg/libgc/include/private/gcconfig.h +--- mono-2.4+dfsg~/libgc/include/private/gcconfig.h 2009-04-11 03:00:20.000000000 +0200 ++++ mono-2.4+dfsg/libgc/include/private/gcconfig.h 2009-04-11 03:00:52.000000000 +0200 +@@ -55,7 +55,7 @@ + # endif + + /* And one for FreeBSD: */ +-# if defined(__FreeBSD__) && !defined(FREEBSD) ++# if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(FREEBSD) + # define FREEBSD + # endif + +@@ -1291,8 +1291,15 @@ + # ifndef GC_FREEBSD_THREADS + # define MPROTECT_VDB + # endif +-# define SIG_SUSPEND SIGTSTP +-# define SIG_THR_RESTART SIGCONT ++# ifdef __GLIBC__ ++# define SIG_SUSPEND (32+6) ++# define SIG_THR_RESTART (32+5) ++ extern int _end[]; ++# define DATAEND (_end) ++# else ++# define SIG_SUSPEND SIGTSTP ++# define SIG_THR_RESTART SIGCONT ++# endif + # define FREEBSD_STACKBOTTOM + # ifdef __ELF__ + # define DYNAMIC_LOADING +@@ -2032,6 +2039,28 @@ + extern char * GC_FreeBSDGetDataStart(); + # define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext) + # endif ++# ifdef FREEBSD ++# define OS_TYPE "FREEBSD" ++# ifndef GC_FREEBSD_THREADS ++# define MPROTECT_VDB ++# endif ++# ifdef __GLIBC__ ++# define SIG_SUSPEND (32+6) ++# define SIG_THR_RESTART (32+5) ++ extern int _end[]; ++# define DATAEND (_end) ++# else ++# define SIG_SUSPEND SIGUSR1 ++# define SIG_THR_RESTART SIGUSR2 ++# endif ++# define FREEBSD_STACKBOTTOM ++# ifdef __ELF__ ++# define DYNAMIC_LOADING ++# endif ++ extern char etext[]; ++ extern char * GC_FreeBSDGetDataStart(); ++# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext) ++# endif + # ifdef NETBSD + # define OS_TYPE "NETBSD" + # ifdef __ELF__ +@@ -2103,7 +2132,7 @@ + # define SUNOS5SIGS + # endif + +-# if defined(FREEBSD) && (__FreeBSD__ >= 4) ++# if defined(FREEBSD) && ((__FreeBSD__ >= 4) || (__FreeBSD_kernel__ >= 4)) + # define SUNOS5SIGS + # endif + +@@ -2166,7 +2195,7 @@ + # define CACHE_LINE_SIZE 32 /* Wild guess */ + # endif + +-# ifdef LINUX ++# if defined(LINUX) || defined(__GLIBC__) + # define REGISTER_LIBRARIES_EARLY + /* We sometimes use dl_iterate_phdr, which may acquire an internal */ + /* lock. This isn't safe after the world has stopped. So we must */ +@@ -2247,7 +2276,7 @@ + #if defined(SPARC) + # define CAN_SAVE_CALL_ARGS + #endif +-#if (defined(I386) || defined(X86_64)) && defined(LINUX) ++#if (defined(I386) || defined(X86_64)) && (defined(LINUX) || defined(__GLIBC__)) + /* SAVE_CALL_CHAIN is supported if the code is compiled to save */ + /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */ + # define CAN_SAVE_CALL_ARGS +diff -urNad mono-2.4+dfsg~/mono/mini/exceptions-amd64.c mono-2.4+dfsg/mono/mini/exceptions-amd64.c +--- mono-2.4+dfsg~/mono/mini/exceptions-amd64.c 2009-04-11 03:00:20.000000000 +0200 ++++ mono-2.4+dfsg/mono/mini/exceptions-amd64.c 2009-04-11 03:00:52.000000000 +0200 +@@ -740,7 +740,7 @@ + static inline guint64* + gregs_from_ucontext (ucontext_t *ctx) + { +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + guint64 *gregs = (guint64 *) &ctx->uc_mcontext; + #else + guint64 *gregs = (guint64 *) &ctx->uc_mcontext.gregs; +diff -urNad mono-2.4+dfsg~/mono/mini/mini-amd64.h mono-2.4+dfsg/mono/mini/mini-amd64.h +--- mono-2.4+dfsg~/mono/mini/mini-amd64.h 2009-04-11 03:00:20.000000000 +0200 ++++ mono-2.4+dfsg/mono/mini/mini-amd64.h 2009-04-11 03:00:52.000000000 +0200 +@@ -245,8 +245,7 @@ + + #define MONO_ARCH_NOMAP32BIT + +-#elif defined (__FreeBSD__) +- ++#elif defined (__FreeBSD__) || defined(__FreeBSD_kernel__) + #define REG_RAX 7 + #define REG_RCX 4 + #define REG_RDX 3 --- mono-2.4.4~svn151842.orig/debian/patches/fix_BigInteger_overflow_CVE-2007-5197.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_BigInteger_overflow_CVE-2007-5197.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_BigInteger_overflow_CVE-2007-5197.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-1.2.2.1~/mcs/class/Mono.Security/Mono.Math/BigInteger.cs mono-1.2.2.1/mcs/class/Mono.Security/Mono.Math/BigInteger.cs +--- mono-1.2.2.1~/mcs/class/Mono.Security/Mono.Math/BigInteger.cs 2006-04-14 19:51:24.000000000 +0200 ++++ mono-1.2.2.1/mcs/class/Mono.Security/Mono.Math/BigInteger.cs 2007-10-28 22:42:47.000000000 +0100 +@@ -1574,7 +1574,7 @@ + uint j = 1; + + // Multiply and add +- for (; j < m.length; j++) { ++ for (; j < m.length && j < A.length; j++) { + c += (ulong)u_i * (ulong)*(mP++) + *(aSP++); + *(aDP++) = (uint)c; + c >>= 32; +diff -urNad mono-1.2.2.1~/mcs/class/corlib/Mono.Math/BigInteger.cs mono-1.2.2.1/mcs/class/corlib/Mono.Math/BigInteger.cs +--- mono-1.2.2.1~/mcs/class/corlib/Mono.Math/BigInteger.cs 2006-04-14 19:50:35.000000000 +0200 ++++ mono-1.2.2.1/mcs/class/corlib/Mono.Math/BigInteger.cs 2007-10-28 22:42:15.000000000 +0100 +@@ -1574,7 +1574,7 @@ + uint j = 1; + + // Multiply and add +- for (; j < m.length; j++) { ++ for (; j < m.length && j < A.length; j++) { + c += (ulong)u_i * (ulong)*(mP++) + *(aSP++); + *(aDP++) = (uint)c; + c >>= 32; --- mono-2.4.4~svn151842.orig/debian/patches/mono-thumb2-jit-blx.dpatch +++ mono-2.4.4~svn151842/debian/patches/mono-thumb2-jit-blx.dpatch @@ -0,0 +1,19541 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## mono-thumb2-jit-blx.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4.4~svn151842~/mono/mini/ChangeLog.orig mono-2.4.4~svn151842/mono/mini/ChangeLog.orig +--- mono-2.4.4~svn151842~/mono/mini/ChangeLog.orig 1970-01-01 01:00:00.000000000 +0100 ++++ mono-2.4.4~svn151842/mono/mini/ChangeLog.orig 2010-02-02 06:14:51.000000000 +0100 +@@ -0,0 +1,19382 @@ ++2010-02-02 Zoltan Varga ++ ++ * mini-trampolines.c (mono_magic_trampoline): Fix a problem where the callsite ++ was not patched if the callee needed an rgctx trampoline. ++ ++2010-01-21 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_notify_pending_exc): Avoid a crash if the ++ thread has not fully started yet. ++ ++2010-01-17 Zoltan Varga ++ ++ * branch-opts.c (mono_branch_optimize_exception_target): Stop the optimization ++ if a clause is skipped because it uses the exception object, since it could ++ have caught the exception. ++ ++ * exceptions.cs: Add a test. ++ ++2010-01-16 Zoltan Varga ++ ++ * mini-amd64.c (emit_call_body): Always use near calls when AOTing even if ++ NOMAP32BIT or optimize_for_xen is set. ++ ++2010-01-10 Zoltan Varga ++ ++ * method-to-ir.c (mono_emit_method_call_full): Avoid the virt->nonvirt ++ optimization if the called method is gshared and marshalbyref, since gshared ++ methods can' have wrappers. Fixes #569390. ++ ++ * generics.cs: Add a test. ++ ++2010-01-04 Zoltan Varga ++ ++ * mini-trampolines.c (mono_convert_imt_slot_to_vtable_slot): Call ++ mono_method_get_vtable_slot () instead of accessing imt_method->slot directly, ++ to fix an AOT case. ++ ++2009-12-22 Zoltan Varga ++ ++ * aot-runtime.c (decode_klass_ref): Avoid a crash if a decode_klass_ref () call ++ fails. Fixes #566689. ++ ++2009-12-17 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir): Add support for CALLI with unmanaged ++ signatures. Fixes #565143. ++ ++ * jit-icalls.c (mono_get_native_calli_wrapper): New JIT icall. ++ ++2009-12-11 Zoltan Varga ++ ++ * driver.c: Applied patch from Matt McClellan (matt@mc-c.net). Add a check ++ for 2 parameter sched_setaffinity in older glibc versions. Fixes ++ #564000. ++ ++2009-12-03 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Call handle_exception_clauses () in the same ++ place it was called before too. ++ ++2009-12-03 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Call handle_exception_clauses earlier so ++ the local optimization passes can take its result into account. Fixes ++ #559876. ++ ++ * exceptions.cs: Add a test. ++ ++2009-01-24 Steven Munroe ++ ++ This patch is contributed under the terms of the MIT/X11 license ++ ++ * cpu-ppc64.md (load_memindex): Add loadi8_memindex. ++ ++2009-11-30 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_lowering_pass): Fix an assert which is hit when ++ the instruction following an OP_FCOMPARE is optimized away. ++ ++2009-11-24 Zoltan Varga ++ ++ * aot-compiler.c: Avoid infinite recursion when generic virtual recursion is ++ encountered. ++ ++2009-11-24 Zoltan Varga ++ ++ * cfold.c (mono_constant_fold_ins): Fix a problem in the previous change, ++ OP_SHL_IMM is not 32 bit. ++ ++2009-11-23 Zoltan Varga ++ ++ * method-to-ir.c (inline_method): Prevent infinite recursion. Fixes ++ #557606. ++ ++ * generics.cs: Add a test. ++ ++2009-11-21 Zoltan Varga ++ ++ * cfold.c (mono_constant_fold_ins): Fix constant folding of shr_imm. Fixes ++ #557262. ++ ++ * basic.cs: Add a test. ++ ++2009-11-20 Zoltan Varga ++ ++ * tramp-ppc.c (mono_arch_create_generic_class_init_trampoline_full): These ++ receive their argument in MONO_ARCH_VTABLE_REG, not in the first argument reg. ++ ++2009-11-06 Zoltan Varga ++ ++ * mini-arm.c (handle_thunk): Add a domain argument to control the domain ++ where the thunk memory should be allocated from. Fixes appdomain unloading ++ on arm. ++ ++2009-11-03 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (load_simd_vreg): Add extra argument to signal if ++ the value was loaded from memory. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_setter): Store back to memory if ++ the value was loader from there. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_shuffle): Fail correctly for Shuffle ++ without constant swizzle. ++ ++ Backport of r145283. ++ ++2009-10-30 Zoltan Varga ++ ++ * mini.c (mini_cleanup): Call profiler shutdown before shutting down the ++ runtime. Fixes #551228. ++ ++2009-10-29 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Fix % 1. Fixes #550970. ++ ++ * basic.cs: Add a test. ++ ++ * method-to-ir.c (mono_method_to_ir): Use EMIT_NEW_LOAD_MEMBASE_TYPE to ++ load vtypes instead if OP_LOADV_MEMBASE in the implementation of ++ CONSTRAINED. Fixes #550964. ++ ++ * generics.cs: Add a test. ++ ++2009-09-22 Zoltan Varga ++ ++ * mini-exceptions.c (mini_jit_info_table_find): New helper function which ++ searches all the domains of the current thread. ++ ++ * exceptions-.c: Use it. Fixes #539394. ++ ++2009-10-15 Zoltan Varga ++ ++ * mini.c (mono_op_imm_to_op): Handle OP_AND/OR/XOR_IMM. ++ ++2009-10-13 Martin Baulig ++ ++ * debug-mini.c (mono_debugger_trampoline_compiled): Add ++ `const guint8 *trampoline' argument; send both the old and the new ++ notification. ++ ++2009-07-09 Mark Probst ++ ++ * method-to-ir.c: When doing a call which might be remote from ++ shared generic code to other shared code with open type arguments, ++ get the remoting invoke wrapper from the RGCTX and do an indirect ++ call to it. ++ ++ Backport of r137640. ++ ++2009-10-02 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_emit_setret): Emit long return values using OP_LMOVE. ++ (mono_arch_create_vars): Instead of allocating a stack slot by hand, allocate ++ a variable to hold the stack slot used by the int<->float conversion opcodes. ++ ++ * mini-sparc.c (mono_arch_build_imt_thunk): Implement support for fail_tramp. ++ ++2009-09-29 Zoltan Varga ++ ++ * mini-sparc.c: Fix the handling of enums with base type long. ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Fix IREM_UN_IMM. ++ ++ * mini-sparc.c (mono_arch_allocate_vars): Use mono_class_from_mono_type () ++ instead of using type->data.klass as the later doesn't work with generics. ++ ++2009-09-25 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_create_vars): Make the component vars of a long ret ++ variable volatile. Fixes #541577. ++ ++ * basic-calls.cs: Add a new test. ++ ++ * basic-long.cs: Remove tests which are now in basic-calls.cs. ++ ++2009-09-24 Zoltan Varga ++ ++ * decompose.c (mono_decompose_vtype_opts): Avoid reading uninitialized memory ++ in the VCALL decomposition code. ++ ++2009-09-19 Zoltan Varga ++ ++ * method-to-ir.c: Fix the previous change on 64 bit platforms. ++ ++ * method-to-ir.c: Applied patch from Rodrigo Kumpera. Allow an i8 argument ++ to NEWARR. ++ ++ * iltests.il.in: Add a new test. ++ ++2009-09-17 Rodrigo Kumpera ++ ++ Backport of r127430. ++ ++ * mini.c: Adjust locking order to the new semantics where the loader lock ++ comes first. ++ ++2009-09-16 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Store the computed ++ lmf before calling filter clauses as well. Fixes #539550. ++ ++ * exceptions.cs: Add a test. ++ ++2009-09-01 Zoltan Varga ++ ++ * exceptions-x86.c (throw_exception): Fix the previous change by substracting ++ the alignment for the value of sp. ++ ++2009-08-31 Zoltan Varga ++ ++ * exceptions-x86.c (get_throw_exception): Align the stack on osx. ++ ++2009-07-13 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir): When calling a gshared method, ++ call a generic class init trampoline if needed. Fixes #519336. ++ ++ * generics.cs: Add a test. ++ ++2009-07-31 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Implement OP_IREM_UN_IMM. ++ ++2009-07-09 Mark Probst ++ ++ * method-to-ir.c: When doing a call which might be remote from ++ shared generic code to other shared code with open type arguments, ++ abort generic code sharing for that method. ++ ++2009-06-29 Zoltan Varga ++ ++ * mini-exceptions.c (get_generic_context_from_stack_frame): Fix the case ++ when the generic instance is an instantiation of a subclass of the ++ methods class. Fixes #517166. ++ ++ ++Fri Apr 24 16:44:08 CEST 2009 Paolo Molaro ++ ++ * Makefile.am, genmdesc.c, genmdesc.pl: tiny refactor to allow ++ multiple machine description files to be specified. ++ * mini-ops.h: fixes for cross-compilation. ++ ++2009-06-17 Zoltan Varga ++ ++ * branch-opts.c (mono_merge_basic_blocks): Fix the case when bbn ++ falls through to its next bblock. Fixes #513931. ++ ++ * iltests.il: Add a test. ++ ++2009-06-08 Martin Baulig ++ ++ * debug-mini.c ++ (MonoDebuggerExceptionAction): Moved into debug-mini.h. ++ (_mono_debugger_throw_exception): Don't make this static. ++ (_mono_debugger_unhandled_exception): Likewise. ++ (mono_debugger_handle_exception): Moved to mini-exceptions.c ++ ++ * debug-mini.c ++ (MonoDebuggerExceptionAction): Moved here from debug-mini.c. ++ (_mono_debugger_throw_exception): Add function prototype. ++ (_mono_debugger_unhandled_exception): Likewise. ++ ++ * mini-exceptions.c ++ (mono_handle_exception_internal): Added `MonoJitInfo **out_ji' ++ arg; return the first exception handler if the exception is caught ++ and we're running inside the debugger. ++ (mono_debugger_handle_exception): Moved here from debug-mini.c; ++ improve exception handle inside runtime-invoke, check whether the ++ exception is actually caught in the method being invoked and not ++ by the runtime-invoke-wrapper. ++ ++2009-05-26 Zoltan Varga ++ ++ * mini-sparc.c (add_outarg_load): Fix the sparc build. ++ ++2009-05-25 Rodrigo Kumpera ++ ++ Backport of r134713/134715. ++ ++ * basic.cs: Add regression test for #506915. ++ ++ * method-to-ir.c (mono_method_to_ir): When doing the ldobj+stobj ++ optimization we must check the bb of the first byte of stobj as ++ it's the only one set in cil_offset_to_bb. ++ ++ Fixes #506915. ++ ++2009-05-21 Rodrigo Kumpera ++ ++ Backport of r134536. ++ ++ * mini-x86.c (mono_arch_emit_call): The decompose code now supports ++ decomposing 8 bytes structs into a LCALL. ++ ++ * mini-x86.c (emit_move_return_value): We no longer push the vtype ++ pointer for where to store the returned regs. ++ ++ * decompose.c (mono_decompose_vtype_opts): Fix the comment to properly ++ state the concern. ++ ++ Fixes #471747, #471751 and #4734530 (in fact, it's a bunch of dups). ++ ++2009-05-20 Rodrigo Kumpera ++ ++ Backport of r134470. ++ ++ * local-propagation.c (mono_local_cprop): Avoid local propagation ++ across paired add/sub if the first instruction dest reg is it's ++ source reg. For example: ++ ++ int_add_imm R12 <- R12 [1] clobbers: 1 ++ int_sub_imm R42 <- R12 [1] clobbers: 1 ++ ++ The cprop pass would wrongly const prop + 1 to int_sub_imm which doesn't ++ maintain the math identify. ++ ++ Fixes #505375. ++ ++2009-04-17 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Add a few nops before ++ indirect calls to simplify get_vcall_slot_addr (). Fixes #494567. ++ (mono_arch_get_vcall_slot): Simplify this. ++ ++2009-05-07 Zoltan Varga ++ ++ * aot-compiler.c (add_wrappers): Add remoting-invoke-with-check wrappers ++ for virtual methods too. ++ ++2009-06-08 Martin Baulig ++ ++ * debug-mini.c ++ (MonoDebuggerExceptionAction): Moved into debug-mini.h. ++ (_mono_debugger_throw_exception): Don't make this static. ++ (_mono_debugger_unhandled_exception): Likewise. ++ (mono_debugger_handle_exception): Moved to mini-exceptions.c ++ ++ * debug-mini.c ++ (MonoDebuggerExceptionAction): Moved here from debug-mini.c. ++ (_mono_debugger_throw_exception): Add function prototype. ++ (_mono_debugger_unhandled_exception): Likewise. ++ ++ * mini-exceptions.c ++ (mono_handle_exception_internal): Added `MonoJitInfo **out_ji' ++ arg; return the first exception handler if the exception is caught ++ and we're running inside the debugger. ++ (mono_debugger_handle_exception): Moved here from debug-mini.c; ++ improve exception handle inside runtime-invoke, check whether the ++ exception is actually caught in the method being invoked and not ++ by the runtime-invoke-wrapper. ++ ++2009-05-06 Zoltan Varga ++ ++ Backport of r133651. ++ ++ * aot-compiler.c aot-runtime.c: Use our own hash function instead of ++ g_str_hash () which can change. ++ ++ * driver.c (mini_regression): Disable optimizations not supported by ++ the cpu. Fixes #500019. ++ ++2009-05-05 Zoltan Varga ++ ++ * genmdesc.pl (load_opcodes): Fix this after the TARGET_... changes. ++ ++2009-05-03 Martin Baulig ++ ++ * debug-debugger.c (debugger_insert_source_breakpoint): Don't call ++ mono_debugger_insert_method_breakpoint() since the class init ++ handler we're inserting at the top of the method already gives us ++ a notification. ++ ++2009-04-30 Zoltan Varga ++ ++ * aot-compiler.c (asm_writer_emit_writeout): Strip 'mapping symbols' ++ when compiling for ARM. ++ ++2009-04-29 Zoltan Varga ++ ++ * method-to-ir.c (inline_method): Save/Restore cfg->ret_var_set too. ++ ++ * mini.c (mini_method_compile): Use TARGET_ defines instead of ++ ____ defines in the JIT code. ++ ++ * *.h *.c: Use TARGET_ defines instead of ____ defines in ++ the JIT code. ++ ++2009-03-31 Martin Baulig ++ ++ Backport of r130658. ++ ++ * debug-debugger.c (debugger_remove_breakpoint): Call ++ mono_debugger_remove_class_init_callback (). ++ ++2009-04-22 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir): Force init_locals to be TRUE ++ to prevent asserts in various passes. Fixes #497220. ++ ++2009-04-21 Zoltan Varga ++ ++ * mini-trampolines.c (mono_generic_class_init_trampoline): Remove ++ a racy assert. ++ ++2009-04-16 Zoltan Varga ++ ++ * aot-compiler.c (mono_xdebug_init): Fix the DISABLE_AOT build. ++ ++2009-04-09 Zoltan Varga ++ ++ * mini-arm.h: Error out if VFP support is requested, since its not ++ complete in 2.4. ++ ++2009-03-17 Zoltan Varga ++ ++ * mini-exceptions.c (get_generic_info_from_stack_frame): Avoid returning ++ a managed object which is later put into a GList. Return its class instead. ++ ++ * mini.c (mono_allocate_stack_slots_full): Avoid sharing ref and non-ref ++ stack slots when using sgen. ++ ++2009-03-27 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir): Disable tail calls for calls which ++ return a valuetype. Fixes #487518. ++ ++ * iltests.il: Add a test. ++ ++2009-03-23 Zoltan Varga ++ ++ * aot-runtime.c (decode_method_ref): Fix a warning. ++ ++ * unwind.c (mono_unwind_frame): Ditto. ++ ++2009-03-19 Zoltan Varga ++ ++ Backport of r129824. ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Add another check to avoid hitting ++ the stack_alloc_size < (1 << 16) assertion in emit_prolog (). ++ ++2009-03-11 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix % 1. Fixes #484323. ++ ++ * basic.cs: Add a test. ++ ++2009-03-11 Mark Probst ++ ++ * mini-x86.c (mono_arch_output_basic_block): Use different ++ registers in case the ones we want to overwrite are used by the ++ other operand. Fixes regression in #480807. ++ ++ Backport of r129058. ++ ++2009-03-10 Zoltan Varga ++ ++ Backport of r128924. ++ ++ * mini-s390x.c: Fix support for vtypes whose addresses are passed on the ++ stack. ++ ++2009-03-09 Mark Probst ++ ++ Contributed under the terms of the MIT/X11 license by Steven ++ Munroe . ++ ++ * mini-ppc.c: Correct handling of OP_LOADI4_MEMINDEX for ppc64. ++ Fixes #483462. ++ ++ Backport of r128904. ++ ++2009-03-09 Mark Probst ++ ++ * mini-trampolines.c (mono_create_jump_trampoline): If the method ++ is shared generic code, return the trampoline, even if the method ++ has already been compiled. Fixes #479763. ++ ++ * mini.c, mini.h: New function ++ mono_jit_find_compiled_method_with_jit_info() which is the same as ++ mono_jit_find_compiled_method() but also returns the jit info. ++ ++ Backport of r128723. ++ ++2009-03-06 Zoltan Varga ++ ++ Backport of r128749. ++ ++ * method-to-ir.c (mini_emit_memset): Fix the handling of size '3'. Fixes ++ #481458. ++ ++ * iltests.il.in: Add a test. ++ ++2009-03-05 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir): Only force the vtable var ++ for methods which actually have one. For all other methods, make ++ sure the this argument var is live the whole method. ++ ++ * mini.c (mini_method_compile): Every shared method has a ++ this/vtable/mrgctx info. Fixes #480807. ++ ++ Backport of r128720. ++ ++2009-03-05 Mark Probst ++ ++ Contributed under the terms of the MIT/X11 license by Steven ++ Munroe . ++ ++ * mini-ppc.c, mini-ppc.h: Implement TLS for PPC64. ++ ++ Backport of r127060. ++ ++2009-03-04 Mark Probst ++ ++ * exceptions-x86.c: Include debug-mini.h - fixes build. ++ ++2009-03-04 Martin Baulig ++ ++ * debug-mini.c: Clean up the exception API and add documentation. ++ (mono_debugger_handle_exception): New public method; this is ++ called when throwing an exception or encountering an unhandled one. ++ (mono_debugger_call_exception_handler): Formerly known as ++ mono_debugger_handle_exception(); this is used to tell the ++ debugger that we're about to invoke an exception handler. ++ ++2009-03-04 Martin Baulig ++ ++ * debug-mini.c (mono_debugger_runtime_invoke): Moved here from ++ ../metadata/mono-debug-debugger.c; save and reset exception state. ++ ++2009-03-02 Martin Baulig ++ ++ * debug-mini.c: Moved the debugger exception handling here from ++ ../metadata/mono-debug-debugger.c. ++ ++ * debug-mini.h ++ (MonoDebuggerExceptionAction): New exception typedef. ++ ++ * debug-mini.c ++ (MonoDebuggerThreadInfo): Added `MonoObject *last_exception'. ++ ++ * exceptions-amd64.c ++ (mono_amd64_throw_exception): Use the new debugger exception ++ handling code. ++ ++ * mini-exceptions.c ++ (mono_handle_exception_internal): Don't call ++ mono_debugger_unhandled_exception() here. ++ ++2009-03-04 Mark Probst ++ ++ * method-to-ir.c: Don't inline methods that use JMP. Fixes ++ #481403. ++ ++ Backport of r128552. ++ ++2009-02-26 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_this_arg_from_call): Avoid expensive calls ++ to get_generic_context_from_code () + get_call_info () if possible. ++ ++2009-02-22 Mark Probst ++ ++ Backport of r127665. ++ ++ * tramp-ppc.c (mono_arch_create_trampoline_code): Store the ++ correct frame pointer in the LMF. Should fix #478394. ++ ++2009-02-21 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir): Don't assert if string ctors ++ are called from runtime invoke wrappers. ++ ++2009-02-20 Zoltan Varga ++ ++ * cpu-ppc.md (store_memindex): Increase the size of this. ++ ++2009-02-16 Zoltan Varga ++ ++ Backport of r126983 + r127069. ++ ++ * ssa.c (visit_inst): Fix a crash if the instruction following a switch ++ was optimized away. ++ ++ Backport of r126980. ++ ++ * mini-x86.c (mono_arch_get_vcall_slot): Handle yet another ++ code sequence which matches a non-virtual call. Fixes #472654. ++ ++ Backport of r124419. ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot): Handle yet another ++ code sequence which matches a non-virtual call. ++ ++2009-01-23 Mark Probst ++ ++ Backport of r125679. ++ ++ Contributed under the terms of the MIT/X11 license by Steven ++ Munroe . ++ ++ * mini-ppc.c (mono_arch_output_basic_block): Generate better code ++ for LOADI4_MEMBASE. Use addi instead of addic if it's not ++ necessary. ++ ++2009-02-16 Mark Probst ++ ++ Backport of r125676. ++ ++ Contributed under the terms of the MIT/X11 license by Steven ++ Munroe . ++ ++ * exceptions-ppc.c (mono_arch_get_restore_context): Code size ++ comparison fix. ++ ++ * tramp-ppc.c (mono_arch_create_generic_class_init_trampoline): ++ The trampoline can be longer on PPC64. ++ ++2009-02-16 Mark Probst ++ ++ Backport of r125672. ++ ++ Contributed under the terms of the MIT/X11 license by Steven ++ Munroe . ++ ++ * mini-ppc.c: Compiler warning fixes and trivial code ++ simplifications. ++ ++2009-02-16 Mark Probst ++ ++ Backport of r125443. ++ ++ Contributed under the terms of the MIT/X11 license by Steven ++ Munroe . ++ ++ * exceptions-ppc.c (restore_regs_from_context): Correct operand ++ order (offset then base reg) for ppc_load_multiple_regs. ++ (emit_save_saved_regs) Correct operand order for ++ ppc_store_multiple_regs. ++ (mono_arch_get_call_filter): Correct operand order for ++ ppc_load_multiple_regs. ++ ++ * mini-ppc.c (emit_memcpy): Fix operand order for ++ ppc_load_reg_update and ppc_store_reg_update. ++ (mono_arch_output_basic_block): Correct operand order for ppc_lha. ++ (mono_arch_emit_epilog): Correct operand order for ++ ppc_load_multiple_regs. ++ ++ * tramp-ppc.c (mono_arch_create_trampoline_code): Correct operand ++ order for ppc_store_multiple_regs and ppc_load_multiple_regs. ++ ++2009-02-16 Mark Probst ++ ++ Backport of r125430. ++ ++ * cpu-ppc64.md: Fixed storer4_memindex length. ++ ++2009-02-14 Zoltan Varga ++ ++ Backport of r126897. ++ ++ * method-to-ir.c (mini_emit_ldelema_1_ins): If the array index is a long, ++ convert it to an in32. Fixes #475859. ++ ++ * arrays.cs: Add a test. ++ ++2009-02-12 Zoltan Varga ++ ++ Backport of r126717. ++ ++ * mini-amd64.c (mono_arch_build_imt_thunk): Fix size calculation after ++ the fail_tramp changes. Hopefully fixes #475132. ++ ++2009-02-12 Zoltan Varga ++ ++ Backport of r126737. ++ ++ * mini-s390x.c (mono_arch_output_basic_block): Fix the shift amounts in ++ OP_LCONV_TO_U2. ++ ++ * basic-long.cs: Add a test. ++ ++2009-02-12 Zoltan Varga ++ ++ Backport of r126668. ++ ++ * ssa.c (fold_ins): Use MONO_IS_JUMP_TABLE () and MONO_JUMP_TABLE_FROM_INS () ++ for processing jump tables. Fixes #473787. ++ ++2009-02-11 Mark Probst ++ ++ Backport of r126631. ++ ++ * mini-generic-sharing.c: mini_method_get_context() just calls ++ mono_method_get_context_general() now. ++ ++ * mini.c, mini.h: Moved get_object_generic_inst(), ++ construct_object_context_for_method() and ++ mono_domain_lookup_shared_generic() to metadata/generic-sharing.c. ++ ++2009-02-11 Zoltan Varga ++ ++ Backport of 126604. ++ ++ * branch-opts.c (mono_if_conversion): Handle the case where the merged ++ basic block fell through to its successor bblock without a branch. Fixes ++ #474718. ++ ++ * iltests.il.in: Add a test. ++ ++2009-02-10 Mark Probst ++ ++ Backport of r126467. ++ ++ * mini-x86.c (mono_arch_context_get_int_reg): Handle all registers ++ individually. Fixes #473482. ++ ++2009-02-09 Geoff Norton ++ ++ * mini-s390.c: Fix the signature of emit_sig_cookie. ++ ++2009-02-05 Mark Probst ++ ++ Backport of r125887. ++ ++ * jit-icalls.c (mono_helper_compile_generic_method): Don't inflate ++ the method we get from mono_object_get_virtual_method() because ++ that function does it properly, now. ++ ++2009-02-05 Mark Probst ++ ++ Backport of r125839. ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Account for the ++ fact that mono_find_jit_info() sometimes returns the context ++ corresponding to the jit info in new_ctx. Fixes #472600. ++ ++2009-02-04 Zoltan Varga ++ ++ Backport of 125697. ++ ++ * mini-exceptions.c (mono_setup_altstack): Use a more reasonable altstack ++ size on systems with 64k pages. Fixes #471389. ++ ++2009-02-03 Rodrigo Kumpera ++ ++ Backport of r125459. ++ ++ * arrays.cs: Test for Get/SetValue of array with negate lower bounds. ++ ++2009-01-31 Rodrigo Kumpera ++ ++ Backport of r125172, r125205 and r125206 ++ ++ * basic-calls.cs: Test for the weird crash found on arm. ++ ++ * cpu-arm.md: Increase the size of storer8_membase_reg and ++ loadr8_membase_reg to 24 bytes to accomodate the extra add. ++ ++ * mini-arm.c (mono_arch_output_basic_block): Under FPA, when emitting ++ OP_STORER8_MEMBASE_REG and OP_LOADR8_MEMBASE_REG, add the original ++ reg to LR otherwise we'll be loading/storing from just the offset. ++ ++ * cpu-arm.md: Increase the size of storer8_membase_reg to 20 bytes ++ as it might use decomposed ops. ++ ++2009-01-30 Rodrigo Kumpera ++ ++ Backport of r125077-79 ++ * exceptions-arm.c (mono_arch_find_jit_info): The frame layout on arm have ++ separate frame and stack pointers, so we must use FP to find the register ++ spill area. ++ The FP reg is retrieved from the MonoContext::regs array. ++ ++ ++ * mini-arm.c (mono_arch_output_basic_block): Emit two cond ops for OP_FBGE ++ as FPA requires it. ++ ++ * mini-arm.c (mono_arch_emit_setret): Emit OP_FMOVE for methods that ++ return R4 and R8 when not running under softfloat. ++ ++ Fixes basic-calls.exe ++ ++2009-01-27 Mark Probst ++ ++ Backport of r124712. ++ ++ * method-to-ir.c (emit_stloc_ir): Only apply the reg-reg move ++ optimization if the top of stack is the last instruction in the ++ bblock. Otherwise it might have been used after its definition. ++ Fixes #469742. ++ ++2009-01-27 Zoltan Varga ++ ++ * Backport of r123987. ++ ++ * method-to-ir.c (method-to-ir.c): Add support for the constrained prefix ++ on type variables in AOTed code. ++ ++2009-01-26 Zoltan Varga ++ ++ Backport of r124582. ++ ++ * mini-s390x.c: Remove a stray declaration of emit_sig_cookie () to fix ++ the s390x build. ++ ++2009-01-26 Zoltan Varga ++ ++ Backport of r124456. ++ ++ * exceptions-amd64.c (mono_arch_exceptions_init): Call ++ get_throw_pending_exception () to avoid initialization races. ++ ++ * mini-exceptions.c (mono_exceptions_init): Call an arch specific ++ mono_arch_exceptions_init () function. ++ ++2009-01-23 Mark Probst ++ ++ Backport of r124339. ++ ++ * mini-ppc.c (mono_arch_context_get_int_reg): Allow access to the ++ stack pointer (r1). ++ ++2009-01-22 Mark Probst ++ ++ Backport of r124246. ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Fetch the generic ++ info from the (correct) context. ++ ++2009-01-21 Zoltan Varga ++ ++ Backport of r124092. ++ ++ * method-to-ir.c (handle_alloc): Avoid generic instances in the ++ out_of_line optimization. ++ ++2009-01-21 Martin Baulig ++ ++ Backport or r124060. ++ ++ * mini.h ++ (MonoCompile): Added `disable_deadce_vars' to disable removing ++ unused variables. ++ ++ * mini.c ++ (mini_method_compile): Set `cfg->disable_deadce_vars' when running ++ inside the debugger. ++ ++ * liveness.c (mono_analyze_liveness): Don't remove any unused ++ variables if `cfg->disable_deadce_vars' is set. ++ ++2009-01-21 Mark Probst ++ ++ Backport of r124028. ++ ++ * method-to-ir.c: Only apply exception constructor optimization if ++ the the method actually belongs to an exception class. Fixes ++ #467456. ++ ++2009-01-21 Zoltan Varga ++ ++ Backport of r123989. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Put back the previous ++ change inside a #ifdef __mono_ppc64__. ++ ++2009-01-20 Mark Probst ++ ++ Backport of r123917. ++ ++ * method-to-ir.c: Force the vtable variable in shared generic code ++ for the case that they might show up on a stack trace where they ++ are needed. ++ ++ * mini-exceptions.c: Save and use generic sharing info as well as ++ IP in stack traces to resolve shared generic instantiations. ++ ++2009-01-20 Zoltan Varga ++ ++ Backport of r123914. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Revert the change which ++ added a mono_get_addr_from_ftnptr () as it breaks the ia64 build. ++ ++2009-01-20 Rodrigo Kumpera ++ ++ * mini-exceptions.c (mono_print_thread_dump): Add information ++ about the thread state using wapi_current_thread_desc. ++ ++2009-01-19 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for the new constructors. ++ ++2009-01-19 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_EXPAND_* ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_setter): Add support for single element constructors. ++ ++2009-01-19 Zoltan Varga ++ ++ * iltests.il.in: Add a test for #467385. ++ ++2009-01-18 Rodrigo Kumpera ++ ++ * mini.c (mini_thread_cleanup): Don't cleanup TLS storage if the ++ thread been cleaned up is not the same currently in execution. ++ ++ Fixes appdomain-unload crashes on windows, osx and linux variants ++ without the __thread keyword. ++ ++2009-01-18 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_flush_icache): Applied patch from Koushik Dutta ++ (koush@koushikdutta.com). Implement this for android. ++ ++ * helpers.c (mono_disassemble_code): Avoid assembler errors if the id ++ begins with a digit. ++ ++ * method-to-ir.c: Call mono_gc_get_write_barrier () instead of ++ mono_marshal_get_write_barrier (). ++ ++2009-01-17 Rodrigo Kumpera ++ ++ * decompose.c (mono_decompose_vtype_opts): Fix the decomposition ++ of OP_VCALL_* ops for 8 bytes vtypes on 32 bits archs and platorms ++ that pass them on a register pair. ++ ++ This affects windows, OSX and FreeBSD. The mono/tests/handleref.exe ++ test was crashing due to that. ++ ++Fri Jan 16 15:21:21 CET 2009 Paolo Molaro ++ ++ * exceptions-ppc.c: tweaks from malc (OV-Soft) to fix the size of the ++ trampoline code. Include ucontext.h only if available. ++ ++2009-01-15 Mark Probst ++ ++ * mini.c: mono_domain_lookup_shared_generic() takes an open method ++ and doesn't check whether it's sharable, like it was before ++ removing the shared generics hash. This brings IronPython ++ performance back to what it was before that change. ++ ++2009-01-14 Mark Probst ++ ++ * method-to-ir.c: Handle delegate invocation optimization earlier, ++ otherwise it would be handled (much more slowly) by the ++ final/sealed optimization. ++ ++2009-01-13 Zoltan Varga ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Avoid crashes when the current thread or ++ domain is not set. Fixes #465864. ++ ++2009-01-12 Mark Probst ++ ++ * method-to-ir.c: Don't stop sharing of generic methods with catch ++ clauses - we already handle those. ++ ++2009-01-12 Mark Probst ++ ++ * mini.c, mini.h: lookup_generic_method() is now ++ mono_domain_lookup_shared_generic() and uses the jit_code_hash, ++ making the shared_generics_hash obsolete. ++ ++2009-01-12 Mark Probst ++ ++ * mini-ppc.c, exceptions-ppc.c, cpu-ppc.md, cpu-ppc64.md: Don't ++ use the red zone. Make room on the stack first and then use it, ++ not the other way around. ++ ++2009-01-12 Zoltan Varga ++ ++ * mini.c (mini_init): Call mono_xdebug_init (). ++ ++ * aot-compiler.c (mono_xdebug_init): Make this non-static. ++ ++2009-01-11 Zoltan Varga ++ ++ * TestDriver.cs: Add an --iter argument to run tests multiple times. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Emit debug info for ++ trampolines. ++ ++ * aot-compiler.c (mono_save_trampoline_xdebug_info): New function to emit ++ debug+unwind info for trampolines. ++ ++ * mini.c (mono_create_unwind_op): New helper function. ++ ++ * unwind.h: Add macros for emitting unwind ops without a MonoCompile. ++ ++2009-01-10 Zoltan Varga ++ ++ * aot-compiler.c: Fix the build. ++ ++2009-01-09 Zoltan Varga ++ ++ * Makefile.am: Update dtrace-prelink.sh location. ++ ++2009-01-08 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir): Fix the check for the mscorlib ldstr ++ optimization. Fixes #464520. ++ ++2009-01-07 Bill Holmes ++ ++ * mini-amd64.c : Adding code to save/restore non-volatile registers ++ on Winx64. ++ ++ * exceptions-amd64.c : Adding code to save/restore non-volatile ++ registers on Winx64. ++ ++ Contributed under MIT/X11 license. ++ ++2009-01-07 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_flush_icache): Use __GNUC_PREREQ instead of checking ++ __GNUC_MINOR__ which can break when the major version changes. ++ ++2009-01-07 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for usage of the sizeof opcode. ++ ++2009-01-07 Geoff Norton ++ ++ * helpers.c: Allow mono -v -v -v to work on darwin. ++ ++2009-01-05 Bill Holmes ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot) : Handle an additional instruction ++ pattern. ++ ++ Contributed under MIT/X11 license. ++ ++2009-01-05 Zoltan Varga ++ ++ * mini.c (mono_allocate_stack_slots_full2): Use mono_class_from_mono_type ++ instead of directly accessing type->data.klass. Fixes #462016. ++ (mono_allocate_stack_slots_full): Ditto. ++ ++ * mini-arm.c (mono_arch_flush_icache): Applied patch from Riku Voipio ++ . Fix cache flush on kernels without OLDABI compat option. ++ ++ * aot-compiler.c (emit_plt): Fix ARM build. ++ ++2009-01-04 Zoltan Varga ++ ++ * branch-opts.c (mono_if_conversion): Optimize this using ins->prev. ++ ++ * branch-opts.c (mono_if_conversion): Fix an assert introduced by the last ++ change. ++ ++ * branch-opts.c (mono_if_conversion): Use branch->inst_true_bb/inst_false_bb ++ instead of bblock->out_bb [0]/[1], the two might not be the same. Fixes ++ #463357. ++ ++ * iltests.il.in: Add a regression test. ++ ++2009-01-04 Rodrigo Kumpera ++ ++ * mini-codegen.c (mono_print_ins_index): Pretty print XPHI and VPHI. ++ ++2009-01-04 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add a regression test for #462457. ++ ++2009-01-04 Rodrigo Kumpera ++ ++ * mini-ops.h: Add a definition of XPHI. ++ ++ * mini.h (MONO_IS_PHI): Make is aware of simd instrincs. ++ ++ * ssa.c (op_phi_to_move): Handle XPHI. ++ ++ * ssa.c (mono_ssa_compute): Generate a XPHI for simd intrinsics instead of VPHI. ++ ++ Fixes #462457 ++ ++2009-01-04 Rodrigo Kumpera ++ ++ * method-to-ir.c (mono_emit_rgctx_calli): Fix a warning. ++ ++2008-12-31 Geoff Norton ++ ++ * mini-ppc.c: The prolog size allocated can be too small for darwin ++ ppc32 under certain circumstances. Also fix a small logic bug. ++ ++2008-12-29 Zoltan Varga ++ ++ * mini.c (mono_jit_compile_method_inner): Avoid holding the domain lock ++ while loading AOT methods. ++ ++ * mini-exceptions.c: Check jit_tls->class_cast_from instead of class_cast_to ++ since only the former is nulled out after a successful cast. This prevents ++ crashes with rethrown exceptions when using --debug=casts. ++ ++2008-12-24 Mark Probst ++ ++ * mini.h: New macro for checking whether a method is final, ++ i.e. whether the method or its class is marked final. ++ ++ * method-to-ir.c: Use the new macro for all final-checks ++ consistently. Fixes the crash in the System.ServiceModel tests. ++ ++2008-12-23 Mark Probst ++ ++ * mini-exceptions.c (get_exception_catch_class): Corrected another ++ overly strict assertion. ++ ++2008-12-23 Mark Probst ++ ++ * mini-ppc.c (mono_arch_build_imt_thunk): Save and restore r11. ++ Clobbering it is not allowed because the caller might use it as ++ the vtable register in the interface call. ++ ++2008-12-19 Mark Probst ++ ++ * mini-exceptions.c (get_exception_catch_class): Corrected an ++ overly strict assertion. ++ ++2008-12-18 Mark Mason ++ ++ * method-to-ir.c: use SIZEOF_REGISTER instead of SIZEOF_VOID_P or sizeof(gpointer) when appropriate. ++ ++ * mini.h: Move typedef to mgreg_t up above include of mini-arch.h ++ ++ * local-propogation.c: use SIZEOF_REGISTER instead of SIZEOF_VOID_P when appropriate ++ ++ * cpu-mips.md: correct lengths for certain long_ opcodes. ++ ++ * mini-mips.h: Only emulate long operations when SIZEOF_REGISTER==4. Add missing func decl. ++ ++ * mini-mips.c: Add support for more long operations. Fix issues with stack frame layout for n32 (still not perfect yet). Add mips_emit_load_const(). ++ ++2008-12-17 Mark Mason ++ ++ * exceptions-mips.c (mono_arch_find_jit_info): decode sd instructions as well when looking for registers. ++ ++2008-12-17 Mark Mason ++ ++ * mini-mips.c (mono_arch_output_basic_block): OP_JUMP_TABLE stores patch type in inst_c1, not inst_i1. ++ ++2008-12-16 Rodrigo Kumpera ++ ++ * branch-opts.c (remove_block_if_useless): Even if BB0 falls through, don't add a br to the ++ next basic block. ++ ++2008-12-16 Mark Mason ++ ++ * mini.h: Allow MonoInst 'p' field to alias with the low-order bits of the 'const_val' fields correctly on big-endian systems when SIZEOF_VOID_P < SIZEOF_REGISTER ++ ++ * ir-emit.h: Change SIZEOF_VOID_P to SIZEOF_REGISTER, init instruction through inst_c* fields instead of inst_p* fields in case sizeof(inst_p) < sizeof(inst_c) ++ ++2008-12-15 Mark Mason ++ ++ * trace.c (mono_trace_enter_method): correctly handle arguments smaller than the stack slot size on big endian systems. ++ ++2008-12-14 Zoltan Varga ++ ++ * liveness.c (mono_analyze_liveness): Avoid eliminating the 'this' var in ++ gshared code. Fixes #458947. ++ ++ * generics.cs: Add a test. ++ ++2008-12-12 Mark Mason ++ ++ * method-to-ir.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * mini-mips.c: first pass n32 code generation. ++ ++ * mini-mips.h: datatypes and defines for n32 support. ++ ++ * exceptions-mips.c: first pass n32 code generation. ++ ++ * tramp-mips.c: first pass n32 code generation. ++ ++ * cpu-mips.md: add long_ opcodes. ++ ++2008-12-12 Mark Mason ++ ++ * liveness.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * cfold.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * local-propogation.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * regalloc2.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * mini.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * mini-codegen.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * ssa.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * decompose.c: replace SIZEOF_VOID_P with SIZEOF_REGISTER where needed. ++ ++ * helpers.c: for mips/n32, don't pass -mips32 to objdump ++ ++2008-12-12 Zoltan Varga ++ ++ * mini-arm.c tramp-arm.c: Fix calls to mono_arch_flush_icache. ++ ++2008-12-12 Andrés G. Aragoneses ++ ++ * driver.c: Sync --help-trace with man page (EXPR,EXPR). ++ ++2008-12-12 Mark Probst ++ ++ * mini-ppc.h, exceptions-ppc.c, tramp-ppc.c: Create function ++ descriptors for helper functions directly in front of the code. ++ ++2008-12-11 Mark Probst ++ ++ * method-to-ir.c: Removed an unnecessary assertion. ++ ++2008-12-10 Zoltan Varga ++ ++ * method-to-ir.c: Merge SGEN changes from the old JIT. ++ ++2008-12-10 Zoltan Varga ++ ++ * driver.c (compile_all_methods_thread_main): Handle failure of ++ mono_get_method (). ++ ++2008-12-10 Mark Probst ++ ++ * mini-ppc.c: Merged with mini-ppc64.c. ++ ++ * mini-ppc.h: Define PPC_MINIMAL_PARAM_AREA_SIZE on all targets. ++ ++ * Makefile.am: Use the same sources for PPC and PPC64. ++ ++ * mini-ppc64.c: Removed. ++ ++2008-12-09 Rodrigo Kumpera ++ ++ * branch-opts.c (remove_block_if_useless): Extract fall through detection ++ code to mono_bb_is_fall_through. ++ ++ * branch-opts.c (mono_remove_critical_edges): Same. ++ ++2008-12-09 Rodrigo Kumpera ++ ++ * ssa.c (fold_ins): branch opt can kill dummy switch ops so we can't ++ expect that an OP_BR_REG will be there. ++ ++2008-12-09 Rodrigo Kumpera ++ ++ * branch-opts.c (remove_block_if_useless): Use MONO_IS_BRANCH_OP instead of checking ++ for the many branch ops. The original check miss OP_BR_REG. ++ ++ Fixes #457574. ++ ++2008-12-09 Mark Mason ++ ++ * mini-mips.h mini-mips.c exceptions-mips.c tramp-mips.c: first round of changes necessary to eventually support n32. ++ ++2008-12-09 Zoltan Varga ++ ++ * aot-runtime.c (load_method): Avoid calling decode_exception_debug_info ++ while holding the aot lock. ++ ++2008-12-09 Mark Mason ++ ++ * mini-mips.c (mono_arch_output_basic_block): use mfc1/lwc1 instead of mfc1d/ldc1 ++ ++2008-12-09 Bill Holmes ++ ++ * mini.c (mini_cleanup) : Adding a call to cominterop_release_all_rcws ++ to release all runtime callable wrappers held by the runtime. ++ ++ Contributed under MIT/X11 license. ++ ++2008-12-09 Bill Holmes ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code_full) : Increase the code size for ++ for Winx64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-12-09 Zoltan Varga ++ ++ * aot-runtime.c (decode_exception_debug_info): Acquire the domain ++ lock when calling mono_domain_alloc (). Hopefully fixes #415608. ++ ++2008-12-09 Mark Mason ++ ++ * cpu-mips.md: fix ckfinite length ++ ++ * mini-mips.c: at least recognize n32 ABI when used (not yet supported) ++ (mono_arch_lowering_pass): cleanup, rearrange for clarity ++ (mono_arch_output_basic_block): implement OP_CKFINITE, add more asserts ++ ++2008-12-08 Mark Mason ++ ++ * exceptions-mips.c (mono_arch_find_jit_info): init new_ctx with ctx, dont' call setup_context. ++ ++2008-12-08 Geoff Norton ++ ++ * tramp-amd64.c: r120895 stores RAX, so we need to increase the window ++ size by 8 bytes as well. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector16b. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector16sb. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector8us. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector8s. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector4ui. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector2l. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector2d. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (mono_emit_simd_intrinsics): Add support for intrinsics ++ that are extension methods. ++ ++2008-12-08 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix method names for Vector4f. ++ ++2008-12-08 Zoltan Varga ++ ++ * mini-exceptions.c (mono_print_thread_dump): Mark threadpool threads ++ as such. Fixes #456669. ++ ++2008-12-07 Mark Mason ++ ++ * mini-mips.c (mono_arch_emit_call): narrow float arguments when passing as args. ++ ++2008-12-07 Mark Mason ++ ++ * mini-mips.c (mono_arch_lowering_pass): don't handle OP_ICONV_TO_R* or OP_R*CONST ++ (mono_arch_emit_setret): use OP_MIPS_CVTSD to return SP floats ++ (mono_arch_output_basic_block): simplify FP load/store, handle OP_MIPS_FBLT_UN ++ (mips_adjust_stackframe): handle FP spills ++ ++ * mini-ops.h: add mips_mtc1_s2 ++ ++ * cpu-mips.md: add mips_mtc1_s2 ++ ++2008-12-07 Zoltan Varga ++ ++ * unwind.c: New file, move the unwind info encoding functions here from ++ aot-compiler.c, so they could be used at runtime too. ++ ++2008-12-05 Mark Mason ++ ++ * mini-mips.c (mono_arch_lowering_pass): handle OP_IMUL_IMM as well ++ (mono_arch_output_basic_block): fix OP_LOCALLOC code generation ++ ++2008-12-05 Mark Mason ++ ++ * mini-mips.c: cleanup warnings ++ (mono_arch_lowering_pass): handle OP_LOCALLOC_IMM ++ (mips_adjust_stackframe): handle case of taking the address of stack locals ++ ++2008-12-05 Zoltan Varga ++ ++ * aot-compiler.c: Implement a few functions missing from the asm writer. ++ (emit_method_code): Only write symbols for methods when using the bin ++ writer, since the assembler can't deal with the characters in our method ++ names. ++ ++ * aot-compiler.c (is_plt_patch): ICALL_ADDR is also a plt patch. ++ ++ * method-to-ir.c (mono_method_to_ir): Transform aotconst+calli into a direct ++ call. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Rework the code ++ a bit to also restore %rax. ++ ++2008-12-05 Mark Probst ++ ++ * mini-ppc.c: Some simple merges from mini-ppc64.c. ++ ++2008-12-05 Zoltan Varga ++ ++ * ssa.c (mono_ssa_compute): Only add an implicit reference at start for ++ arguments. ++ ++2008-12-05 Mark Probst ++ ++ * exceptions-ppc.c: Merged with exceptions-ppc64.c. ++ ++ * mini-ppc.c, mini-ppc.h: Remove PPC_STACK_ALIGNMENT and use ++ MONO_ARCH_FRAME_ALIGNMENT. Struct for PPC64 function descriptors. ++ ++ * exceptions-ppc64.c: Removed. ++ ++ * Makefile.am: Use exceptions-ppc.c instead of exceptions-ppc64.c. ++ ++2008-12-05 Mark Probst ++ ++ * tramp-ppc.c, mini-ppc.c, mini-ppc.h: Merged tramp-ppc.c with ++ tramp-ppc64.c. ++ ++ * Makefile.am: Use tramp-ppc.c instead of tramp-ppc64.c. ++ ++ * tramp-ppc64.c: Removed. ++ ++2008-12-05 Zoltan Varga ++ ++ * aot-compiler.c (add_generic_instances): Skip non-generic classes in ++ the TYPESPEC table. ++ ++2008-12-05 Mark Probst ++ ++ * mini-ppc.h: Merged mini-ppc64.h with mini-ppc.h. ++ ++ * exceptions-ppc64.c, tramp-ppc64.c, mini-arch.h, Makefile.am: Use ++ mini-ppc.h instead of mini-ppc64.h. ++ ++ * mini-ppc64.h: Removed. ++ ++2008-12-04 Mark Mason ++ ++ * mini-mips.c: introduce USE_LDC_SDC: use ldc1/sdc1 to load/store doubles, disabled by default ++ ++ * mini-mips.c (mono_arch_emit_outarg_vt): fix offset calculation for memcpy in structure passing. ++ ++2008-12-05 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, exceptions-ppc64.c, tramp-ppc64.c: ++ Removed FIRST/LAST_[GF]REG macros, to make merging PPC64 with PPC ++ code easier. ++ ++2008-12-05 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for operator == and != on Vector8us and Vector16b. ++ ++2008-12-05 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Add support for operator == and != to Vector8(u)s and Vector16(s)b. ++ ++2008-12-05 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for operator == and != on Vector4f. ++ ++2008-12-05 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_equality): Adapt to support Vector4f. ++ ++ * simd-intrinsics.c: Kill useless enum. ++ ++2008-12-04 Mark Mason ++ ++ * cpu-mips.md: add long_conv_to_ovf_i4_2 ++ * mini-mips.c: update/add various _OVF_ opcodes to fix test failures ++ ++2008-12-04 Mark Mason ++ ++ * mini-mips.c: ifdef protect automatic promotions of R4 to R8. ++ ++ * mini-mips.c (mono_arch_emit_setret): handle R4 case with FCONV_TO_R4 instead of FMOVE ++ ++2008-12-04 Mark Mason ++ ++ * mini-mips.c (mono_arch_output_basic_block): fix codegen for OP_OR_IMM/OP_IOR_IMM ++ ++2008-12-04 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for new methods. ++ ++2008-12-04 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Add support for operator == and != ++ on Vector4(u)i. ++ ++ * simd-methods.h: Add SN_op_Inequality and SN_op_Equality. ++ ++2008-12-04 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Remove ExtractByteMask intrinsics. ++ ++2008-12-04 Zoltan Varga ++ ++ * aot-compiler.c (add_wrappers): Add pinvoke wrappers. ++ ++ * mini.c (mono_resolve_patch_target): Allow pinvoke methods in ++ MONO_PATCH_INFO_ICALL_ADDR. ++ ++ * aot-runtime.c (MonoAotFileInfo): Correct order of fields. ++ ++ * aot-compiler.c: Resurrect full-aot support. ++ ++2008-12-04 Mark Mason ++ ++ * mini-mips.c (mono_arch_lowering_pass): handle OP_COMPARE and OP_ICOMPARE ++ ++2008-12-04 Mark Mason ++ ++ * mini-mips.c (mono_arch_output_basic_block): fix OP_IREM_UN code generation ++ ++2008-12-03 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix tests to work under ppc. ++ Remove tests for methods that will be removed. ++ ++2008-12-03 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir): Handle ldtoken of an open ++ generic type (via a typedef or typeref) correctly. ++ ++2008-12-03 Zoltan Varga ++ ++ * mini-trampolines.c (mono_magic_trampoline): Add some debugging code to help ++ diagnose an assertion failure. ++ ++2008-12-02 Mark Probst ++ ++ * tramp-ppc64.c (mono_arch_create_rgctx_lazy_fetch_trampoline): ++ Fix trampoline size. ++ ++ * mini-ppc64.c, mini-ppc64.h, cpu-ppc64.md: A few floating point ++ conversion opcodes are implemented natively instead via emulation. ++ ++2008-12-01 Mark Mason ++ ++ * cpu-mips.md: remove mips_xori ++ ++ * mini-ops.h: remove mips_xori ++ ++ * mini-mips.h: replace OP_MIPS_XORI with OP_IXOR ++ ++ * mini-mips.c (mono_arch_decompose_long_opts): Add ladd_imm, lsub, lsub_imm, lneg, lsub_ovf, lsub_ovf_un. ++ ++ * mini-mips.c (mono_arch_lowering_pass, mono_arch_output_basic_block): fix IXOR handling ++ ++2008-12-01 Mark Mason ++ ++ * cpu-mips.md: fix instruction lengths. ++ ++ * mini-mips.h: define MONO_ARCH_NO_IOV_CHECK ++ ++ * mini-mips.c: move most instruction rewriting into decompose_ops. Implement conditional branches and exceptions. Fix jump table patch handling. Implement add/sub OVF. ++ ++ * mini-ops.h: fix slti / sltiu op profiles. ++ ++2008-12-02 Martin Baulig ++ ++ * method-to-ir.c (mono_method_to_ir): Disable debugging ++ information for the init locals block to make the debugger stop ++ after all locals have been initalized. ++ ++2008-12-02 Martin Baulig ++ ++ * mini.c (mini_method_compile): Disable MONO_OPT_DEADCE when ++ running inside the debugger. ++ ++2008-12-01 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Only run local deadce if MONO_OPT_DEADCE ++ is enabled. ++ ++ * method-to-ir.c (mono_method_to_ir): Fix invalid code generated by the ++ alu->alu imm optimization which only shows if deadce is disabled. ++ ++ * aot-compiler.c: Rename the function names for the binary and asm writers ++ so they can coexist in the same process. Rework the xdebug code to use the ++ asm writer. This avoids the need to call into the runtime to dump the ++ debugging info. Add more debugging info for types. ++ ++ * mini-.h: Kill MONO_ARCH_HAVE_NORMALIZE_OPCODES define. ++ ++ * genmdesc.c genmdesc.pl mini.h: Don't put the CEE_ opcodes into the ++ cpu description tables, they can't occur in cpu-.md. ++ ++ * method-to-ir.c (mono_method_to_ir): Set the type of the value pushed on ++ the stack in CEE_LDFLDA. Fixes #450542. ++ ++ * generics.cs: Add a new test. ++ ++2008-12-01 Mark Mason ++ ++ * mini-ops.h: updated MIPS opcodes ++ * mini-mips.c: decompose long opts ++ * mini-mips.h: decompose long opts ++ ++2008-11-29 Mark Mason ++ ++ * cpu-mips.md: fix length on int_rem_un ++ * mini-mips.c (mips_stackframe_adjust): fix insertion of spillvars region in MIPS stackframes. ++ ++2008-11-29 Zoltan Varga ++ ++ * mini.h aot-runtime.c: Fix building with DISABLE_AOT. ++ ++ * mini-codegen.c (mono_print_ins_index): Handle OP_VOIDCALL_MEMBASE. ++ ++2008-11-29 Martin Baulig ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Check ++ mono_debug_using_mono_debugger() in addition to the ++ `no_gdb_backtrace' flag in the `MonoDebugOptions'. ++ ++2008-11-28 Mark Mason ++ ++ * mini-ops.h: updated more MIPS opcodes ++ * mini-mips.c: FP compare/branch working again, clean up last of CEE_ -> OP_ mappings ++ * cpu-mips.md: Added MIPS versions of new FP compare/branch opcodes. ++ ++2008-11-28 Mark Probst ++ ++ * mini-ppc64.c: Patch the RGCTX fetch trampoline correctly. ++ ++2008-11-28 Mark Mason ++ ++ * mini-mips.c (mono_arch_emit_call): adding missing conversion to fp single when passing in integer arg register. ++ * mini-mips.c (mips_adjust_stackframe): compensate for spill-down logic. ++ * mini-ops.h: correct selected mips opcode entries ++ ++2008-11-28 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h: Enable generalized IMT thunks and ++ make them work. ++ ++2008-11-28 Mark Probst ++ ++ * mini-ppc64.h, tramp-ppc64.c: Make generic code sharing work. ++ ++2008-11-28 Mark Mason ++ ++ * method-to-ir.c, mini-trampolines.c: protect IMG code with #ifdef MONO_ARCH_HAVE_IMT to fix compile errors. ++ * mini-mips.c: Fixup stackframe assignments after allocation of spillvars. ++ * mini-mips.h: disable IMT ++ * tramp-mips.c (mono_arch_get_vcall_slot): fix offset extraction ++ ++2008-11-28 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h: Don't emulate long ops. ++ ++2008-11-28 Mark Probst ++ ++ * mini-ppc64.c, exceptions-ppc64.c: Several fixes. ++ ++2008-11-28 Zoltan Varga ++ ++ * method-to-ir.c (handle_isinst): Use PCONST instead of ICONST for ++ consistency. ++ ++2008-11-27 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (emit_array_extension_intrinsics): Add support ++ for Set/GetVector aligned versions. ++ ++2008-11-27 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for Get/SetVector. ++ ++2008-11-27 Mark Probst ++ ++ * mini.c: Removed g_slist_append_mempool(). Now in ++ metadata/mempool.c. ++ ++2008-11-27 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (mono_emit_vector_ldelema): Extract the element ++ size properly and make the bounds check optional. ++ ++ * simd-intrinsics.c (emit_array_extension_intrinsics): Add support ++ for SetVector and IsAligned. ++ ++2008-11-27 Zoltan Varga ++ ++ * mini.c: Remove unused mono_normalize_opcodes () function. ++ ++2008-11-26 Mark Probst ++ ++ * method-to-ir.c (mini_emit_inst_for_method): Small fix: we're ++ using the new atomic add ops now. ++ ++ * mini-ppc64.c, mini-ppc64.h, cpu-ppc64.md: Implemented atomic ++ add. ++ ++2008-11-26 Mark Probst ++ ++ * mini-ppc64.c: Several fixes. ++ ++2008-11-25 Mark Mason ++ ++ * cpu-mips.md: added jump_table ++ * mini-mips.c: added jump_table. Eliminate compare-imm when lowering. Remove dead function. ++ ++2008-11-25 Mark Mason ++ ++ * mini-mips.c, mini-mips.h, tramp-mips.c, cpu-mips.md: Initial upgrade of MIPS port to new IR. ++ ++2008-11-25 Mark Mason ++ ++ * mini-ops.h: corrected a handful of MIPS opcodes. ++ ++2008-11-25 Mark Mason ++ ++ * aot-compiler.c: MIPS to use ELF writer ++ ++2008-11-25 Mark Mason ++ ++ * mini-codegen.c: remove MIPS specific assert. ++ ++2008-11-25 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, tramp-ppc64.c, cpu-ppc64.md: Several ++ fixes. PPC64 now passes most of the runtime regressions. ++ ++2008-11-24 Zoltan Varga ++ ++ * regalloc2.c: Distinguish between use/def positions. Optimize the creation of ++ volatile intervals a bit. ++ ++2008-11-24 Mark Probst ++ ++ * basic-long.cs: New test case. ++ ++2008-11-23 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Disable globalra for large methods for ++ now. ++ ++ * regalloc2.c (order_moves): Add fp support. ++ ++ * branch-opts.c (mono_remove_critical_edges): Split non-critical edges whose ++ source bblock ends with an OP_BR_REG. ++ ++ * ratests.cs: Add a new test. ++ ++2008-11-23 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, tramp-ppc64.c: Disable generic code ++ sharing. PPC64 now passes generics.exe. ++ ++2008-11-23 Mark Probst ++ ++ * mini-ppc64.c: Several fixes. PPC64 now runs iltests.exe. ++ ++2008-11-23 Zoltan Varga ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Avoid reading uninitialized ++ memory when mono_jit_info_table_find () can't find the method in the ++ LMF case. ++ ++ * aot-compiler.c (mono_save_xdebug_info): Emit complete debug info for ++ AOTed code too. ++ ++ * aot-compiler.c (mono_save_xdebug_info): Make this work with the assembly ++ writer too. ++ ++2008-11-23 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, exceptions-ppc64.c, cpu-ppc64.md: ++ Several fixes. PPC64 now runs exceptions.exe and ++ devirtualization.exe. ++ ++2008-11-22 Mark Probst ++ ++ * mini-ppc64.c, tramp-ppc64.c: Small fixes. PPC64 now runs ++ arrays.exe and basic-math.exe. ++ ++2008-11-22 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, exceptions-ppc64.c, tramp-ppc64.c, ++ cpu-ppc64.md: Several fixes. PPC64 now runs objects.exe. ++ ++2008-11-21 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Add support ArrayExtension intrinsics. ++ ++2008-11-21 Rodrigo Kumpera ++ ++ * method-to-ir.c: Move bounds checking macros to ir-emit.h ++ ++ * ir-emit.h: Move macros from method-to-ir.c to here. ++ ++2008-11-21 Rodrigo Kumpera ++ ++ * mini-ops.h: Correct the long simd ops to use LREG. ++ ++2008-11-21 Zoltan Varga ++ ++ * mini-ops.h: Correct the dreg type of OP_LOADI8_MEMBASE. ++ ++ * mini-ops.h: Correct the dreg type of a few long opcodes. ++ ++ * mini-amd64.h: Applied patch from Mihai Chelaru . ++ Add netbsd support. ++ ++Fri Nov 21 12:52:23 CET 2008 Paolo Molaro ++ ++ * mini-ppc.c: remove negative stack references in epilog ++ for platforms that don't support the red zone. ++ ++2008-11-21 Mark Probst ++ ++ * mini-ppc64.h, cpu-ppc64.md: Fixed caller/callee saved floating ++ point regs. Now PPC64 passes basic-calls.exe. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for accessors of Vector2l. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_INSERTX_I8_SLOW,. ++ ++ * mini-x86.c (mono_arch_decompose_long_opts): Decompose OP_INSERTX_I8_SLOW. ++ ++ * simd-intrinsics.c: Add support for Vector2l and Vector2ul. ++ ++2008-11-21 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, cpu-ppc64.md: Several fixes. Now ++ PPC64 passes basic-long.exe. ++ ++2008-11-20 Mark Probst ++ ++ * decompose.c: Decompose carry and overflow add on PPC64 like on ++ other 64 bit archs. Don't decompose sub at all on PPC64. ++ ++ * mini-ppc64.c, exceptions-ppc64.c, tramp-ppc64.c, cpu-ppc64.md: ++ Several fixes and new opcodes. Now PPC64 runs (but doesn't pass) ++ basic-long.exe. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for accessors of Vector2d. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_INSERTX_R8_SLOW,. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_setter): Add support for Vector2d. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for accessors of Vector4f. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_INSERTX_R4_SLOW,. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_setter): Add support for Vector4f. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add tests for accessors of Vector4i and Vector4ui. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_INSERTX_I4_SLOW,. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_setter): Add support for Vector4i and Vector4ui. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * cpu-x86.md: Use reasonable sizes for extractx_u2 and insertx_u1_slow. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Enable setters for Vector16sb. ++ ++2008-11-20 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_EXTRACTX_U2, OP_INSERTX_U1_SLOW. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_setter): Add support for Vector16b. ++ ++2008-11-19 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Implement setter for Vector8us. ++ ++2008-11-19 Zoltan Varga ++ ++ * aot-compiler.c (mono_save_xdebug_info): Emit correct location info ++ for dead variables. ++ ++Wed Nov 19 18:27:41 CET 2008 Paolo Molaro ++ ++ * mini-ppc.c: remove references to the red zone in the prolog ++ (for systems that don't support it). ++ ++2008-11-19 Mark Probst ++ ++ * cpu-ppc64.md: Fixed a few instruction lengths. ++ ++ * mini-ppc64.c: Don't emit SETLRET. PPC64 passes basic-float.exe, ++ now. ++ ++2008-11-19 Mark Probst ++ ++ * mini-ppc64.c, cpu-ppc64.md: Fixed some opcodes. PPC64 passes ++ basic.exe now. ++ ++2008-11-19 Zoltan Varga ++ ++ * aot-compiler.c (mono_save_xdebug_info): Add more parameter types. ++ ++2008-11-18 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_INSERT_I2. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c: Implement setter for Vector8s. ++ ++ * simd-methods.h: Add the names of get setters of Vector8s. ++ ++2008-11-18 Zoltan Varga ++ ++ * aot-compiler.c (mono_save_xdebug_info): Add support for parameters. ++ ++ * aot-compiler.c (mono_save_xdebug_info): Add preliminary support for ++ parameters. ++ ++ * unwind.h (MonoUnwindOp): Change the 'val' to a signed type. ++ ++2008-11-18 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, tramp-ppc64.c, cpu-ppc64.md: Changes ++ for PPC64. An empty program runs now. ++ ++2008-11-18 Zoltan Varga ++ ++ * unwind.h (MonoUnwindOp): Change the 'val' to a signed type. ++ ++ * aot-compiler.c mini.c mini.h: Add a JIT debugging mode modelled after ++ a similar mode in Kaffe: When the the MONO_XDEBUG env var is set, debugging ++ info for JITted code is emitted into a shared library, loadable into gdb. ++ ++2008-11-18 Mark Probst ++ ++ * Makefile.am: Changes to build PPC64. ++ ++ * mini-arch.h: Include mini-ppc64.h on PPC64. ++ ++2008-11-18 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, cpu-ppc64.md: Updated with changes ++ in PPC code up to r119147. ++ ++2008-11-18 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, tramp-ppc64.c, exceptions-ppc64.c, ++ cpu-ppc64.md: Changes for PPC64. ++ ++ Based on code submitted by andreas.faerber@web.de at ++ https://bugzilla.novell.com/show_bug.cgi?id=324134 under the ++ X11/MIT license. ++ ++2008-11-18 Mark Probst ++ ++ * mini-ppc64.c, mini-ppc64.h, tramp-ppc64.c, exceptions-ppc64.c, ++ cpu-ppc64.md: Copied from the corresponding PPC files from ++ r118846. ++ ++2008-11-18 Scott Peterson ++ ++ * mini-ops.h: Added OP_ROUND. ++ ++ * cpu-x86.md: Added round. ++ ++ * mini-x86.c: Added support for intrinsicing Math.Round (double). ++ ++ * basic-math.cs: Added test_0_round to test rounding. ++ ++ Contributed under MIT/X11 license. ++ ++2008-11-17 Bill Holmes ++ ++ * aot-compiler.c : Fix the Winx64 build. ++ ++ Contributed under MIT/X11 license. ++ ++2008-11-17 Rodrigo Kumpera ++ ++ * mini-x86.c (mono_arch_output_basic_block): Use movsd instead of monvups ++ in OP_EXTRACT_R8 to avoid possible stack corruption. ++ ++2008-11-17 Rodrigo Kumpera ++ ++ * mini-ops.h: Added OP_EXTRACT_R8/I8. ++ ++ * cpu-x86.md: Added extract_r8. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Emmit OP_EXTRACT_R8. ++ ++ * mini-x86.c: Added mono_arch_decompose_long_opts to break OP_EXTRACT_I8 into ++ a couple of OP_EXTRACT_I4. ++ ++ * mini-x86.h: Define MONO_ARCH_HAVE_DECOMPOSE_LONG_OPTS if simd is enabled. ++ ++ * simd-intrinsics.c: Implement getters for Vector2l/2ul/2d. ++ ++2008-11-17 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (vector2l_intrinsics): CompareGreaterThan requires sse 4.2 ++ and not 4.1. ++ ++2008-11-17 Zoltan Varga ++ ++ * method-to-ir.c (handle_delegate_ctor): Emit the address of the delegate ++ trampoline as an AOT const of the proper type instead of MONO_PATCH_INFO_ABS. ++ ++ * mini.c (mono_codegen): Remove the handling of delegate trampolines, they ++ are not needed any more. ++ ++ * mini.h: Remove the unused INS_LIST macros. ++ ++ * mini.c (mini_method_compile): Remove a disable globalra case which is no ++ longer needed. ++ ++ * *.h *.c: Remove duplicate MonoInst emission macros, use the ones in ++ ir-emit.h. ++ ++ * regalloc.h *.c: Remove references to mono_regstate_next_int (), use ++ mono_alloc_ireg () instead. ++ ++ * mini-.c: Include ir-emit.h. Remove duplicate MonoInst emission ++ macros. ++ ++ * mini-amd64.c (emit_load_volatile_arguments): Removed, not needed ++ on amd64. ++ ++ * aot-runtime.c (load_aot_module): Disable AOT when running under ++ CAS. ++ ++ * mini-amd64.h: Change the monitor fastpath defines to check for ++ !PLATFORM_WIN32 so they work on *bsd too. ++ ++ * mini.h mini.c mini-hhpa.c: Remove more unused code. ++ ++ * mini-s390.c mini-s390x.c: Remove !cfg->new_ir code. ++ ++ * mini.h (MonoCompile): Remove new_ir flag. ++ ++ * regalloc.h regalloc.c: Remove unused code. ++ ++ * cpu-*.md: Remove more unused opcodes. ++ ++ * simple-cee-ops.h simple-mini-ops.h: Removed. ++ ++ * mini-ops.h *.c cpu-.md: Remove more unused opcodes. ++ ++2008-11-17 Zoltan Varga ++ ++ * aliasing.h: Removed. ++ ++ * *.c: Remove references to aliasing.h and inssel.h. ++ ++ * mini.c: Remove additional unused functions. ++ ++ * mini-ops.h cpu-*.md: Remove unused opcodes. ++ ++2008-11-16 Zoltan Varga ++ ++ Remove the old JIT code. ++ ++ * inssel*.brg: Removed. ++ ++ * ssa.c abcremoval.c aliasing.c: Removed. ++ ++ * ssa2.c: Renamed to ssa.c. ++ ++ * abcremoval2.c: Renamed to abcremoval.c. ++ ++ * *.c: Removed all !cfg->new_ir code. ++ ++ * mini-.c: Removed mono_arch_call_opcode (), ++ mono_arch_emit_this_vret_args (), and mono_arch_get_inst_for_method (). ++ ++ * mini.c: Removed the old mono_method_to_ir () and all the code used by it. ++ ++2008-11-16 Zoltan Varga ++ ++ * aot-compiler.c aot-runtime.c: Emit most of the non-table data in a structure ++ to simplify the code and cut back on the number of global symbols in the AOT ++ file. ++ ++ * aot-compiler.c aot-runtime.c: Get rid of the unused plt_jump_table. ++ ++2008-11-15 Zoltan Varga ++ ++ * aot-runtime.c aot-compiler.c: Unify the plt_jump_table/plt_info tables ++ with the got/got_info tables. ++ ++ * mini.h: Bump AOT file format version. ++ ++ * unwind.h: New file, contains definitions for stack unwinding. ++ ++ * mini.c (mono_emit_unwind_op): New helper function to append an unwind op ++ to cfg->unwind_ops. ++ ++ * aot-compiler.c: Generalize the emitting of unwind information to use the ++ information in cfg->unwind_ops. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Emit unwind info. ++ ++ * aot-compiler.c: Emit dwarf unwind information so gdb can unwind through ++ AOT method frames. Enable writing symbols for methods by default. ++ ++2008-11-14 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_getter): Generalize this code ++ and make it work with vectors of element sizes 1, 2 and 4. ++ ++ * simd-intrinsics.c: Enable getter for all vectors with element size ++ 1, 2 or 4. ++ ++ * simd-methods.h: Add the names of other getters. ++ ++ * mini-ops.h: Added OP_EXTRACT_I2/U2/I1/U1. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c: Same. ++ ++Fri Nov 14 15:54:18 CET 2008 Paolo Molaro ++ ++ * mini-ppc.h: portability fix. ++ ++Fri Nov 14 15:39:50 CET 2008 Paolo Molaro ++ ++ * mini-ppc.h, mini-ppc.c: avoid using the red zone as some kernels are ++ buggy and will overwrite it. ++ ++2008-11-14 Zoltan Varga ++ ++ * aot-compiler.c: Add functionality to emit local symbols to the elf writer. ++ Use it to emit local symbols for all methods so AOTed methods show up with ++ their full name in gdb/valgrind output. ++ ++Fri Nov 14 12:56:27 CET 2008 Paolo Molaro ++ ++ * mini-ppc.c: portability fixes. ++ ++2008-11-14 Zoltan Varga ++ ++ * mini-trampolines.c (mono_magic_trampoline): Move the patching of plt ++ entries out of the if (!generic_shared...) code so it is always done. ++ (mono_class_init_trampoline): Do the patching when running under valgrind ++ too, newer versions of valgrind have no problems with it. ++ ++2008-11-13 Zoltan Varga ++ ++ * aot-compiler.c (emit_writeout): Rework this to make it easier to add ++ further sections. ++ ++2008-11-13 Mark Probst ++ ++ * mini-ppc.c, cpu-ppc.md: Reserve space for the parameter area in ++ filters. ++ ++2008-11-13 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Add getter support for Vector4i and Vector4ui. ++ ++2008-11-13 Rodrigo Kumpera ++ ++ * mini-ops.h: Kill diplicated ops OP_SHUFLEPS. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c: Same. ++ ++ * simd-intrinsics.c: Same. ++ ++2008-11-13 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Enable constructor intrinsics for all types. ++ ++2008-11-13 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_ctor): Generalize this method ++ to work with more Vector types. ++ ++2008-11-13 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_ctor): If the target is already a pointer ++ store the elemens directly instead of using and intermediate. ++ ++2008-11-13 Zoltan Varga ++ ++ * mini-amd64.c (emit_call_body): Avoid aligning call sites in AOTed code. ++ ++ * tramp-x86.c (mono_arch_create_trampoline_code): Rework the return sequence ++ to preserve %eax for aot plt trampolines. ++ ++ * aot-compiler.c (compile_method): Don't skip synchronized methods. ++ (encode_method_ref): Flag synchronized methods so they won't go through ++ the AOT trampoline. ++ ++ * aot-compiler.c: Additional work to support AOTing synchronized methods/ ++ wrappers. ++ ++ * cpu-ia64.md (jmp): Increase max length. ++ ++2008-11-12 Zoltan Varga ++ ++ * aot-runtime.c (load_method): Avoid calling runtime_class_init () for ++ open generic classes. ++ ++ * aot-compiler.c: Enable the ELF writer on ELF platforms. ++ ++ * method-to-ir.c (mono_method_to_ir2): Revert the last change to the ++ box+brtrue optimization since it causes test failures on x86. ++ ++2008-11-12 Rodrigo Kumpera ++ ++ * mini-ops.h: Remove OP_PUSH_R4 and OP_LOADX_STACK. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c: Same. ++ ++ * mini.h (struct MonoCompile): Add simd_ctor_var to be used as storage ++ for simd ctor values. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_ctor): Use simd_ctor_var for the constructor ++ instead of directly pushing the values on stack. This saves about 15 bytes of generated code. ++ ++2008-11-12 Rodrigo Kumpera ++ ++ * simd-methods.h: Rename SubWithSaturation, ArithmeticRightShift and ++ LogicalRightShift. ++ ++ * simd-instrincs.c: Same. ++ ++ * basic-simd.cs: Same. ++ ++2008-11-12 Zoltan Varga ++ ++ * ratests.cs: Add more tests. ++ ++ * regalloc2.c (add_spill_code): Handle more corner cases. ++ ++2008-11-11 Zoltan Varga ++ ++ * regalloc2.c (INS_POS_INTERVAL): Decrease this to 8 to avoid overflows. ++ (update_liveness): Avoid holes in the liveness ranges of hregs if they are ++ both the source an destination of an instruction. ++ ++Tue Nov 11 19:30:50 CET 2008 Paolo Molaro ++ ++ * jit-icalls.c, local-propagation.c, mini.c, ssa.c, ssapre.c, trace.c, ++ wapihandles.c: more portability changes. ++ ++Tue Nov 11 18:56:33 CET 2008 Paolo Molaro ++ ++ * aot-compiler.c, aliasing.c, abcremoval.c: portability changes. ++ * mini.c mini.h, aot-runtime.c: the aot segfault-handling code is not ++ safe to execute in a signal handler and the kernel provides better ++ the info in /proc/self/smaps. Avoid the assert on sigaction during ++ cleanup. ++ ++2008-11-11 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): In the box+brtrue optimization, only ++ do the bblock linking hack if it is actually needed. ++ ++ * Makefile.am (patch-libtool): New helper target to patch libtool to speed ++ up linking. ++ ++ * liveness.c (ENABLE_LIVENESS2): Reenable this for 64 bit archs as the ++ crash problem is fixed. ++ ++ * branch-opts.c (mono_remove_critical_edges): Link up newly added ++ bblocks. ++ ++ * mini.c (mini_method_compile): Compute unreachable bblocks properly even ++ for catch clauses. ++ (mini_method_compile): Set the starting value of next_vreg to ++ MAX_IREGS + MAX_FREGS when using globalra. ++ ++ * method-to-ir.c (mono_method_to_ir2): Mark bblocks starting ++ filter clauses with BB_EXCEPTION_HANDLER. ++ ++ * regalloc2.c (assign_spill_slots): Set cfg->rgctx_var. ++ ++2008-11-10 Mark Probst ++ ++ * mini-x86.c (mono_arch_get_argument_info): Don't align argument ++ space for stdcall. Fixes regressions on Win32. ++ ++2008-11-10 Zoltan Varga ++ ++ * regalloc2.c (handle_reg_constraints): Avoid adding code to unreachable ++ bblocks. ++ (linear_scan): Remove an assert which doesn't seem to be needed. ++ ++ * local-propagation.c (mono_local_deadce): Avoid a call to ++ MONO_DELETE_INS which would screw up the instruction linking. ++ ++ * mini.c (mono_decompose_op_imm): Make this work with globalra. ++ ++ * regalloc2.c: Upgrade to work the current JIT code. ++ ++2008-11-09 Zoltan Varga ++ ++ * method-to-ir.c (inline_method): Merge more basic blocks to help the AOT ++ case. ++ ++ * aot-runtime.c: Remove some dead code. ++ ++ * tramp-arm.c: Use 'code' as the runnning pointer in code generation for ++ consistency. ++ (mono_arch_create_rgctx_lazy_fetch_trampoline_full): Implement aot support. ++ ++ * aot-runtime.c (load_named_code): Decode the offset of lazy fetch ++ trampolines using sscanf since atoi doesn't work on large unsigned values. ++ ++ * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline_full): ++ Initialize code_size. ++ ++2008-11-08 Mark Probst ++ ++ * method-to-ir.c (mini_emit_inst_for_method): Make ++ Interlocked.CompareExchange work for Int arguments on 32 bit ++ archs, as well. ++ ++2008-11-07 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir2): Fixed a funny commit error. ++ ++2008-11-06 Bill Holmes ++ ++ * main.c Fix MSVC build. ++ ++ Contributed under MIT/X11 license. ++ ++2008-11-06 Mark Probst ++ ++ * mini-x86.c (mono_arch_allocate_vars): Make sure locals that need ++ alignment larger than 8 bytes are aligned correctly, too. ++ ++ * mini.c: Honor the min_align field of MonoClass when laying out ++ the stack. ++ ++2008-11-06 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Fix AOT support for CEE_SWITCH on arm. ++ ++ * aot-compiler.c (emit_plt): Fix a warning. ++ ++ * aot-compiler.c: Implement ARM support in the binary writer. ++ ++2008-11-05 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add test for getter with byref arg. ++ Fix the naming of a few tests. ++ Add missing checks to a test. ++ ++2008-11-05 Zoltan Varga ++ ++ * aot-compiler.c (emit_plt): Make the arm code work with the binary writer. ++ ++ * aot-compiler.c aot-runtime.c mini-trampolines.c tramp-amd64.c: Implement ++ most of the full-aot support for monitor enter/exit trampolines. ++ ++ * tramp-x86.c tramp_amd64.c: Add AOT compatible variants of the monitor ++ enter/exit trampoline creation functions. ++ ++ * Makefile.am: Fix the generation of buildver.h so it is not invoked during ++ make dist. ++ ++Wed Nov 5 16:28:53 CET 2008 Paolo Molaro ++ ++ * mini.h, aot-compiler.c, method-to-ir.c, aot-runtime.c: remove the ++ incorrectly added MONO_WRAPPER_MONITOR_* (in r117651-r117652) and ++ implement the needed functionality without adding crap to the runtime. ++ ++2008-11-05 Zoltan Varga ++ ++ * mini-trampolines.c (mono_create_monitor_enter_trampoline): Fix the ++ non-x86 builds. ++ ++ * mini.c (mono_build_date): New global version holding the build date in ++ string format. ++ ++ * Makefile.am (buildver.c): Generate a file containing the build date. ++ ++ * main.c: Set the build date from the generated file. ++ ++ * mini.c (mono_get_runtime_build_info): New helper function returning build ++ information in a string format. ++ ++ * driver.c (mono_main): Print the build date in --version. ++ ++ * aot-compiler.c aot-runtime.c: Embed the build information into the AOT ++ file when the bind-to-runtime-version option is used. ++ ++2008-11-05 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Fix bug when using getters and byref args. ++ ++2008-11-05 Rodrigo Kumpera ++ ++ * simd-methods.h: Rename prefetch methods. ++ ++ * simd-intrinsics.c: Same. ++ ++2008-11-05 Mark Probst ++ ++ * tramp-amd64.c: Enlarge the Monitor.Enter/Exit trampoline code ++ sizes. ++ ++2008-11-04 Zoltan Varga ++ ++ * aot-compiler.c: Use the bundled elf header files instead of depending on ++ the system one. ++ ++ * aot-compiler.c (emit_symbol_diff): Allocate memory from the acfg ++ mempool. ++ ++ * method-to-ir.c (mono_method_check_inlining): Avoid a getenv () call ++ on every call. ++ ++2008-11-04 Rodrigo Kumpera ++ ++ * cpu-x86.md: Add store nta ops. ++ ++ * mini-ops.h: Same. ++ ++ * mini-x86.c: Same. ++ ++ * mini.h: Add an enum for simd prefetch modes. ++ ++ * simd-methods.h: Refactor the store_aligned code to handle multiple kinds ++ of store. Use the changed code to support store nta. ++ ++ * simd-intrinsics.c: Add prefetch ops for all vector types. ++ ++2008-11-04 Zoltan Varga ++ ++ * aot-compiler.c: Add an option for JIT compiling the methods by multiple ++ threads. ++ ++ * aot-compiler.c: Use statically allocated buffers for constructing symbol ++ names. ++ ++ * aot-runtime.c aot-compiler.c: Add support for the MONITOR_ENTER/EXIT ++ trampolines. ++ ++2008-11-04 Mark Probst ++ ++ * mini-x86.c: Fixed commit. ++ ++2008-11-04 Zoltan Varga ++ ++ * aot-compiler.c (emit_plt): Align the plt section only on x86. ++ ++2008-11-04 Mark Probst ++ ++ * mini-trampolines.c, mini.h: Two new trampolines: MONITOR_ENTER ++ and MONITOR_EXIT, for the ASM fastpaths. ++ ++ * method-to-ir.c: Use the ASM fastpath for Monitor.Enter/Exit if ++ available. ++ ++ * mini.c, patch-info.h: Signature and patch infos for ++ Monitor.Enter/Exit trampolines. ++ ++ * mini-amd64.c, mini-x86.c: Make emit_tls_get() non-static. ++ ++ * tramp-amd64.c, tramp-x86.c, mini-amd64.h, mini-amd64.h: ++ Monitor.Enter/Exit ASM fastpath for Linux. ++ ++2008-11-04 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix soft-float support in Array.Get/Set. ++ ++ * objects.cs: Add a new test. ++ ++ * aot-compiler.c: Use mono_100ns_ticks () for computing the profiling info. ++ ++ * aot-runtime.c (load_method): Run class initialization in the PLT case even ++ if MONO_LOG_LEVEL is set. ++ ++ * debug-mini.c (serialize_variable): Fix the encoding of dead variables. ++ ++ * aot-runtime.c (mono_aot_get_method): Skip out-of-date AOT modules. ++ ++ * aot-compiler.c (emit_and_reloc_code): Speed this up a little. ++ ++ * aot-compiler.c: Change the relocation code to use virtual addresses instead ++ of file offsets. Align the sections belonging to the data segment to ++ PAGESIZE. ++ ++2008-11-03 Zoltan Varga ++ ++ * aot-compiler.c: Simplify the elf writer by depending on the definitions in ++ elf.h. Port it to amd64. ++ ++2008-11-03 Rodrigo Kumpera ++ ++ * driver.c: Enable SIMD by default. ++ ++2008-11-03 Rodrigo Kumpera ++ ++ * cpu-x86.md: Add prefetch op. ++ ++ * mini-ops.h: Same. ++ ++ * mini-x86.c: Same. ++ ++ * mini.h: Add an enum for simd prefetch modes. ++ ++ * simd-methods.h: Add prefetch function names. ++ ++ * simd-intrinsics.c: Add prefetch ops for all vector types. ++ ++2008-11-03 Zoltan Varga ++ ++ * aot-compiler.c (emit_bytes): Speed this up a little. ++ ++2008-11-02 Zoltan Varga ++ ++ * aot-compiler.c: Add JIT time etc. statistics. ++ ++ * aot-compiler.c (compile_method): Fix the copying of the cfgs array. ++ ++ * mini.h (MonoCompile): Add 'got_offset' field. ++ ++ * aot-compiler.c: Store the got offset in MonoCompile, get rid of the ++ method_got_offsets array. ++ ++ * aot-compiler.c aot-runtime.c: Add support for the monitor enter/exit ++ wrappers. ++ ++ * aot-compiler.c (compile_method): Add generic method instances referenced ++ by the method to the list of methods to be compiled, this is required so if ++ A references B, and another assembly references A, then it will ++ also get a copy of B. ++ ++ * method-to-ir.c (mini_emit_inst_for_method): Use the proper wrapper type ++ when checking for monitor enter/exit. ++ ++2008-10-30 Mark Probst ++ ++ * method-to-ir.c (mini_emit_inst_for_method): Use the IL fastpaths ++ for Monitor.Enter and Monitor.Exit if enabled. ++ ++ * mini-x86.h, mini-amd64.h: Enable the IL fastpaths for Linux and ++ Solaris. ++ ++2008-10-30 Zoltan Varga ++ ++ * method-to-ir.c (type_from_op): Convert CEE_CONV_U on OP_ICONV_TO_U instead ++ of an OP_MOVE. Fixes #440046. ++ ++ * basic-long.cs: Add a new test. ++ ++2008-10-29 Rodrigo Kumpera ++ ++ * mini.h: Add synchronization note for the managed counter-part. ++ ++ * simd-intrinsics.c: Add SimdRuntime.get_AccelMode intrinsic that ++ returns the simd caps of the current cpu. ++ ++2008-10-29 Rodrigo Kumpera ++ ++ * basic-simd.cs: Remove Console.WriteLine. ++ ++2008-10-28 Rodrigo Kumpera ++ ++ * basic-simd.cs: New tests for Vector2ul. ++ ++2008-10-28 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Add new vector type Vector2ul. ++ ++2008-10-28 Rodrigo Kumpera ++ ++ * basic-simd.cs: New tests for Vector2l. ++ ++2008-10-28 Rodrigo Kumpera ++ ++ * cpu-x86.md: Add long version of most packed int ops. ++ ++ * mini-ops.h: Same. ++ ++ * mini-x86.h: Same. ++ ++ * simd-intrinsics.c: Add new vector type Vector2l. ++ ++2008-10-28 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Replace SN_op_BitwiseXor with SN_op_ExclusiveOr. ++ ++ * simd-methods.h: Remove SN_op_BitwiseXor. ++ ++2008-10-28 Zoltan Varga ++ ++ * mini.c (mono_allocate_stack_slots_full): Align the size of vtypes to their ++ alignment. ++ ++2008-10-27 Rodrigo Kumpera ++ ++ * basic-simd.cs: Test for Vector2d. ++ ++ * basic-simd.cs (test_vector8s_pack_signed_sat): Fixed broken ++ value. ++ ++2008-10-27 Rodrigo Kumpera ++ ++ * cpu-x86.md: Add double version of all packed float ops. ++ ++ * mini-ops.h: Same. ++ ++ * mini-x86.h: Same. ++ ++ * simd-intrinsics.c: Add new vector type Vector2d. ++ ++ * simd-intrinsics.c (vector4f_intrinsics): Fix ordering. ++ ++ * simd-methods.h: Add Duplicate. ++ ++2008-10-27 Rodrigo Kumpera ++ ++ * basic-simd.cs: Test for packing with signed saturation. ++ ++2008-10-28 Zoltan Varga ++ ++ * aot-compiler.c (add_generic_instances): Add all methods of generic instances ++ found in the TYPESPEC table. ++ ++2008-10-26 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_method): Log not found methods for extra methods ++ too. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version. ++ ++ * mini.c (mono_method_to_ir): For MONO_PATCH_INFO_RVA, save field the token ++ instead of the RVA, since the RVA can be changed by tools like the cil ++ stripper. ++ ++ * method-to-ir.c (mono_method_to_ir2): Ditto. ++ ++ * debug-mini.c (serialize_variable): Handle ADDRESS_MODE_DEAD. ++ (deserialize_variable): Ditto. ++ ++2008-10-25 Martin Baulig ++ ++ * debug-mini.c (write_variable): Use ++ `MONO_DEBUG_VAR_ADDRESS_MODE_DEAD' for dead variables. ++ ++2008-10-24 Rodrigo Kumpera ++ ++ * cpu-x86.md: Add unsigned variants of packd and packw. ++ ++ * mini-ops.h: Same. ++ ++ * mini-x86.h: Emit the right instruction for packd and packw. ++ Add unsigned variants of packd and packw. ++ ++ * simd-intrinsics.c: Packd and packw were used in place of their ++ unsigned variants. Change that. ++ Add intrinsics for (Signed)PackWithSignedSaturation. ++ ++ * simd-methods.h: Add (Signed)PackWithSignedSaturation. ++ ++2008-10-24 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (vector4i_intrinsics): New table of intrinsic type. ++ ++2008-10-24 Rodrigo Kumpera ++ ++ * mini-ops.h: Remove dword packed add/sub with saturation ops. ++ ++ * cpu-x86.md: Remove dword packed add/sub with saturation ops. ++ ++ * simd-intrinsics.c (vector4ui_intrinsics): Remove methods without ++ sse instructions. ++ ++ * simd-intrinsics.c (vector8s_intrinsics): Fix ordering. ++ ++2008-10-24 Mark Probst ++ ++ * method-to-ir.c, mini.c: Special casing for the synchronized ++ wrapper for the ldtoken+GetTypeFromHandle case. ++ ++2008-10-24 Zoltan Varga ++ ++ * mini.c (mono_replace_ins): Move this to branch-opts.c. ++ ++ * mini.c (mono_replace_ins): Propagate has_array_access flag to the newly ++ created/split bblocks. ++ ++2008-10-24 Rodrigo Kumpera ++ ++ * mini-ops.h: Add packed signed mul high. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-methods.h: Add PackWithUnsignedSaturation and ShiftRightLogic. ++ ++ * simd-intrinsics.c (vector8s_intrinsics): New table of intrinsic type. ++ ++2008-10-24 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for Vector16sb. ++ ++2008-10-24 Zoltan Varga ++ ++ * inssel.brg (stmt): Fix OP_HARD_NOP rule. ++ ++2008-10-23 Rodrigo Kumpera ++ ++ * mini-ops.h: Add packed signed min, max and compare greater. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. Add packed add/sub with ++ saturation. ++ ++ * simd-methods.h: Add CompareGreaterThan. ++ ++ * simd-methods.h: Remove CompareEquals. ++ ++ * simd-intrinsics.c: Add new TODO entry and some cosmetic changes. ++ ++ * simd-intrinsics.c (vector16sb_intrinsics): New table of intrinsic type. ++ ++ * simd-intrinsics.c (vector4f_intrinsics): Rename CompareEquals to ++ CompareEqual. ++ ++2008-10-23 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix tests due to change in the API. ++ ++2008-10-21 Zoltan Varga ++ ++ * mini.c method-to-ir.c: Use mono_field_get_name () for accessing field->name. ++ ++2008-10-21 Rodrigo Kumpera ++ ++ * basic-simd.cs: Fix name change in Vector4f::CompareEqual. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_store_aligned): Don't use ++ inst_offset as this has invalid values for LDADDR. ++ ++2008-10-21 Rodrigo Kumpera ++ ++ * basic-simd.cs: Test for SignedPackWithUnsignedSaturation. ++ ++ * simd-intrinsics.c (vector4ui_intrinsics): Add SignedPackWithUnsignedSaturation. ++ ++2008-10-21 Zoltan Varga ++ ++ * method-to-ir.c (initialize_array_data): Use mono_field_get_data () ++ for accessing field->data. ++ ++2008-10-21 Rodrigo Kumpera ++ ++ * basic-simd.cs: Test for SignedPackWithUnsignedSaturation. ++ ++2008-10-21 Rodrigo Kumpera ++ ++ * simd-methods.h: Add SignedPackWithUnsignedSaturation. ++ ++ * simd-intrinsics.c (vector8us_intrinsics): Add SignedPackWithUnsignedSaturation. ++ ++2008-10-21 Zoltan Varga ++ ++ * dominators.c (mono_compute_natural_loops): Allocate GList enties ++ from the cfg mempool. ++ ++2008-10-20 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for new methods in Vector8us. ++ ++2008-10-20 Rodrigo Kumpera ++ ++ * mini-ops.h: Add multiply and store high. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-methods.h: Same. ++ ++ * simd-intrinsics.c (vector8us_intrinsics): Add MultiplyStoreHigh ++ and CompareEqual. ++ ++2008-10-19 Zoltan Varga ++ ++ * method-to-ir.c (mono_emit_method_call_full): Remove a needless call to ++ mono_class_setup_vtable (). ++ ++ * mini-trampolines.c (mono_convert_imt_slot_to_vtable_slot): Use ++ mono_class_get_vtable_entry () for accessing klass->vtable. ++ ++ * aot-runtime.c (load_method): Avoid a crash when using MONO_LOG_LEVEL. ++ ++ * aot-compiler.c (add_generic_instances): Avoid a crash if a class is not ++ found. ++ ++ * method-to-ir.c (mono_save_token_info): Don't save references made from ++ wrappers. ++ ++ * aot-compiler.c (add_generic_instances): Add static rgctx wrappers for cctors ++ of generic instances. ++ ++ * aot-runtime.c (find_extra_method): Search in all loaded AOT images. ++ ++2008-10-19 Mark Probst ++ ++ * cpu-ppc.md, mini-ppc.c: The length of the code generated for ++ OP_JMP depends on the method signature. Calculate it properly. ++ ++2008-10-19 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_find_jit_info): Handle extra methods which are ++ called directly. ++ ++ * aot-compiler.c (emit_and_reloc_code): Allow direct calling of generic ++ instances. ++ (emit_extra_methods): Add another table mapping method indexes to ++ offsets in the extra_method_info table. ++ ++ * mini.h: Bump AOT file format version. ++ ++ * aot-runtime.c: Merge most of the code from mono_aot_get_method ++ and mono_aot_get_method_from_token () into one function. ++ ++2008-10-19 Mark Probst ++ ++ * mini-ppc.c (emit_load_volatile_arguments): Inner loop needs a ++ separate counter. ++ ++2008-10-18 Zoltan Varga ++ ++ * aot-compiler.c aot-runtime.c: Fix the hash function used for the extra ++ methods. ++ ++ * method-to-ir.c (mono_method_to_ir2): Change a !compile_aot assert to ++ disable_aot. ++ ++ * mini.c (mono_patch_info_equal): Compare the generic context as well. ++ ++ * mini.h: Bump aot file format version. ++ ++ * aot-compiler.c aot-runtime.c: Generalize the wrapper handling code so the ++ AOT file can contain native code for methods which are not in the METHOD ++ table. Generate code for non-sharable generic instances of generic methods ++ found in the METHODSPEC table. ++ ++ * method-to-ir.c (mono_method_to_ir2): Remove the aot restriction when ++ encoding generic type handles. ++ ++ * ir-emit.h (NEW_AOTCONST_TOKEN): Add a generic_context argument. ++ (NEW_TYPE_FROM_HANDLE_CONST): Add a generic_context argument. ++ ++ * ir-emit.h: Rewrite the EMIT_NEW_XXXCONST macros to use the NEW_XXXCONST ++ macros + MONO_ADD_INS. ++ ++ * mini.c (mono_jump_info_token_new2): New function which takes a generic ++ context as well. ++ ++ * mini.h (MonoJumpInfoToken): Include fields for a generic context. ++ ++ * mini.h: Bump aot file format version. ++ ++ * aot-compiler.c aot-runtime.c: Update after changes to MonoJumpInfoToken. ++ ++2008-10-17 Mark Probst ++ ++ * mini-x86.h, mini-x86.c, exceptions-x86.c: Align stack on all ++ platforms, with definable stack alignment value. Set to 16 now ++ for all platforms. ++ ++ * mini.c, mini.h, driver.c: Command line option for disabling ++ stack alignment. ++ ++2008-10-17 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for new methods in Vector4ui. ++ ++2008-10-17 Rodrigo Kumpera ++ ++ * mini-ops.h: Add packed int shuffle. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (vector4ui_intrinsics): Add compare equal, ++ extract mask, max, min, shuffle. ++ ++ * simd-intrinsics.c (vector8us_intrinsics): Add max and min. ++ ++2008-10-17 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for new methods in Vector8us. ++ ++2008-10-17 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir2): "refanytype" produces a ++ RuntimeTypeHandle, not a TypedReference. ++ ++Fri Oct 17 14:40:50 CEST 2008 Paolo Molaro ++ ++ * simd-intrinsics.c: remove relocations. ++ ++2008-10-17 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Port the IREM_IMM ++ optimizations from the x86 backend. ++ ++Fri Oct 17 12:00:51 CEST 2008 Paolo Molaro ++ ++ * simd-methods.h, simd-intrinsics.c: debloat method names and ++ prepare for no relocations. ++ ++2008-10-16 Rodrigo Kumpera ++ ++ * mini-ops.h: Add packed min/equal and sum of absolute differences. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (vector16b_intrinsics): Add average, compare equal, ++ extract mask, max, min and sum of absolute differences. ++ ++ * simd-intrinsics.c: Increase SIMD_INTRINSIC_NAME_MAX due to new huge ++ method name. ++ ++2008-10-16 Rodrigo Kumpera ++ ++ * basic-simd.cs: Test for the other mono_simd_simplify_indirection bug. ++ Renamed one test for consistency. ++ ++2008-10-16 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (mono_simd_simplify_indirection): Apply the previous ++ fix to the code that deal with other blocks. ++ ++2008-10-16 Rodrigo Kumpera ++ ++ * basic-simd.cs: Test for the mono_simd_simplify_indirection bug. ++ ++2008-10-16 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (mono_simd_simplify_indirection): Simplify the code ++ that deals with vreg interference. Explicitly check for OP_LDADDR to be ++ able to process the source reg. ++ ++2008-10-16 Martin Baulig ++ ++ * mini-ops.h, cpu-amd64.md, cpu-x86.md: Added new `hard_nop' opcode. ++ ++ * inssel.brg: Add `OP_HARD_NOP'. ++ ++ * mini.h (MonoCompile): Added `keep_cil_nops' flag. ++ ++ * mini.c (mono_method_to_ir): In `CEE_NOP': generate a ++ `OP_HARD_NOP' instruction when running inside the debugger. ++ ++ * method-to-ir.c (mono_method_to_ir2): In `CEE_NOP': generate a ++ `OP_HARD_NOP' instruction when running inside the debugger. ++ ++2008-10-15 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (get_simd_vreg): Using sreg1 of OP_XMOVE ++ now works. The issue with the regalloc tripping up no longer ++ happens. ++ ++ * simd-intrinsics.c (load_simd_vreg): Same. ++ ++2008-10-15 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for new Vector8ui methods. ++ ++2008-10-15 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (get_simd_vreg): Simplify code and test ++ only for type. This fixes crashes where MonoInst::klass is checked ++ for ops of type != VTYPE or OBJ. ++ ++ * simd-intrinsics.c (load_simd_vreg): Same. ++ ++2008-10-15 Rodrigo Kumpera ++ ++ * mini-ops.h: Add ops for packed shuffle/max/avg and ++ extract mask. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (vector8us_intrinsics): Add avg, shuffle and ++ extract mask. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_extract_mask): New function ++ to emit extract mask op. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_shuffle): Retrofic this function ++ to emit word shuffles. ++ ++2008-10-15 Mark Probst ++ ++ * mini.c (mono_allocate_stack_slots_full): Align stack frame to ++ the largest alignment needed by a variable, but at least ++ sizeof(gpointer). ++ ++2008-10-14 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for the fixes in the last commit. ++ ++2008-10-14 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (get_simd_vreg): Drop the is_this_ptr, this function ++ no longer handles STACK_PTR input. ++ ++ * simd-intrinsics.c (get_simd_vreg): Don't crash when MonoInst::klass == -1. ++ ++ * simd-intrinsics.c (load_simd_vreg): New function that works like ++ get_simd_vreg but handles STACK_PTR input. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_getter): Use load_simd_vreg ++ as the input can be an arbitrary pointer. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_ctor): Try the ++ LDADDR local optimization directly otherwise use a store op. ++ ++2008-10-14 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for dup low and dup high. ++ ++2008-10-14 Rodrigo Kumpera ++ ++ * mini-ops.h: Add dup low and dup high ops. ++ ++ * cpu-x86.md: Same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * simd-intrinsics.c (vector4f_intrinsics): Same. ++ ++2008-10-13 Rodrigo Kumpera ++ ++ * basic-simd.cs: Tests for recently added functionality. ++ ++2008-10-13 Rodrigo Kumpera ++ ++ * mini-ops.h: Add remaining sse1 fp ops. ++ ++ * cpu-x86.md: Add remaining sse1 fp ops. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Same. ++ ++ * mini.h: Add enum for simd FP compare conditions. ++ ++ * simd-intrinsics.c (vector4f_intrinsics): Add all new ops. ++ ++ * simd-intrinsics.c (simd_intrinsic_emit_binary): Set inst_c0 to flags ++ so the backed can generate the appropriate op. ++ ++2008-10-13 Rodrigo Kumpera ++ This patch squeese one more byte from the SimdIntrinsc struct. ++ ++ * mini-x86.c (mono_arch_cpu_enumerate_simd_versions: Use the version number ++ a a shift amount intead of simply or'ing it. ++ ++ * mini.h: Change SIMD_VERSION_* values to be sequential intead of masks. ++ ++ * simd-intrinsics.c (struct SimdIntrinsc): Squeese simd_version and simd_emit_mode into a single ++ byte so we can have an aditional flags field without increasing struct size. ++ ++ * simd-intrinsics.c (emit_intrinsics): Use the value of simd_version as a shift amount before checking ++ against the simd_supported_versions bitmask. ++ ++ * simd-intrinsics.c: Set SIMD_INTRINSIC_NAME_MAX to an appropriate value. ++ ++Mon Oct 13 10:58:10 CEST 2008 Paolo Molaro ++ ++ * mini.c: remove rawbuffer code (the only use here is unsafe because ++ it takes locks during signal handling and the kernel now provides much ++ better info in proc/pid/smaps these days). ++ ++2008-10-13 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix the changes to ++ OP_X86_PUSH_OBJ. Fixes #434620. ++ ++ * objects.cs: Add a test. ++ ++2008-10-12 Rodrigo Kumpera ++ ++ * basic-simd.cs: Remove PackWithUnsignedSaturation tests as it turns out ++ that the packuswb/packusdw don't work with unsigned numbers for what ++ would be negative numbers in signed format. ++ ++ * cpu-x86.md: Add doubleword forms of many ops and packing ones. ++ Fix the len of fconv_to_r8_x and xconv_r8_to_i4. ++ ++ * mini-ops.h: Add doubleword forms of many ops and packing ones. ++ ++ * mini-x86.c: Emit doubleword forms of many ops and packing ones. ++ ++ * simd-intrinsics.c (SimdIntrinsc): Rename the flags field to simd_version. ++ ++ * simd-intrinsics.c (vector4f_intrinsics): Use simd_version field for sse3 ops. ++ ++ * simd-intrinsics.c (vector4u_intrinsics): Rename to vector4ui_intrinsics and ++ add more ops. ++ ++ * simd-intrinsics.c (simd_version_name): New function, returns the name of the ++ version as the enum in mini.h. ++ ++ * simd-intrinsics.c (emit_intrinsics): Instead of having a special emit mode ++ for sse3 ops, check the simd_version field if present. This way the code ++ works with all versions of sse. ++ ++2008-10-10 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Fixed intrinsic name typo. ++ ++ * mini.h: Added missing simd exported function. ++ ++ * basic-simd.cs: Added tests for Vector4ui. ++ Fixed broken test for Vector16b. ++ ++2008-10-10 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline_full): Increase ++ the max length to 64. ++ ++2008-10-10 Mark Probst ++ ++ * method-to-ir.c: Only do the fast virtual generic method call for ++ non-wrapper methods. ++ ++ * mini.h, mini-trampolines.c: The new generic virtual remoting ++ trampoline handles virtual method calls via the vtable (as done by ++ the fast virtual generic method calls) to remoting proxies. ++ ++ * mini.c (mono_jit_create_remoting_trampoline): For generic ++ methods reate a generic virtual remoting trampoline. ++ ++ * mini-amd64.h: Enable fast virtual generic method calls again. ++ ++2008-10-10 Mark Probst ++ ++ * mini-ppc.c: Use SP (r1), not frame_reg (which might be r31) to ++ restore registers when doing tail calls. ++ ++2008-10-10 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (emit_intrinsics): Vector4u was renamed to ++ Vector4ui. ++ ++2008-10-10 Rodrigo Kumpera ++ ++ * basic-simd.cs: Add test for Vecto16b.PackWithUnsignedSaturation. ++ ++2008-10-10 Rodrigo Kumpera ++ ++ * simd-intrinsics.c (emit_intrinsics): Retrofit to new type names. ++ ++2008-10-10 Rodrigo Kumpera ++ ++ * basic-simd.cs: Retrofit for API changes. ++ ++2008-10-10 Mark Probst ++ ++ * mini-ppc.c: Handle integer stack arguments for tail calls. ++ ++2008-10-10 Rodrigo Kumpera ++ ++ * optflags-def.h: Removed sse3 optimization. ++ ++ * driver.c: Same. ++ ++ * mini-x86.c (mono_arch_cpu_optimizazions): Remove detection of ++ sse3. ++ ++ * mini-x86.c: Added mono_arch_cpu_enumerate_simd_versions. ++ ++ * mini.h: Added enumeration with simd versions. ++ ++ * simd-intrinsics.c (emit_intrinsics): Use the new static var ++ for detecting SSE3. ++ ++ * simd-intrinsics.c: Added mono_simd_intrinsics_init. ++ ++ * mini.c (mini_init): Call mono_simd_intrinsics_init. ++ ++2008-10-09 Rodrigo Kumpera ++ ++ * basic-simd.cs: Added tests for Vector8u and Vector16u. ++ ++ * basic-simd.cs: Fixed test naming. ++ ++2008-10-09 Rodrigo Kumpera ++ ++ * mini-ops.h: Added ops for packed and saturated math, shifts ++ and packing/unpacking. ++ ++ * cpu-x86.md: Added descriptors for the above ops. ++ ++ * mini-x86.c: Added code to emmit the above ops. ++ ++ * simd-intrinsics.c: Added support for Vector16u and Vector8u. ++ ++2008-10-08 Zoltan Varga ++ ++ * aot-compiler.c (compile_method): Enable AOT for generic code. ++ ++ * ir-emit.h (NEW_DOMAINCONST): Use domainvars in AOT code as well. ++ ++Wed Oct 8 16:35:43 CEST 2008 Paolo Molaro ++ ++ * mini.c: add a workaround for a common screwup that ends up blamed ++ to mono (other processes blocking signal delivery). ++ ++2008-10-07 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Clear ins_flag on all code paths ++ in the LDFLD/STFLD opcodes. Fixes #432673. ++ ++ * iltests.il.in: Add a new test. ++ ++Tue Oct 7 19:59:07 CEST 2008 Paolo Molaro ++ ++ * mini-arm.c: attach the thread in unmanaged->managed transitions ++ using delegates (bug #433148). ++ ++2008-10-07 Rodrigo Kumpera ++ ++ * basic-simd.cs: Use new ShuffleSel constants. ++ ++2008-10-07 Rodrigo Kumpera ++ ++ * driver.c (opt_sets): Added combinations of simd, sse2 and sse3. ++ ++ * mini-x86.c (mono_arch_cpu_optimizazions): Detect sse3 and now ++ only disable simd intrinsics if no sse2 is detected. ++ ++ * optflags-def.h: Added sse3. ++ ++ * simd-intrinsics.c: Avoid generated sse3 intrinsics if the optimization ++ is disabled. ++ ++2008-10-07 Zoltan Varga ++ ++ * aot-compiler.c (add_wrappers): Fix Delegate/MulticastDelegate classes ++ when adding delegate-invoke wrappers. ++ ++2008-10-07 Zoltan Varga ++ ++ * Makefile.am: Reenable the simd tests. ++ ++2008-10-07 Bill Holmes ++ ++ * mini-amd64.c (mono_arch_emit_outarg_vt) : In the ArgValuetypeAddrInIReg case, ++ add a call to mono_call_inst_add_outarg_reg for the arg->dreg to make sure that no ++ other vreg is allocated to that hreg. ++ ++ Contributed under MIT/X11 license. ++ ++2008-10-07 Zoltan Varga ++ ++ * Makefile.am: Disable the simd tests for now as Mono.Simd is not ++ yet checked in. ++ ++2008-10-06 Rodrigo Kumpera ++ ++ * basic-simd.cs: New test suite for SIMD intrinsics. ++ ++ * Makefile.am: Added new tests. ++ ++2008-10-06 Rodrigo Kumpera ++ ++ * cpu-x86.md: Added new instructions to handle float to int using SSE regs. ++ ++ * mini-ops.h: Same. ++ ++ * mini-x86.h: Enable mono_arch_decompose_opts if simd intrinsics are enabled. ++ ++ * mini-x86.c (mono_arch_decompose_opts): Decompose float to int conversion ++ using SSE2 aware opcodes. ++ ++ * mini-x86.c (emit_float_to_int): Disable the SSE2 optimization if OPT_SIMD ++ is enabled, this code path is only reachable if conversion ops are emmited after ++ mono_method_to_ir. ++ ++ * mini.h: Added MonoCompile::fconv_to_r8_x_var to hold the float to int var. ++ ++ This optimization saves 6 bytes per conversion against the old version. ++ ++2008-10-06 Zoltan Varga ++ ++ * aot-compiler.c (compile_method): Don't skip methods referencing ++ generic methods without a corresponding entry in token_info_hash, since ++ encode_method_ref () can handle all generic methods now. ++ ++ * method-to-ir.c (mono_save_token_info): Don't save the token info if a ++ generic context is set. ++ ++ * method-to-ir.c (mono_method_to_ir2): Put back a disable_aot for ++ generic sharing of LDTOKEN. ++ ++2008-10-06 Mark Probst ++ ++ * mini-amd64.h: Temporarily disabled fast virtual generic method ++ calls because it breaks the System.Runtime.Remoting tests. ++ ++2008-10-06 Zoltan Varga ++ ++ * aot-compiler.c (add_wrappers): Add delegate-invoke wrappers. ++ ++ * method-to-ir.c (check_inline_called_method_name_limit): Return TRUE ++ so inlining actually works. ++ (check_inline_caller_method_name_limit): Ditto. ++ ++Mon Oct 6 11:04:38 CEST 2008 Paolo Molaro ++ ++ * mini-ppc.c: mono_arch_flush_icache () cast pointer using gsize for ++ 64 bit safety (from Olaf Hering and Andreas Färber). ++ ++2008-10-06 Zoltan Varga ++ ++ * mini-trampolines.c (mono_aot_trampoline): Delegate processing to ++ mono_magic_trampoline () if aot_get_method_from_token () fails. Remove ++ unused virtual call support code. ++ ++ * aot-runtime.c (decode_method_ref): Add a 'no_aot_trampoline' out argument. ++ ++ * aot-runtime.c (mono_aot_get_method_from_vt_slot): Return NULL for methods ++ which can't use aot trampolines. ++ (decode_patch): Don't create aot trampolines for methods which can't use ++ them. ++ ++ * aot-compiler.c (encode_method_ref): Add a marker for methods which can't ++ use aot trampolines. ++ ++ * mini.h: Bump AOT image format version. ++ ++2008-10-05 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Pass cil_method instead of cmethod ++ to save_token_info () since cmethod is inflated for constrained calls. ++ ++ * mini-.h mini-x86.c: Remove some unused defines. ++ ++2008-10-04 Andreas Färber ++ ++ * Makefile.am: Add build rules for ppc64. ++ This avoids the build failing at pedump with unresolved symbols ++ due to lack of arch_sources. Instead it will now fail earlier ++ due to lack of cpu-ppc64.md. ++ ++ Contributed under MIT/X11 license. ++ ++2008-10-04 Mark Probst ++ ++ * mini-amd64.c (mono_arch_emit_call): Support stack arguments for ++ tail calls. ++ ++ * iltests.il.in: Add test case for tail call with many arguments. ++ ++2008-10-03 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Add an !cfg->compile_aot assert ++ to the fast virtual generic method code until the aot case is fixed. ++ ++2008-10-03 Mark Probst ++ ++ * mini-ppc.c, mini-ppc.h: Implement generic virtual method thunks. ++ ++2008-10-03 Mark Probst ++ ++ * mini-amd64.c, mini-amd64.h: Implement generic virtual method ++ thunks. ++ ++2008-10-03 Rodrigo Kumpera ++ ++ * simd-intrinsics.c: Forgot to add this one. ++ ++ * mini-codegen.c: Fix macro in case SIMD is not supported. ++ ++2008-10-03 Rodrigo Kumpera ++ ++ This patch land initial JIT support for simd intrinsics. ++ ++ * mini-x86.h: Added new define to make --enable_minimal work on x86. ++ ++ * Makefile.am: Added simd-intrinsics.c ++ ++ * simd-intrinsics.c: New file with simd instrinsic related ++ code. ++ ++ * cfold.c (mono_constant_fold_ins2): Fold XZERO. ++ ++ * cpu-x86.md: Add simd related instructions. ++ ++ * driver.c: Added MONO_OPT_SIMD to the default set of optimizations. ++ ++ * driver.c: Added two new --regression variants. ++ ++ * ir-emit.h (MONO_EMIT_NEW_VZERO): Emit XZERO if the type is a simd intrinsic. ++ ++ * local-propagation.c (mono_local_cprop2): Eliminate useless XMOVE. ++ ++ * local-propagation.c (mono_local_deadce): Use new macro MONO_IS_NON_FP_MOVE and ++ extract some complicated logic to helper functions. ++ ++ * method-to-ir.c (mono_type_to_regmove): Handle simd intrinsics. ++ ++ * method-to-ir.c (mini_emit_inst_for_method): Emit simd intrinsics. ++ ++ * method-to-ir.c (mono_handle_global_vregs): If a simd intrinsic was found, apply ++ the specialized simplification pass. ++ ++ * method-to-ir.c (mono_spill_global_vars): Use new macro. ++ ++ * mini-codegen.c: Added SIMD constants to all regbanks arrays. ++ ++ * mini-codegen.c: Added reg_bank_table_init to initialize the reg desc -> bank ++ table. ++ ++ * mini-codegen.c: Define a version of the reg_bank macro that uses desc_to_reg_type ++ if MONO_ARCH_NEED_SIMD_BANK is defined. ++ ++ * mini-ops.h: Added the new simd ops. ++ ++ * mini-x86.c: Added mono_arch_xregname. ++ ++ * mini-x86.c (mono_arch_cpu_optimizazions): Disable MONO_OPT_SIMD if SSE3 is not detected. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Add simd related opcodes. ++ ++ * mini-x86.h: Define simd related MONO_ARCH macros. ++ ++ * mini.c (mono_type_to_load_membase): Handle simd intrinsics. ++ ++ * mini.c (mono_type_to_store_membase): Handle simd intrinsics. ++ ++ * mini.h: Added new macros MONO_IS_NON_FP_MOVE, MONO_IS_REAL_MOVE, MONO_IS_ZERO and ++ MONO_CLASS_IS_SIMD to deal with simd related IR. ++ ++ * mini.h (MonoInst): Added spill_var to the backend union. ++ ++ * mini.h (MonoCompile): Added uses_simd_intrinsics and iconv_raw_var. ++ ++ * mini.h: Added forward declarations of the new simd fuctions. ++ ++ * optflags-def.h: Added new optimization names SIMD. ++ ++ * regalloc.c (mono_regstate_reset): Set next vreg to be the max value of the 3 reg banks. ++ ++ * regalloc.h: Added support for working with 3 register banks. ++ ++ * regalloc.h (MonoRegState): Added xsymbolic field if a third regbank is required. ++ ++ * ssa2.c (mono_ssa_deadce2): Use new MONO_IS_ZERO macro. ++ ++Fri Oct 3 16:03:22 CEST 2008 Paolo Molaro ++ ++ * mini-exceptions.c: remove 64 bit related ifdef clutter. ++ ++2008-10-03 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_soft_stack_ovf): Unprotect two pages ++ instead of one on 64 bit systems. ++ ++ * method-to-ir.c: Remove unused includes. ++ ++2008-10-02 Zoltan Varga ++ ++ * aot-compiler.c (emit_exception_debug_info): Use jinfo->used_regs instead of ++ cfg->used_int_regs, since the two are different on arm. ++ ++2008-10-02 Mark Probst ++ ++ * method-to-ir.c, inssel.brg, mini-trampolines.c: Use ++ mono_method_get_vtable_index() to get the vtable index. ++ ++2008-10-02 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir2): Don't create native ++ wrappers for array methods, because they're never called (and if ++ they were called they wouldn't work). ++ ++2008-10-02 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir2): Array methods are ++ special-cased and must not be invoked indirectly via the (M)RGCTX ++ when generic sharing is turned on. Fixes #431413. ++ ++2008-10-01 Mark Probst ++ ++ * method-to-ir.c: When generic sharing is active, call ++ non-interface virtual generic methods via the standard trampoline. ++ ++ * mini-trampolines.c: Handle virtual generic shared methods. ++ ++ * mini.h, mini-x86.c, mini-x86.h: New argument for ++ mono_arch_build_imt_thunk() which is non-NULL for virtual generic ++ method thunks and which is the trampoline to call if the lookup ++ fails. Enable the virtual generic method thunk for x86. ++ ++ * mini-amd64.c, mini-arm.c, mini-ia64.c, mini-sparc.c, ++ mini-ppc.c (mono_arch_build_imt_thunk): Add the additional ++ argument but assert that it's NULL, because these archs don't yet ++ implement the virtual generic method thunk. Changes in the IMT ++ thunk data structures. ++ ++2008-10-01 Zoltan Varga ++ ++ * aot-compiler.c (emit_globals): Avoid invalid characters in ++ the static linking symbol. ++ ++ * objects.cs: Add a test for the range check optimization. Fix warnings. ++ ++ * branch-opts.c (mono_if_conversion): Add back the 'optimize range checks' ++ optimization from the current JIT. ++ ++ * method-to-ir.c (mini_emit_inst_for_method): Decompose String.Length ++ later in decompose_array_access_opts () to allow more optimizations. ++ ++ * method-to-ir.c (mono_handle_soft_float): Rename this to ++ mono_decompose_soft_float () for consistency. ++ ++ * mini-ops.h: Fix arguments of OP_STRLEN. ++ ++ * method-to-ir.c (save_cast_details): Extract the cast details saving code ++ into a separate function. ++ (reset_cast_details): Ditto. ++ (handle_unbox): Save cast details. Fixes #431254. ++ ++ * method-to-ir.c: Remove some obsolete FIXMEs. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * ir-emit.h (alloc_dreg): Write a warning before crashing. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * mini-codegen.c: More work on macros to make them ++ ready for multiple regbanks. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * method-to.ir.c (mono_type_to_regmove): Remove static modifier. ++ ++ * mini.h: Export mono_type_to_regmove. Fix signature of mono_regname_full. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * mini-codegen.c (mono_spillvar_offset): Proper support for ++ multiple regbanks. ++ ++2008-09-30 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_epilog): Remove some duplicated code from ++ the stack overflow changes. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * mini-codegen.c: Make all bank macros depend on reg_bank. ++ ++ * mini-codegen.c (mono_local_regalloc): Make free mask ++ initialization regbank aware. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * mini-codegen.c (mono_local_regalloc): Extract callee ++ mask selection to a function and make it regbank aware. ++ ++2008-09-30 Rodrigo Kumpera ++ ++ * mini-codegen.c (mono_local_regalloc): Changed the cloberring ++ code to deal with many regbanks. ++ ++2008-09-30 Zoltan Varga ++ ++ * mini-codegen.c: More fp->regbank changes. ++ ++2008-09-29 Rodrigo Kumpera ++ ++ * mini-codegen.c: Change asserts to use MONO_NUM_REGBANKS instead ++ of a hardcoded constant. ++ ++2008-09-29 Rodrigo Kumpera ++ ++ * method-to-ir.c (type_from_stack_type): Fix typo. ++ ++2008-09-29 Zoltan Varga ++ ++ * mini-ia64.c (emit_move_return_value): Convert float return values to ++ double. ++ ++ * objects.cs: Add a new test. ++ ++ * mini-ia64.c (mono_arch_allocate_vars): Disable fp elimination for ++ VARARG methods to fix an assert later. ++ ++ * mini-mips.h mini-mips.c mini-ops.h cpu-mips.md: Update the mips back ++ end so it at least compiles. ++ ++2008-09-28 Zoltan Varga ++ ++ * method-to-ir.c (emit_optimized_ldloca_ir): Fix this. ++ ++2008-09-28 Rodrigo Kumpera ++ ++ * method-to-ir.c (mono_method_to_ir2): Extract the ldloca + initobj ++ optimization to a new function (emit_optimized_ldloca_ir) and enable ++ it for both ldloca and ldloca_s. ++ ++2008-09-28 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Remove an unnecessary assert in the ++ gshared CASTCLASS code. ++ ++ * driver.c (mono_main): Add a workaround for shutdown crashes seen on ++ amd64, where the libc stack unwinder encounters stack frames referring to ++ native code in unmapped memory. ++ ++ * method-to-ir.c (mini_emit_check_array_type): Add support for generic ++ sharing. ++ ++ * generics.cs: Add new test. ++ ++2008-09-27 Zoltan Varga ++ ++ * mini-arm.h driver.c: Print the fp model when using --version on arm. Also, ++ add a check that one of the ARM_FPU_ constants is defined. ++ ++ * mini-exceptions.c (mono_handle_soft_stack_ovf): Really fix the build. ++ ++ * mini-exceptions.c: Fix build on non-altstack platforms. ++ ++ * method-to-ir.c (mono_method_to_ir2): Fix aot support for the ++ sharing of vtypes. ++ ++ * ir-emit.h: Add a comment to NEW_PCONST. ++ ++ * mini-exceptions.c (mono_altstack_restore_prot): Fix a warning. ++ ++ * mini.h (MonoJitDomainInfo): Move some fields here from MonoDomain. ++ ++ * mini.c aot-runtime.c method-to-ir.c driver.c mini-trampolines.c: Update ++ after the changes to MonoJitDomainInfo. ++ ++2008-09-27 Mark Probst ++ ++ * mini-ppc.c, tramp-ppc.c, mini-ppc.h: Implement generic code sharing. ++ ++2008-09-27 Mark Probst ++ ++ * mini-ppc.c: Compiler warning fixes. ++ ++2008-09-27 Mark Probst ++ ++ * mini-ppc.c: Special handling for 1/2 byte structs on Darwin only ++ for pinvokes. ++ ++2008-09-27 Mark Probst ++ ++ * exceptions-ppc.c, mini-ppc.h: Compile ++ mono_arch_handle_altstack_exception() on Darwin, too. ++ ++2008-09-27 Mark Probst ++ ++ * method-to-ir.c (mono_emit_rgctx_method_call_full): Must also ++ work on archs which don't have generic sharing implemented, only ++ without the vtable_arg. ++ ++2008-09-26 Mark Probst ++ ++ * mini.c: Added comment explaining why delegate ctor icall ++ wrappers are compiled. ++ ++2008-09-26 Mark Probst ++ ++ * mini.c: Don't produce trampolines to delegate ctor icall ++ wrappers but compile them upfront. ++ ++Fri Sep 26 17:00:46 CEST 2008 Paolo Molaro ++ ++ * mini-amd64.c, mini-amd64.h, tramp-amd64.c: amd64 support code for calling a ++ runtime-set function when going back to managed code. Currently this ++ is used to set back the protection on the soft ovf pages and/or to ++ throw the stack overflow exception that happened in unmanaged code. ++ ++Fri Sep 26 16:46:23 CEST 2008 Paolo Molaro ++ ++ * tramp-x86.c, mini-x86.h, mini-x86.c: x86 support code for calling a ++ runtime-set function when going back to managed code. Currently this ++ is used to set back the protection on the soft ovf pages and/or to ++ throw the stack overflow exception that happened in unmanaged code. ++ ++Fri Sep 26 16:34:37 CEST 2008 Paolo Molaro ++ ++ * mini.h, mini.c, mini-trampolines.c, mini-exceptions.c: added ++ the support code for restoring stack protection after stack overflows ++ that happen in unmanaged code. Don't set the exec permission on the ++ soft overflow area. ++ ++2008-09-26 Zoltan Varga ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Add wrappers even if ++ delegate->method_ptr is set. Fixes #428054. ++ ++2008-09-25 Zoltan Varga ++ ++ * tests.cs: Rename to ratests.cs. ++ ++ * method-to-ir.c: Merge the emit_get_rgctx () calls into the ++ emit_get_rgctx_... functions. ++ ++2008-09-25 Mark Probst ++ ++ * method-to-ir.c: Eliminated macro EMIT_GET_RGCTX. ++ ++2008-09-25 Mark Probst ++ ++ * mini-trampolines.c (mono_magic_trampoline): Unwrap wrappers ++ before asserting that method is sharable. ++ ++2008-09-25 Mark Probst ++ ++ * method-to-ir.c, mini.c, jit-icalls.c: New function for checking ++ whether method needs a static RGCTX wrapper used instead of ++ complex conditions. ++ ++ * generic-sharing.c, mini.h: A few functions moved to ++ metadata/generic-sharing.c. ++ ++2008-09-25 Mark Probst ++ ++ * method-to-ir.c, mini.c, mini-exceptions.c, mini-trampolines.c: ++ Generic code sharing for value types, which essentially means ++ treating value type methods like static methods. The RGCTX is ++ passed in the same way. ++ ++2008-09-25 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Avoid an assert in the NEWOBJ ++ opcode when creating multi-dimensional arrays of open types. ++ ++ * generic-sharing.c (mono_method_check_context_used): Handle arrays of ++ open generic types. ++ ++ * generics.cs: Add a test. ++ ++ * mini-codegen.c: Use macros everywhere for checking floats instead of == 'f'. ++ ++2008-09-24 Zoltan Varga ++ ++ * mini.h (MonoCompile): Add 'disable_vreg_to_lvreg' flag. ++ ++ * mini.c (mini_method_compile): Set it when running under the debugger. ++ ++ * method-to-ir.c (mono_handle_global_vregs): Disable global->local ++ vreg optimization if the flag is set. ++ ++ * driver.c (mono_main): Add --attach= option to pass options to ++ the attach agent. ++ ++ * mini.c (sigquit_signal_handler): Start the attach agent. ++ ++ * ssapre.c: Disable this to save space since it is not yet ported to ++ linear IR. ++ ++ * regalloc2.c: Disable this to save space. ++ ++ * mini.h (MonoJitStats): Remove unused analyze_stack_repeat. ++ ++Wed Sep 24 16:01:49 CEST 2008 Paolo Molaro ++ ++ * decompose.c, method-to-ir.c, mini-codegen.c, regalloc2.c: make ++ the -v option useful again. ++ ++2008-09-24 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Add support for ++ --break-at-bb. ++ ++ * inssel.brg (mini_emit_castclass): Avoid the szarray!=array checks for ++ arrays of arrays. Fixes #428406. ++ ++ * method-to-ir.c (mini_emit_castclass): Ditto. ++ ++ * objects.cs: Add new test. ++ ++2008-09-23 Rodrigo Kumpera ++ ++ * method-to-ir.c (type_to_eval_stack_type): The code path for the new JIT ++ was wrong at it choked against target_type_is_incompatible for byref types. ++ ++2008-09-23 Zoltan Varga ++ ++ * mini-codegen.c: Use 'bank' macros instead of 'is_fp' macros in most ++ places. ++ ++Tue Sep 23 15:31:45 CEST 2008 Paolo Molaro ++ ++ * mini-exceptions.c: update a few more exceptions-related counters. ++ ++Tue Sep 23 15:28:29 CEST 2008 Paolo Molaro ++ ++ * aot-runtime.c, method-to-ir.c, mini.c, mini-trampolines.c: use the ++ new functions to allocate from persistent mempools. ++ ++2008-09-23 Zoltan Varga ++ ++ * mini.h regalloc.h mini-codegen.c: Generalize the regalloc code to allow ++ multiple register banks in the future. ++ ++ * mini-codegen.c (mono_local_regalloc): Fix a warning. ++ ++2008-09-22 Rodrigo Kumpera ++ ++ * mini.c (type_to_eval_stack_type): Remove duplicated function. ++ ++ * method-to-ir.c (type_to_eval_stack_type): Make this version compatible with both JIT. ++ ++ * mini.h: Export type_to_eval_stack_type. ++ ++ This function was nearly duplicated in method-to-ir.c and mini.c. The difference ++ is only ins->klass of byref types. ++ ++2008-09-22 Zoltan Varga ++ ++ * method-to-ir.c (mini_emit_memset): Use a default alignment of 4. ++ (mini_emit_memcpy2): Ditto. ++ ++ * mini-amd64.c: Fix a warning. ++ ++2008-09-21 Mark Probst ++ ++ * exceptions-ppc.c (mono_arch_get_call_filter): Fixed stack frame ++ linking. ++ ++2008-09-19 Rodrigo Kumpera ++ ++ * method-to-ir.c: Extract stloc micro-optimization to a ++ function and apply it to all cases. ++ ++2008-09-19 Mark Probst ++ ++ * method-to-ir.c: Don't fail generic code sharing in cases we ++ already support. ++ ++2008-09-18 Mark Probst ++ ++ * mini-ppc.c: Handle structs in tailcalls on Darwin. ++ ++Tue Sep 16 21:07:11 CEST 2008 Paolo Molaro ++ ++ * *.c, *.md, mini-ops.h: introduced relaxed_nop opcode for spin wait ++ implementation. ++ ++Tue Sep 16 16:39:16 CEST 2008 Paolo Molaro ++ ++ * trace.c: make tracing more useful and correct, with per-thread ++ id and indent info. ++ ++2008-09-15 Mark Probst ++ ++ * mini-ppc.c (mono_arch_emit_call): Convert floats to R4 when ++ doing a method call and the argument is an R4. ++ ++2008-09-14 Zoltan Varga ++ ++ * aot-compiler.c (add_wrappers): Do not generate runtime invoke wrappers for ++ generic methods. ++ ++2008-09-13 Mark Probst ++ ++ * mini-ppc.c: Convert result to single for OP_ICONV_TO_R4. ++ ++2008-09-12 Zoltan Varga ++ ++ * mini.h (MONO_IS_JUMP_TABLE): Handle GOT_ENTRY. ++ (MONO_JUMP_TABLE_FROM_INS): Ditto. ++ ++2008-09-11 Zoltan Varga ++ ++ * driver.c: Add a --agent argument (not supported yet) to load managed ++ agent assemblies before loading the main assembly, similarly to how the ++ Java VM handles agents. ++ ++2008-09-11 Mark Probst ++ ++ * mini-ppc.c (mono_arch_allocate_vars): Use arch-independent ++ function to do stack layout of local variables. ++ ++2008-09-11 Mark Probst ++ ++ * mini-ppc.c (calculate_sizes): Bugfix in sigcookie position ++ calculation. ++ ++2008-09-11 Zoltan Varga ++ ++ * method-to-ir.c ssa2.c mini.c mini-amd64.c decompose.c ssa.c abcremoval.c ++ abcremoval2.c branch-opts.c driver.c dominators.c: Disable parts of the ++ JIT if DISABLE_JIT is defined. ++ ++ * Makefile.am: Avoid compiling/linking in inssel.c if DISABLE_JIT is ++ defined. ++ ++2008-09-10 Mark Probst ++ ++ * iltests.il.in: Disable the fconv test on PPC (the result is ++ undefined according to ECMA). ++ ++2008-09-10 Mark Probst ++ ++ * iltests.il.in: Enable tail call tests for PPC. ++ ++ * mini.h: Add variable for storing incoming valuetype argument ++ addresses for tail calls. ++ ++ * mini-ppc.c: Implement valuetype arguments and return values for ++ tailcalls on Linux. ++ ++2008-09-09 Mark Probst ++ ++ * mini-ppc.c: Partially implement tail calls (struct arguments and ++ return values not supported). ++ ++ * method-to-ir.c: Enable tail calls on PPC. ++ ++2008-09-08 Zoltan Varga ++ ++ * aot-compiler.c (emit_wrapper_info): Omit the klass name from ++ runtime-invoke wrappers to work around the problem of them getting ++ assigned to a random class. ++ ++ * aot-runtime.c (mono_aot_get_method): Ditto. ++ ++2008-09-07 Zoltan Varga ++ ++ * mini-exceptions.c mini-mips.h mini-s390.h exceptions-mips.c: Kill ++ the CUSTOM_EXCEPTION_HANDLING and CUSTOM_STACK_WALK defines. ++ ++2008-09-07 Mark Probst ++ ++ * method-to-ir.c (mono_method_to_ir2): Disable tail calls for PPC ++ until they're implemented properly. ++ ++ * exceptions-ppc.c: Use arch-independent exception-handling code ++ instead of custom one. ++ ++ * exceptions-ppc.c, mini-ppc.c, mini-ppc.h: Bug fixes and changes ++ for Linear IR. ++ ++ * tramp-ppc.c, mini-ppc.c: Fixed warnings. ++ ++ * decompose.c, aot-runtime.c, aot-compiler.c: PPC code also ++ applies when __powerpc__ is defined. ++ ++2008-09-06 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_method): Add another cache mapping wrapper ++ methods to their code to avoid computing the full name of wrappers and ++ doing a lookup in a string hash table. ++ ++2008-09-05 Zoltan Varga ++ ++ * method-to-ir.c: Remove the CHECK_BBLOCK () stuff it is not needed since ++ we identify bblocks before method_to_ir () is ran. ++ ++ * branch-opts.c (mono_optimize_branches): Avoid nullifying the exit bblock. ++ Also avoid optimizing branches pointing to themselves. ++ ++ * mini.c (mini_method_compile): Ditto. Fixes #422947. ++ ++2008-09-05 Rodrigo Kumpera ++ ++ * driver.c (mono_main): Enable the new verifier under core-clr and cas. ++ ++2008-09-05 Zoltan Varga ++ ++ * tramp-arm.c (mono_arch_nullify_class_init_trampoline): Implement this. ++ (mono_arch_patch_plt_entry): Fix the calculation of the jump_entry. ++ (mono_arch_get_nullified_class_init_trampoline): Return 'code' instead of ++ 'buf'. ++ ++ * aot-compiler.c (emit_plt): Fix the arm plt entries, previously they all ++ jumped to the same entry in plt_jump_table. ++ ++2008-09-02 Rodrigo Kumpera ++ ++ * method-to-ir.c (initialize_array_data): Handle field with RVA from ++ dynamic images. ++ ++2008-08-31 Zoltan Varga ++ ++ * method-to-ir.c (handle_isinst): Do the assignment at the beginning, so the ++ other assignment can be if converted. Saves 1.5% on corlib size and fixes ++ #421807. ++ ++2008-08-29 Geoff Norton ++ ++ * aot-compiler.c: The Mach/ARM compiler doesn't understand the bss ++ segment, and doesn't properly handle .space as .text. Fixes ++ AOT Mach/ARM ++ ++2008-08-29 Geoff Norton ++ ++ * mini.c: Disable the mach exception handler when running on ++ ARM ++ ++2008-08-29 Geoff Norton ++ ++ * aot-compiler.c: Patch from Renaldas Zioma to properly register ++ globals on Darwin/ARM ++ ++2008-08-28 Zoltan Varga ++ ++ * mini.c: Avoid not initializing the runtime when doing AOT compilation, ++ since too many things depend on it. Instead, call ++ mono_runtime_set_no_exec (). ++ ++ * mini.c (mono_create_tls_get): Call mono_alloc_preg (cfg) when running with ++ the new JIT. ++ ++ * aot-compiler.c: Add an 'asm-only' AOT option. ++ ++ * mini.c: Avoid initializing the runtime when doing AOT compilation. ++ ++ * aot-compiler.c (compile_method): Disable gshared support for now as it ++ doesn't yet work. ++ ++2008-08-27 Bill Holmes ++ ++ * mini-amd64.h : Fix a compiler warning. ++ ++ * exceptions-amd64.c (mono_arch_unwindinfo_install_unwind_info) : ++ Changed to use a callback function to retrieve the unwind info. ++ This avoids problems observed when code blocks were removed by ++ unloading an app domain. ++ ++ * mini-amd64.c (mono_arch_cpu_optimizazions) : Removing the peephole ++ and branch excludes for Winx64. The fix in exceptions-amd64.c allows them ++ to work properly. ++ ++ Contributed under MIT/X11 license. ++ ++2008-08-27 Bill Holmes ++ ++ * mini-amd64.c (mono_arch_output_basic_block) : Fix the OP_X86_PUSH_OBJ ++ case to keep the stack aligned to 8. ++ ++ Contributed under MIT/X11 license. ++ ++2008-08-26 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_method): Add a cache for wrapper names to ++ avoid repeated linear searches. ++ ++2008-08-25 Zoltan Varga ++ ++ * aot-compiler.c (add_wrappers): Avoid calling get_runtime_invoke with ++ methods it can't handle. ++ ++ * aot-compiler.c (add_method): Avoid adding a method twice. ++ (add_wrappers): Add runtime invoke wrappers for all methods. ++ ++ * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline_full): New ++ function to create an aot-compatible version of this trampoline. ++ ++ * aot-compiler.c aot-runtime.c: Add support for AOT rgctx fetch trampolines. ++ ++2008-08-24 Zoltan Varga ++ ++ * aot-compiler.c (compile_method): Skip wrappers of generic icalls. ++ ++ * method-to-ir.c (mono_method_to_ir2): Replace an assert in UNBOX_ANY ++ with a generic sharing failure. ++ ++ * aot-compiler.c (emit_klass_info): Call mono_class_get_nested_types (). ++ ++ * method-to-ir.c (mono_method_to_ir2): Rethrow the correct exception in ++ CEE_RETHROW. Fixes #419634. ++ ++ * mini.c (mono_method_to_ir): Ditto. ++ ++ * exceptions.cs: Add a new test. ++ ++ * generic-sharing.c (mini_type_stack_size): Always pass TRUE as allow_open ++ to mono_type_stack_size_internal () since some callers might not pass in ++ an rgctx. ++ ++ * mini-x86.c (mono_arch_emit_prolog): Store the rgctx before calling ++ instrument_prolog. Fixes #419878. ++ ++ * mini.c (mono_compile_create_var_for_vreg): Make the lvars representing ++ doubles in soft float mode volatile. ++ ++2008-08-23 Zoltan Varga ++ ++ * ir-emit.h (NEW_ARGSTORE): Use cfg->args and cfg->arg_types to fix the build. ++ ++ * method-to-ir.c (mono_save_args): Use ARGSTORE instead of TEMPSTORE ++ to handle soft float correctly. ++ ++ * tramp-arm.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Implement ++ the fast path. ++ ++ * mini.h (struct MonoCallInst): Add dynamic_imt_arg boolean field. ++ ++ * exceptions-arm.c (mono_arch_find_jit_info): Set ctx->regs [ARMREG_R11] ++ to sp, since the generics catch code requires it. ++ ++ * mini-arm.h (MONO_ARCH_VTABLE_REG): Use R0 for this to avoid needless ++ copying. ++ ++ * method-to-ir.c (emit_imt_argument): Pass imt_arg to ++ mono_arch_emit_imt_argument (). ++ ++ * mini-.c (mono_arch_emit_imt_argument): Add an 'imt_arg' argument. ++ ++ * mini-arm.c tramp-arm.c: Generic sharing updates. ++ ++2008-08-22 Zoltan Varga ++ ++ * mini-arm.c: Fix the arm build. ++ ++ * generic-sharing.c (mini_type_get_underlying_type): New helper function ++ handling enums, generic instances and generic sharing. ++ (mini_type_stack_size_full): Ditto. ++ ++ * mini-amd64.c mini-x86.c mini-arm.c: Use the new functions. ++ ++ * mini.h (struct): Add 'uses_rgctx_reg' and 'uses_vtable_reg' fields. ++ ++ * method-to-ir.c: Set the new fields when using RGCTX_REG/VTABLE_REG. ++ ++ * tramp-arm.c: Implement the rgctx fetch and the generic class init ++ trampolines. ++ ++ * mini-arm.c: Various small generic sharing changes. ++ ++ * tramp-x86.c (mono_arch_create_generic_class_init_trampoline): Implement ++ this for x86. ++ (mono_arch_create_trampoline_code): Remove most of the GENERIC_CLASS_INIT ++ custom code. ++ ++ * mini-trampolines.c (mono_create_generic_class_init_trampoline): New ++ helper function to return a generic class init trampoline. ++ ++ * method-to-ir.c mini.c: Use it. ++ ++ * tramp-amd64.c (mono_arch_create_generic_class_init_trampoline): New ++ arch-specfic function to return a generic class init trampoline. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Remove most of ++ the GENERIC_CLASS_INIT custom code. ++ ++ * method-to-ir.c (mono_method_to_ir2): If RGCTX_REG is not defined, that is ++ a fatal error, not a sharing failure. ++ ++ * tramp-.c (mono_arch_get_rgctx_lazy_fetch_offset): Removed, no longer ++ needed. ++ ++ * mini-trampolines.c (mono_rgctx_lazy_fetch_trampoline): Get the additional ++ trampoline argument from MONO_ARCH_VTABLE_REG. ++ ++ * tramp-x86.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Change the ++ order of the arguments to the C trampoline: pass 'slot' as the trampoline ++ argument, and pass the vtable in VTABLE_REG. ++ ++ * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Change the ++ order of the arguments to the C trampoline: pass 'slot' as the trampoline ++ argument, and pass the vtable in VTABLE_REG. ++ (mono_arch_create_trampoline_code_full): Remove some special casing for ++ the rgctx fetch trampoline. ++ ++ * mini.c (mono_method_to_ir): Fix the STELEM_ANY+null value optimization. ++ Fixes #419273. ++ ++ * iltests.il: Add a test for it. ++ ++2008-08-21 Zoltan Varga ++ ++ * aot-compiler.c (compile_method): Enable AOT support for generics sharing. ++ ++ * method-to-ir.c (mono_method_to_ir2): Remove an aot restriction which is ++ no longer needed. ++ ++ * mini-trampolines.c (mono_magic_trampoline): Add a sync wrapper here, ++ use mono_jit_info_table_find () to avoid recursion. ++ (mono_delegate_trampoline): Add a sync wrapper here. ++ ++ * method-to-ir.c (mono_method_to_ir2): Don't call mono_ldftn_nosyc ++ here. ++ ++ * mini.c (mono_method_to_ir): Ditto. ++ ++ * mini-trampolines.c (mono_create_jit_trampoline_in_domain): Remove ++ add_sync_wrapper argument. Don't add a sync wrapper here. ++ (mono_create_jump_trampoline): Don't add a sync wrapper here. ++ ++ * jit-icalls.c (mono_ldftn_nosync): Removed, no longer needed. ++ ++2008-08-20 Bill Holmes ++ ++ * exceptions-amd64.c (seh_handler): For Winx64 adding missing copy ++ of nonvolatile registers back from MonoContext to CONTEXT. ++ ++ Contributed under MIT/X11 license. ++ ++2008-08-20 Bill Holmes ++ ++ * mini-amd64.c (mono_arch_get_delegate_invoke_impl): When shifting the ++ arguments on Winx64 there are only 4 argument registers. For this ++ logic to work the last argument must be pulled from the stack. ++ ++ Contributed under MIT/X11 license. ++ ++2008-08-20 Zoltan Varga ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump aot file format version. ++ ++ * aot-runtime.c aot-compiler.c patch-info.h mini.c: Get rid of ++ MONO_PATCH_INFO_WRAPPER, encode/decode wrapper methods like the others in ++ encode/decode_method_ref (). ++ ++ * aot-compiler.c (encode_patch): Handle STATIC_RGCTX_INVOKE wrappers. ++ ++ * aot-runtime.c (decode_patch): Ditto. ++ ++ * mini.c (mono_resolve_patch_target): Handle RGCTX_FETCH sub-patches of type ++ MONO_PATCH_INFO_METHOD. ++ ++ * aot-runtime.c (decode_exception_debug_info): Decode the contents of ++ MonoGenericJitInfo. ++ ++ * aot-compiler.c (emit_exception_debug_info): Emit the contents of ++ MonoGenericJitInfo. ++ ++ * method-to-ir.c (emit_imt_argument): Fix AOT+gshared support. ++ ++ * mini-amd64.c (add_valuetype): Use a dummy gsctx if we didn't receive ++ one from the caller. ++ ++ * aot-runtime.c (decode_generic_inst): New function to decode and ++ return a interned generic inst. ++ (decode_klass_ref): Use it. ++ (decode_method_ref): Ditto. ++ ++ * aot-compiler.c (emit_exception_debug_info): Save ++ jinfo->has_generic_jit_info too. ++ ++2008-08-19 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_output_basic_block): Add OP_FCONV_TO_I. ++ ++ * iltests.il.in: Add a test for fconv_to_i. ++ ++ * liveness.c: Disable the liveness2 pass for now to save space. ++ ++ * regalloc2.c: Include mempool-internals.h to fix warnings. ++ ++ * aot-compiler.c (encode_method_ref): Encode the context of generic ++ instance methods. ++ ++ * aot-runtime.c (decode_method_ref): Inflate generic methods using ++ the context saved in the aot file. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump aot file format version. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Disable AOT for OP_JMP. ++ ++ * method-to-ir.c (mono_method_to_ir2): When using CEE_JMP, make arguments ++ volatile so they won't be optimized away. ++ ++2008-08-19 Rodrigo Kumpera ++ ++ * ssa.c: ++ * ssa2.c: ++ * mini.c: ++ * regalloc2.c: ++ * dominators.c: Remove duplicated functions that now are in ++ mempool-internals.h. ++ ++2008-08-19 Zoltan Varga ++ ++ * aot-compiler.c: Fix warnings. ++ ++ * aot-runtime.c (decode_klass_ref): Add support for VARs/MVARs. ++ ++ * aot-compiler.c (encode_klass_ref): Encode is_method too for VARs/MVARs. ++ ++ * method-to-ir.c (emit_get_rgctx_method): Use MONO_PATCH_INFO_METHODCONST ++ as the patch type. ++ ++ * mini.c (mono_resolve_patch_target): Ditto. ++ ++ * aot-compiler.c (encode_patch): Add support for RGCTX_FETCH. ++ (encode_klass_ref): Add support for encoding VARs/MVARs. ++ ++ * mini.c (mono_patch_info_dup_mp): Handle RGCTX_FETCH. ++ ++ * aot-runtime.c (decode_patch_info): Rename to 'decode_patch'. Split out ++ the handling of the got entries into a separate 'decode_got_entry' function. ++ Add support for RGCTX_FETCH. ++ ++ * tramp-amd64.c mini-amd64.h: Change the VTABLE_REG to RDI since RAX is ++ clobbered by the trampoline code. ++ ++ * tramp-amd64.c mini-amd64.h: Change the VTABLE_REG to RAX since that is ++ not clobbered by the indirect calling code. ++ ++2008-08-18 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_patch_code): Handle RGCTX_FETCH/GENERIC_CLASS_INIT ++ to fix the build. ++ ++2008-08-18 Rodrigo Kumpera ++ ++ * method-to-ir.c (mono_emit_method_call_full): Alloc the constructor ++ signature using the compilation mempool otherwise we would leak it. ++ ++2008-08-18 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Emit the generic class inits using ++ mono_emit_abs_call (). ++ ++ * patch-info.h: Add GENERIC_CLASS_INIT. ++ ++ * mini.c (mono_resolve_patch_target): Handle GENERIC_CLASS_INIT. ++ ++ * mini-amd64.c (emit_call_body): Treat abs calls which have a patch info ++ as their target as a near call. ++ ++ * mini.c (mono_codegen): Handle patches stored in cfg->abs_patches in the ++ ABS handling code. ++ (mono_resolve_patch_target): Add support for MONO_PATCH_INFO_RGCTX_FETCH. ++ ++ * method-to-ir.c (mono_emit_abs_call): New helper function which emits a ++ call to a runtime function described by a patch. ++ ++ * method-to-ir.c: Emit rgctx entry fetches and class init trampolines using ++ mono_emit_abs_call, this has the advantage that the ABS handling code in ++ mono_codegen () can handle them both, and can handle other stuff in the ++ future without additional code. ++ ++ * mini.h (struct MonoJumpInfoRgctxEntry): New structure describing an rgctx ++ entry. ++ (MonoCompile): Add 'abs_patches' hashtable, which contains patches describing ++ abs addresses. ++ ++ * mini.h: Add missing bblock related prototypes. ++ ++ * mini.h (MonoCompile): Remove unused reverse_inst_list and ++ reverse_inst_list_len fields. ++ ++ * mini.c: Refactor this file a bit by moving branch optimizations to ++ branch-opts.c. ++ ++ * method-to-ir.c: Merge generic sharing changes missed earlier. ++ ++ * aot-compiler.c (is_shared_got_patch): Add MONO_PATCH_INFO_METHODCONST. ++ ++ * aot-runtime.c (decode_patch_info): Refactor the code dealing with the ++ shared patches. Process METHODCONST as a shared patch. ++ ++ * liveness.c (mono_analyze_liveness): Disable the liveness2 code for now ++ as it crashes on the 2.0 mscorlib. ++ ++ * aot-compiler.c (is_shared_got_patch): Revert the last change as it seems ++ to cause crashes. ++ ++ * aot-compiler.c: Use is_plt_patch () in a few additional places. ++ (is_shared_got_patch): Add MONO_PATCH_INFO_METHODCONST, which is generated ++ by IMT. ++ ++ * aot-compiler.c: Reorganize the got handling code to be a bit more ++ understandable. ++ ++2008-08-17 Zoltan Varga ++ ++ * aot-compiler.c: Make the patch_to_plt_offset hash table use ++ mono_patch_info_equals/hash, and use it to massively simplify ++ get_plt_index (). ++ ++ * mini.c (mono_patch_info_hash): Simplify this and add support for ++ more patch types. ++ ++ * patch-info.h: Rename RGCTX_LAZY_FETCH_TRAMPOLINE to just RGCTX_FETCH. ++ ++ * mini.c aot-compiler.c aot-runtime.c: Revert the LAZY_FETCH_TRAMPOLINE ++ handling code, since an offset is not enough to identify a trampoline. ++ ++ * method-to-ir.c: Remove some g_assert (!cfg->compile_aot) lines. ++ ++2008-08-17 Mark Probst ++ ++ * mini.c (mono_op_imm_to_op): Add case for OP_IMUL_IMM. ++ ++ * method-to-ir.c (mono_method_to_ir2): Decompose OP_CKFINITE. ++ ++ * mini-ops.h: Argument and result types for OVF_CARRY ops. ++ ++ * decompose.c: PPC decompositions for various ops. ++ ++ * cpu-ppc.md, inssel-ppc.brg, mini-ppc.c: PPC changes for Linear IL. ++ ++2008-08-17 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Make this ++ call the generic trampoline code using a call, instead of a jump, to ++ remove some special casing from the generic trampoline code. ++ ++ * mini.c (mono_resolve_patch_target): Handle LAZY_FETCH_TRAMPOLINE. ++ (mono_codegen): Ditto. ++ ++ * aot-compiler.c aot-runtime.c: Ditto. ++ ++ * patch-info.h: Add MONO_PATCH_INFO_RGCTX_LAZY_FETCH_TRAMPOLINE. ++ ++ * mini-trampolines.c (mono_find_rgctx_lazy_fetch_trampoline_by_addr): New ++ helper function to find the offset corresponding to a lazy fetch trampoline. ++ ++ * mini.h (MonoCompile): Add 'orig_method' field to hold the original method ++ when doing generic sharing. ++ ++ * aot-compiler.c: Use cfg->orig_method instead of cfg->method in a lot of ++ places. ++ ++ * mini.c (mono_create_rgctx_lazy_fetch_trampoline): Move this to ++ mini-trampolines.c to be with the other trampoline creation functions. ++ ++ * method-to-ir.c (mono_emit_method_call): Remove the 'signature' argument ++ as it is equal to method->signature in most cases, add a ++ mono_emit_method_call_full variant which takes a signature and an imt ++ argument as well. ++ ++2008-08-16 Zoltan Varga ++ ++ * jit-icalls.c (mono_helper_compile_generic_method): Don't pass the context ++ to this function, since it could be computed easily from the method ++ argument. ++ (mono_helper_compile_generic_method_wo_context): Removed, not needed any ++ more. ++ ++ * method-to-ir.c mini.c: Remove references to ++ compile_generic_method_wo_context. ++ ++ * method-to-ir.c (mono_method_to_ir2): Enable AOT for virtual ++ generic method calls. ++ ++ * method-to-ir.c (mono_method_to_ir2): Use mono_array_new_1 for 1 ++ dimensional non-szarrays. ++ ++ * mini.c (mini_init): Register mono_array_new_1. ++ ++ * jit-icalls.c (mono_array_new_1): New jit icall. ++ ++ * mini-trampolines.c (mono_magic_trampoline): For jumps, patch the GOT entries ++ pointing to the method. ++ ++ * aot-runtime.c (mono_aot_get_method_from_token): Register GOT slots holding ++ method addresses belonging to METHOD_JUMP patches in the ++ jump_target_got_slot_hash. ++ (mono_aot_load_method): Ditto. ++ ++ * aot-compiler.c (compile_method): Allow AOT compilation of methods with ++ METHOD_JUMP patches. ++ ++ * mini.c (mini_create_jit_domain_info): New helper function which ++ initializes/frees domain->runtime_info. ++ (mini_free_jit_domain_info): Ditto. ++ (mini_init): Install the domain hook functions with the runtime. ++ ++ * mini.h (MonoJitDomainInfo): New structure which stores the domain specific ++ information maintained by the JIT. ++ ++ * mini.c (mono_resolve_patch_target): For PATCH_INFO_METHOD_JUMP, move the ++ insertion into jump_table_hash into mono_codegen (), also implement proper ++ locking. ++ ++ * method-to-ir.c (mono_method_to_ir2): Don't disable AOT for CEE_JMP and ++ tail calls, it is already done by the aot code. ++ ++ * method-to-ir.c (mono_method_to_ir2): Handle CEE_JMP using the tail call ++ mechanism on amd64. ++ ++ * iltests.il.in: Make the jmp test a bit more complex. ++ ++ * aot-compiler.c (encode_method_ref): Handle references to normal methods of ++ generic instances which doesn't have a token. ++ ++ * aot-runtime.c (decode_method_ref): Ditto. ++ ++ * method-to-ir.c (handle_unbox_nullable): Don't disable AOT, the aot code ++ can handle this case now. ++ (handle_box): Ditto. ++ ++2008-08-15 Geoff Norton ++ ++ * mini-x86.c: Fix alignment on Apple x86, and re-disable the alignment ++ debugging check. ++ ++2008-08-15 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Allow AOT compilation of methods ++ calling generic methods. ++ ++ * aot-compiler.c (encode_patch): Handle MONO_PATCH_INFO_METHOD_RGCTX. ++ ++ * aot-runtime.c (decode_patch_info): Ditto. ++ ++ * mini.c (mono_resolve_patch_target): Ditto. ++ ++ * patch-info.h: Add METHOD_RGCTX. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Optimize LOCALLOC_IMM. ++ ++2008-08-14 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_call): Nullify call->vret_var if returning ++ arguments in registers. ++ ++ * decompose.c (mono_decompose_vtype_opts): Create a var for the vreg in ++ OP_VCALL too, don't depend on OP_OUTARG_VTRETADDR doing it. ++ ++ * mini.c (mini_method_compile): Abort aot compilation for generic ++ methods if generic sharing is disabled. ++ ++ * mini.c (mono_method_to_ir): Disable AOT for virtual calls requiring ++ an mrgctx. ++ ++ * method-to-ir.c (mono_method_to_ir2): Disable AOT for virtual calls ++ requiring an mrgctx. ++ ++ * decompose.c (mono_decompose_vtype_opts): Emit the correct sized ++ store instructions when converting a vcall to a normal call. ++ ++ * mini.c (sigprof_signal_handler): Call mono_find_jit_info instead of ++ mono_arch_find_jit_info. ++ ++2008-08-13 Zoltan Varga ++ ++ * method-to-ir.c (check_inline_called_method_name_limit): Optimize this to ++ avoid calling mono_method_full_name () for every method even if the ++ env var is not set. ++ (check_inline_caller_method_name_limit): Ditto. ++ ++2008-08-12 Zoltan Varga ++ ++ * driver.c (main_thread_handler): Allow AOT compilation of multiple ++ assemblies in one run. ++ ++ * aot-compiler.c (mono_compile_assembly): Only print out a count of ++ skipped methods if it is not 0. ++ ++ * Makefile.am (aotcheck): AOT compile all test assemblies in one run. ++ ++2008-08-12 Bill Holmes ++ ++ * mini.c (mono_codegen): Changing a preprocessor check from WIN64 to ++ MONO_ARCH_HAVE_UNWIND_TABLE. ++ ++ Contributed under MIT/X11 license. ++ ++2008-08-12 Bill Holmes ++ ++ * mini-amd64.c (mono_arch_cpu_optimizazions): Remove peephole and branch ++ from default optimizaton list on Winx64. ++ ++ * mini-amd64.c (emit_tls_get): Added Winx64 specific implementation for GetTLS. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Adding an offset on Winx64 to get ++ the LMF from the MonoJitTlsData structure. ++ ++ * mini-amd64.c (mono_arch_setup_jit_tls_data): Added Winx64 implementation. ++ ++ Contributed under MIT/X11 license. ++ ++2008-08-12 Zoltan Varga ++ ++ * mini.c (sigsegv_signal_handler): Fix the build. ++ ++ * mini-amd64.c (emit_call_body): Use image->aot_module instead of ++ assembly->aot_module. ++ ++ * aot-runtime.c: Use image->aot_module instead of searching in the aot_modules ++ hash table. This simplifies and speeds up a lot of code, and fixes support ++ for .netmodules. ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Avoid crashes if the thread is not registered ++ with the runtime. ++ ++ * mini-exceptions.c: Ditto. ++ ++ * exceptions-*c.c (mono_arch_find_jit_info): Remove unused 'trace' and ++ 'native_offset' argument, since these are computed in the ++ mono_find_jit_info () function. ++ ++ * mini-exceptions.c (mono_find_jit_info): Make this non-static, as it ++ is used by exceptions-ppc.c. ++ ++ * exceptions-ppc.c: Call mono_find_jit_info () instead of ++ mono_arch_find_jit_info (). ++ ++ * mini-ppc.h exceptions-ppc.c mini-mips.h mini-mips.c exceptions-mips.c ++ mini-exceptions.c: Get rid of the CUSTOM_STACK_WALK stuff, use the ++ generic code in mini-exceptions.c. ++ ++2008-08-11 Zoltan Varga ++ ++ * mini-ppc.c (mono_arch_flush_register_windows): Add this for ppc. ++ ++ * aot-runtime.c (mono_aot_get_plt_info_offset): Fix a warning. ++ ++ * aot-runtime.c (mono_aot_get_method): Avoid doing all the loading inside ++ the aot lock, to avoid deadlocks when mono_aot_get_class_from_name () is ++ called while holding the loader lock. Fixes #415608. ++ (mono_aot_get_method_from_token_inner): Ditto. ++ ++2008-08-09 Zoltan Varga ++ ++ * exceptions-ppc.c (mono_jit_walk_stack): Use MONO_INIT_CONTEXT_FROM_CURRENT ++ to reduce differences between this and the generic implementation in ++ mini-exceptions.c. ++ (ves_icall_get_frame_info): Ditto. ++ ++ * mini-ppc.h (MONO_INIT_CONTEXT_FROM_CURRENT): Define this for ppc too. ++ ++ * mini-exceptions.c (mono_exceptions_init): Remove an #ifdef which is no ++ longer neccesarry. ++ ++ * exceptions-ppc.c (arch_get_call_filter): Rename this to ++ mono_arch_get_call_filter () and make it non-static, for consistency with the ++ other architectures. ++ ++2008-08-09 Rodrigo Kumpera ++ ++ * mini.c: ++ * local-propagation.c: ++ * mini-x86.c: Correct the name of arch defines. ++ ++2008-08-09 Zoltan Varga ++ ++ * method-to-ir.c (mono_op_to_op_imm_noemul): Correct name of ++ NO_EMULATE_LONG_SHIFT_OPS define. ++ ++2008-08-08 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Remove some code from CEE_MONO_LDPTR ++ now that aot-ed icall wrappers use CEE_MONO_ICALL_ADDR. ++ ++ * aot-compiler.c aot-runtime.c: Add support for static aot compilation. ++ MACH fixes. Merged from the 2.0 branch. ++ ++ * method-to-ir.c (mono_method_to_ir2): Handle CEE_MONO_ICALL_ADDR. ++ ++ * mini.c (mono_resolve_patch_target): Error out if an icall is not found. ++ (mono_method_to_ir): Handle CEE_MONO_ICALL_ADDR. ++ ++ * exceptions-arm.c (mono_arch_get_throw_exception_generic): Add AOT support. ++ ++ * method-to-ir.c mini.c driver.c aot-compiler.c: Update after ++ mono_marshal_get_native_wrapper () signature changes. ++ ++2008-08-07 Rodrigo Kumpera ++ ++ * jit-icalls.c (mono_fconv_ovf_u8): Work around soft-float double to long ++ conversion bug under arm. ++ ++2008-08-06 Rodrigo Kumpera ++ ++ * cpu-arm.md: Increase long_conv_to_ovf_i4_2 max length to 36. ++ ++ * mini-arm.c (mono_arch_output_basic_block): Implement long to int conversion ++ with overflow checking. ++ ++2008-08-05 Marek Habersack ++ ++ * Makefile.am (GENMDESC_PRG): when cross-compiling use full path ++ to the genmdesc.pl file ++ ++2008-08-05 Zoltan Varga ++ ++ * ir-emit.h (EMIT_NEW_ARGSTORE): Fix the usage of param_types and ++ arg_array in the soft-float versions of the LOAD/STORE macros. ++ ++ * method-to-ir.c (mono_method_to_ir2): Fix a warning in the arm switch ++ implementation. ++ ++ * ir-emit.h (NEW_VARLOADA): Handle SOFT_FLOAT correctly. ++ ++2008-08-02 Zoltan Varga ++ ++ * mini-ia64.c (add_valuetype): Only reserve half parameter slot for each member of ++ a float HFA. Fixes #413621. ++ ++2008-08-02 Gert Driesen ++ ++ * mini-x86.c (mono_arg_get_argument_info): Rename last occurrence of ++ frame_size to args_size. Fixes build. ++ ++2008-08-02 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_argument_info): Rename frame_size to args_size, ++ and don't align it to MONO_ARCH_FRAME_ALIGNMENT. ++ ++ * mini-x86.h: Change MONO_ARCH_FRAME_ALIGNMENT to 8 so doubles stored on ++ the stack are not unaligned. Fixes #413247. ++ ++Fri Aug 1 18:46:42 CEST 2008 Paolo Molaro ++ ++ * mini.c: update jitted methods performance counters. ++ ++Fri Aug 1 16:30:37 CEST 2008 Paolo Molaro ++ ++ * mini-exceptions.c: increase the exceptions thrown performance ++ counter in mono_handle_exception (). ++ ++2008-07-29 Zoltan Varga ++ ++ * aot-runtime.c: Use MonoImage's as keys in the aot_modules hash so the aot ++ can work with netmodules. ++ ++2008-07-28 Geoff Norton ++ ++ * mini-x86.h: Correct the frame alignment on OSX. Fixes the jit ++ regression tests. ++ ++2008-07-28 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_call): Emi the osx stack alignment at the ++ correct place. ++ ++2008-07-28 Bill Holmes ++ ++ * mini-amd64.c (get_call_info): Winx64 fix for passing floats. ++ The float param registers and other param registers must be the ++ same index on Windows x64. ++ ++ * mini-amd64.c (mono_arch_allocate_vars) : Implementing the ++ ArgValuetypeAddrInIReg argument case. Setting the argument ++ op to OP_VTARG_ADDR (OP_REGOFFSET)). ++ ++ * mini-amd64.c (mono_arch_call_opcode) : Winx64 fix. Use the size ++ variable computed above as the copy length for arguments of storage ++ type ArgValuetypeAddrInIReg. ++ ++ * mini-amd64.c (mono_arch_emit_call) : Implementing the ++ ArgValuetypeAddrInIReg argument case. This case will rely on ++ mono_arch_emit_outarg_vt to emit the correct code later in the process. ++ ++ * mini-amd64.c (mono_arch_emit_call) : On Winx64 there always needs to be ++ a 32 byte stack allocation for all calls. We will omit the adjustment for ++ jump and tail call instructoins as they do not follow the typical call behavior. ++ ++ * mini-amd64.c (mono_arch_emit_outarg_vt) : Implementing the case for ++ ArgValuetypeAddrInIReg. The code emitted will copy the argument to a ++ local variable and pass the local variable by reference to the called method. ++ ++ * mini-amd64.c (mono_arch_emit_prolog, emit_load_volatile_arguments) : ++ Implementing the ArgValuetypeAddrInIReg argument case. When the address ++ of a struct is passed in a register it must be saved with the other ++ volatile argument on the stack. ++ ++ * mini-amd64.c (mono_arch_emit_prolog) : Winx64 fix. When omitting the ++ frame pointer the stack adjustment value must be saved to the unwind ++ info structure. ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-28 Zoltan Varga ++ ++ * inssel-x86.brg (stmt): Add missing OP_X86_OUTARG_ALIGN_STACK rule ++ which got lost in the merge. ++ ++2008-07-27 Zoltan Varga ++ ++ * method-to-ir.c: Make the helper_sig variables extern to fix the ppc ++ build. ++ ++ * mini-amd64.c (emit_call_body): Add a no_patch case missed earlier. ++ ++ * mini-amd64.c (emit_call_body): Avoid aligning the call instruction on ++ icalls, since they won't be patched. ++ ++ * exceptions-amd64.c (mono_arch_get_restore_context_full): Use a slightly ++ different code sequence when running under valgrind to prevent some valgrind ++ errors. ++ ++ * iltests.il.in: Add new regression test. ++ ++ * method-to-ir.c (mono_method_to_ir2): Fix handling of inlined methods which ++ end with a throw. ++ ++ * method-to-ir.c (mono_method_to_ir2): Use get_vreg_to_inst () instead of ++ accessing cfg->vreg_to_inst directly to prevent a crash in LDFLD. ++ ++ * iltests.il.in: Add new test. ++ ++ * aot-compiler.c: Fix some warnings. ++ ++ * decompose.c (mono_decompose_long_opts): Implement OP_ICONV_TO_OVF_I8_UN. ++ Fixes #412494. ++ ++2008-07-27 Zoltan Varga ++ ++ * driver.c (mono_main): Fix the --gc=none build. Fixes #412482. ++ (mini_usage_jitdeveloper): Add a missing --wapi option. ++ ++2008-07-25 Zoltan Varga ++ ++ * mini-codegen.c: Simplify the is_fp macros. ++ (free_up_ireg): Remove, use free_up_reg instead. ++ (free_up_reg): Fix the fp case. ++ ++2008-07-26 Zoltan Varga ++ ++ * cpu-arm.md (loadr8_membase): Increase the length of this as this is not ++ lowered earlier. ++ ++ * exceptions-x86.c: Merge some changes which seemed to have got lost ++ in the linear-ir merge. ++ ++ * liveness.c: Disable the liveness2 pass on 32 bit platforms. ++ ++ * method-to-ir.c (mono_handle_global_vregs): Make the component vregs of a ++ long vreg volatile even if the variable was already created. ++ ++ * liveness.c (update_liveness2): Avoid eliminating dead definitions of ++ volatile variables. ++ ++2008-07-26 Zoltan Varga ++ ++ * cpu-x86.md (fcall_membase): Increase the size of the fcall opcodes. ++ ++ * mini.c (mono_jit_compile_method_inner): Add support for ++ MONO_EXCEPTION_BAD_IMAGE. ++ ++ * method-to-ir.c (mono_method_to_ir2): Avoid a crash if ++ mini_method_get_context () returns NULL. Fixes #356531. ++ ++ * mini.c (mono_method_to_ir): Ditto. ++ ++ * method-to-ir.c (mono_method_to_ir2): Create a variable if needed when ++ accessing a field of a valuetype in LDFLD/STFLD. Fixes #412399. ++ ++2008-07-25 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Initialize an uninitialized variable ++ in the LDFTN implementation. ++ ++2008-07-25 Mark Probst ++ ++ * mini-trampolines.c (mono_magic_trampoline): When sharing generic ++ code, patch calls to icalls, too, even if they're not in the ++ shared generic code hash. Fixes #411962. ++ ++2008-07-25 Zoltan Varga ++ ++ * cpu-x86.md: Increase the length of the fcall opcodes. ++ ++ * mini-x86.c (emit_move_return_value): Avoid some precision issues for ++ calls returning floats. ++ ++ * method-to-ir.c (mono_method_to_ir2): Remove the generic sharing restrictions ++ on NEWARR. ++ ++ * method-to-ir.c (mono_method_to_ir2): Merge some LDFTN gsharing changes ++ missed earlier. ++ ++ * method-to-ir.c (handle_delegate_ctor): Avoid putting dynamic methods ++ into the domain->method_code_hash. ++ ++ * aot-compiler.c: Fix win32 build. ++ ++ * method-to-ir.c (EMIT_GET_RGCTX): Call EMIT_NEW_LDARG in emit_get_rgctx (). ++ ++ * method-to-ir.c (mono_method_to_ir2): Use mono_array_new_specific in the ++ gshared NEWARR implementation. ++ ++ * cpu-sparc.md: Remove duplicate localloc_imm opcode. ++ ++ * ir-emit.h (NEW_ARGLOAD): Use cfg->args and cfg->arg_types so this macro ++ can be used outside of method_to_ir. ++ ++ * mini.h (MonoCompile): Add arg_types field. ++ ++ * method-to-ir.c (inline_method): Save/Restore cfg->args and cfg->arg_types. ++ ++ * method-to-ir.c (mono_method_to_ir2): Set cfg->args and cfg->arg_types to ++ the values of the local arg_array and param_types array. ++ ++2008-07-24 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Allocate a GOT var for NEWOBJ, since ++ got accesses might only get generated later when NEWOBJ is decomposed. ++ ++ * method-to-ir.c (handle_delegate_ctor): Add an optimization to avoid ++ looking up the native code of the target method when a delegate is called ++ for the first time. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Add the other half of the ++ optimization. ++ ++ * debug-debugger.c (MONO_DEBUGGER__debugger_info): Fix a warning. ++ ++ * aot-runtime.c aot-compiler.c: Add a new option 'no-dlsym' which makes ++ AOT work on platforms without a working dlsym implementation. ++ ++ * mini.h: Bump AOT image format version. ++ ++2008-07-24 Mark Probst ++ ++ * mini-exceptions.c: Free a MonoType with ++ mono_metadata_free_type() instead of g_free(). ++ ++ * aot-runtime.c: Free a MonoType. ++ ++2008-07-24 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Add a comment for the box+brtrue ++ optimization. ++ ++ * mini-codegen.c (mono_local_regalloc): Remove the remaining items from the ++ fp stack on x86. ++ ++2008-07-23 Massimiliano Mantione ++ * mini.c (sigprof_signal_handler): call the new "runtime initialized" ++ profiler hook. ++ ++2008-07-23 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): Set the stack type properly for ++ NEWOBJ calls on valuetypes. ++ ++ * iltests.il.in: Add new test. ++ ++ * mini-x86.c (mono_arch_emit_call): Use mini_type_stack_size (). ++ ++2008-07-22 Zoltan Varga ++ ++ * mini-exceptions.c: Fix some warnings. Remove one ia64 special case as it ++ is no longer needed. ++ ++ * mini-ia64.c (mono_arch_emit_prolog): In native-to-managed wrappers, widen ++ non register sized integer arguments. ++ (mono_arch_call_opcode): Add support for ArgInFloatRegR4. ++ (mono_arch_emit_outarg_vt): Pass a more reasonable alignment to ++ emit_memcpy2 (). ++ ++ * method-to-ir.c (mono_method_to_ir2): Handle the ret_var_is_local case in ++ CEE_MONO_RETOBJ. ++ ++ * method-to-ir.c (ADD_WIDEN_OP): New macro to insert a widening op when ++ two a binop with different sized arguments is emitted. ++ ++ * mini.c (mono_bblock_insert_after_ins): Properly link up with the next ++ instruction in the ins==NULL case. ++ ++2008-07-23 Zoltan Varga ++ ++ * mini-ops.h: Add OP_X86_OUTARG_ALIGN_STACK. ++ ++ * mini-x86.c: Fix osx build. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Handle varargs in the CALL_REG ++ opcodes as well. ++ ++ * method-to-ir.c (mono_spill_global_vars): Avoid fusing a load+store into the ++ instruction for non int sized variables. ++ ++ * method-to-ir.c (mono_method_to_ir2): Fix an assert in the LDFLD ++ implementation. ++ ++2008-07-23 Robert Jordan ++ ++ * method-to-ir.c: Fix MSVC build. ++ ++2008-07-22 Zoltan Varga ++ ++ * method-to-ir.c (mono_method_to_ir2): When calling native code which returns ++ a non int sized type, widen it to an int since newer versions of gcc seem to ++ generate code which needs this. ++ ++ * ssa2.c abcremoval2.c: Fix warnings. ++ ++ * *: Merge the Linear IR branch. ++ ++ The original branch is at trunk/branches/vargaz/mini-linear-il, and ++ the ChangeLog file there describes all the changes done over the years. ++ Further documentation can be found at www.mono-project.com/Linear_IL. ++ ++2008-07-21 Bill Holmes ++ ++ * mini-amd64.c (get_call_info): Winx64 fix for passing floats. ++ The float param registers and other param registers must be the ++ same index on Windows x64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-21 Rodrigo Kumpera ++ ++ * mini.c: Make the previous fix GC safe. ++ ++2008-07-21 Raja R Harinath ++ ++ * Makefile.am (version.h): Allow a trailing '/' in the repository URL. ++ ++2008-07-21 Bill Holmes ++ ++ * mini-amd64.c (get_call_info): Correcting the case for MONO_TYPE_TYPEDBYREF ++ on Winx64. This type will not be passed on the stack (ArgOnStack), but ++ ArgValuetypeAddrInIReg instead. ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-21 Zoltan Varga ++ ++ * mini-codegen.c (get_register_spilling): Fix a warning. ++ ++2008-07-17 Rodrigo Kumpera ++ ++ * mini.c: Use mono_runtime_class_init_full to avoid leaking memory ++ for types which the initialization fails. Raises the provided exception ++ at the right stop after cleanup. ++ ++2008-07-16 Zoltan Varga ++ ++ * aot-compiler.c: Free most of the memory allocated during compilation. ++ ++ * mini.c (mini_parse_debug_options): Fix a leak. ++ ++ * mini.c (mini_method_compile): Don't add the method to the jit info tables ++ during aot compilation. ++ ++2008-07-14 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Disable aot for code using CCASTCLASS on x86 as ++ it has too much register pressure. ++ ++2008-07-13 Zoltan Varga ++ ++ * inssel.brg (CEE_CASTCLASS): Remove some dead code. ++ ++2008-07-12 Zoltan Varga ++ ++ * mini-x86.h aot-compiler.c aot-runtime.c: Store the plt info offset inline ++ on x86. ++ ++ * mini-amd64.h aot-compiler.c aot-runtime.c: Store the plt info offset inline ++ on amd64 similar to the way it is done on arm. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version. ++ ++ * aot-runtime.c (load_aot_module): Rename 'info' to 'amodule' for ++ consistency, normalize error messages, avoid loading aot-only modules in ++ normal mode. ++ ++ * driver.c (mono_main): Rename --aot-only command line option to --full-aot ++ for consistency. ++ ++ * aot-compiler.c aot-runtime.c tramp-arm.c: Implement aot-only support. ++ ++2008-07-11 Martin Baulig ++ ++ * debug-debugger.h ++ (MonoDebuggerInfo): Add `interruption_request'. ++ ++2008-07-12 Zoltan Varga ++ ++ * aot-compiler.c (emit_plt): Remove some dead code. ++ ++ * exceptions-arm.c (mono_arch_get_call_filter_full): Initialize ji. ++ ++ * aot-runtime.c (mono_aot_get_plt_info_offset): New helper function to ++ return the plt info offset belonging to a given plt entry. ++ ++ * mini-trampolines.c (mono_aot_plt_trampoline): Use ++ mono_aot_get_plt_info_offset. ++ ++ * aot-runtime.c aot-compiler.c tramp-arm.c: Change the arm plt code to be ++ similar to the amd64 code by makeing jumps through a separate jump table ++ instead of embedding the jump addresses into the code. ++ ++2008-07-11 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Disable aot for calling ldtoken in a generic ++ method. ++ ++2008-07-10 Martin Baulig ++ ++ * mini.c (mini_method_compile): Disable generics sharing when ++ running in the debugger. ++ ++2008-07-10 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Create the got var in CEE_REFANYVAL. ++ ++ * inssel.brg (CEE_CASTCLASS): Avoid reusing temporary registers to prevent ++ the local register allocator from running out of registers on x86 when ++ using aot. ++ ++2008-07-10 Bill Holmes ++ ++ * inssel-long.brg For OP_LCONV_TO_OVF_I4 an int cast is needed when ++ expressing IntMin for the VS Compiler. See Compiler Warning (level 2) ++ C4146. ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-10 Zoltan Varga ++ ++ * aot-compiler.c: Get rid of whitespace in the generated assembly file to ++ speed up the assembler. ++ ++2008-07-09 Zoltan Varga ++ ++ * mini-arm.h tramp-arm.c exceptions-arm.c aot-compiler.c: Beginnings of aot-only ++ support. ++ ++ * mini.c: Move the soft float handling macros a bit earlier, add ++ NEW_TEMPSTORE_SOFT_FLOAT macro, fix warnings, add soft-float support in one ++ place. ++ ++ * mini.h: Add prototype for mono_arch_fixup_jinfo. ++ ++ * mini.c (mini_init): In aot-only mode, set the root domain code manager to ++ read-only to help catch code allocation requests. ++ ++ * mini.c inssel.brg aot-compiler.c: Make the use of IMT runtime configurable, ++ and turn it off when using --aot-only or when compiling with --aot=full. ++ ++ * mini.c (mono_resolve_patch_target): In aot-only mode, allocate the ++ jump table for switches from the normal domain mempool, not the code ++ manager. ++ ++ * mini-trampolines.c (get_unbox_trampoline): New function to return an ++ unbox trampoline which handles aot-only mode too. ++ ++ * aot-runtime.c (mono_aot_get_unbox_trampoline): New function to lookup ++ an AOTed unbox trampoline. ++ ++ * aot-compiler.c (emit_trampolines): Emit unbox trampolines. ++ ++2008-07-09 Bill Holmes ++ ++ * wapihandles.c: Fixing MSVC builds. Include statement changed from <> to ++ "" ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-09 Bill Holmes ++ ++ * mini.c (mono_codegen): Allocate space at the end of the code block and store ++ the unwind information for the method at the end of the allocated block. ++ ++ * mini-amd64.h: Added declarations for the unwind routines and adding field to ++ MonoCompileArch to hold the unwind info for SEH on Winx64 ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Calls to the unwind routines added to store ++ frame pointer info for the method being compiled. ++ ++ * exceptions-amd64.c (mono_arch_get_throw_corlib_exception): Added a stack adjustment before ++ the call to mono_exception_from_token. ++ ++ * exceptions-amd64.c: Added mono_arch_unwindinfo* implementations. This code is responsible ++ storing the method prolog information in a format that the Winx64 SEH can understand. This ++ information is stored a the end of the method block because it is all 32-bit offset based. ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-09 Zoltan Varga ++ ++ * mini.h: Remove duplicate definitions of the mini_wapi_ functions. ++ ++ * wapihandles.c: Fix warnings. ++ ++ * aot-runtime.c (load_aot_module): Add a missing error message in aot-only ++ mode. ++ ++ * mini-trampolines.c (mono_create_jit_trampoline_in_domain): Avoid calling ++ mono_jit_compile_method in aot-only mode since that calls the type ++ initializer. ++ ++ * mini-trampolines.c (mono_create_delegate_trampoline): Avoid calling ++ get_delegate_invoke_impl in aot-only mode. ++ ++ * mini.c (mono_global_codeman_reserve): Reenable the aot-only check. ++ ++2008-07-08 Zoltan Varga ++ ++ * trace.c (mono_trace_enter_method): Fix printing of Type instances. ++ ++ * aot-compiler.c (compile_method): Disable the check for GSHARED since it ++ is on by default. ++ ++ * inssel-long.brg (reg): Add a rule for LCALL_REG (OP_I8CONST). ++ ++ * tramp-amd64.c (mono_arch_nullify_plt_entry): Read the nullified class ++ init trampoline from the AOT file as well. ++ ++ * mini-amd64.c (mono_arch_register_lowlevel_calls): Register ++ mono_amd64_throw_exception as a jit icall since it is needed by the aot-only ++ code. ++ ++ * mini.c (mini_init): Move the call to mono_exceptions_init () after ++ mono_init. ++ ++ * exceptions-amd64.c: Add _full variants for the remaining exception code ++ creation functions as well, allow emission of relocatable code, remove ++ caching since that is now done by the caller. ++ ++ * mini-exceptions.c: Add _full variants for the remaining exception code ++ creation functions as well, add aot-only support. ++ ++ * aot-compiler.c (compile_method): Allow calls to methods of constructed types ++ if we can determine a proper token for them. ++ (add_wrappers): Add a few more wrappers. ++ (emit_method_code): Remove some dead code. ++ (emit_trampolines): Emit exception code too. ++ ++ * mini.c (mono_method_to_ir): Call mono_array_new_2 if possible. ++ ++ * jit-icalls.c (mono_array_new_2): New jit icall, specialized version of ++ mono_array_new_va which avoids varargs. ++ ++ * mini-exceptions.c (mono_exceptions_init): Fix the ppc build. ++ ++ * mini-trampolines.c: Call mono_create_specific_trampoline () instead of ++ mono_arch_create_specific_trampoline () in all places. ++ ++ * aot-compiler.c aot-runtime.c: Refactor the trampoline emitting/loading code ++ a bit so it can be used for other things as well. ++ ++ * mini-exceptions.c (mono_exceptions_init): Initialize throw_exception_by_name ++ on demand as well. ++ ++ * exceptions-amd64.c: Rename the caching from the exception code creation ++ functions, it is done by the caller instead. ++ ++ * exceptions-amd64.c: Change the signature of the exception code creation ++ functions to allow the creation of relocatable code later. ++ ++ * mini-exceptions.c: Add a set of functions to query the various ++ runtime-generated exception functions. ++ ++ * mini.c mini-exceptions.c: Use the newly added functions instead of the ++ mono_arch_.. () functions. ++ ++2008-07-07 Zoltan Varga ++ ++ * mini-trampolines.c (mono_aot_get_trampoline_code): Removed, no longer used. ++ ++ * aot-runtime.c aot-compiler.c: AOT the generic trampolines in aot-only mode. ++ ++ * mini.c (mini_get_imt_trampoline): Call mono_create_specific_trampoline (). ++ (mini_get_vtable_trampoline): Ditto. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Create relocatable ++ code in the AOT case by returning the code size and a list of relocations to ++ the caller. ++ ++ * mini-trampolines.c (mono_create_specific_trampoline): New helper function. ++ ++2008-07-07 Bill Holmes ++ ++ * mini-amd64.c: On Winx64 the calling convention always requires the caller to ++ clean the stack. ++ ++ Contributed under MIT/X11 license. ++ ++2008-07-07 Zoltan Varga ++ ++ * aot-compiler.c (emit_exception_debug_info): Serialize the debug info first ++ so the buffer size can be computed correctly. Fixes #404735. ++ ++ * debug-mini.c (mono_debug_serialize_debug_info): Lookup the debug info ++ normally as cfg->debug_info is already freed. ++ ++2008-07-06 Zoltan Varga ++ ++ * mini-amd64.c: For calls returning vtypes in registers, don't store ++ the return address on the stack, instead allocate a separate local for ++ it. Fixes #404729. ++ ++2008-07-05 Mark Probst ++ ++ * mini-trampolines.c, mini.h: Add an argument to ++ mono_create_jit_trampoline_in_domain() for turning off the adding ++ of the sync wrapper. ++ ++ * mini.c: Use the JIT trampoline without sync instead of ++ ldftn_nosync in static RGCTX invoke wrappers so that the call can ++ be patched. ++ ++2008-07-04 Mark Probst ++ ++ * driver.c: Turn on GSHARED optimization by default. ++ ++2008-07-04 Zoltan Varga ++ ++ * mini-trampolines.c mini.c mini.h tramp-.c: Rename MONO_TRAMPOLINE_GENERIC ++ to MONO_TRAMPOLINE_JIT since it better reflects what it does. ++ ++ * mini-trampolines.c (mono_get_aot_trampoline_code): New internal function to ++ create a variant of the generic trampoline code callable from AOTed trampolines. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code_full): Add support for generic ++ trampoline code callable from AOTed trampolines. ++ ++ * aot-compiler.c aot-runtime.c: Add support for AOTing trampolines. ++ ++2008-07-04 Mark Probst ++ ++ * inssel.brg, mini-ops.h: New opcode for doing CHECK_THIS in a ++ pass-through manner. ++ ++ * mini.c: Generic method sharing. Pass MRGCTX to generic methods ++ and don't fail sharing for them anymore. ++ ++ * mini-exceptions.c: Handle exceptions in shared generic methods. ++ ++ * generic-sharing.c: When checking the context of a generic ++ method, also check its class's context. Don't treat wrappers as ++ sharable. ++ ++ * mini-trampolines.c: Some code factored out to ++ metadata/generic-sharing.c. Handle the MRGCTX case. ++ ++ * jit-icalls.c, jit-icalls.h: ldvirtfn icall for generic sharing - ++ we must deal with the method being of another instantiation of the ++ class. Add static rgctx invoke wrappers to generic methods. ++ ++2008-07-04 Mark Probst ++ ++ * mini.c: Provide all jit infos of generic shared methods with a ++ generic jit info. ++ ++ * mini-exceptions.c: Handle the new situation that a generic info ++ might be available, but not info about the this/vtable/mrgctx ++ variable. ++ ++2008-07-03 Mark Probst ++ ++ * mini.c: Don't accept ldftn and ldvirtftn with uninstantiated ++ generic methods. ++ ++2008-07-03 Zoltan Varga ++ ++ * dominators.c (check_dominance_frontier): Fix a warning. ++ ++ * mini.h: Add some missing prototypes. ++ ++ * ssa.c local-propagation.c debug-debuger.c: Fix warnings. ++ ++ * driver.c (mono_jit_init_version): Correct the comments since the first ++ argument should be the name of the root domain, not a filename. ++ ++ * aot-runtime.c (make_writable): Error out if this is called while running ++ with --aot-only. ++ (load_aot_module): Ditto. ++ ++ * aot-compiler.c: Really fix the computation of method indexes. ++ ++ * mini-amd64.c (mono_arch_get_delegate_invoke_impl): Remove the previous ++ optimizations as this is no longer called frequently. ++ ++ * mini-trampolines.c (mono_create_delegate_trampoline): Precompute the invoke ++ method and the invoke impl code and pass it to the delegate trampoline instead of ++ just the delegate class. ++ ++2008-07-02 Zoltan Varga ++ ++ * aot-compiler.c: Fixup the computation of method indexes. ++ (add_wrappers): Create the base methods of the runtime invoke wrappers using ++ the method builder infrastructure. ++ ++ * aot-runtime.c (decode_exception_debug_info): Don't crash if the method ++ has no header. ++ ++ * mini-trampolines.c (mono_create_jit_trampoline_in_domain): In aot-only ++ mode, load the method right away instead of creating a trampoline. ++ ++ * mini-x86.c (mono_arch_get_delegate_invoke_impl): Eliminate locking. ++ ++ * mini-amd64.c (mono_arch_get_delegate_invoke_impl): Eliminate locking, speed up ++ some checks a bit. ++ ++2008-07-01 Zoltan Varga ++ ++ * aot-runtime.c (decode_patch_info): Don't create trampolines in aot_only mode. ++ (mono_aot_load_method): Use method_index instead of method->token. ++ ++ * mini.c (mono_jit_compile_method_inner): Move the aot_only check down, so it ++ can handle icalls etc. properly. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version. ++ ++ * aot-compiler.c aot-runtime.c: Allow AOTing many wrapper types. ++ ++ * mini.c (mono_resolve_patch_target): Handle JIT_ICALL_ADDR. ++ (mono_codegen): Convert calls made by JIT icall wrappers to the icalls into ++ JIT_ICALL_ADDR patch type. ++ ++ * patch-info.h: Add JIT_ICALL_ADDR patch type. ++ ++ * mini.c (mono_method_to_ir): Allow AOTing methods which access the interruption ++ request flag. ++ (mono_resolve_patch_target): Handle INTERRUPTION_REQUEST_FLAG. ++ ++ * patch-info.h: Add INTERRUPTION_REQUEST_FLAG. ++ ++2008-06-30 Zoltan Varga ++ ++ * mini.c: Use domain->jit_code_hash_lock for controlling access to ++ domain->jit_code_hash. ++ ++2008-06-29 Zoltan Varga ++ ++ * mini.c (mini_parse_debug_options): Add 'dont-free-domains' option. ++ ++2008-06-27 Zoltan Varga ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Don't pass a gsctx to ++ get_this_arg_from_call, let it compute it when needed. ++ ++ * mini-amd64.c (mono_arch_get_this_arg_reg): Add a 'code' argument, compute ++ gsctx from code only when needed. ++ ++ * mini-trampolines.c (get_generic_context): Rename this to ++ mono_get_generic_context_from_code (), and move it to generic-sharing.c, where ++ it can be called by the arch backends. ++ ++ * mini-exceptions.c (mono_print_thread_dump): Allow the argument to be NULL. ++ ++2008-06-26 Zoltan Varga ++ ++ * driver.c (mono_main): Add experimental --aot-only command line option. ++ ++ * mini.c: Error out when creating trampolines or JIT compiling if --aot-only is ++ set. ++ ++2008-06-26 Kornél Pál ++ ++ * driver.c (DllMain): Remove mono_module_handle. ++ ++ Contributed under MIT/X11 license. ++ ++2008-06-25 Zoltan Varga ++ ++ * aot-compiler.c: Add not-yet-usable 'full' option. Add some infrastructure code ++ for emitting methods which are not in the source assembly. Detect and report ++ failure of assembling+linking. ++ ++ * aot-compiler.c (emit_klass_info): Call mono_class_setup_vtable (). ++ ++ * aot-compiler.c: Move the contents of the has_glot_slots array to MonoCompile. ++ ++2008-06-24 Rodrigo Kumpera ++ ++ * mini.c: Check if stats is enabled so we don't allocate memory when not needed. ++ ++2008-06-24 Zoltan Varga ++ ++ * mini.h: Remove some obsolete prototypes. ++ ++ * mini.c: Avoid storing MonoMethod pointers in the JIT stats, store their string format instead. ++ ++2008-06-24 Mark Probst ++ ++ * mini.c (get_object_generic_inst): Variable-sized arrays are not ++ supported by Visual Studio, so use alloca(). ++ ++2008-06-23 Zoltan Varga ++ ++ * mini-ia64.c (add_valuetype): Increase *gr too when passing a HFA to be in sync with the ABi. ++ Fixes #402585. ++ ++2008-06-23 Mark Probst ++ ++ * mini.c: Fail sharing of a generic method if it contains an open ++ catch clause (because we don't pass MRGCTXs yet). ++ ++2008-06-23 Mark Probst ++ ++ * mini.c: When compiling a method with generic sharing, insert the ++ method instantiated with an all-Object generic context into the ++ jit info table, instead of the context of the first instantiation ++ of the method we happen to compile. ++ ++2008-06-18 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Replaced `version' with ++ `major_version' and `minor_version'. ++ ++2008-06-17 Mark Probst ++ ++ * generic-sharing.c, mini.c, mini.h, aot-runtime.c: ++ mono_method_is_generic_sharable_impl() takes an additional ++ argument specifying whether to treat type variables as reference ++ types. ++ ++2008-06-17 Mark Probst ++ ++ * mini.h: Removed obsolete prototypes. ++ ++2008-06-17 Mark Probst ++ ++ * mini.c: Don't fail generic sharing for initobj and sizeof - we ++ already handle them. ++ ++2008-06-17 Mark Probst ++ ++ * mini.h, mini-trampolines.c, tramp-alpha.c, tramp-amd64.c, ++ tramp-arm.c, tramp-hppa.c, tramp-ia64.c, tramp-mips.c, ++ tramp-ppc.c, tramp-s390.c, tramp-s390x.c, tramp-sparc.c, ++ tramp-x86.c: Added a MonoGenericContext* argument to ++ mono_arch_get_unbox_trampoline() so that it can call other ++ functions which require it. ++ ++2008-06-17 Mark Probst ++ ++ * mini.h, mini-trampolines.c, mini-amd64.c, mini-x86.c, ++ mini-alpha.c, mini-arm.c, mini-ia64.c, mini-ppc.c: ++ mono_arch_get_this_arg_from_call() takes a ++ MonoGenericSharingContext* as well. ++ ++2008-06-17 Mark Probst ++ ++ * mini.c: Factor out code for emitting unbox into emit_unbox() and ++ implement generic sharing of unbox. ++ ++2008-06-17 Mark Probst ++ ++ * mini.c: Don't compute the vtable to determine whether a field is ++ special static, because it might not work for open types. ++ ++2008-06-17 Mark Probst ++ ++ * mini.c: Removed the unused token_type and token_source arguments ++ from get_runtime_generic_context_ptr(). ++ ++2008-06-17 Marek Habersack ++ ++ * mini.c (ADD_BINOP): fix the build ++ ++2008-06-16 Zoltan Varga ++ ++ * mini.c (ADD_BINOP): When operating on a native int and an int32, insert ++ a widening op. ++ ++2008-06-16 Mark Probst ++ ++ * mini.h: Removed class relations enum that's not used anymore. ++ ++2008-06-16 Mark Probst ++ ++ * tramp-x86.c, tramp-amd64.c: Slot access code for MRGCTXs. ++ ++ * mini-trampolines.c: Distinguish between RGCTXs and MRGCTXs in ++ the lazy fetch trampoline access code. ++ ++2008-06-15 Zoltan Varga ++ ++ * mini-codegen.c (mono_local_regalloc): Add some micro optimizations. ++ ++2008-06-14 Zoltan Varga ++ ++ * mini.c: Fix some soft-float bugs. Fixes #378735 and #398348. ++ ++ * mini.h (MONO_INST_LIST_ENTRY): Fix warnings on arm. ++ ++ * mini.c (mono_method_to_ir): Check call signature for NEWOBJ as well. ++ ++2008-06-13 Zoltan Varga ++ ++ * mini-x86.c inssel-x86.brg cpu-x86.md: Implement unsigned min/max ++ intrinsics. ++ ++ * mini-ops.h: Add MIN/MAX_UN opcodes. ++ ++ * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Implement unsigned min/max ++ intrinsics. ++ ++ * basic-math.cs: Add more min/max tests. ++ ++ * inssel.brg: Remove the OP_MIN/OP_MAX rules. Fix a warning. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Small fix in the prologue of emit_castclass. ++ ++2008-06-13 Zoltan Varga ++ ++ * inssel.brg: Remove the OP_MIN/OP_MAX rules. Fix a warning. ++ ++ * mini.c (mini_get_inst_for_method): Remove the Min/Max intrinsics, they ++ do not work even for unsigned types. Fixes #400014. ++ ++ * basic-math.cs: Add regression tests for unsigned Min/Max. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Added additional context_used argument to several ++ functions, which will be needed for sharing generic methods. Use ++ GET_RGCTX macro wherever appropriate. Declare only one ++ context_used in mono_method_to_ir(). ++ ++2008-06-13 Mark Probst ++ ++ * mini.c, generic-sharing.c: Removed generic class relations. ++ ++ * mini.c, tramp-amd64.c, tramp-x86.c: Additional arguments to ++ functions due to MRGCTX changes. ++ ++2008-06-13 Mark Probst ++ ++ * inssel.brg, inssel-long.brg, inssel-long32.brg, mini-ops.h, ++ graph.c, local-propagation.c, aliasing.c: New opcodes for calls ++ with calculated IMT. ++ ++ * mini.c: Generic sharing of calls via generic interfaces. ++ ++ * jit-icalls.c, jit-icalls.h: Helper function for compiling a ++ generic method with non-constant MonoGenericContext*. Instead, ++ the context is taken out of the method itself. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Generic sharing of ldvirtftn. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Generic sharing of ldftn. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Do pass VTable/RGCTX argument to static generic methods. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Generic sharing of the special case of ldtoken followed ++ by a call to GetTypeFromHandle. ++ ++2008-06-13 Mark Probst ++ ++ * mini.c: Generic sharing of box for nullable types. ++ ++2008-06-13 Zoltan Varga ++ ++ * mini-s390x.c (add_stackParm): Fix computation of offsets when arguments ++ are passed on the stack. Fixes #324807. ++ ++2008-06-12 Bill Holmes ++ ++ * mini-amd64.c:add_valuetype: Adding Winx64 code to fill the ArgInfo ++ for the ArgValuetypeAddrInIReg case. ++ ++ * mini-amd64.c:mono_arch_allocate_vars: Adding a case for ++ ArgValuetypeAddrInIReg to avoid asserts. Code needs to be added here. ++ ++ * mini-amd64.c: mono_arch_call_opcode: Adding Winx64 code for an ArgInfo of ++ type ArgValuetypeAddrInIReg. The code emitted will copy the argument to a ++ local variable and pass the local variable by reference to the called method. ++ ++ * mini-amd64.c: mono_arch_emit_prolog: Adjust the stack for calls to ++ mono_jit_thread_attach and mono_get_lmf_addr for Winx64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-06-10 Rodrigo Kumpera ++ ++ * debug-mini.c (mono_debug_free_method_jit_info): Moved to metadata/mono-debug.c. ++ ++ * debug-mini.c (mono_debug_print_vars): Release memory after printing ++ everything. ++ ++2008-06-10 Martin Baulig ++ ++ * debug-mini.c ++ (mono_debug_close_method): Check whether `cfg->epilogue_begin != NULL'. ++ ++2008-06-09 Kornél Pál ++ ++ * main.c: Add and set argv [argc] to NULL to match C specification that fixes ++ possible error when no arguments are passed. ++ ++ Contributed under MIT/X11 license. ++ ++2008-06-09 Rodrigo Kumpera ++ ++ * mini-exceptions.c (ves_icall_get_trace): Skip source locations ++ where the file name is NULL. ++ ++2008-06-09 Zoltan Varga ++ ++ * mini.c: Fix s390 build. ++ ++2008-06-08 Zoltan Varga ++ ++ * trace.c (mono_trace_parse_options): Fix warnings. ++ ++ * mini-amd64.c: Revert most of the last patch for now as it breaks the build. ++ ++2008-06-07 Zoltan Varga ++ ++ * mini.c (remove_block_if_useless): Avoid printing the method name. ++ ++ * mini.c: Remove needless setting of ins->cil_code which is now done by ++ MONO_INST_NEW. ++ ++ * mini-amd64.c: Add some code to avoid saving callee saved registers in the ++ LMF. Not yet used. ++ ++ * tramp-amd64.c (mono_arch_patch_callsite): Tell valgrind to discard the ++ translated code after it has been patched. ++ ++2008-06-06 Zoltan Varga ++ ++ * mini-amd64.c (emit_call_body): Align the call displacement to 4 bytes to ++ avoid problems during code patching on SMP systems. ++ (emit_call): Avoid adding a patch info which is already added by ++ emit_call_body. ++ (mono_arch_emit_exceptions): Ditto. ++ ++2008-06-05 Zoltan Varga ++ ++ * tramp-*.c (mono_arch_get_unbox_trampoline): No need to check for ret->byref, ++ MONO_TYPE_ISSTRUCT already checks for it. ++ ++2008-06-05 Bill Holmes ++ ++ * mini-amd64.c:merge_argument_class_from_type: When marshaling ++ structs with floats on Winx64 the float registers are not used. ++ The integer registers are always used.. ++ * mini-amd64.c:add_valuetype: When marshaling structs on Winx64 ++ only one register will be used and only if the size of the struct ++ is 1,2,4, or 8 bytes. ++ ++ * tramp-amd64.c : Adjusting size used for mono_global_codeman_reserve ++ to work for Winx64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-06-05 Martin Baulig ++ ++ * debug-debugger.c (debugger_lookup_class): Also call ++ mono_class_setup_methods() here; we're only called from RTI. ++ ++2008-06-05 Andreas Färber ++ ++ * mini.c (mini_init): Add DTrace probes ves-init-{begin,end}. ++ (mini_method_compile) Add DTrace probes method-compile-{begin,end}. ++ * Makefile.am (libmono_la_LIBADD,libmono_static_la_LIBADD,mono_LDADD): ++ Post-process object files and add dtrace-generated object, if necessary. ++ ++ Contributed under MIT/X11 license. ++ ++2008-06-04 Mark Probst ++ ++ * inssel.brg, mini-ops.h: Added opcode for unboxcast with computed ++ element class. ++ ++ * mini.c: Generic sharing for unbox.any and castclass. ++ ++2008-06-04 Mark Probst ++ ++ * mini.c: Ignore tailcall prefix in shared generic code and when ++ doing calls which require a vtable/rgctx argument. ++ ++2008-06-04 Mark Probst ++ ++ * mini.c: Don't free the JIT info. ++ ++ * driver.c: Changes in the JIT info table testing code. ++ ++2008-06-03 Zoltan Varga ++ ++ * tramp-arm.c (mono_arch_create_trampoline_code): Check for thread ++ interruption. Fix some warnings. ++ ++ * tramp-*.c (mono_arch_create_trampoline_code): Call the _force_ variant of ++ interruption_checkpoint. ++ ++Tue Jun 3 13:07:03 CEST 2008 Paolo Molaro ++ ++ * jit.h, mini.h, trace.c, driver.c: introduce an API to enable tracing ++ from embedding applications. ++ ++2008-06-02 William Holmes ++ ++ * mini-amd64.c : Correcting some of the issues for Winx64 dealing with ++ reserving 32 bytes on the stack when making calls. ++ ++ Contributed under MIT/X11 license. ++ ++2008-06-01 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_output_basic_block): Merge some small fixes from ++ the linear IL branch. ++ ++ * driver.c: Print out more information for --version on arm. ++ ++2008-05-30 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Increase max_offset when processing ++ bb_exit instead, since out of line bblocks might not actually be emitted ++ out-of-line. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Increase bb->max_offset by the ++ maximum epilog size for out of line bblocks if tracing is enabled. ++ ++ * iltests.il.in: Merge tests/long-shift.regalloc.il into this file. ++ ++2008-05-28 Rodrigo Kumpera ++ ++ * arrays.cs: Regression tests for allocating arrays with negative sizes. ++ ++2008-05-28 Zoltan Varga ++ ++ * mini-x86.h mini-x86.c inssel-x86.brg cpu-x86.md: Add support for ++ CAS instrinsics. Optimize the implementation of the ATOMIC_EXCHANGE ++ opcodes. ++ ++2008-05-27 Zoltan Varga ++ ++ * mini.c (mini_get_inst_for_method): Add support for CAS instrinsics when ++ the 'value' to store is a constant. ++ ++ * mini-ops.h: Add OP_ATOMIC_CAS_IMM opcodes. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Optimize the the implementation ++ of ATOMIC_EXCHANGE opcodes, add support for the CAS opcodes. ++ ++2008-05-26 Zoltan Varga ++ ++ * mini.c generic-sharing.c jit-icalls.c aot-compiler.c: Use accessor functions ++ for accessing method->generic_container. ++ ++2008-05-24 Zoltan Varga ++ ++ * mini.c (mono_method_check_inlining): Avoid creating vtables if possible. ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Fix sparc build too. ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Fix IA64 build. ++ ++ * mini.c (mono_jit_compile_method_inner): Avoid a crash if mono_class_vtable () ++ fails. ++ ++2008-05-23 Zoltan Varga ++ ++ * driver.c (mono_main): Set mono_setup_vtable_in_class_init to FALSE. ++ ++ * mini.c: Handle the case when mono_class_vtable () fails. ++ ++2008-05-23 Massimiliano Mantione ++ * mini.c (sigprof_signal_handler): Support call chains (backtrace) in ++ the stat profiler. ++ ++2008-05-22 Mark Probst ++ ++ * mini.c, jit-icalls.c, jit-icalls.h: Make generic sharing work ++ together with domain sharing. ++ ++2008-05-22 Mark Probst ++ ++ * mini.c: Treat callvirts to final methods like non-virtual calls ++ when doing generic sharing, i.e. look them up in the runtime ++ generic context. ++ ++2008-05-22 Mark Probst ++ ++ * inssel.brg, mini-ops.h: Added opcodes for mkrefany and refanyval ++ with computed types (for generic sharing). ++ ++ * mini.c: Generic sharing for mkrefany and refanyval. ++ ++2008-05-22 Zoltan Varga ++ ++ * inssel.brg (mini_emit_virtual_call): Avoid constructing a generic vtable if ++ possible. ++ ++ * mini-trampolines.c (mono_magic_trampoline): Avoid calling setup_methods () in ++ the generic sharing code. ++ ++ * mini-trampolines.c (mono_magic_trampoline): Call mono_class_setup_methods () ++ when needed. ++ ++2008-05-21 Zoltan Varga ++ ++ * mini.h: Remove the declaration of mono_aot_init_vtable (). ++ ++2008-05-21 C.J. Adams-collier ++ ++ * driver.c: updated copyright date ++ ++2008-05-21 Zoltan Varga ++ ++ * aot-runtime.c mini.c: Remove the AOT init_vtable stuff as it is no longer ++ needed. ++ ++2008-05-19 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Add `using_mono_debugger' ++ pointing to the new `_mono_debug_using_mono_debugger' variable. ++ ++ * driver.c ++ (mono_main): Check mono_debug_using_mono_debugger() rather than ++ the `MONO_INSIDE_MDB' environment variable to check whether we're ++ inside the debugger. ++ ++2008-05-19 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Use cfg->args [0] for accessing the this ++ argument. ++ ++2008-05-08 Rodrigo Kumpera ++ ++ * declsec.h: Move MONO_SECMAN_FLAG to metadata/metadata-internals.h. ++ ++ * mini.c: Added mini_assembly_can_skip_verification. This ++ function checks if the assembly requested to skip verification. ++ Fixes part of #387274. ++ ++2008-05-07 Zoltan Varga ++ ++ * mini.c (mini_get_method): Disable the check for open generic classes when ++ using generic sharing. ++ ++ * generics.cs: Add a test for #387034. ++ ++ * mini.c (mini_get_method): Check whenever the method class is an open generic ++ type, and return NULL in that case, causing a verification error. Fixes ++ #384123. ++ ++2008-05-06 Rodrigo Kumpera ++ ++ * driver.c (mono_main): Revert r102623. The right ++ thing to do is to enable the verifier under verifiable ++ unless a --security flag was passed. ++ ++ We need this non-trivial behavior for --verify-all otherwise ++ mcs-compileall won't be able to use it. As it needs everything to ++ be verified under validil. ++ ++2008-05-06 Martin Baulig ++ ++ Fix #383749. ++ ++ * debug-mini.c (mono_debugger_thread_created): Add proper locking. ++ (mono_debugger_thread_cleanup): Likewise. ++ (mono_debugger_extended_notification): Likewise. ++ ++2008-05-06 Rodrigo Kumpera ++ ++ * mini.c (mono_method_to_ir): Verify visibility of call related opcodes ++ against both inflated and non-inflated methods. We need to check against the ++ generic definition for cases where the instantiated method is not visible. ++ We need to check against the inflated types for cases where the instantiation ++ changes any super type. This fixes #382986. ++ ++ Note that this doesn't need to be applied to other parts of mono_method_to_ir ++ that check for visibiliy as generic params only appears as the type subject ++ of tokens on call opcodes. Field manipulation and ldftn must always ++ target an exact type. ++ ++2008-05-06 Rodrigo Kumpera ++ ++ * driver.c (mono_main): Using --verify-all enables the verifier under validil mode ++ if no related --security flag is passed. ++ ++2008-05-05 Andreas Färber ++ ++ * mini-arch.h: Prepare support for ppc64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-05-05 Andreas Färber ++ ++ * aot-runtime.c: Prepare support for ppc64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-05-05 Andreas Färber ++ ++ * mini-ops.h: Prepare support for ppc64. ++ ++ Contributed under MIT/X11 license. ++ ++2008-05-04 Andreas Färber ++ ++ * helpers.c: Add support for OSX/ppc64 and Linux/ppc64 (dis)assemblers. ++ ++ Contributed under MIT/X11 license. ++ ++2008-05-03 Zoltan Varga ++ ++ * aot-runtime.c (load_aot_module): Avoid trying to load aot code for dynamic ++ assemblies, since aot_name is not a full path, causing us to load MS.NET ++ assemblies on windows. ++ ++2008-04-28 Kornél Pál ++ ++ * mini.c (mono_jit_compile_method_inner): Use g_warning instead of g_error ++ for unsupported METHOD_IMPL_ATTRIBUTE_NATIVE. ++ * main.c: Use UTF-8 encoded command line instead of Windows default code ++ page on Windows to support Unicode. ++ * driver.c (DllMain): New function for mixed-mode assembly support. ++ * Makefile.am: Add -Wl,--kill-at to libmono_la_LDFLAGS on Windows to ++ export __stdcall functions without decoration. ++ ++ Contributed under MIT/X11 license. ++ ++2008-04-28 Mark Probst ++ ++ * tramp-amd64.c, mini-amd64.c: Preserve R11 in the trampoline by ++ saving it very early. ++ ++2008-04-28 Mark Probst ++ ++ * mini.h, mini.c: Lots of code for accessing the old RGCTX ++ deleted. The only way to access the new RGCTX is via the ++ trampline. ++ ++ * mini.c, mini-amd64, mini-x86.c, mini-exceptions.c: Pass the ++ vtable instead of the RGCTX to static methods. ++ ++ * mini-tramplines.c, tramp-amd64.c, tramp-x86.c: Trampoline for ++ accessing the new RGCTX. ++ ++ * generic-sharing.c: There is no separation between self, type ++ arguments and other types in the RGCTX anymore. ++ ++2008-04-25 Jonathan Chambers ++ ++ * mini-amd64.c (add_general): Remove previous stack adjustment. ++ (mono_arch_call_opcode): Remove OP_OUTARG_MEMBASE and instead simply ++ adjust stack pointer after pushing args. Adjust ARGS_OFFSET to account ++ for 32 bytes of stack space reserved for all calls. ++ ++ * inssel-amd64.brg (OP_OUTARG_MEMBASE): Remove. ++ (OP_AMD64_OUTARG_ALIGN_STACK): Take argument to specify size of stack ++ adjustment. ++ ++ Code contributed under MIT/X11 license. ++ ++2008-04-23 Rodrigo Kumpera ++ ++ * mini.c (mini_method_verify): Only verify non-inflated methods, check ++ against the root definition, peeling out method and type instantiations. ++ Cache verify success results, code that fails verification is still ++ checked multiple times. ++ ++2008-04-23 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Avoid inserting write barriers for stores of null. ++ ++2008-04-23 Jonathan Chambers ++ ++ * mini-amd64.c (add_general): Always increment stack on Win64. ++ (mono_arch_call_opcode): Use OP_OUTARG_MEMBASE instead of OP_OUTARG ++ on Win64. ++ ++ * inssel-amd64.brg (OP_OUTARG_MEMBASE): Add OP_OUTARG_MEMBASE for ++ stack based argument handling on Win64. ++ ++ Code contributed under MIT/X11 license. ++ ++2008-04-23 Raja R Harinath ++ ++ * Makefile.am (version.h): Add support for git-svn. ++ ++2008-04-22 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Rework the gdb calling code ++ so instead of calling g_spawn_command_line_sync, we do everything by hand, ++ avoiding allocations and libc functions which might deadlock. ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Avoid calling gdb if the ++ 'no-gdb-backtrace' option is set. ++ ++ * mini.c (mini_parse_debug_options): Parse 'no-gdb-backtrace' option. ++ ++ * mini.h (MonoDebugOptions): Add 'no_gdb_backtrace' option. ++ ++2008-04-21 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Removed `attach', `detach' ++ and `get_lmf_addr'; `notification_address' is no longer a pointer. ++ ++2008-04-21 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Added `thread_vtable_ptr', ++ `thread_vtable', `event_handler_ptr' and `event_handler'. ++ ++2008-04-21 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Added `init_code_buffer'; ++ allows delayed initialization of the `executable_code_buffer' when ++ attaching. ++ ++2008-04-21 Martin Baulig ++ ++ * mini.h (mono_debugger_create_notification_function): Removed. ++ * tramp-*.c (mono_debugger_create_notification_function): Removed. ++ ++ * mdb-debug-info64.s ++ (MONO_DEBUGGER__notification_function): Added this in the .text section. ++ ++ * mdb-debug-info32.s ++ (MONO_DEBUGGER__notification_function): Added this in the .text section. ++ ++ * Makefile.am: Fix the mdb-debug-info*.s logic; the debugger ++ currently only works on x86 and x86_64, so don't create it on ppc. ++ ++2008-04-21 Martin Baulig ++ ++ * mini.h (MonoDebugOptions): Added `mdb_optimizations'. ++ ++ * mini.c ++ (mini_method_compile): In the fp elimination check, check ++ `debug_options.mdb_optimizations' in addition to ++ mono_debug_using_mono_debugger(). ++ ++ * driver.c (mono_main): Added `--debug=mdb-optimizations' option to ++ disable some JIT optimizations which are only disabled when ++ running inside the debugger. ++ Added `--help-debug' option to describe the debugging options. ++ (parse_debug_options): New static function to parse the `--debug' ++ options, so we can easily add more stuff in future. ++ ++2008-04-20 Zoltan Varga ++ ++ * mini.c (set_exception_type_from_invalid_il): Avoid reading invalid memory when ++ the method has no body. ++ ++2008-04-19 Jonathan Chambers ++ ++ * mini-amd64.c (cpuid): Implement with MSVC intrinsic as inline ++ assembly is not allowed in MSVC 64-bit compiler. ++ (mono_arch_cpu_init): Don't set floating point precision on MSVC build ++ as we get floating point exceptions everywhere. ++ ++ * exceptions-amd64.c (get_throw_trampoline): Push empty args on stack to ++ correctly align arguments for call to throw_exception. ++ (prepare_for_guard_pages): Cast to guint64 instead of unsigned long. ++ ++ Code contributed under MIT/X11 license. ++ ++2008-04-19 Zoltan Varga ++ ++ * mini-amd64.c (amd64_patch): Make the check for (%rip) addressing more strict. ++ ++2008-04-17 Zoltan Varga ++ ++ * inssel.brg (OP_SWITCH): Use (gint64) instead of (long) to cast a large constant. ++ ++ * mini-amd64.c (NEW_INS): Set cil_code. ++ ++ * mini.c (mini_method_compile): Move the disabling of fp elimination to here ++ from mini-amd64.c so all debugger related logic is in one place. ++ ++ * mini.c: Set cfg->ip to NULL after passes which set it so instructions created ++ later won't have a random ip assigned to them. ++ ++2008-04-16 Zoltan Varga ++ ++ * mini-trampolines.c (mono_create_jump_trampoline): Add an assert to check that ++ the arch specific function initializes code_size. ++ (mono_create_delegate_trampoline): Ditto. ++ ++ * mini-mips.h mini-mips.c inssel-mips.brg inssel-long32-mips.brg cpu-mips.md ++ tramp-mips.c: Resurrect MIPS port and also fix the issues on little-endian ++ platforms. ++ ++ * liveness.c (mono_analyze_liveness): Disable the initlocals optimization if ++ running under the debugger. ++ ++ * linear-scan.c (mono_linear_scan): Avoid sharing registers if running under the ++ debugger. ++ ++ * mini.c (mini_method_compile): Set a few flags in cfg if running under the ++ debugger. Also move the disabling of optimizations here from driver.c. ++ (mono_allocate_stack_slots_full): Avoid sharing stack slots if running under the ++ debugger. ++ ++ * mini.h (MonoCompile): Add a few new flags. ++ ++2008-04-15 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Set cfg->ip before processing an IL instruction ++ so the cil_code field of created MonoInst's is properly set. ++ (mini_select_instructions): Ditto. ++ ++ * mini.h (MONO_INST_NEW): Initialize the cil_code field using cfg->ip. ++ (MONO_INST_NEW_CALL): Ditto. ++ ++ * mini.c inssel.brg inssel-x86.brg inssel-amd64.brg: Use MONO_INST_NEW () ++ in many places so the ins->cil_code field is properly initialized. ++ ++ * mini.c (mono_bblock_add_inst): Call MONO_ADD_INS () so the logic is in one ++ place. ++ ++2008-04-14 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Print a different message when compiling a ++ shared method. ++ ++ * mini.c (GENERIC_SHARING_FAILURE): Print a failure message when verbose_level ++ > 1. ++ ++2008-04-11 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Implement OP_ABS directly using ++ SSE2 instructions. ++ ++ * basic-math.cs: Fix warnings. Add a test for Math.Abs (). ++ ++2008-04-11 Zoltan Varga ++ ++ * mini.c (handle_stack_args): Make this return void since its return value was ++ never used. Also set cfg->unverifiable for invalid IL instead of calling ++ G_BREAKPOINT (). ++ ++2008-04-10 Mark Probst ++ ++ * mini.c: Make sure "this" is live in catch clauses with type ++ variables in shared generic code. ++ ++2008-04-08 Mark Probst ++ ++ * mini.c: Replaced uses of MONO_TYPE_IS_REFERENCE with calls to ++ generic_class_is_reference_type() to ensure the proper behaviour ++ when sharing generic code and the type in question is a type ++ argument. ++ ++2008-04-08 Zoltan Varga ++ ++ * mini-exceptions.c: Applied patch from Mark Spruiell (mes@zeroc.com). Fix ++ race conditions when printing thread dumps. Fixes #377738. ++ ++2008-04-08 Massimiliano Mantione ++ ++ aliasing.c (update_aliasing_information_on_inst): Fixed a bug which ++ shows up when both MonoInst arguments can cause aliasig. ++ There is likely no way in the current JIT to trigger this problem, but ++ it showed up in the development of generics sharing, when in a new ++ opcode both args of an OP_GROUP can be aliases (addresses of a local). ++ When the generics sharing code will be committed, its tests will be ++ valid also for this bug. ++ ++2008-04-08 Zoltan Varga ++ ++ * aot-runtime.c (decode_patch_info): Always transform PATCH_INFO_WRAPPER to ++ PATCH_INFO_METHOD. ++ ++ * mini.c (mono_resolve_patch_target): Fix a crash in the AOT case if method is ++ NULL. ++ ++2008-04-07 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): When --debug=casts is used, ++ use a more detailed exception message for InvalidCastException. ++ ++ * mini.h (MonoJitTlsData): Add 'class_cast_from' and 'class_cast_to' fields. ++ ++ * driver.c (mono_main): Add --debug=casts option to turn on better ++ InvalidCastException message details. ++ ++ * mini.c (mini_get_debug_options): New helper function to return the address of ++ the debug_options variable. ++ ++ * mini.c (mono_get_jit_tls_intrinsic): New helper function to create a load of ++ the jit_tls TLS variable. ++ ++ * mini.c (mono_jit_tls): New TLS variable. ++ ++ * inssel.brg: Save the details of a cast to a TLS variable when the --debug=casts ++ option is used. ++ ++2008-04-07 Rodrigo Kumpera ++ ++ * mini.h: Removed verifer related stuff. This code was moved to verify.c ++ ++ * mini.c: Removed verifer related stuff, code moved to verify.c. ++ ++ * driver.c: Using code from verify.c instead of mini.c. ++ ++2008-04-05 Zoltan Varga ++ ++ * mini.c (check_for_method_verify): Remove the mscorlib comment since it is no ++ longer valid. ++ ++2008-04-04 Rodrigo Kumpera ++ ++ * mini.c (check_for_method_verify): Enabling verification of ++ corlib if mono_verify_all is set. Bugs in the verifier preventing that ++ have been fixed. ++ ++2008-04-04 Zoltan Varga ++ ++ * exceptions-amd64.c (throw_exception): Unify the win32/non-win32 cases, save ++ caller saved registers as well. ++ ++ * exceptions-amd64.c (mono_arch_get_restore_context): Restore most caller ++ saved registers as well. ++ ++2008-03-30 Zoltan Varga ++ ++ * mini-x86.c cpu-x86.md inssel-x86.brg: Add min/max intrinsics. ++ ++ * mini-amd64.c mini-amd64.h cpu-amd64.md: Get rid of the non-SSE2 floating point ++ code. ++ ++2008-03-27 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_get_this_arg_reg): Add a 'gsctx' argument and pass it ++ to get_call_info. ++ (get_call_info): Take a gsctx argument instead of 'cfg'. ++ ++2008-03-26 Zoltan Varga ++ ++ * mini.c (check_for_method_verify): Avoid verifying mscorlib methods even if ++ mono_verify_all is set. ++ ++ * driver.c (compile_all_methods_thread_main): Don't exit at the first error. ++ ++ * mini.c mini.h: Remove the unused and incomplete stack merge verification code. ++ ++2008-03-25 Zoltan Varga ++ ++ * driver.c (compile_all_methods_thread_main): Error out if compilation fails with ++ an exception. ++ ++ * driver.c mini.c mini.h: Add a --verify-all development option to test the ++ verifier and the code generated by the compiler. ++ ++2008-03-25 Mark Probst ++ ++ * mini.c: Generic sharing of the non-nullable case of the box ++ instruction. ++ ++2008-03-24 Zoltan Varga ++ ++ * inssel.brg: Fix the build. ++ ++ * iltests.il.in: Add a test for lconv.ovf.u8.un. ++ ++2008-03-24 Rodrigo Kumpera ++ ++ * mini.c (mono_method_to_ir): Implement readonly for ldelema and ++ Array:Address. Fixes #372410. ++ ++ * iltests.il.in: New tests for readonly prefix. ++ ++2008-03-23 Zoltan Varga ++ ++ * mini.h mini.c mini-trampolines.c: Move trampoline related code to ++ mini-trampolines.c. ++ ++ * mini.h mini.c mini-exceptions.c: Move mini_init_exceptions () to ++ mini-exceptions.c. ++ ++ * mini-amd64.c mini-s390.c (mono_arch_lowering_pass): Use mono_decompose_op_imm (). ++ ++ * mini.c (mono_decompose_op_imm): New helper function. ++ ++ * mini-s390x.c (calculate_sizes): Rename this to get_call_info for consistency ++ with the other architectures, add an 'mp' argument, fold 'sz' argument into the ++ return value. ++ ++ * mini-s390x.c: Handle DIV_IMM/REM_IMM in the lowering pass instead of in ++ mono_arch_output_basic_block. Fix warnings. ++ ++ * inssel-s390x.brg: Remove the unneccesary OP_LMUL_IMM rule to fix the s390x build ++ for now. ++ ++2008-03-22 Zoltan Varga ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Remove the ia64/s390 workarounds ++ since the extra frame is now detected automatically inside the loop. ++ ++ * mini-s390.c (mono_arch_peephole_pass_2): Remove the arch independent peephole ++ opts which are now in mono_peephole_ins (). ++ ++ * mini-s390.c (mono_arch_output_basic_block): Fix OP_FCALL_MEMBASE. ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Skip native-to-managed wrapper ++ frames and skip duplicate managed-to-native frames. Fixes #367665. ++ ++ * mini-x86.c (mono_arch_peephole_pass_1): Remove the arch independent peephole ++ opts which are now in mono_peephole_ins (). ++ (mono_arch_peephole_pass_2): Ditto. ++ ++ * mini-codegen.c (mono_peephole_ins): Fix a problem on 32 bit platforms. ++ ++ * mini-codegen.c (mono_peephole_ins): New helper function containing the ++ arch independent peephole optimizations. ++ ++ * mini-amd64.c (mono_arch_peephole_pass_1): Remove the arch independent peephole ++ opts which are now in mono_peephole_ins (). ++ ++ * mini-amd64.c (mono_arch_peephole_pass_2): Ditto. ++ ++ * mini-s390.c (mono_arch_output_basic_block): Fix build. ++ ++ * tramp-s390.c (mono_arch_get_vcall_slot): Handle an additional instruction ++ pattern. ++ ++ * mini-s390.c (mono_arch_output_basic_block): Handle big offsets in the ++ CALL_MEMBASE opcodes. Fix setting of the destination in the OP_LCONV_TO_OVF_I ++ opcode. ++ ++2008-03-21 Zoltan Varga ++ ++ * mini-s390.c (calculate_sizes): Rename this to get_call_info for consistency ++ with the other architectures, add an 'mp' argument, fold 'sz' argument into the ++ return value. ++ ++ * mini-s390.c: Handle DIV_IMM/REM_IMM in the lowering pass instead of in ++ mono_arch_output_basic_block. Fix warnings. ++ ++2008-03-20 Zoltan Varga ++ ++ * inssel-long32.brg: Add rules for long conv.ovf.i/conv.ovf.u/conv.ovf.i.un/ ++ conv.ovf.u.un. ++ ++2008-03-20 Zoltan Varga ++ ++ * inssel-long.brg: Add rules for long conv.ovf.i/conv.ovf.u/conv.ovf.i.un/ ++ conv.ovf.u.un. ++ ++ * iltests.il: Add new tests. ++ ++2008-03-20 Kornél Pál ++ ++ * mini.c: Removed Windows version macros. ++ ++2008-03-20 Mark Probst ++ ++ * generic-sharing.c: Put reflection types in the extensible part ++ of the runtime generic context. ++ ++ * mini.c: Generic sharing of the GetTypeHandle special case of the ++ ldtoken instruction. ++ ++2008-03-20 Zoltan Varga ++ ++ * mini.h (MONO_BB_FOR_EACH_INS_SAFE): New helper macro. ++ ++ * mini-.c: Use the new macro instead in the peephole/lowering passes. ++ ++ * mini.h (MONO_DEL_INS): Rename to MONO_DELETE_INS and Add a 'bb' argument for ++ consistency with the other version on the linear IR branch. ++ ++ * mini-.c: Update callers of MONO_DEL_INS. ++ ++ * inssel-long32.brg inssel-long.brg: Add rules for conv.ovf.i/conv.ovf.u. ++ ++ * iltests.il.in: Add new tests. ++ ++2008-03-19 Zoltan Varga ++ ++ * inssel-long32.brg inssel-long.brg: Add rules for conv.ovf.i.un/conv.ovf.u.un. ++ ++ * iltests.il.in: Add new tests. ++ ++2008-03-19 Mark Probst ++ ++ * mini.c: Two variables with the same name were declared in ++ nesting contexts and one wasn't initialized. Fixed. ++ ++2008-03-19 Mark Probst ++ ++ * mini.c: Generic sharing of the initobj instruction. ++ ++Tue Mar 18 20:18:02 CET 2008 Paolo Molaro ++ ++ * mini.c: make the test to optimize ldtoken from typeof() more ++ precise. ++ ++2008-03-18 Mark Probst ++ ++ * mini.c: Generic sharing of the initobj instruction for reference ++ types. ++ ++Tue Mar 18 12:39:27 CET 2008 Paolo Molaro ++ ++ * mini.h, mini-amd64.c, mini-x86.c, tramp-amd64.c, tramp-x86.c: change ++ the mono_breakpoint_clean_code() code to perform bound checks. ++ ++Tue Mar 18 11:50:14 CET 2008 Paolo Molaro ++ ++ * mini.h, mini-trampolines.c, tramp-*.c: change the signature of ++ mono_arch_patch_callsite() to include the start of the managed method ++ to be able to perform bound checks. ++ ++2008-03-17 Mark Probst ++ ++ * mini.c: Generic sharing for the isinst instruction. ++ ++2008-03-17 Mark Probst ++ ++ * mini-ops.h, inssel.brg, inssel-long.brg, inssel-long32.brg, ++ inssel-long32-mips.brg: Added opcodes for doing indirect calls ++ with the runtime generic context argument. ++ ++ * mini.c: Share calls to several types of unsharable methods by ++ putting the address of the method code in the runtime generic ++ context and doing an indirect call. ++ ++ * graph.c, local-propagation.c, aliasing.c: Added the new opcodes ++ to switches. ++ ++2008-03-16 Mark Probst ++ ++ * generic-sharing.c: Change due to a change in the runtime genric ++ context API. ++ ++2008-03-15 Martin Baulig ++ ++ * tramp-x86.c ++ (mono_arch_nullify_class_init_trampoline): Add call to ++ mono_breakpoint_clean_code() to make things work when running ++ inside the debugger. ++ ++ * tramp-amd64.c ++ (mono_arch_nullify_class_init_trampoline): Add call to ++ mono_breakpoint_clean_code() to make things work when running ++ inside the debugger. ++ ++2008-03-14 Zoltan Varga ++ ++ * inssel-long.brg (reg): Fix 64 bit build. ++ ++2008-03-14 Mark Probst ++ ++ * mini.c, mini.h: Share static generic code by passing it an ++ implicit argument pointing to the runtime generic context. ++ ++ * mini-ops.h, inssel.brg, inssel-long.brg, inssel-long32.brg, ++ inssel-long32-mips.brg: New opcodes for calling shared static, ++ which need to be passed the runtime generic context. ++ ++ * mini-amd64.c, mini-x86.c: Save the runtime generic context ++ argument on the stack in the prologue if needed. New function for ++ finding the runtime generic context argument from the registers ++ saved by the trampoline. ++ ++ * mini-amd64.h, mini-x86.h: Specify which register to use for the ++ runtime generic context argument. ++ ++ * tramp-amd64.c: Also restore the register used for the runtime ++ generic context argument. ++ ++ * mini-trampoline.c: Resolve shared static calls by consulting the ++ runtime generic context via the new argument. ++ ++ * generic-sharing.c: Add an argument to sharability-checking ++ functions that specifies whether type variables should be treated ++ as sharable type arguments. ++ ++ * inssel-x86.brg: Removed a superfluous, buggy rule. ++ ++ * graph.c, local-propagation.c, aliasing.c: Added the new opcodes ++ to switches. ++ ++2008-03-14 Martin Baulig ++ ++ * debug-debugger.c (main_thread_handler): Call ++ mono_runtime_run_main() without sending any notifications. ++ ++ * debug-debugger.h (MonoDebuggerInfo): Added `get_method_signature. ++ ++2008-03-14 Zoltan Varga ++ ++ * mini-trampolines.c (mono_magic_trampoline): Fix build on platforms without IMT. ++ ++2008-03-14 Mark Probst ++ ++ * tramp-x86.c: Fixed register restore offsets in the trampoline ++ code for ECX and EDX. ++ ++2008-03-12 Geoff Norton ++ ++ * mini-arm.h: Add some #defines for locating sp, pc, r4 with ++ different ucontext_t implementations. ++ * exceptions-arm.c: Use the above defines to get exceptions working on ++ iPhone (based on a patch by Luke Howard lukeh@padl.com) ++ * mini-arm.c: Implement iPhone icache support (based on a patch by ++ Luke Howard lukeh@padl.com) ++ ++2008-03-12 Mark Probst ++ ++ * mini.c: Enable generic sharing of calls to non-static ++ non-interface non-generic non-value-type methods. ++ ++ * mini-trampolines.c: Resolve calls from shared generic code. ++ ++2008-03-11 Zoltan Varga ++ ++ * Makefile.am il2tests.il iltests.il.in: Delete il2tests, merge it into iltests. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code): Correctly save RBP as well. ++ ++Mon Mar 10 11:59:34 CET 2008 Paolo Molaro ++ ++ * mini.c: some fixes for the AOT compiler. ++ ++2008-03-07 Zoltan Varga ++ ++ * cpu-amd64.md: Add clob:1 to some float opcodes. ++ ++2008-03-07 Rodrigo Kumpera ++ ++ * mini.h: Added MiniVerifierMode enumeration. ++ ++ * mini.c: Added mini_verifier_set_mode to control ++ the usage of the new verifier. ++ ++ * mini.c (mono_method): Integrated the new verifier. ++ ++ * driver.c: Extended --security option with validil and ++ verifiable options to activate the new verifier. ++ ++2008-03-07 Zoltan Varga ++ ++ * mini.c jit-icalls.h jit-icalls.c: Generalize the exception creation ++ optimization to ctors taking 0 or 2 arguments too. ++ ++ * mini.c (mono_method_to_ir): Optimalize the size of the exception throwing code ++ a bit. ++ ++ * jit-icalls.h (mono_create_corlib_exception): New JIT icall. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Improve the first_bb optimization a bit. ++ ++2008-03-06 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Apply one of the ldstr optimizations in the ++ non-aot case as well. ++ ++ * cpu-amd64.md: Reduce the max size of some frequently used opcodes. ++ ++ * aot-runtime.c (decode_patch_info): Update this after the ldfld/stfld wrapper ++ changes. ++ ++ * aot-compiler.c (encode_patch): Ditto. ++ ++ * mini.h (G_MININT32): Fix the definition of this. ++ ++2008-03-05 Zoltan Varga ++ ++ * mini.h: Define G_MININT32/G_MAXINT32 if using an older glib version. ++ ++ * cfold.c: Remove definition of G_MININT32 which is now in mini.h. ++ ++2008-03-04 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Don't disable fp elimination for ++ methods returning vtypes in registers. ++ (mono_arch_allocate_vars): Ditto. ++ ++ * mini-amd64.c (mono_arch_get_this_arg_reg): New arch specific helper function. ++ ++ * tramp-amd64.c (mono_arch_get_unbox_trampoline): Use mono_arch_get_this_arg_reg (). ++ ++ * generics.cs: Add a test from the linear IR branch. ++ ++ * mini-amd64.c (emit_load_volatile_arguments): Handle vtypes passed in regs too. ++ ++ * mini.c (inline_method): Cache failed inline attempts. ++ ++2008-03-04 Mark Probst ++ ++ * mini.c: For shared methods of generic classes put the location ++ of "this" into the MonoGenericJitInfo. ++ ++ * mini-x86.c, mini-amd64.c, mini.h: Added function for fetching a ++ register out of a MonoContext by register number. Add the generic ++ sharing context as an argument to mono_arch_find_this_argument(). ++ ++ * mini-alpha.c, mini-arm.c, mini-hppa.c, mini-ia64.c, mini-mips.c, ++ mini-ppc.c, mini-s390.c, mini-s390x.c, mini-sparc.c: Added stub ++ for new arch function. ++ ++ * mini-exception.c: Handle open exception clauses in shared ++ generic code. ++ ++ * mini-trampolines.c: Supply additional argument to ++ mono_arch_find_this_argument(). ++ ++2008-03-04 Zoltan Varga ++ ++ * Makefile.am (regtests): Run the bench.exe tests last. ++ ++2008-03-03 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Improve the first bblock optimization ++ a bit. ++ ++2008-03-02 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Allow callvirt on static methods for compatibility ++ with MS. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Fix tracing after the last change. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Avoid saving dead arguments. ++ ++ * mini.c (mono_method_check_inlining): Avoid disabling inlining for methods ++ whose class has no cctor. ++ ++ * liveness.c (mono_analyze_liveness): Mark dead arguments with MONO_INST_IS_DEAD. ++ ++2008-03-01 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Report calling a static method using callvirt as ++ unverified. ++ ++2008-02-29 Zoltan Varga ++ ++ * mini-ops.h: Remove OP_SPARC_INARG_VT, add a new OP_VTARG_ADDR opcode instead ++ to be in sync with the code on the linear IR branch. ++ ++ * mini-sparc.c inssel-sparc.brg: Use OP_VTARG_ADDR. ++ ++ * inssel-s390.brg (OP_SETRET (freg)): Set dreg correctly. ++ ++2008-02-27 Zoltan Varga ++ ++ * mini-mips.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini-s390x.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini-s390.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini-.h mini.c: Get rid of the MONO_ARCH_HAVE_CREATE_VARS define. ++ ++ * mini-.c (mono_arch_create_vars): Define this for all architectures. ++ ++ * mini.c (mono_method_to_ir): Avoid invalid memory reads for methods without a ++ body. ++ ++2007-11-14 Yoichi NAKAYAMA ++ ++ * inssel-mips.brg (OP_OUTARG_MEMBASE (CEE_LDIND_R4 (base))): Add missing ++ OP_LOADR4_MEMBASE emission. ++ ++ * mini-codegen.c (mono_spillvar_offset_int): Remove assertion. ++ (mono_spillvar_offset_float): Ditto. ++ ++ * mini-mips.c (mono_arch_emit_prolog): Ditto. ++ ++ * inssel-long32-mips.brg: Fix wrong branching, reduce redundant code ++ emission. ++ ++ * basic-long.cs: Add regression tests for them. ++ ++ * mini-mips.c (add_float32_arg): Respect o32 calling convention in gr ++ use. ++ (mono_arch_allocate_vars): Fix representation of single-precision float ++ argument. ++ (mono_arch_output_basic_block): Ditto. ++ ++ * inssel-mips.brg: Ditto, remove duplicate items. ++ ++ * mini-mips.c (emit_load_volatile_arguments): New function to handle ++ arguments of tail calls as on other platforms. ++ (mono_arch_output_basic_block): Handle tail calls. ++ ++ * inssel-mips.brg (OP_OUTARG_VT (CEE_LDOBJ (base))): Correct destination ++ register. ++ ++ * objects.cs (test_5_pass_static_struct): Add test for it. ++ ++ Contributed under MIT/X11 license. ++ ++2008-02-26 Zoltan Varga ++ ++ * Makefile.am: Use gmcs for compiling the regression tests. ++ ++ * *.2.cs *.2.il: Rename to *.cs and *.il. ++ ++2008-02-24 Zoltan Varga ++ ++ * regalloc.h: Make the vassign array smaller. ++ ++ * mini.c (mini_method_compile): Remove an unused field in cfg. ++ ++ * mini-codegen.c: Add a bunch of micro optimizations. ++ ++2008-02-23 Zoltan Varga ++ ++ * regalloc.h: Remove some unused fields. ++ ++2008-02-22 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_patch_code): Fix a warning. ++ ++ * ssa.c (mono_ssa_remove): Avoid declaring volatile variables dead. ++ ++2008-02-22 Mark Probst ++ ++ * mini.h: New trampoline type (RGCTX_LAZY_FETCH). ++ ++ * mini-trampolines.c, tramp-amd64.c, tramp-x86.c: RGCTX lazy fetch ++ trampoline: Fetch an entry from the runtime generic context. If ++ it's NULL, jump to the actual trampoline to fill the runtime ++ generic context. Otherwise, return it. ++ ++ * mini.c: Call the lazy fetch trampoline to get entries out of the ++ runtime generic context. ++ ++ * tramp-ia64.c, tramp-arm.c, tramp-alpha.c, tramp-s390.c, ++ tramp-s390x.c, tramp-ppc.c, tramp-hppa.c, tramp-mips.c, ++ tramp-sparc.c: Stubs for the lazy fetch trampoline. ++ ++2008-02-21 Mark Probst ++ ++ * mini.c: Fetch data out of the extensible part of the runtime ++ generic context instead of calling a helper function. ++ ++ * generic-sharing.c: Some functions moved into ++ metadata/generic-sharing.c. Helper function for fetching other ++ types now checks and asserts against extensible rgctx (just for ++ debugging purposes - the helper function isn't called anymore ++ unless for debugging). ++ ++2008-02-21 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_output_basic_block): Implement proper argument passing ++ for tail calls up to the point that the tests in iltests.exe run. Also add a ++ dummy CKFINITE implementation. ++ (mono_arch_emit_prolog): Avoid saving the method in the LMF since it is only ++ needed for trampoline LMF frames. ++ ++ * exceptions-arm.c (mono_arch_find_jit_info): Only read lmf->method for ++ trampoline LMF frames. ++ ++2008-02-21 Rodrigo Kumpera ++ ++ * mini.c (inline_method): clean any pending loader error when inlining fail. ++ Otherwise loader errors in mono_method_to_ir leaks and cause spurious errors. ++ ++2008-02-21 Zoltan Varga ++ ++ * aot-compiler.c (encode_patch): Handle ICALL_ADDR patch type. ++ ++ * aot-runtime.c (decode_patch_info): Ditto. ++ ++ * mini.c (mono_resolve_patch_target): Ditto. ++ ++ * aot-compiler.c (compile_method): Add some experimental code for AOT compiling ++ icall wrappers. ++ ++ * patch-info.h (PATCH_INFO): Add 'ICALL_ADDR' patch type. ++ ++ * mini.c (mono_method_to_ir): Convert a CEE_MONO_LDPTR opcode to an AOT constant ++ if it references an icall address. ++ ++2008-02-20 Zoltan Varga ++ ++ * cpu-s390x.md: Remove some more unused opcodes. ++ ++ * cpu-s390x.md: Remove some unused opcodes. ++ ++ * mini-ia64.c (mono_arch_lowering_pass): Add some more opcodes. Use ++ mono_op_imm_to_op (). ++ ++ * mini-sparc.c (opcode_to_sparc_cond): Use the mono_opcode_to_cond () functions ++ instead of a switch statement. ++ ++ * mini-sparc.c (mono_arch_allocate_vars): Allocate a stack slot for use by ++ the int<->float conversion opcodes instead of using mono_spillvar_offset_float (). ++ ++ * mini-codegen.c: Eliminate rassign macro which is no longer needed. ++ ++ * mini-codegen.c: Remove unused mono_regstate2_... functions. ++ ++ * mini-codegen.c (mono_print_ins_index): Avoid printing an index when it is ++ -1. ++ ++2008-02-19 Zoltan Varga ++ ++ * driver.c (mono_main): Improve error reporting when an assembly cannot be ++ opened. Fixes #362607. ++ ++ * cpu-ia64.md cpu-s390x.md: Remove some unused opcodes. ++ ++ * iltests.il.in: Add a test for static methods in interfaces. ++ ++2008-02-18 Zoltan Varga ++ ++ * genmdesc.c (build_table): Fix a crash on older glib versions. ++ ++ * cpu-sparc.md: Remove some unused opcodes. ++ ++ * genmdesc.c: Error out if the .md contains CEE_ opcodes if ++ MONO_ARCH_ENABLE_NORMALIZE_OPCODES is defined. ++ ++ * cpu-amd64.md: Remove some unused opcodes. ++ ++ * mini.h mini-ops.h mini.c: Define the OP_Ccc opcodes in mini-ops.h normally ++ like the other opcodes. ++ ++2008-02-17 Zoltan Varga ++ ++ * mini-ia64.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini-arm.h mini-arm.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini-sparc.c: Use cfg->vret_addr instead of cfg->ret. Name the MonoCompile ++ variables 'cfg' instead of 'm' for consistency. ++ ++ * mini-x86.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini.h (MonoCompile): Add new 'vret_addr' field which represents the hidden ++ argument holding the vtype return address, to avoid the ambigious use of ++ cfg->ret for this purpose. ++ ++ * mini.c (NEW_RETLOADA): Use vret_addr if set. ++ ++ * mini-amd64.c: Use cfg->vret_addr instead of cfg->ret. ++ ++ * mini-codegen.c (mono_print_ins): Rename to mono_print_ins_index (), Add a ++ new mono_print_ins () function which only takes one argument. ++ ++2008-02-15 Zoltan Varga ++ ++ * mini-s390.h (MONO_OUTPUT_VTR): Use cfg instead of s, avoid assignments to ++ macro arguments. ++ ++2008-02-14 Zoltan Varga ++ ++ * mini-ops.h: Get rid of OP_SPARC_LOCALLOC_IMM. ++ ++ * mini-sparc.c inssel-sparc.brg: Use OP_LOCALLOC_IMM instead of OP_SPARC_LOCALLOC_IMM. ++ ++ * mini-x86.c: Sync with the version on the linear IR branch by adding new ++ opcodes and other small changes. ++ ++ * mini-ops.h: Add some new opcodes from the linear IR branch. ++ ++ * mini-ops.h: Get rid of the OP_X86_..._MEMBASE opcodes. ++ ++ * mini-x86.c inssel-x86.brg cpu-x86.md: Get rid of the confusing _MEMBASE ++ opcodes, use the REG_MEMBASE opcodes instead. ++ ++ * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Get rid of the confusing _MEMBASE ++ opcodes, use the REG_MEMBASE opcodes instead. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Sync with the version on the ++ linear IR branch. ++ ++ * mini.c (mono_op_imm_to_op): New helper function. ++ ++ * mini-ops.h: Add some opcodes from linear IR branch. ++ ++2008-02-13 Zoltan Varga ++ ++ * mini-alpha.h mini-alpha.c tramp-alpha.c: Alpha port updates from Sergey Tikhonov ++ . ++ ++2008-02-12 Zoltan Varga ++ ++ * mini.c (mono_normalize_opcodes): Always convert CEE_CONV_R4/R8 to ++ OP_ICONV_TO_R4/R8. ++ ++ * mini-ia64.c cpu-ia64.md: Add OP_ICONV_TO_R4/R8. ++ ++2008-02-09 Zoltan Varga ++ ++ * aot-compiler.c (emit_method_code): Add an assert. ++ ++ * mini-arm.h mini-arm.c exceptions-arm.c: Modify the exception throwing code and ++ the IMT code so it is AOT friendly. Enable AOT for methods which call interface ++ methods. ++ ++2008-02-08 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_output_basic_block): Fix the ordering of arguments for ++ some load/store opcodes so they are consistent. ++ (mono_arch_emit_prolog): Simplify some code. ++ ++ * aot-runtime.c (mono_aot_get_plt_entry): Fix a warning. ++ ++ * objects.cs: Add tests for large argument offsets on ARM. ++ ++ * mini-arm.c (mono_arch_emit_prolog): Fix handling of arguments with large ++ stack offsets. Fixes #359651. ++ ++ * mini.c (mono_normalize_opcodes): Remap CEE_CONV_R4/R8 properly. ++ ++ * cpu-s390x.md: Add OP_LCONV_TO_R4/R8. ++ ++ * cpu-ia64.md mini-ia64.h mini-ia64.c: Get rid of CEE_ opcodes. ++ ++ * mini-ops.h: Add OP_ICONV_TO_R_UN opcode. ++ ++ * mini.c (mono_normalize_opcodes): Remap CEE_CONV_R_UN too. ++ ++ * cpu-s390x.md cpu-s390.md mini-s390x.c mini-arm.c cpu-arm.md mini-s390.c: Get ++ rid of CEE_CONV_R_UN. ++ ++ * mini-s390x.c mini-s390x.h cpu-s390x.md inssel-s390x.brg: Get rid of CEE_ opcodes. ++ ++2008-02-07 Zoltan Varga ++ ++ * mini-s390.c mini-s390.h cpu-s390.md: Get rid of CEE_ opcodes. ++ ++ * mini.c (mono_normalize_opcodes): Add some more opcodes. ++ ++ * mini-arm.c mini-arm.h cpu-arm.md: Get rid of CEE_ opcodes. ++ ++ * cpu-amd64.md: Remove some unused opcodes. ++ ++ * mini-sparc.c mini-sparc.h cpu-sparc.md: Get rid of CEE_ opcodes. ++ ++ * mini-x86.c mini-x86.h cpu-x86.md: Get rid of CEE_ opcodes. ++ ++ * mini.c mini-.c: Remove mono_arch_local_regalloc (), instead make ++ arch specific functions for its parts. Call the peephole pass after local ++ regalloc so the prolog can compute a more accurate max_offset. ++ ++ * mini.c (mono_normalize_opcodes): New mini pass to convert CEE_ opcodes to ++ the corresponding OP_I/OP_L opcodes. ++ ++ * mini-amd64.c mini-amd64.h cpu-amd64.md: Get rid of CEE_ opcodes. ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Fix the sparc build. ++ ++2008-02-06 Zoltan Varga ++ ++ * mini-s390.c (mono_arch_get_inst_for_method): Remove the Interlocked cases ++ as they are handled in mini.c. ++ ++ * mini-s390x.c (mono_arch_get_inst_for_method): Ditto. ++ ++ * mini-.c (mono_arch_get_inst_for_method): Remove the MemoryBarrier ++ case since it is handled in mini.c. ++ ++ * cpu-sparc.md (sparc_setfreg_float): Fix the sparc build. ++ ++ * mini-ops.h: Add new opcodes OP_CALL/OP_CALLVIRT. ++ ++ * *.c: Use the new opcodes in the IR and back end code. ++ ++ * mini-ops.h cpu-.md: Correct the name of the bgt_un opcodes. ++ ++ * mini-amd64.c (emit_call_body): Use a far-call for calling dynamic methods. ++ ++2008-02-06 Mark Probst ++ ++ * mini-trampolines.c (mono_generic_class_init_trampoline): Removed ++ an assert because it has a race condition. ++ ++2008-02-06 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_patch_callsite): Add more diagnostics. ++ ++ * inssel.brg mini-.c cpu-.md: Get rid of unused CEE_RET opcode. ++ ++ * mini-.c cpu-.md: Get rid of unused LDIND/STIND opcodes. ++ ++ * *.brg mini-.c cpu-.md: Get rid of OP_SETREG/OP_SETFREG/OP_SETREGIMM, ++ use OP_MOVE/OP_FMOVE/OP_ICONST instead. ++ ++2008-02-05 Zoltan Varga ++ ++ * cpu-amd64.md (move): Correct the maximum size of move. ++ ++2008-02-05 Mark Probst ++ ++ * tramp-amd64.c, tramp-x86.c, mini-trampolines.c: Added a check in ++ the generic class init trampoline to return quickly if the class ++ is already inited. ++ ++2008-02-04 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_patch_callsite): Add some diagnostics to help debug ++ issues where an 32 bit callsite cannot be patched by a 64 bit address. ++ ++2008-02-03 Zoltan Varga ++ ++ * generics.2.cs generics-variant-types.2.il: Merge some tests from the linear IR ++ branch. ++ ++2008-01-31 Zoltan Varga ++ ++ * objects.cs: Add some soft-float tests. ++ ++ * mini.c: Fix a couple more soft-float issues. ++ ++ * helpers.c (mono_disassemble_code): Fix disassembly on ARM. ++ ++ * mini-amd64.c (peephole_pass): Use IXOR instead of LXOR for zeroing a register to ++ avoid a REX prefix. ++ ++2008-01-30 Zoltan Varga ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Fix stack unwinding when an ++ exception happens while compiling a virtual method. ++ ++2008-01-29 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_emit_epilog): Fix folding of negative return values. ++ ++ * mini-sparc.c: Fix build. ++ ++ * mini-sparc.c (get_call_info): Add support for generic sharing. ++ ++ * mini-exceptions.c: Add a FIXME. ++ ++2008-01-27 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Remove the old style ++ altstack handling code. ++ ++ * mini-s390.c (mono_arch_emit_exceptions): Really fix a warning. ++ ++ * mini-s390.c (mono_arch_emit_exceptions): Fix a warning. ++ ++ * mini-s390.c: Add support for generic sharing. ++ ++ * mini-exceptions.c (ves_icall_System_Security_SecurityFrame_GetSecurityFrame): ++ Fix CAS on s390. ++ (ves_icall_System_Security_SecurityFrame_GetSecurityStack): Ditto. ++ ++ * mini-s390x.c (mono_arch_emit_exceptions): Fix a warning. ++ ++ * mini-s390x.c: Add support for generic sharing. ++ ++ * mini-exceptions.c (ves_icall_System_Security_SecurityFrame_GetSecurityFrame): ++ Fix CAS on ia64. ++ (ves_icall_System_Security_SecurityFrame_GetSecurityStack): Ditto. ++ ++ * mini-s390x.c: Use is_imm16 instead of is_uimm16 when checking whenever s390_aghi ++ can be used since it takes a 16 bit signed immediate. ++ ++ * inssel-s390x.brg: Fix OP_SETRET. ++ ++ * mini-s390x.c (mono_arch_output_basic_block): Fix OP_BREAK. ++ ++ * mini-codegen.c (mono_opcode_to_cond): Fix a warning. ++ ++ * mini-s390x.c cpu-s390x.md: Implement sext.i4 properly by sign extension. ++ ++ * mini.c (mono_create_delegate_trampoline): Don't use mono_create_ftpntr here. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Use mono_get_addr_from_ftnptr ++ in one place. ++ ++ * mini-ia64.h mini-ia64.c: Add minimal support for the delegate trampoline ++ stuff. ++ ++ * mini.h inssel-x86.brg inssel-amd64.brg tramp-alpha.c tramp-ia64.c: Get rid ++ of the unused mono_arch_patch_delegate_trampoline stuff. ++ ++2008-01-26 Zoltan Varga ++ ++ * basic-long.cs: Move the fp related tests to basic-float.cs. ++ ++ * mini-ops.h (OP_OUTARG_FREG_R4): New opcode. ++ ++ * mini-ia64.c inssel-ia64.brg: Implement proper R4 argument passing. ++ ++ * basic-calls.cs: Add a test for proper float argument passing. ++ ++ * mini-ia64.h (mono_ia64_context_get_ip): Do not substract 1 from the ip ++ if the context corresponds to an exception received through a signal. ++ ++ * exceptions.cs: Add a test for nullref handling at the start of a try ++ clause. ++ ++ * mini-ia64.c (mono_arch_call_opcode): Fix ia64 argument passing. ++ ++ * jit-icalls.c (mono_break): New JIT icall. ++ ++ * mini-.c: Use mono_break instead of mono_arch_break. ++ ++ * mini-arm.c (arm_patch): Add support for patching the blx calling sequence. ++ ++2008-01-25 Zoltan Varga ++ ++ * cpu-*.md: Get rid of unused opcodes. ++ ++ * cpu-g4.md: Rename this to cpu-ppc.md for consistency with other archs. ++ ++ * Makefile.am: Move mini-trampolines.c to $(common_sources) since it is now used ++ by all platforms. ++ ++ * mini-.h mini.c: Get rid of the MONO_ARCH_HAVE_CREATE_SPECIFIC_TRAMPOLINE ++ define. ++ ++ * mini-s390x.h tramp-s390x.c Makefile.am: Rework the s390x trampoline code to use ++ the arch independent trampoline code in mini-trampolines.c. ++ ++ * aot-runtime.c (mono_aot_init_vtable): Fix a warning. ++ ++ * mini.c (get_runtime_generic_context_ptr): Fix a warning. ++ ++ * mini-s390.h: Remove an unused define. ++ ++ * mini-s390.h tramp-s390.c Makefile.am: Rework the s390 trampoline code to use ++ the arch independent trampoline code in mini-trampolines.c. ++ ++ * mini-arm.c (mono_arch_emit_prolog): Fix build. ++ ++2008-01-24 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Remove some unecessary code. ++ ++ * mini-s390.c (mono_arch_emit_prolog): Fix build. ++ ++ * mini-s390x.c (mono_arch_emit_prolog): Fix build. ++ ++ * mini-ppc.c (mono_arch_emit_prolog): Fix build. ++ ++ * cpu-amd64.md: Use smaller sizes for int opcodes. ++ ++ * *.c: Get rid of the NOT_IMPLEMENTED define which is now in mini.h. ++ ++ * *.cs: Add some tests from the linear-ir branch. Move structs tests to ++ objects.cs. ++ ++ * driver.c (mono_main): Add a --break-at-bb command line argument for JIT ++ debugging. ++ ++ * mini.h *.c: Change cfg->vars to contain the MonoMethodVar entries directly ++ instead of though a pointer to save an indirection when accessing elements of ++ the array. ++ ++ * mini.h (MONO_IS_COND_BRANCH_OP): Move these macros here from mini.c. Fix ++ some typos. ++ (NOT_IMPLEMENTED): New helper macro. ++ (MONO_BB_FOR_EACH_INS): New helper macro to iterate through the instructions ++ of a bb. ++ ++ * *.c: Use the new helper macro. ++ ++2008-01-21 Zoltan Varga ++ ++ * mini-x86.h (MONO_ARCH_AOT_SUPPORTED): Disable AOT for apple x86. ++ ++2008-01-20 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Optimize the omit fp case to save two ++ stack slots. ++ ++2008-01-18 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Disable the new optimization if ++ profiling is enabled. ++ ++ * mini-amd64.c (mono_arch_call_opcode): Emit the save_sp_to_lmf instruction at ++ the end. ++ (mono_arch_emit_prolog): Add more first bblock optimizations. ++ ++ * mini-amd64.c (mono_arch_call_opcode): Keep assignments to the arg registers ++ in order if possible. ++ (mono_arch_emit_prolog): Optimize assignments to arg registers in the first ++ bblock, since the arguments are still in their original registers. ++ ++ * mini.c (type_from_op): Calling add.ovf on floats is not valid IL code. ++ ++2008-01-17 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Use the no-spilling optimization for CEE_CALLI ++ as well. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Save an instruction if the LMF is at ++ offset 0. ++ ++ * mini-amd64.h (MONO_ARCH_HAVE_NOTIFY_PENDING_EXC): Turn on this for amd64. ++ ++ * exceptions-amd64.c (mono_arch_notify_pending_exc): New function to ++ process async exceptions received while in unmanaged code. ++ ++ * mini.c (mini_init): Install a callback with the runtime which will be called ++ when a thread receives an async exception while in unmanaged code. ++ ++ * mini.c driver.c: Update after mono_get_native_wrapper () signature change. ++ ++ * mini-s390x.c (mono_arch_output_basic_block): Fix s390x build. ++ ++2008-01-16 Wade Berrier ++ ++ * cpu-g4.md: ++ * cpu-arm.md: ++ * cpu-s390x.md: ++ fix build ++ ++2008-01-16 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Remove some gccism which prevents ++ compilation with sun cc. ++ ++ * cpu-*.md: Fix the build. ++ ++ * cpu-x86.md: Fix the length of some load membase opcodes. Fixes #354241. ++ ++ * mini-amd64.h: Add some comments to the MonoLMF structure. ++ ++ * mini-ops.h cpu-amd64.c: Add a OP_AMD64_SAVE_SP_TO_LMF opcode. ++ ++ * mini-amd64.c exceptions-amd64.c tramp-amd64.c: Avoid setting the rip field ++ in the LMF structure if possible. This saves two instructions in the ++ managed->native wrappers. ++ ++ * mini-ops.h *.md: Make some opcodes names uniform by removing the op_ prefix. ++ ++2008-01-16 Mark Probst ++ ++ * generic-sharing.c: New type argument lookup code which uses the ++ runtime generic context template. ++ ++2008-01-15 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Avoid emitting a write barrier when storing NULL. ++ ++ * mini-arm.c (add_general): Fix arm eabi parameter passing. ++ (mono_arch_output_basic_block): Fix localloc implementation. ++ ++ * mini-amd64.c (peephole_pass): Sync store+load optimizations with the x86 version. ++ ++ * mini-ia64.c (peephole_pass): Fix ia64 build. ++ ++ * mini-amd64.c (peephole_pass): Fix a warning. ++ ++ * mini-amd64.c (mono_arch_allocate_vars): Make sure the LMF is always stored ++ at a constant offset from sp/fp. ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Compute the LMF address from fp/sp ++ instead of obtaining it from *lmf in the managed method case. ++ ++2008-01-14 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Remove some duplicate code. ++ ++Mon Jan 14 12:33:06 CET 2008 David S. Miller ++ ++ * mini.h (MonoInstList): New type. ++ (MONO_INST_LIST_INIT, MONO_INST_LIST_EMPTY, ++ __MONO_INST_LIST_ADD, MONO_INST_LIST_ADD, ++ MONO_INST_LIST_ADD_TAIL, __MONO_INST_LIST_DEL, ++ __MONO_INST_LIST_SPLICE, MONO_INST_LIST_SPLICE, ++ MONO_INST_LIST_SPLICE_TAIL, MONO_INST_LIST_SPLICE_INIST, ++ MONO_INST_LIST_SPLICE_TAIL_INIT, mono_container_of, ++ MONO_INST_LIST_ENTRY, MONO_INST_LIST_FIRST_ENTRY, ++ MONO_INST_LIST_LAST_ENTRY, MONO_INST_LIST_FOR_EACH, ++ MONO_INST_LIST_FOR_EACH_PREV, MONO_INST_LIST_FOR_EACH_SAFE, ++ MONO_INST_LIST_FOR_EACH_PREV_SAFE, ++ MONO_INST_LIST_FOR_EACH_ENTRY, ++ MONO_INST_LIST_FOR_EACH_ENTRY_REVERSE, ++ MONO_INST_LIST_FOR_EACH_ENTRY_SAFE, ++ mono_inst_list_first, mono_inst_list_last, ++ mono_inst_list_next, mono_inst_list_prev): New instruction ++ list handling interfaces. ++ (MonoBasicBlock): Remove 'last_ins' and 'code', replace with ++ list head 'ins_list'. ++ (MonoInst): Replace next pointer with list head 'node'. ++ (MonoCallInst): Make 'out_args' a MonoInstList. ++ (MONO_INST_NEW_CALL): Explicitly init ->out_args. ++ (MonoCompile): Delete reverse_inst_list and ++ reverse_inst_list_len. ++ * mini-hppa.c (mono_arch_call_opcode, NEW_INS, ++ mono_arch_lowering_pass, mono_arch_local_regalloc, ++ mono_arch_output_basic_block, mono_arch_emit_prolog): ++ Convert to new instruction lists. ++ (insert_after_ins): Delete. ++ * inssel.brg (MONO_EMIT_NEW_BRANCH_BLOCK): Convert to new ++ instruction lists. ++ * mini-hppa.h (MONO_EMIT_NEW_COMPARE_BRANCH_BLOCK): Likewise. ++ * mini.c (NEW_BBLOCK, ADD_BBLOCK, CHECK_BBLOCK, ++ split_bblock, mono_add_ins_to_end, mono_emit_call_args, ++ mono_emulate_opcode, mono_emit_load_got_addr, ++ inline_method, mono_method_to_ir, mono_print_bb_code, ++ print_dfn, decompose_pass, nullify_basic_block, ++ replace_out_block_in_code, remove_block_if_useless, ++ merge_basic_blocks, move_basic_block_to_end, ++ try_unsigned_compare, optimize_branches, mono_print_code, ++ mini_select_instructions, remove_critical_edges): Likewise. ++ * mini-amd64.c (emit_sig_cookie, mono_arch_call_opcode, ++ peephole_pass_1, peephole_pass, mono_arch_lowering_pass, ++ mono_arch_output_basic_block, mono_arch_emit_prolog): ++ Likewise. ++ * mini-mips.c (mono_arch_call_opcode, peephole_pass, ++ NEW_INS, mono_arch_lowering_pass, mono_arch_local_regalloc, ++ mono_arch_output_basic_block): Likewise. ++ (inst_list_prepend, insert_after_ins): Delete. ++ * mini-mips.h (MONO_EMIT_NEW_BRANCH_NONZERO_LABEL, ++ MONO_EMIT_NEW_COMPARE_BRANCH_BLOCK): Convert to new ++ instruction lists. ++ * mini-x86.c (emit_sig_cookie, mono_arch_call_opcode, ++ peephole_pass_1, peephole_pass, mono_arch_output_basic_block, ++ mono_arch_emit_prolog): Likewise. ++ * cfold.c (mono_constant_fold): Likewise. ++ * liveness.c (visit_bb, mono_analyze_liveness, ++ optimize_initlocals): Likewise. ++ * ssapre.c (dump_code, process_bb, code_motion): Likewise. ++ * graph.c (mono_draw_code_cfg): Likewise. ++ * ssa.c (mono_ssa_rename_vars, mono_ssa_compute, ++ mono_ssa_remove, mono_ssa_avoid_copies, mono_ssa_create_def_use, ++ mono_ssa_cprop): Likewise. ++ * abcremoval (get_relations_from_previous_bb, process_block): ++ Likewise. ++ * local-propagation (mono_cprop_invalidate_values, ++ mono_local_cprop_bb): Likewise. ++ * mini-s390x.c (mono_arch_call_opcode, emit_sig_cookie, ++ peephole_pass, mono_arch_output_basic_block, ++ mono_arch_emit_prolog): Likewise. ++ * mini-arm.c (mono_arch_call_opcode, peephole_pass, ++ NEW_INS, mono_arch_lowering_pass, mono_arch_local_regalloc, ++ mono_arch_emit_prolog): Likewise. ++ (insert_after_ins): Delete. ++ * aliasing.c (print_code_with_aliasing_information, ++ mono_build_aliasing_information, mono_aliasing_deadce): ++ Convert to new instruction lists. ++ * mini-ia64.c (emit_sig_cookie, mono_arch_call_opcode, ++ peephole_pass, NEW_INS, mono_arch_lowering_pass, ++ mono_arch_local_regalloc, mono_arch_output_basic_block): ++ Likewise. ++ (insert_after_ins): Delete. ++ * mini-sparc.c (emit_sig_cookie, mono_arch_call_opcode, ++ peephole_pass, mono_arch_output_basic_block): Convert to ++ new instruction lists. ++ * mini-codegen (InstList, inst_list_prepend, ++ insert_after_ins): Delete. ++ (insert_before_ins, get_register_force_spilling, ++ get_register_spilling, free_up_ireg, free_up_reg, ++ create_copy_ins, create_spilled_store, alloc_int_reg, ++ alloc_float_reg, alloc_reg, mono_local_regalloc): Convert ++ to new instruction lists. ++ * mini-ppc.c (mono_arch_call_opcode, peephole_pass, ++ NEW_INS, mono_arch_lowering_pass, mono_arch_local_regalloc, ++ mono_arch_output_basic_block, mono_arch_emit_prolog): Likewise. ++ (insert_after_ins): Delete. ++ * mini-alpha.c (NEW_INS, peephole_pass, mono_arch_lowering_pass, ++ mono_arch_local_regalloc, mono_arch_output_basic_block, ++ mono_arch_call_opcode): Convert to new instruction lists. ++ (insert_after_ins): Delete. ++ * mini-s390.c (mono_arch_call_opcode, emit_sig_cookie, ++ peephole_pass, mono_arch_output_basic_block, ++ mono_arch_emit_prolog): Convert to new instruction lists. ++ ++2008-01-11 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Use a 4 byte load in OP_CHECK_THIS. ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Use a byte load in CHECK_THIS. ++ Fixes #353182. ++ ++ * Makefile.am (version.h): Make this work with non-bash shells. ++ ++2008-01-10 Zoltan Varga ++ ++ * mini.c (handle_delegate_ctor): Optimize away setting of NULL target. ++ ++2008-01-08 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix possible reading of invalid memory in ++ the InitializeArray optimization. ++ ++2008-01-06 Zoltan Varga ++ ++ * mini.c driver.c: Don't include os/gc_wrapper.h. ++ ++2008-01-05 Zoltan Varga ++ ++ * mini.c (print_jit_stats): Print GC statistics if available. ++ ++2008-01-04 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_allocate_vars): Align argument storage offsets to 8. ++ ++2007-12-29 Zoltan Varga ++ ++ * mini-ppc.c (mono_arch_get_delegate_invoke_impl): Fix flushing of icache. ++ ++2007-12-26 Zoltan Varga ++ ++ * mini.c (mini_init): Move the setting of GC_stackbottom to mono_gc_base_init (). ++ ++ * mini.c (mini_init): Call mono_gc_base_init () instead of MONO_GC_PRE_INIT (). ++ ++ * driver.c (mono_main): Ditto. ++ ++2007-12-23 Zoltan Varga ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Use mono_get_delegate_invoke (). ++ ++ * aot-compiler.c (emit_klass_info): Avoid emitting info if one of the methods ++ in the vtable can't be encoded. ++ (compile_method): Ditto. ++ ++2007-12-21 Zoltan Varga ++ ++ * mini.c (setup_jit_tls_data): Use the MONO_ARCH_INIT_TOP_LMF_ENTRY macro if ++ defined. ++ ++ * mini-amd64.h mini-amd64.c exceptions-amd64.c tramp-amd64.c: Rename lmf->ebp to ++ lmf->rbp. ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Fix the detection of whenever ++ the top LMF entry belongs to the current method. ++ ++ * mini.c: Update after renaming of mono_thread_get_pending_exception (). ++ ++2007-12-20 Zoltan Varga ++ ++ * tramp-ia64.c (mono_arch_create_trampoline_code): Fix a warning. ++ ++ * tramp-ia64.c (mono_arch_create_trampoline_code): Ditto. ++ ++ * tramp-sparc.c (mono_arch_create_trampoline_code): Check for thread interruption. ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code): Ditto. ++ ++ * tramp-x86.c (mono_arch_create_trampoline_code): Check for thread interruption. ++ ++ * cpu-amd64.md mini-amd64.h mini-amd64.c inssel-amd64.brg: Add ulong->double ++ implementation. ++ ++ * basic-float.cs: Add an ulong->double cast test. ++ ++2007-12-15 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix a warning. ++ ++2007-12-14 Zoltan Varga ++ ++ * mini-ops.h: Add OP_SWITCH. ++ ++ * mini.c graph.c ssa.c aliasing.c mini-.c inssel-.brg: Avoid using ++ CEE_SWITCH in back-end code, use OP_SWITCH instead. ++ ++2007-12-11 Geoff Norton ++ ++ * mini-s390x.c: Minor change to the MAX() define to allow ++ it to compile with other gcc versions. ++ ++2007-12-11 Geoff Norton ++ ++ * cpu-s390x.md: ++ * mini-s390x.c: Implement sext_i4 to fix the build on s390x ++ ++2007-12-11 Rodrigo Kumpera ++ ++ exceptions-arm.c (mono_arch_get_restore_context): Restore ++ the frame pointer. ++ ++ exceptions-arm.c (throw_exception): Save the frame pointer. ++ This is a partial fix for #323747. Only the client side is ++ fixed. ++ ++2007-12-11 Rodrigo Kumpera ++ ++ * mini.c (mono_method_to_ir): Verbose message in CEE_NEWOBJ ++ was using an unrelated variable to log the class which ++ needed the cctor to be called. This was crashing on arm. ++ ++2007-12-09 Robert Jordan ++ ++ * mini-x86.c (mono_arch_emit_epilog): ++ Consider all kinds of 64-bit types. Fixes #323114. ++ ++2007-12-08 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code): Clean up the code a bit. ++ ++2007-12-07 Zoltan Varga ++ ++ * mini-amd64.c (peephole_pass): Add a missing instruction check. ++ ++Fri Dec 7 22:08:23 CET 2007 Paolo Molaro ++ ++ * mini.c: run type ctor before allocating an object, not only ++ when running it's constructor method (fixes at least part of bug #342507). ++ ++2007-12-07 Zoltan Varga ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Fix a warning. ++ ++ * mini-trampolines.c (mono_generic_class_init_trampoline): Remove a debug printf. ++ * mini.h mini-amd64.c mini-x86.c: Get rid of the mono_arch_find_vtable () ++ function. ++ ++ * tramp-x86.c tramp-amd64.c mini-trampolines.c: Pass the vtable argument to ++ mono_generic_class_init_trampoline () the same as it is done with the other ++ trampolines. ++ ++ * mini-arm.h mini-arm.c tramp-arm.c inssel-arm.brg cpu-arm.md ++ aot-runtime.c aot-compiler.c: Implement AOT support. ++ ++2007-12-07 Mark Probst ++ ++ * mini-trampolines.c (mono_generic_class_init_trampoline): Fixed ++ build for archs which don't have the vtable trampoline defined ++ yet. ++ ++2007-12-07 Zoltan Varga ++ ++ * tramp-x86.c (mono_arch_create_trampoline_code): Fix the build. ++ ++ * tramp-ppc.c (mono_arch_create_trampoline_code): Use the new helper function. ++ ++ * mini-trampolines.c (mono_get_trampoline_func): New helper function. ++ ++ * tramp-.c: Use the new helper function. ++ ++2007-12-07 Mark Probst ++ ++ * inssel.brg: Added a pattern for the OP_TRAMPCALL_VTABLE ++ trampoline call, which takes a vtable argument. ++ ++ * graph.c, mini-ops.h, local-propagation.c, aliasing.c: Treat ++ OP_TRAMPCALL_VTABLEs like other calls. ++ ++ * mini-amd64.c, mini-amd64.h, mini-x86.c, mini-x86.h: Designated a ++ register to hold the vtable argument to the OP_TRAMPCALL_VTABLE ++ call. Implemented a support function which fetches the vtable ++ from a register set. ++ ++ * mini.c, mini.h, tramp-amd64.c, tramp-x86.c, mini-trampolines.c: ++ Implemented a generic class init trampoline, using the ++ OP_TRAMPCALL_VTABLE opcode. ++ ++ * mini.c: Implemented static field access when sharing generic ++ code. This implies initing the class using the new ++ OP_TRAMPCALL_VTABLE call. ++ ++2007-12-07 Mark Probst ++ ++ * mini.c: Don't compile methods with sharing enabled if their ++ classes are disabled for sharing. ++ ++2007-12-06 Zoltan Varga ++ ++ * inssel.brg: Add a missing sign extension to the GETCHR and array access ++ opcodes. Fixes #346563. ++ ++ * objects.cs: Add a new test. ++ ++ * aot-compiler.c (emit_method_code): Put back an #ifdef which is needed. ++ ++ * mini-.h mini.c aot-compiler.c aot-runtime.c: Get rid of the ++ HAVE_PIC_AOT define and use AOT_SUPPORTED instead. ++ ++2007-12-06 Zoltan Varga ++ ++ * mini-arm.h mini-arm.c: Add support for the common vtable trampoline. ++ ++2007-12-03 Zoltan Varga ++ ++ * mini-arm.c (mono_arch_emit_exceptions): Avoid uninitialized memory in the ++ code stream. ++ ++2007-12-02 Zoltan Varga ++ ++ * patch-info.h (PATCH_INFO): Add DELEGATE_TRAMPOLINE. ++ ++ * mini.c aot-compiler.c aot-runtime.c: Implement the delegate creation ++ optimization in the AOT case. ++ ++2007-11-30 Zoltan Varga ++ ++ * aot-runtime (mono_aot_get_method_from_vt_slot): Add support for multi-byte method ref encodings. ++ ++ * aot-runtime.c (decode_klass_ref): Implement decoding of generic instances. ++ ++ * aot-compiler.c (encode_klass_ref): Implement proper encoding of generic instances. ++ ++ * mini.c (mono_method_to_ir): Optimize the common ldftn+create delegate combination. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Add some code to handle the case when the delegate ++ is created by the inlined delegate ctor. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Unify div/rem code and handle the case when sreg2 is EDX. ++ ++ * mini.c (mono_jit_compile_method_inner): Replace calls to delegate invoke with the trampoline here too. ++ ++2007-11-29 Zoltan Varga ++ ++ * cpu-x86.md: Fix the length of ckfinite. ++ ++2007-11-28 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Unify div/rem code and handle the case when sreg2 is EDX. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Clean up the fp stack properly in CKFINITE. ++ (mono_arch_output_basic_block): Get rid of unused last_ins and last_offset. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Add some micro optimizations. ++ ++ * mini-x86.c inssel-x86.brg cpu-x86.md: Move the implementation of the ++ OP_START_HANDLER/OP_ENDFINALLY/OP_ENDFILTER opcodes to mini-x86.c. ++ ++2007-11-28 Martin Baulig ++ ++ * mini-x86.c ++ (mono_arch_get_delegate_invoke_impl): Call mono_debug_add_delegate_trampoline() ++ after creating the trampoline. ++ ++2007-11-27 Zoltan Varga ++ ++ * aot-runtime.c (load_aot_module): Check runtime version if needed. ++ ++ * aot-compiler.c: Add bind-to-runtime-version for producing AOT files which only load into a runtime with ++ the same version. ++ ++ * generic-sharing.c (mono_helper_get_rgctx_other_ptr): Change the signature to take the calling class ++ instead of the calling method to help AOT. ++ ++ * mini.c (get_runtime_generic_context_other_ptr): Update after the change. ++ ++2007-11-26 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_init_vtable): Simplify this if MONO_ARCH_COMMON_VTABLE_TRAMPOLINE ++ is defined. ++ ++2007-11-23 Zoltan Varga ++ ++ * aot-compiler.c (emit_class_name_table): Properly encode generic class names. ++ ++ * aot-compiler.c (compile_method): Correct check for generic method definitions. ++ (encode_method_ref): No need to handle generic method definitions specially. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump this. ++ ++ * aot-runtime.c (decode_klass_ref): Clean this up and rename from ++ decode_klass_info. ++ ++ * aot-compiler.c (encode_klass_ref): Clean this up and rename from ++ encode_klass_info. ++ (compile_method): Enable generic sharing. ++ ++2007-11-22 Zoltan Varga ++ ++ * mini.c (get_runtime_generic_context_other_ptr): Disable AOT here. ++ (mini_method_compile): Add preliminary support for AOTing shared generic code. ++ ++ * aot-compiler.c (compile_method): Add preliminary support for AOTing shared ++ generic code. ++ ++ * mini-trampolines.c: Fix a warning. ++ ++ * mini.c (get_runtime_generic_context_other_ptr): Use NEW_METHODCONST instead of ++ NEW_PCONST. ++ (mono_method_to_ir): Use NEW_DOMAINCONST in one place. ++ (generic_class_is_reference_type): Remove unused function. ++ ++ * mini-trampolines.c (mono_magic_trampoline): Avoid loading metadata if possible ++ in the generic vtable trampoline case. ++ ++ * aot-runtime.c (mono_aot_init_vtable): Use the generic vtable trampoline. ++ ++ * aot-runtime.c (mono_aot_get_method_from_vt_slot): New helper function to ++ return an AOT method based on a vtable slot. ++ ++ * aot-compiler.c (compile_method): Avoid AOTing synchronized methods for now. ++ ++ * mini.c (mini_get_vtable_trampoline): Export this. ++ ++2007-11-22 Martin Baulig ++ ++ * debug-debugger.h ++ (MonoDebuggerInfo): Move `debugger_version' up. ++ ++2007-11-22 Martin Baulig ++ ++ * mini-amd64.c ++ (mono_arch_get_delegate_invoke_impl): Call mono_debug_add_delegate_trampoline(). ++ ++ * mini-trampolines.c ++ (mono_delegate_trampoline): Call mono_debugger_trampoline_compiled() ++ after compiling the method. ++ ++2007-11-20 Martin Baulig ++ ++ * debug-mini.c ++ (mono_debugger_insert_method_breakpoint): Moved into mono-debug-debugger.c. ++ (mono_debugger_remove_breakpoint): Likewise. ++ (mono_debugger_check_breakpoints): Likewise. ++ ++ * debug-debugger.c: Implement the new breakpoint interface here. ++ ++2007-11-18 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Unify the implementation of ++ CEE_CONV_I1/SEXT_I1 and I2 since they are the same. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Ditto. ++ ++2007-11-17 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix a typo. ++ ++ * mini-x86.c (mono_arch_get_inst_for_method): Remove code which is now in ++ mini.c. ++ ++ * mini-ia64.c (mono_arch_get_inst_for_method): Remove code which is now in ++ mini.c. ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Disable fp elimination for methods ++ returning a vtype in a register. ++ ++ * mini.c (mini_get_inst_for_method): Move the handling of the atomic operations ++ here from the arch specific code. ++ ++ * mini-amd64.c (mono_arch_get_inst_for_method): Remove code which is now in ++ mini.c. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Add some micro optimizations. ++ (mono_arch_emit_prolog): Increment maximum prolog size. ++ ++ * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Move the implementation of the ++ START_HANDLER/ENDFINALLY/ENDFILTER opcodes to mini-amd64.c. ++ ++ * mini-x86.c (get_call_info): Receive a MonoCompile instead of a ++ MonoGenericSharingContext. ++ ++ * mini-ia64.c (get_call_info): Receive a MonoCompile instead of a ++ MonoGenericSharingContext. Allocate memory from the cfg mempool. ++ ++2007-11-15 Mark Probst ++ ++ * mini.c, mini.h, generic-sharing.c: Functions for producing code ++ which extract fields out of the runtime generic context. Full ++ sharing of the NEWARR opcode. ++ ++Thu Nov 15 14:20:21 CET 2007 Paolo Molaro ++ ++ * abcremoval.c, mini.c, ssa.c, ssapre.c: updated to implement ++ --enable-minimal=ssa. ++ ++2007-11-13 Zoltan Varga ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Update after ++ mono_marshal_get_delegate_invoke () signature change. ++ ++2007-11-13 Mark Probst ++ ++ * mini.c: Removed the shared context in favor of the generic ++ sharing context. Allocate the MonoJitInfo structure with room for ++ the generic sharing context if it's needed. ++ ++ * mini.h: Remove MonoGenericSharingContext declaration. It's in ++ domain-internals.h now. ++ ++ * mini-x86.c: Pass the generic sharing context to get_call_info (). ++ ++ * generic-sharing.c: Several changes for working without a shared ++ context and instead operating on open types instead. ++ ++2007-11-12 David S. Miller ++ ++ * inssel-sparc.brg: Fix double instruction emit. ++ ++2007-11-12 Zoltan Varga ++ ++ * mini.c (mono_jit_runtime_invoke): Avoid trying to compile the Array ++ Get/Set/Address methods. ++ ++ * mini.c debug-debugger.c mini-trampolines.c: Update after ++ mono_marshal_get_delegate_invoke signature change. ++ ++2007-11-12 Rodrigo Kumpera ++ ++ * cpu-arm.md: Increase the max size of OP_THROW to 24 bytes. ++ This can happens with dynamic methods. Fixes the other bug in #322722. ++ ++2007-11-12 Rodrigo Kumpera ++ ++ * tramp-arm.c (mono_arch_patch_callsite): Support patching ++ BX call sequence. ++ ++ * mini-arm.c (arm_patch): Implement patching of BX call ++ sequence. Fixes one of the bugs in #322722. ++ ++2007-11-03 David S. Miller ++ ++ * mini-sparc.c (mono_arch_flush_icache): Make more efficient ++ under Linux. We only need to flush every 32-byte cache line. ++ ++2007-11-07 Massimiliano Mantione ++ ++ * mini.c: ++ move_basic_block_to_end: Add branches when needed, eventually creating ++ a new BB. ++ optimize_branches: added a parameter that tells if it's ok to create ++ new BBs (doing is "df_visit" has been called is (IMHO) a nightmare), ++ and avoid calling move_basic_block_to_end when it's not ok. ++ Fixes bug 318677. ++ ++2007-11-07 Mark Probst ++ ++ * mini.c: Abort inlining call to InitializeArray if something ++ looks wrong. Let the icall handle it, which now has proper safety ++ checks. ++ ++2007-11-05 Rodrigo Kumpera ++ ++ * mini.c (mono_spill_call): add support for soft-float. ++ ++ * mini.c (mono_method_to_ir): add support for soft-float ++ to inlined functions that return float. ++ ++ * mini.c (mono_method_to_ir): add support for soft-float ++ to cee_stsfld opcode on float fields. ++ ++2007-11-05 Geoff Norton ++ ++ * mini-x86.h: Fix the structure access for X86 Leopard. ++ ++ ++2007-11-05 Martin Baulig ++ ++ * mini-trampolines.c ++ (mono_magic_trampoline): Call mono_debugger_trampoline_compiled() ++ after compiling the method to notify the debugger. ++ ++2007-11-05 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Use the new breakpoint tables. ++ ++2007-11-02 Zoltan Varga ++ ++ * mini-sparc.c (EMIT_COND_SYSTEM_EXCEPTION_GENERAL): Applied patch from ++ David Miller . Allow larger offsets in branches. ++ ++2007-11-01 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Check the domain as well for ++ native-to-managed wrappers. ++ ++2007-11-01 Geoff Norton ++ ++ * mini-ppc.h, mini-x86.h: Handle Leopards renaming of some structure ++ members. ++ ++Wed Oct 31 20:23:14 CET 2007 Paolo Molaro ++ ++ * mini.c, mini-x86.c: when getting back from unmanaged code ++ to managed via a marshaled delegate we also need to set the ++ right domain. ++ ++Wed Oct 31 19:53:33 CET 2007 Paolo Molaro ++ ++ * mini-amd64.c, mini-amd64.h, tramp-amd64.c: breakpoint table support ++ for amd64. ++ ++Wed Oct 31 19:29:30 CET 2007 Paolo Molaro ++ ++ * mini.c, mini.h, mini-x86, tramp-x86.c, mini-x86.h: added API to ++ let the debugger or other external agents to tell the JIT when ++ a sw breakpoint has been inserted in the code that the JIT needs ++ to be able to inspect. ++ ++2007-10-31 Martin Baulig ++ ++ * debug-debugger.h ++ (MonoDebuggerInfo): Remove `runtime_class_init'. ++ ++2007-10-30 Martin Baulig ++ ++ * debug-mini.h ++ (mono_debugger_thread_created): Added `MonoThread *' argument. ++ (mono_debugger_extended_notification): New public method. ++ (mono_debugger_trampoline_compiled): New public method. ++ ++ * debug-mini.c ++ (MonoDebuggerThreadInfo): Added `thread' and ++ `extended_notifications' fields. ++ ++ * debug-debugger.c ++ (debugger_executable_code_buffer): New static variable. ++ ++ * debug-debugger.h ++ (MonoDebuggerInfo): Added `executable_code_buffer', ++ `executable_code_buffer_size', `breakpoint_info_area', ++ `breakpoint_table' and `breakpoint_table_size'. ++ ++2007-10-26 Rodrigo Kumpera ++ ++ * mini-arm.c (mono_arch_build_imt_thunk): Take the advantage ++ that IP either is an unused value or the vtable pointer. IMT ++ calls use vtable + offset now. Reduced by almost half the size ++ of IMT entries. ++ ++2007-10-26 Jonathan Chambers ++ ++ * mini-amd64.c: Begin Win64 port. Use AMD64_ARG_REG# ++ defines to access param registers. Replace long usage with ++ gsize as sizeof(long) != sizeof(void*) on Win64. ++ ++ * mini-amd64.h: Add %rdi and %rsi to MonoLMF structure ++ on Win64. Fix intrinsic, use _AddressOfReturnAddress ++ instead of non-existant _GetAddressOfReturnAddress. ++ ++ * tramp-amd64.c: Use AMD64_ARG_REG# defines to access ++ param registers. Save/restore %rdi and %rsi in MonoLMF. ++ ++ * exceptions-amd64.c: Use AMD64_ARG_REG# defines to access ++ param registers. Modify (throw_exception) signature to take ++ %rdi and %rsi on Win64. ++ ++ Code is contributed under MIT/X11 license. ++ ++Thu Oct 25 23:06:58 CEST 2007 Paolo Molaro ++ ++ * helpers.c: unlink debugging output files. ++ ++2007-10-25 Zoltan Varga ++ ++ * mini.c: Move mono_create_ftnptr () to object.c. ++ ++2007-10-24 Rodrigo Kumpera ++ ++ * helpers.c (mono_disassemble_code): MonoCompile parameter is now ++ optional. This function can now be used to disassemble code generated ++ outside the JIT such as trampolines and IMT thunks. ++ ++ * mini-arm.h: defined MONO_ARCH_HAVE_IMT. ++ ++ * mini-arm.c (decode_vcall_slot_from_ldr): added, extract the ++ vtable pointer from a ldr instruction. ++ ++ * mini-arm.c (mono_arch_get_vcall_slot_addr): support the ++ new IMT call sequence. ++ ++ * mini-arm.c (mono_arch_output_basic_block): emit the IMT ++ call sequence for interface invocations. ++ ++ * mini-arm.c (mono_arch_emit_imt_argument): added, required ++ for imt support. This function is empty since IMT on ARM requires no ++ special handling on the IR side. ++ ++ * mini-arm.c (mono_arch_find_imt_method): added, required for ++ imt support. ++ ++ * mini-arm.c (mono_arch_find_this_argument): added, required ++ for imt support. ++ ++ * mini-arm.c (arm_emit_value_and_patch_ldr): added, patches ++ a ldr instruction to load a value stored in the code stream. ++ ++ * mini-arm.c (mono_arch_build_imt_thunk):added, required ++ for imt support. ++ ++ ++2007-10-23 Zoltan Varga ++ ++ * mini.c (mini_init): Install the jump trampoline callback. ++ ++Tue Oct 23 17:07:52 CEST 2007 Paolo Molaro ++ ++ * mini-trampolines.c: handle synchronized methods with the common ++ vtable trampoline (bug #335601). ++ ++2007-10-17 Zoltan Varga ++ ++ * mini-ia64.h mini-amd64.c: Add support for the common vtable trampoline. ++ ++ * inssel.brg (mini_emit_virtual_call): Fix the computation of ins->inst_offset on ++ 64 bit platforms. ++ ++ * mini-ia64.h mini-ia64.c: Add support for IMT. ++ ++ * mini-x86.c (mono_arch_emit_prolog): Increase the size allocated for the ++ prolog. Fixes #331958. ++ ++2007-10-15 Zoltan Varga ++ ++ * mini-sparc.h mini-sparc.c: Add support for the common vtable trampoline. ++ ++Mon Oct 15 11:18:52 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c, mini-ppc.h: ppc support for the common vtable ++ trampoline. ++ ++Mon Oct 15 10:41:27 CEST 2007 Paolo Molaro ++ ++ * mini-amd64.c, mini-amd64.h: amd64 support for the common vtable ++ trampoline. ++ ++Mon Oct 15 10:39:26 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c, mini-x86.h: x86 support for the common vtable ++ trampoline. ++ ++Mon Oct 15 10:37:15 CEST 2007 Paolo Molaro ++ ++ * mini-trampolines.c: changed the magic rampoline to understand ++ the common vtable trampoline method: the method to invoke is ++ determined by the vtable displacement of the call. ++ ++Mon Oct 15 10:35:12 CEST 2007 Paolo Molaro ++ ++ * mini.c, mini.h: register the common vtable trampoline if the ++ architecture supports it. ++ ++Mon Oct 15 09:50:52 CEST 2007 Paolo Molaro ++ ++ * cpu-amd64.md: use the correct max length for tls_get. ++ ++2007-10-14 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Use mini_get_class in CEE_LDELEM_ANY and ++ CEE_STELEM_ANY. Fixes #333696. ++ ++Thu Oct 11 18:04:29 CEST 2007 Paolo Molaro ++ ++ * exceptions-x86.c: provide more graceful handling of the case where ++ we followed a bogus function pointer from managed code (bug #332866). ++ ++2007-10-11 Mark Probst ++ ++ * mini.h, mini.c: Introduced the MonoGenericSharingContext, which ++ replaces the generic_shared flag and will carry more information ++ in the future. ++ ++ * generic-sharing.c: Added mini_type_stack_size() which allows ++ allows open types if given a generic sharing context. ++ mini_get_basic_type_from_generic() takes a ++ MonoGenericSharingContext* instead of a MonoCompile* now. ++ ++ * mini-alpha.c, mini-amd64.c, mini-arm.c, mini-hppa.c, ++ mini-ia64.c, mini-mips.c, mini-ppc.c, mini-s390.c, mini-s390x.c, ++ mini-sparc.c, mini-x86.c: Trivial changes required by the two ++ changes above. Just passing arguments through to the right ++ places. ++ ++Wed Oct 10 19:44:42 CEST 2007 Paolo Molaro ++ ++ * mini-arm.c: unify the call emission to emit_code_seq(). ++ ++Wed Oct 10 13:05:46 CEST 2007 Paolo Molaro ++ ++ * tramp-arm.c: reduced the trampoline size. ++ ++2007-10-10 Mark Probst ++ ++ * generic-sharing.c, mini.h, mini-amd64.c, mini-x86.c: Moved type ++ variable handling out of arch-specific code. ++ ++Wed Oct 10 10:49:28 CEST 2007 Paolo Molaro ++ ++ * mini-arm.c: implemented fast delegate dispatch. ++ ++2007-10-09 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Add more checks to ensure ++ that fp elimination is turned off if the space required by locals is too ++ big. Fixes #331958. ++ ++Tue Oct 9 21:01:03 CEST 2007 Paolo Molaro ++ ++ * Makefile.am, mini-arm.c, mini-arm.h, tramp-arm.c: ported ++ ARM to the new style trampoline. ++ ++2007-10-09 Zoltan Varga ++ ++ * tramp-amd64.c: Rework the specific trampoline code to make it smaller. ++ ++ * mini-amd64.h mini-amd64.c: Export amd64_patch as mono_amd64_patch. ++ ++2007-10-09 Martin Baulig ++ ++ * debug-debugger.h ++ (MonoDebuggerMetadataInfo): Added `field_info_type_offset' and ++ `field_info_offset_offset'. ++ ++Tue Oct 9 09:47:51 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c, mini-ppc.h, mini-ops.h, inssel-ppc.brg, cpu-g4.md: ++ removed more internal usage of the r11 register and made it available ++ to the register allocator. ++ ++2007-10-08 Mark Probst ++ ++ * mini.c, mini-amd64.c, mini-x86.c: Allow open generic contexts ++ when sharing generics and treat type variables as references. ++ ++Mon Oct 8 10:55:38 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c: started removing the internal uses of register r11 ++ to eventually allow the register allocator to manage it as an ++ additional available register. ++ ++Mon Oct 8 14:25:39 CEST 2007 Paolo Molaro ++ ++ * tramp-amd64.c: fixed memory corruption in the trampoline generation. ++ ++Mon Oct 8 12:06:33 CEST 2007 Paolo Molaro ++ ++ * tramp-ppc.c, tramp-x86.c: reduce the alignment requirements for ++ specific trampolines as they are not performance critical as a jump ++ target (maybe align as before only for AOT code?). This saves about ++ 200 KB of native code on x86 for monodevelop startup. ++ ++Mon Oct 8 10:04:40 CEST 2007 Paolo Molaro ++ ++ * tramp-ppc.c: reduce the size of the trampolines, saves 160KB on ++ monodevelop startup. ++ ++2007-10-06 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_get_vcall_slot_addr): Allow signed displacements. ++ ++ * mini-sparc.h mini-sparc.c: Implement IMT support. ++ ++ * tramp-sparc.c (mono_arch_create_trampoline_code): Rework the trampoline code so ++ its smaller and doesn't clobber sparc_g1. ++ ++ * mini-sparc.c (mono_arch_get_vcall_slot_addr): Update after trampoline changes. ++ ++Fri Oct 5 18:28:11 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c: optimized the size of the IMT thunks a bit. ++ ++Fri Oct 5 18:08:30 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c: implemented fast delegate invocation. ++ ++Fri Oct 5 00:01:05 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.h, mini-ppc.c: IMT support for the PPC architecture. ++ ++Thu Oct 4 22:04:49 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c, mini-ppc.h, tramp-ppc.c, Makefile.am: port the PPC ++ code to the new style trampoline in preparation for IMT support. ++ ++Thu Oct 4 19:01:59 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c, tramp-ppc.c: don't use r13 as it's used by the PPC EABI ++ systems already. This also reduces the specific trampiline sizes and ++ prepares for the use of r12 as the IMT identifier register. ++ ++Thu Oct 4 16:38:27 CEST 2007 Paolo Molaro ++ ++ * mini-mips.h: endianess fix (simplified from a patch by ++ Thomas Kunze , bug #323737). ++ ++Thu Oct 4 14:43:49 CEST 2007 Paolo Molaro ++ ++ * exceptions-ppc.c, mini-ppc.h: refactor to use macros ++ to access ucontext fields and enable netbsd support ++ (partially from Magnus Henoch ). ++ ++Thu Oct 4 12:35:27 CEST 2007 Paolo Molaro ++ ++ * genmdesc.pl: patch from Henryk Plötz to ++ use the preprocessor from the CPP env var if it is set. ++ ++Wed Oct 3 17:11:38 CEST 2007 Paolo Molaro ++ ++ * mini-trampolines.c: fixed an assertion and moved it earlier in the ++ code, before interface_offset gets used. ++ ++2007-10-02 Zoltan Varga ++ ++ * mini-trampolines.c (mono_convert_imt_slot_to_vtable_slot): Call ++ mono_class_setup_vtable () before accessing klass->vtable. ++ ++2007-10-01 Zoltan Varga ++ ++ * aot-compiler.c (get_plt_index): Rework the handling of wrappers to be not so ++ hackish. ++ ++Mon Oct 1 15:00:27 CEST 2007 Paolo Molaro ++ ++ * mini.c, mini-trampolines.c, mini.h: enable the lazy filling of the ++ IMT slots (this saves hundreds of KB of memory in programs like ++ IronPython and Monodevelop). ++ ++Mon Oct 1 14:44:19 CEST 2007 Paolo Molaro ++ ++ * mini.c: print the delegate counter. ++ ++Mon Oct 1 14:36:50 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c: make it easier to enable the debugging code for IMT ++ slots. ++ ++2007-09-28 Martin Baulig ++ ++ * debug-debugger.h ++ (MonoDebuggerMetadataInfo): Add `klass_image_offset', ++ `mono_method_klass_offset' and `mono_method_token_offset'. ++ ++2007-09-20 Mark Probst ++ ++ * mini.c: First generics sharing implementation. Can only share ++ in very simple cases. If sharing doesn't work it falls back to ++ dedicated compilation. ++ ++ * mini.h: Flag in MonoCompile to specify whether generic ++ compilation is shared. Flags enum for marking which generic inst ++ of a context is used. Prototypes for helper functions. ++ ++ * generic-sharing.c: Helper functions for generic method sharing. ++ ++ * optflags-def.h: Optimization flag (gshared) for enabling generic ++ method sharing added. ++ ++ * Makefile.am: generic-sharing.c added. ++ ++2007-09-19 Daniel Nauck ++ ++ * mini.c (mono_thread_abort): fixed typo in r86014. It should be '==' instead of '!='. ++ ++2007-09-19 Massimiliano Mantione ++ * mini.c (mono_thread_abort): Correctly handle ThreadAbortException, ++ fixes bug 325507. ++ ++2007-09-19 Martin Baulig ++ ++ * mini.c (mini_cleanup): Only call mono_debugger_cleanup() here; ++ mono_debug_cleanup() is now part of mono_cleanup(). ++ ++2007-09-18 Zoltan Varga ++ ++ * driver.c (mono_main): Fix a warning. ++ ++2007-09-17 Zoltan Varga ++ ++ * aot-compiler.c: Optimize various parts when processing large assemblies. ++ Fixes ##325568. ++ ++ * mini.c (mono_patch_info_hash): Improve hash function. ++ ++2007-09-14 Jonathan Chambers ++ ++ * mini-exceptions.c: Add HAVE_UNISTD_H check around include. ++ ++ Code is contributed under MIT/X11 license. ++ ++2007-09-14 Zoltan Varga ++ ++ * mini.c (mini_init): Fix a leak. ++ ++ * debug-mini.c (mono_debug_free_method_jit_info): Fix a leak. ++ ++Fri Sep 14 12:53:13 CEST 2007 Paolo Molaro ++ ++ * mini.c: redirect string.InternalAllocStr() to the managed allocator. ++ ++2007-09-14 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_find_imt_method): Add support for AOT code. ++ ++2007-09-13 Zoltan Varga ++ ++ * Makefile.am generics-variant-types.2.il generics.cs: Add some generics ++ variance tests. ++ ++ * inssel.brg: Reorganize the isinst/castclass code to reduce code duplication. ++ ++ * mini.c (handle_alloc): Enable managed allocators in AOT code. ++ ++ * aot-compiler.c (encode_patch): Add support for MONO_WRAPPER_ALLOC. ++ ++ * aot-runtime.c (decode_patch_info): Ditto. ++ ++2007-09-12 Jonathan Chambers ++ ++ * mini-x86.c (mono_arch_get_delegate_invoke_impl): Implement ++ static case. Cache delegates in architecture specific code, ++ based on number of parameters. ++ ++ * mini-amd64.c (mono_arch_get_delegate_invoke_impl): Cache delegates ++ in architecture specific code, based on number of parameters. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Architecture specific ++ caching happen in architecture specific code now. ++ ++ Code is contributed under MIT/X11 license. ++ ++2007-09-12 Jonathan Chambers ++ ++ * mini.h, mini.c, mini-x86.c, mini-amd64.c, mini-hppa.c, mini-mips.c, ++ mini-s390x.c, mini-arm.c, mini-ia64.c, mini-sparc.c, mini-ppc.c, mini-alpha.c, ++ mini-s390.c: Add mono_arch_init and mono_arch_cleanup methods. ++ ++ Code is contributed under MIT/X11 license. ++ ++2007-05-15 Massimiliano Mantione ++ * mini.c: (mono_thread_abort) Fixed bug #82416. ++ ++Tue Sep 11 16:15:53 CEST 2007 Paolo Molaro ++ ++ * mini.: hook the new managed GC allocation feature into the JIT. ++ ++Tue Sep 11 16:14:16 CEST 2007 Paolo Molaro ++ ++ * mini.c: implementation for the new runtime tls opcode. ++ ++2007-09-11 Martin Baulig ++ ++ * debug-debugger.h ++ (MonoDebuggerMetadataInfo): Add `mono_method_flags_offset' and ++ `mono_method_inflated_offset'. ++ ++2007-09-07 Zoltan Varga ++ ++ * driver.c mini.h mini.c: Add a new devel command line option for injecting ++ async exceptions into a method. ++ ++ * mini-amd64.h mini-amd64.c: Implement injecting of async exceptions for the ++ purpose of testing whenever the unwinder works at every instruction. ++ ++Thu Sep 6 12:42:14 CEST 2007 Paolo Molaro ++ ++ * mini.c: check accessibility of method used in ldftn (fixes ++ bug #82635). ++ ++2007-09-04 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix a warning. ++ ++ * inssel.brg: Fix a warning. ++ ++2007-09-03 Martin Baulig ++ ++ * debug-debugger.c: `MONO_DEBUGGER_EVENT_INITIALIZE_MANAGED_CODE' ++ now takes the `main_method' as argument. ++ ++2007-09-02 Zoltan Varga ++ ++ * cpu-sparc.md (endfilter): Add missing src1:i argument. ++ ++2007-08-30 Jonathan Chambers ++ ++ * driver.c: include the cil-coff.h header on Windows. ++ ++ Code is contributed under MIT/X11 license. ++ ++Thu Aug 30 16:17:23 CEST 2007 Paolo Molaro ++ ++ * mini.c, driver.c: don't include the cil-coff.h header. ++ ++Thu Aug 30 14:50:53 CEST 2007 Paolo Molaro ++ ++ * mini.c: flag places that needs fixes fo soft-float support. ++ ++Wed Aug 29 18:26:20 CEST 2007 Paolo Molaro ++ ++ * mini.h, inssel-float.brg: fix soft-float constant loads on big ++ endian systems (partially from Dean Jenkins, bug #81924). ++ ++2007-08-28 Mark Probst ++ ++ * mini.c (check_linkdemand): Remove embedded reference object in ++ call to LinkDemandSecurityException. ++ (mono_jit_compile_method_inner): Call LinkDemandSecurityException ++ with an IntPtr instead of a reference object. ++ ++2007-08-28 Zoltan Varga ++ ++ * mini.c (handle_initobj): Handle alignment properly. ++ ++ * inssel.brg (mini_emit_memset): Ditto. ++ ++ * inssel.brg (mini_emit_memcpy): Ditto. ++ ++ * inssel-sparc.brg: Ditto. ++ ++ * mini.h mini.c inssel-*.brg: Pass alignment information to OP_MEMCPY/MEMSET. ++ ++2007-08-26 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Skip the first frame for ++ exceptions raised in unmanaged code. Fixes part of #82594. ++ ++2007-08-24 Mark Probst ++ ++ * mini.c (mono_method_to_ir), declsec.c ++ (mono_declsec_linkdemand_aptc): Fixed custom attr leaks. ++ ++2007-08-22 Martin Baulig ++ ++ * debug-mini.h ++ (MonoDebuggerThreadInfo): New typedef. ++ (mono_debugger_thread_table): New global variable. ++ (mono_debugger_thread_created): New public function. ++ (mono_debugger_thread_cleanup): New public function. ++ ++ * debug-debugger.h ++ (MonoDebuggerInfo): ++ - removed `get_current_thread' and `lookup_assembly'. ++ - removed `data_table'. ++ - added `thread_table'. ++ ++ * mini.c ++ (mono_thread_start_cb): Call mono_debugger_thread_created(). ++ (mono_thread_attach_cb): Likewise. ++ (mini_thread_cleanup): Call mono_debugger_thread_cleanup(). ++ (mini_cleanup): Move mono_debug_cleanup() down, after free'ing the ++ initial domain. ++ ++ * driver.c (mono_main): Move mono_debug_init() up, before calling ++ mini_init(); mono_debug_init_1() and mono_debug_init_2() are gone. ++ ++Tue Aug 21 16:40:04 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c, inssel-x86.brg: group multiple stack adjustments ++ together when passing several arguments of type double (gives a small ++ speedup and saves a few bytes of generated code). ++ ++2007-08-20 Jb Evain ++ ++ * mini.c (mono_method_to_ir): fix leak on InvalidProgramException. ++ ++2007-08-20 Jb Evain ++ ++ * mini.c (mono_method_to_ir): throw MethodAccessException ++ and FieldAccessException instead of InvalidProgramException. ++ ++2007-08-20 Mark Probst ++ ++ * mini.c: CoreCLR security checks. ++ ++ * mini.h: Removed MonoSecurityMode (moved to ++ metadata/security-manager.h) and mono_security_mode global var ++ (replaced by set/get functions in security-manager.h). ++ ++ * driver.c: Added "core-clr-test" security mode for testing. Used ++ set-function for setting security mode. ++ ++2007-08-17 Mark Probst ++ ++ * mini.c: MonoJitInfo's are freed hazardously now. Statistics for ++ the new jit_info_table. ++ ++ * driver.c: Test code for the new jit_info_table (enabled by the ++ define MONO_JIT_INFO_TABLE_TEST). ++ ++2007-08-14 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Fix ++ detection of call instruction sequence. Fixes build on freebsd. ++ ++2007-08-13 Zoltan Varga ++ ++ * mini-exceptions.c: Fix a warning. ++ ++2007-08-11 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_handle_altstack_exception): Enable the new ++ stack overflow handling code on amd64 too. ++ ++ * mini-exceptions.c (mono_setup_altstack): Make this use ++ mono_thread_get_stack_bounds (). ++ ++ * mini-x86.h: Disable sigaltstack on solaris x86. ++ ++2007-08-10 Zoltan Varga ++ ++ * mini-exceptions.c (mono_setup_altstack): Enable this to work on solaris x86. ++ ++2007-08-10 Geoff Norton ++ ++ * tramp-x86.c: Remove some unneeded alignment changes on Apple. Fixes #82387. ++ ++2007-08-08 Zoltan Varga ++ ++ * mini-exceptions.c (mono_print_thread_dump): Enable this on amd64 too. ++ ++ * mini-amd64.h (MONO_INIT_CONTEXT_FROM_FUNC): Fix a warning. ++ ++2007-08-03 Neale Ferguson ++ ++ * mini-s390.c (add_general): Adjust offset calculation to take into account of rounding up ++ due to alignment. ++ ++Thu Aug 2 17:36:22 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c: avoid an invalid encoding of unsigned right shift by 0 ++ to be emitted (bug #82281). ++ ++2007-08-01 Martin Baulig ++ ++ Merged the `debugger-dublin' branch. ++ ++ * debug-debugger.h (MonoDebuggerInfo): ++ Removed the `old_*' compatibility entries. ++ Added `debugger_version' and `data_table'. ++ Renamed `get_method_addr_or_bpt' -> `insert_breakpoint'. ++ Renamed `remove_method_breakpoint' -> `remove_breakpoint'. ++ ++ * debug-mini.c ++ (MiniDebugMethodBreakpointInfo): Add `address_list'. ++ (mono_debugger_check_breakpoints): Take a `MonoDebugMethodAddress *' ++ instead of a `gconstpointer'. ++ (mono_debugger_insert_method_breakpoint): Return a ++ `MonoDebugMethodAddressList *'. ++ ++2007-06-28 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Added `debugger_version'. ++ ++2007-08-01 Zoltan Varga ++ ++ * mini-amd64.h (MONO_INIT_CONTEXT_FROM_FUNC): Avoid using ++ __builtin_frame_address () since it is broken on older gcc versions. ++ ++Tue Jul 31 17:34:42 CEST 2007 Paolo Molaro ++ ++ * mini.c, mini.h, mini-exceptions.c: added a bit of documentation ++ on the stack overflow handling and made the managed stack overflows ++ catchable in most cases using soft guard pages. ++ * exceptions-x86.c: added code to restore the protection in the soft ++ guard pages at the end of exception handling. ++ ++2007-07-31 Zoltan Varga ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Fix a warning. ++ ++Mon Jul 30 17:43:13 CEST 2007 Paolo Molaro ++ ++ * exceptions-ppc.c, mini-ppc.h: arch-specific stack overflow ++ exception handling. ++ ++Mon Jul 30 17:38:13 CEST 2007 Paolo Molaro ++ ++ * mini-alpha.h, mini-ia64.h, mini-sparc.h: disable the altstack ++ signal handling support until it has been ported to the new mechanism. ++ * mini.c: fixed stack overflow detection and use the new ++ architecture code to handle signals on the altstack. ++ ++Mon Jul 30 17:33:02 CEST 2007 Paolo Molaro ++ ++ * exceptions-amd64.c, mini-amd64.h: amd64 code to handle ++ stack overflows on the alt stack. ++ ++Mon Jul 30 17:29:56 CEST 2007 Paolo Molaro ++ ++ * exceptions-x86.c, mini-x86.h, mini.h: new code to handle ++ stack overflows on the alt stack. ++ ++Mon Jul 30 11:50:06 CEST 2007 Paolo Molaro ++ ++ * exceptions-ppc.c: cleanup preparing for altstack support. ++ ++Mon Jul 30 11:31:24 CEST 2007 Paolo Molaro ++ ++ * exceptions-arm.c: cleanup preparing for altstack support. ++ ++2007-07-27 Mark Probst ++ ++ * mini.c (print_jit_stats): Output hazard pointer stats. ++ ++2007-07-26 Mark Probst ++ ++ * driver.c, mini.c: Replaced security mode flags with a single ++ enum variable. ++ ++Thu Jul 26 20:12:12 CEST 2007 Paolo Molaro ++ ++ * mini.c, mini-exceptions.c: cleanup the sigaltstack code. ++ ++2007-07-25 Mark Probst ++ ++ * mini.c, mini.h, driver.c (mono_main): Added command-line flag ++ (which doesn't do anything yet) for activating Core CLR ++ (Silverlight) security. ++ ++Tue Jul 24 21:16:17 CEST 2007 Paolo Molaro ++ ++ * mini-codegen.c: work around a possible gcc bug on arm. ++ ++Tue Jul 24 17:20:19 CEST 2007 Paolo Molaro ++ ++ * driver.c, mini-x86.h, mini-amd64.h: print a nice error ++ message for platforms that don't support AOT compilation. ++ ++Mon Jul 23 10:29:29 CEST 2007 Paolo Molaro ++ ++ * mini.h, mini.c, driver.c: temporary smcs hack. ++ ++Mon Jul 23 09:29:34 CEST 2007 Paolo Molaro ++ ++ * mini-arm.h, mini-arm.c: arm EABI fixes. ++ ++2007-07-22 Zoltan Varga ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Handle the lmf->method == NULL ++ case. ++ ++ * tramp-x86.c (mono_arch_create_trampoline_code): Only set lmf->method for ++ trampolines taking a method argument. ++ ++ * mini-x86.h (MonoLMF): Add an 'esp' field plus comments. ++ ++ * mini-x86.c (mono_arch_emit_prolog): Update after changes to the LMF structure. ++ * tramp-x86.c (mono_arch_create_trampoline_code): Ditto. ++ ++ * exceptions-x86.c (mono_arch_get_jit_info): Properly clean up the stack after ++ JIT compilation throws an exception. Fixes #82050. ++ ++2007-07-19 Mark Probst ++ ++ * mini.c: Removed the MonoLoaderErrorKind enum and replaced it ++ with the MONO_EXCEPTION_ defines. ++ ++2007-07-17 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_find_imt_method): Handle mov reg,IMM64 case. Fixes ++ #82117. ++ ++ * mini-amd64.c (mono_arch_find_imt_method): Add some debug code to help find out ++ the cause of an assertion. ++ ++Mon Jul 16 19:31:21 CEST 2007 Paolo Molaro ++ ++ * mini.c, jit-icalls.c: mono_get_inflated_method() is obsolete, ++ removed. ++ ++2007-07-15 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_build_imt_thunk): Remove the non-32bit MonoMethod ++ assert. Should fix #82103. ++ ++2007-07-14 Zoltan Varga ++ ++ * mini-exceptions.c (mono_jit_walk_stack_from_ctx): Use MONO_CONTEXT_GET_SP () ++ here too. Fixes #82095. ++ ++ * mini-amd64.c (mono_arch_build_imt_thunk): Add support for non-32bit MonoMethod ++ addresses. ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add a couple asserts. ++ ++ * mini-amd64.h: Enable IMT for amd64. ++ ++ * mini-amd64.c (mono_arch_build_imt_thunk): Optimize IMT thunk size. ++ ++2007-07-12 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add support for IMT call sequences. ++ ++2007-07-12 Mark Probst ++ ++ * mini.c (check_linkdemand, mono_method_to_ir): Abort compilation ++ as soon as check_linkdemand sets an exception_type. ++ ++Thu Jul 12 12:18:22 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c: fixed offsets for IMT call sequence. ++ * mini-x86.h: enable IMT again. ++ ++2007-07-11 Zoltan Varga ++ ++ * trace.c (mono_trace_enter_method): Decode MonoType too. ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Handle signed displacements too. ++ ++ * mini.h mini-x86.h mini-trampolines.c: Change the signature of mono_arch_find_imt_method () to pass the calling code address too. ++ ++ * mini-amd64.c: Add preliminary IMT implementation. ++ ++Wed Jul 11 18:21:30 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c: adjusted mono_arch_get_vcall_slot_addr () to ++ understand the new IMT-base interface invocation (thanks to ++ Daniel Nauck for the report and the remote debugging session). ++ ++Wed Jul 11 14:54:39 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c: size and speed optimizations for the IMT bsearch. ++ ++2007-07-11 Zoltan Varga ++ ++ * Makefile.am (aotcheck): Make this actually use the AOTed code. ++ ++Wed Jul 11 12:41:32 CEST 2007 Paolo Molaro ++ ++ * mini-trampolines.c: implement AOT IMT support. ++ * mini-x86.h: enable IMT support for wider testing. ++ ++2007-07-10 Zoltan Varga ++ ++ * inssel.brg (emit_imt_argument): Add aot support here. ++ ++ * aot-runtime.c (decode_patch_info): Fix reading of MONO_PATCH_INFO_METHOD. ++ ++Tue Jul 10 17:50:58 CEST 2007 Paolo Molaro ++ ++ * mini-x86.c, mini-x86.h, tramp-x86.c: x86 arch-specific changes ++ of the IMT implementation, partially from massi, with my ++ implementation of the bsearch sequence. Disabled by default until ++ the AOT code is implemented. ++ ++2007-07-10 Zoltan Varga ++ ++ * cpu-x86.md: The source argument of sext_i1/i2 must by a byte reg. ++ ++ * inssel-x86.brg: Add reg:ldind.i1(regvar) rules. Fixes #82056. ++ ++Tue Jul 10 17:33:12 CEST 2007 Paolo Molaro ++ ++ * inssel.brg, mini.c, mini.h, mini-trampolines.c: ++ arch-independent IMT JIT code from Massimiliano ++ Mantione (massi@ximian.com) with small cleanups from me. ++ ++Tue Jul 10 13:07:24 CEST 2007 Paolo Molaro ++ ++ * Makefile.am: fix svn invocation to get the svn revision to be ++ independent of the local language (build fix). ++ ++2007-07-09 Mark Probst ++ ++ * mini.c (inline_method): Reset cfg->exception_type if the ++ inlining is aborted. Fixes: 82049. ++ ++Mon Jul 9 17:26:47 CEST 2007 Paolo Molaro ++ ++ * mini.c: remove assert from exception handling code when exception_ptr ++ is not set. ++ ++2007-07-05 Zoltan Varga ++ ++ * mini.c (mono_codegen): Add an assert. ++ ++ * mini-x86.c (mono_arch_emit_prolog): Allocate space for the profiler method ++ enter and leave code. ++ * mini-amd64.c (mono_arch_emit_prolog): Likewise. ++ ++Thu Jul 5 20:12:52 CEST 2007 Paolo Molaro ++ ++ * mini-ppc.c: fixed memory corruption for localloc(0) ++ (bug #81852). ++ ++2007-07-05 Zoltan Varga ++ ++ * mini.c: Fix warnings. ++ ++Wed Jul 4 15:30:36 CEST 2007 Paolo Molaro ++ ++ * optflags-def.h, mini-x86.c: added sse2 optimization flag and use it ++ to emit better double->int conversions. ++ ++Tue Jul 3 19:42:16 CEST 2007 Paolo Molaro ++ ++ * mini.c: the provided Min/Max optimizations are valid for unisgned ++ ints. ++ ++2007-07-03 Rodrigo Kumpera ++ ++ * mini.c (can_access_method, can_access_field): methods moved to metadata/class.c and renamed to mono_method_can_access_method and mono_method_can_acesss_field ++ ++2007-06-28 Miguel de Icaza ++ ++ * mini.c (mono_running_on_valgrind): Add support for reporting the ++ method and its boundaries to valgrind. ++ ++2007-06-28 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Added `debugger_version'. ++ ++2007-06-25 Zoltan Varga ++ ++ * ssa.c (visit_inst): Add support for OP_BR. Fixes #81946. ++ ++ * generic.2.cs: Add new test case. ++ ++2007-06-25 Martin Baulig ++ ++ Merged the `debugger-dublin' branch. ++ ++ * debug-mini.c ++ (mono_debugger_insert_method_breakpoint): New public method. ++ (mono_debugger_remove_method_breakpoint): Likewise. ++ (mono_debugger_check_breakpoints): New static method. ++ (mono_debug_close_method): Call mono_debugger_check_breakpoints(). ++ ++ * debug-debugger.h (MonoDebuggerInfo): ++ Renamed (to keep backward compatibility in the vtable): ++ `insert_breakpoint' -> `old_insert_breakpoint'. ++ `remove_breakpoint' -> `old_remove_breakpoint'. ++ `create_string' -> `old_create_string'. ++ `lookup_class' -> `old_lookup_class'. ++ `lookup_type' -> removed; changed into a dummy field. ++ `lookup_assembly' -> `old_lookup_assembly'. ++ Added (same functionality, but different signature): ++ `create_string', `lookup_class', `lookup_assembly' ++ Added new: ++ `get_method_addr_or_bpt', `remove_method_breakpoint', ++ `runtime_class_init'. ++ ++ * debug-debugger.c: Merged the `debugger-dublin' branch. ++ ++2007-06-23 Zoltan Varga ++ ++ * mini-amd64.c (peephole_pass_1): Optimize away moves at the beginning of the bb as ++ well. ++ (peephole_pass): Likewise. ++ ++Fri Jun 22 09:17:08 CEST 2007 Paolo Molaro ++ ++ * driver.c: hopefully make setaffinity work also for ancient ++ versions of linux. ++ ++2007-06-22 Atsushi Enomoto ++ ++ * driver.c : win32 build fix. ++ ++Thu Jun 21 19:24:03 CEST 2007 Paolo Molaro ++ ++ * driver.c: check for the MONO_NO_SMP env var and bind to a single ++ processor if it is set. ++ ++2007-06-21 Martin Baulig ++ ++ * debug-mini.h: New file. ++ ++ * debug-mini.c ++ (mono_debugger_insert_breakpoint_full): Moved here from ++ ../metadata/mono-debug-debugger.c. ++ (mono_debugger_remove_breakpoint): Likewise. ++ (mono_debugger_breakpoint_callback): Likewise. ++ ++2007-06-15 Raja R Harinath ++ ++ * jit-icalls.c (mono_helper_compile_generic_method): Update to ++ changes in MonoGenericClass. ++ ++2007-06-14 Zoltan Varga ++ ++ * mini-codegen.c (mono_opcode_to_type): Fix ia64 build. ++ ++2007-06-14 Raja R Harinath ++ ++ * jit-icalls.c (mono_helper_compile_generic_method): Update to ++ removal of MonoGenericMethod. ++ ++Thu Jun 14 12:42:04 CEST 2007 Paolo Molaro ++ ++ * mini-exceptions.c: hooks for the exception events profiling API. ++ ++2007-06-14 Randolph Chung ++ ++ * Makefile.ma: Add hppa target. ++ * mini-arch.h: Include mini-hppa.h ++ * cpu-hppa.md, exceptions-hppa.c, inssel-hppa.brg, mini-hppa.c, ++ mini-hppa.h, tramp-hppa.c: New files for 32-bit HPPA port. ++ Contributed under the X11 license (http://bugzilla.ximian.com/show_bug.cgi?id=81866). ++ ++2007-06-14 Randolph Chung ++ ++ * inssel.brg: Add rules for "chained" compare-branch operations so that ++ a single compare op can affect multiple branches. Adjust cost for ++ OP_CEQ/OP_CGT/OP_CGT_UN/OP_CLT/OP_CLT_UN. ++ * inssel-long32.brg: Update rules to use compare-branch macros. Adjust ++ cost for some rules so that they can more easily be overridden by ++ per-arch rules (with fixes from lupus). ++ Contributed under the X11 license (http://bugzilla.ximian.com/show_bug.cgi?id=81866). ++ ++2007-06-13 Randolph Chung ++ ++ * mini-ops.h: Reorder branch ops so that they match the order of the ++ corresponding CEE_* ops. The code expects them this way. ++ Add new ops for HPPA target. ++ Contributed under the X11 license (http://bugzilla.ximian.com/show_bug.cgi?id=81866). ++ ++2007-06-13 Randolph Chung ++ ++ * mini-exceptions.c: Handle cases where the stack grows towards ++ larger addresses. ++ Contributed under the X11 license (http://bugzilla.ximian.com/show_bug.cgi?id=81866). ++ ++Wed Jun 13 19:13:23 CEST 2007 Paolo Molaro ++ ++ * jit-icalls.c, mini.h, mini.c: added virtual generic invoke ++ counter. ++ * driver.c: explain where a non-matching corlib is found. ++ ++2007-06-13 Mark Probst ++ ++ * mini.c (print_jit_stats): Output dynamic code allocation stats. ++ ++2007-06-10 Sanghyeon Seo ++ ++ * mini-exceptions.c: Generate a method profile leave event during ++ an exception to ensure that the profiler gets notified. ++ ++2007-06-07 Zoltan Varga ++ ++ * mini-amd64.c (peephole_pass): Merge some small changes from the linear-ir ++ branch. ++ ++ * cpu-amd64.md: Add long_and/or/xor opcodes. ++ ++2007-06-06 Wade Berrier ++ ++ * cpu-s390x.md (shr_imm): Correct the length of shr_imm instruction. ++ (./class/lib/monolite/mcs.exe:25498): WARNING **: wrong maximal instruction ++ length of instruction shr_imm (expected 8, got 10) ++ ++2007-06-06 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_output_basic_block): Really fix the build. ++ ++2007-06-06 Mark Probst ++ ++ * mini.c, driver.c: Changed MonoDomain.jit_code_hash to a ++ MonoInternalHashTable again (fixed bug in the internal hash table ++ code). ++ ++2007-06-06 Mark Probst ++ ++ * mini.c, driver.c: Reverted the MonoInternalHashTable changes. ++ Have to figure out what makes it crash the SWF regression. ++ ++2007-06-05 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_lowering_pass): Fix ia64 build. ++ ++Tue Jun 5 17:40:04 CEST 2007 Paolo Molaro ++ ++ * mini.c: optimize out the type check when storing null in a ++ reference array. ++ ++2007-06-04 Mark Probst ++ ++ * mini.c, driver.c: Changed MonoDomain.jit_code_hash to a ++ MonoInternalHashTable. ++ ++Mon Jun 4 11:29:43 CEST 2007 Paolo Molaro ++ ++ * inssel.brg, mini.c, mini-ops.h: optimized Math.Mini/Max ++ signed integer methods. ++ ++2007-06-02 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_delegate_invoke_impl): Disable the static case ++ permanently since the current approach doesn't work. ++ ++2007-06-02 Zoltan Varga ++ ++ * inssel.brg (stmt): Only call delegate->invoke_impl if ++ MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE is defined. ++ ++2007-06-01 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Unify div/rem opcodes and handle ++ the sreg2==rdx case. ++ ++ * mini-amd64.c cpu-amd64.md: Correct length of r4const instruction and take into ++ account if it contains a rex prefix. ++ (peephole_pass): Handle OP_FMOVE as well. ++ ++2007-06-01 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_delegate_invoke_impl): Disable the static case for now ++ as it causes regressions. ++ ++2007-05-31 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_delegate_invoke_impl): Implement support for the ++ static case as well. ++ ++ * tramp-ia64.c (mono_arch_create_trampoline_code): Fix ia64 build. ++ ++ * mini-x86.c (mono_arch_get_delegate_invoke_impl): New arch dependent function. ++ (mono_arch_get_this_arg_from_call): Ditto. ++ ++ * tramp-x86.c (mono_arch_patch_delegate_trampoline): Removed. ++ ++ * inssel.brg (mini_emit_virtual_call): Call delegate->Invoke through the delegate's ++ invoke_impl field. ++ ++ * mini-amd64.c (mono_arch_get_delegate_invoke_impl): New arch dependent function. ++ (mono_arch_get_this_arg_from_call): Ditto. ++ ++ * tramp-amd64.c (mono_arch_patch_delegate_trampoline): Removed. ++ ++ * mini-trampolines.c (mono_delegate_trampoline): Complete rewrite. On first call, ++ try to create optimized invoke code and use that for further invocations. ++ Otherwise, use the original mono_marshal_get_delegate_invoke () implementation. ++ ++ * mini-x86.h mini-ia64.h: Remove MONO_ARCH_HAS_CREATE_DELEGATE_TRAMPOLINE for now. ++ ++2007-05-29 Rodrigo Kumpera ++ ++ * inssel.brg (mini_emit_virtual_call): Statically dispatch virtual calls to ++ sealed classes or methods. ++ *devirtualization.cs: tests for the new optimization ++ ++2007-05-29 Zoltan Varga ++ ++ * liveness.c (update_gen_kill_set): No need to set VOLATILE flags here, it is done ++ by the update_volatile () function. ++ ++2007-05-27 Zoltan Varga ++ ++ * driver.c (mono_main): Call g_thread_init () early since newer glib versions ++ require it. ++ ++ * abcremoval.c (mono_perform_abc_removal): Avoid using alloca. ++ ++2007-05-24 Jonathan Chambers ++ ++ * mini.c: Add configure checks for header files. ++ * mini-x86.c: Add configure checks for header files. ++ * trace.c: Add configure checks for header files. ++ * aot-runtime.c: Add configure checks for header files. ++ * aot-compiler.c: Add configure checks for header files. ++ * driver.c: Add configure checks for header files. ++ * mini-codegen.c: Add configure checks for header files. ++ ++ Code is contributed under MIT/X11 license. ++ ++2007-05-22 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_lowering_pass): Fix the handling of ++ icompare_imm -128 + op_iclt. Fixes #81703. ++ ++2007-05-19 Zoltan Varga ++ ++ * mini-codegen.c (mono_local_regalloc): Fix long-shift-regalloc on amd64. ++ ++2007-05-15 Massimiliano Mantione ++ ++ * inssel.brg: added "mini_emit_load_intf_bit_reg_vtable", and used it ++ inside "mini_emit_isninst_iface_cast" and "mini_emit_castclass_iface" ++ so that all isinst checks now use "interface_bitmap". ++ ++2007-05-15 Zoltan Varga ++ ++ * cpu-amd64.md (jmp): Fix a warning. ++ ++ * inssel.brg (CEE_SWITCH): Hopefully fix #80738. ++ ++ * basic.cs: Add new regression test. ++ ++ * basic.cs: Remove test which is now in basic-long.cs. ++ ++ * mini-ia64.c (mono_arch_output_basic_block): Sign extend in CEE_CONV_I8/CEE_CONV_I. ++ ++ * basic-long.cs: Add new test. ++ ++2007-05-13 Zoltan Varga ++ ++ * mini-sparc.c (mono_spillvar_offset_float): Fix sparc build. ++ ++2007-05-12 Zoltan Varga ++ ++ * cpu-x86.md minix-86.c: Add a peephole_pass_1 () as on amd64. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Use mono_opcode_to_cond () in a few ++ places. ++ ++ * mini-x86.c (mono_arch_emit_exceptions): Decrease the size of the exception ++ throwing code a bit. ++ ++ * exceptions-x86.c (mono_arch_get_throw_corlib_exception): Decrease the size of ++ the exception throwing code a bit. ++ ++ * mini-x86.c (get_call_info): Allocate result from a mempool. ++ ++2007-05-11 Zoltan Varga ++ ++ * aot-compiler.c (find_typespec_for_class): Fix the assert. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file version. ++ ++ * mini.h (MonoCompile): Add 'token_info_hash' field. ++ ++ * mini.c: Save token->method associations during compilation so the AOT ++ compiler can use it. ++ ++ * aot-compiler.c aot-runtime.c: Add support for compiling non-generic methods ++ which reference generic classes and methods. ++ ++2007-05-10 Zoltan Varga ++ ++ * mini.h mini-.h: Get rid of MONO_ARCH_HAS_XP_LOCAL_REGALLOC. ++ ++ * aot-compiler.c (compile_method): Fix a typo in a comment. ++ ++ * aot-runtime.c (decode_cached_class_info): Skip generic types. ++ ++ * aot-compiler.c: Add minimal support for AOTing generic code by skipping ++ everything generic. ++ ++ * mini.c (mono_method_to_ir): Disable AOT when calling helper_compile_generic_method. ++ ++2007-05-09 Zoltan Varga ++ ++ * mini.h (MonoCompile): Add 'args' field. ++ ++ * mini.c (mono_compile_create_vars): Store variables representing the arguments ++ into cfg->args. ++ ++ * mini-.c: Use cfg->args for accessing the method arguments. ++ ++2007-05-08 Zoltan Varga ++ ++ * mini.c (mono_compile_get_interface_var): Remove this unused function. ++ ++ * mini-ops.h inssel.brg mini-.c: Add a new opcode for ckfinite as well. ++ ++ * mini-ops.h: Introduce new opcodes used in the IR instead of the original CEE_ ++ opcodes for some opcodes. ++ ++ * mini.h *.brg *.c: Use the new opcodes. ++ ++2007-05-08 Massimiliano Mantione ++ ++ * mini.h: Bumped aot revision. ++ ++ * inssel.brg: modified code generation of type checks for interfaces ++ to use the new "MonoClass.interface_bitmap" instead of the old ++ "MonoClass.interface_offsets". ++ ++2007-04-30 Zoltan Varga ++ ++ * cpu-amd64.md (jmp): Increase the maximum size of the jmp opcode to 128. ++ ++2007-04-29 Zoltan Varga ++ ++ * abcremoval.c (summarize_integer_value): Handle OP_LCONV_TO_I4 to fix abcrem on ++ 64 bit platforms. ++ ++2007-04-27 Neale Ferguson ++ ++ * mini-s390x.c: Fix MONO_TYPE_VALUETYPE processing. ++ ++2007-04-27 Wade Berrier ++ ++ * mini-s390x.c: Remove redeclaration of CompRelation and CompType (defined in ++ mini.h) to fix build. ++ ++2007-04-26 Zoltan Varga ++ ++ * mini-amd64.c (peephole_pass_1): Fix and reenable this pass. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Disable the new peephole_pass_1 as it ++ causes the corlib unit tests to fail. ++ ++2007-04-25 Zoltan Varga ++ ++ * mini-codegen.c (mono_opcode_to_type): Fix a bug in the previous patch. ++ ++ * mini-amd64.c (peephole_pass_1): New pass to perform before local regalloc. ++ ++ * mini-codegen.c (mono_opcode_to_cond): New helper function to convert conditional ++ opcodes to the comparison relations. ++ ++ * mini-codegen.c (mono_opcode_to_type): New helper function to convert conditional ++ opcodes to their types. ++ ++ * mini-ia64.c mini-amd64.c: Use mono_opcode_to_cond and mono_opcode_to_type. ++ ++ * mini-amd64.c (get_call_info): Allocate the result from the cfg mempool and cache ++ it in cfg->arch.cinfo. ++ ++ * local-propagation.c (mono_local_cprop_bb): Fix a warning. ++ ++ * mini.h mini.c branch-opts.c: Change bbhash to be an array and store it in ++ cfg->cil_offset_to_bb. ++ ++2007-04-24 Zoltan Varga ++ ++ * liveness.c (optimize_initlocals): New mini-pass to optimize away dead assignments ++ created becase of initlocals. ++ ++2007-04-23 Zoltan Varga ++ ++ * mini-alpha.c cpu-alpha.md: More alpha port work from ++ Sergey Tikhonov . ++ ++2007-04-21 Andreas Faerber ++ ++ * Makefile.am (BUILT_SOURCES): Fix for automake 1.6.x. Fixes #81417. ++ ++2007-04-19 Zoltan Varga ++ ++ * cpu-s390.md (break): Correct the length of break instruction. ++ ++Thu Apr 19 16:28:52 CEST 2007 Paolo Molaro ++ ++ * mini.c: fix a couple of soft-float issues and comments. ++ ++2007-04-15 Miguel de Icaza ++ ++ * trace.c (is_filenamechar): - is also a filename char. ++ ++2007-04-15 Neale Ferguson ++ ++ * mini-s390.c: Correct checking for enum type in return value processing. ++ ++2007-04-14 Raja R Harinath ++ ++ * Makefile.am (BUILT_SOURCES): Add 'version.h'. ++ (version.h): Makefile is in the build directory. ++ ++2007-04-06 Andreas Faerber ++ ++ * mini-amd64.h: fix for assertion failure on Solaris/amd64 ++ ++2007-04-11 Martin Baulig ++ ++ * mini.c (can_access_member): Fix handling of generic classes; ++ fixes #81259. ++ ++2007-04-10 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_plt_resolve): Fix disabling of AOT. Fixes #81316. ++ ++2007-04-05 Zoltan Varga ++ ++ * aot-runtime.c: Fix disabling of AOT. Fixes #81316. ++ ++Fri Mar 23 20:25:31 CET 2007 Paolo Molaro ++ ++ * mini-codegen.c: make sure the right spill amount is ++ used for fp or integer registers (fixes the float_sub_spill() on ppc). ++ ++Fri Mar 23 19:43:35 CET 2007 Paolo Molaro ++ ++ * mini-ppc.c: fixes for the fp_branch_nan test. ++ ++2007-03-23 Zoltan Varga ++ ++ * basic.cs: Comment out new test which still fails on ia64. ++ ++Fri Mar 23 15:54:23 CET 2007 Paolo Molaro ++ ++ * mini.c: immediate shifted or fix (mono_metadata_user_string assert). ++ ++Fri Mar 23 12:53:28 CET 2007 Paolo Molaro ++ ++ * mini-ppc.c, mini-ppc.h: struct passing ABI fix (bug #77968). ++ ++2007-03-22 Zoltan Varga ++ ++ * cfold.c (FOLD_BINOP): Cast the result to gint32 to prevent overflow problems ++ on 64 bit machines. Fixes part of #80738. ++ ++ * basic.cs: Add regression test. ++ ++2007-03-17 Zoltan Varga ++ ++ * inssel.brg basic.cs: Revert previous change to fix build. ++ ++ * inssel.brg (SWITCH): Clean out the upper word of the switch value on 64 bit ++ platforms. ++ ++ * inssel.brg (SWITCH): Use an integer comparison. Fixes #80738. ++ ++ * basic.cs: Add new regression test. ++ ++2007-03-17 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_emit_prolog): Fix an assert when a function has too ++ many arguments. ++ ++2007-03-16 Neale Ferguson ++ ++ * cpu-s390x.md: Correct length of break instruction. ++ ++2007-03-16 Neale Ferguson ++ ++ * mini-s390x.c, cpu-s390x.md: Fix #80507 for s390x. ++ * mini-s390.c, cpu-s390.md: Fix #80507 for s390. ++ ++2007-03-15 Jonathan Chambers ++ ++ * *.c: Begin WIN64 port. ++ * mini.c: Use correct register in profiler. ++ * mini-amd64.c: No inline assembly on Win64. ++ * mini-amd64.h: Implement MONO_INIT_CONTEXT_FROM_FUNC for Win64. ++ Only define MONO_ARCH_USE_SIGACTION on non-windows platforms. ++ * exceptions-amd64.c: Only need gregs_from_ucontext if MONO_ARCH_USE_SIGACTION ++ is defined. Implement mono_arch_sigctx_to_monoctx, mono_arch_monoctx_to_sigctx, and ++ mono_arch_ip_from_context for Win64. ++ ++ Contributed under MIT/X11 license. ++ ++2007-03-15 Zoltan Varga ++ ++ * exceptions-amd64.c (seh_handler): Ditto. ++ ++ * exceptions-x86.c (seh_handler): Fix a memory leak. ++ ++Thu Mar 15 13:47:59 CET 2007 Paolo Molaro ++ ++ * mini-arm.c, mini-mips.c, mini-ppc.c, mini-s390.c, ++ mini-s390x.c: fixed peephole optimizations to deal ++ correctly with 1 and 2 byte reload avoidance. ++ ++Thu Mar 15 10:17:54 CET 2007 Paolo Molaro ++ ++ * cpu-s390.md, cpu-s390x.md: update localloc length. ++ ++Wed Mar 14 21:00:19 CET 2007 Paolo Molaro ++ ++ * cpu-g4.md: added missing descriptions. ++ ++2007-03-14 Miguel de Icaza ++ ++ * Makefile.am: Add support so the tail tests are not executed on ++ PowerPC as that is a known limitation of the PowerPC port. ++ ++2007-03-13 Jonathan Chambers ++ ++ * runmdesc.bat: Move to msvc directory. ++ ++2007-03-13 Jonathan Chambers ++ ++ * runmdesc.bat: Run executable that was produced by the current ++ target and sent via an argument. ++ ++2007-03-11 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix box+brtrue optimization. Fixes ++ #81102. ++ ++ * generics.2.cs: Add regression test. ++ ++2007-03-09 Wade berrier ++ ++ * mini-ppc.h: Undo typo of MONO_CONTEXT_SET_SP (ppc doesn't define this symbol) ++ ++2007-03-09 Zoltan Varga ++ ++ * aot-runtime.c (load_aot_module): Load all dependent assemblies eagerly since all ++ AOT code depends on this. ++ ++Thu Mar 8 19:36:13 CET 2007 Paolo Molaro ++ ++ * mini.c: more precise tracking of types in the eval stack ++ (part of fix for bug #81044). ++ ++2007-03-07 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_class_from_name): Add a cache. ++ ++ * aot-compiler.c (encode_patch): Remove an obsolete comment. ++ ++2007-03-06 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Fix a warning. ++ ++ * mini.c (mono_method_to_ir): Add a workaround for bug #80733. ++ ++2007-02-22 Zoltan Varga ++ ++ * mini.c (type_from_op): Convert CEE_CONV_U to OP_LCONV_TO_U when the argument is ++ a pointer on 64 bit systems. Fixes #80190. ++ ++ * iltests.il: Add new regression test. ++ ++Tue Feb 20 11:33:28 CET 2007 Paolo Molaro ++ ++ * mini.c: inline a constant for Environment.IsRunningOnWindows. ++ ++2007-02-19 Geoff Norton ++ ++ * trace.c: Remove an erroneous alignemnt check when tracing. ++ Fixes --trace on OSX86. ++ ++Wed Feb 14 19:45:56 CET 2007 Paolo Molaro ++ ++ * mini-$(arch).h: initialize SP in context for all the archs. ++ ++2007-02-14 Sebastien Pouliot ++ ++ * mini-x86.h: Initialize SP in MONO_INIT_CONTEXT_FROM_FUNC. Fix CAS ++ regressions in the thread tests. ++ ++2007-02-14 Zoltan Varga ++ ++ * *-alpha.*: More alpha port work from Sergey Tikhonov : ++ - fixed implementation of LOCALLOC opcode ++ - implemented non-un compare for floats ++ - code cleanup ++ - implementation of FDIV and CKFINITE opcodes ++ - fixes for latest mono updates ++ - additional arch opcodes ++ ++Mon Feb 12 11:54:16 CET 2007 Paolo Molaro ++ ++ * Makefile.am: simplify and merge rules for cross-compilation. ++ ++2007-02-07 Massimiliano Mantione ++ ++ * local-propagation.c: Actually *apply* the fix for bug 80591... ++ ++Tue Feb 6 19:03:19 CET 2007 Paolo Molaro ++ ++ * mini-exceptions.c: backuot part of the last change ++ (fixes cas tests on amd64 related to GetExecutingAssembly ()). ++ ++2007-02-06 Massimiliano Mantione ++ * inssel.brg: Fix bug 59286. ++ ++ ++Tue Feb 6 12:23:50 CET 2007 Paolo Molaro ++ ++ * mini-exceptions.c: patch from Zoltan to correctly check for ++ stack boundaries (using the stack register, not the frame register), ++ fixes bugs #80724, #79717. ++ ++2007-02-03 Zoltan Varga ++ ++ * mini-ia64.c inssel-sparc.brg mini-sparc.c cpu-sparc.md: Get rid of OP_SETREG/ ++ OP_SETREGIMM, use OP_MOVE/OP_ICONST instead. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix ATOMIC_EXCHANGE in the ++ presence of frame pointer elimination. ++ ++2007-02-01 Geoff Norton ++ ++ * mini-x86.h: NetBSD UCONTEX_REG defines. ++ ++2007-02-01 Zoltan Varga ++ ++ * inssel-amd64.brg: Fix amd64 build. ++ ++Thu Feb 1 14:02:09 CET 2007 Paolo Molaro ++ ++ * mini.h: remove extern to workaround what looks likes gcc bug 26905 ++ on amd64. ++ ++2007-01-31 Zoltan Varga ++ ++ * mini-codegen.c (mono_is_regsize_var): New helper function usable by the back ++ ends. ++ ++ * mini-.c: Use mono_is_regsize_var (). ++ ++2007-01-30 Mark Mason ++ ++ * exceptions-mips.c: Lots of exception handling fixes, LMFs now work, some cleanups. ++ * mini-mips.h: Add LMF magic numbers, and fix context set/get macros. ++ * mini-mips.c: Cleanups, LMF handling now works, optimize store of zero, implement localloc ++ beginning support for CEE_JMP [not quite working yet] ++ * tramp-mips.c: LMF handling now works ++ ++2007-01-30 Zoltan Varga ++ ++ * mini-amd64.c (peephole_pass): Optimize code common in initlocals blocks. ++ ++ * mini.h (NULLIFY_INS): New macro. ++ ++Tue Jan 30 16:33:33 CET 2007 Paolo Molaro ++ ++ * mini.c: statistical profiler fix for windows, patch ++ from Tor Lillqvist (tml@novell.com). ++ ++2007-01-30 Massimiliano Mantione ++ * local-propagation.c: Fix bug 80591. ++ ++Mon Jan 29 12:14:34 CET 2007 Paolo Molaro ++ ++ * Makefile.am: put back the --export-dynamic option as with ++ the previous gmodule flags (thanks to Robert Jordan). ++ ++2007-01-28 Zoltan Varga ++ ++ * mini-sparc.c (peephole_pass): Fix #80622 for sparc as well. ++ ++ mini.h *.c: Allocate fp vregs from the same pool as the int vregs. Use this to ++ simplify and speed up the local register allocator. Also rename some fields ++ like iassign->vassign. ++ ++ * regalloc.c: Remove some functions which are no longer used since their ++ inlined version is in mini-codegen.c. ++ ++ * mini-codegen.c: Rename mono_regstate2_ functions to mono_regstate_. ++ ++ * basic.cs objects.cs iltests.il: Merge tests from the linear IL branch. ++ ++2007-01-27 Zoltan Varga ++ ++ * mini-amd64.c (peephole_pass): Remove optimizations which omit a ++ narrowing. Fixes #80622. ++ ++ * iltests.il: Add new regresssion test. ++ ++Fri Jan 26 18:31:45 CET 2007 Paolo Molaro ++ ++ * mini.h, mini-trampolines.c, aliasing.c, mini-codegen.c, ++ debug-debugger.c, debug-debugger.h: warning fixes. ++ * driver.c: updated copyright year and made it fit in one line. ++ ++Fri Jan 26 12:48:39 CET 2007 Paolo Molaro ++ ++ * aot-runtime.c: updated to use mono-dl instead of gmodule. ++ ++2007-01-25 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Fix #80507 for x86. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix #80507 for amd64. ++ ++ * iltests.il: Add new test for bug #80507. ++ ++Wed Jan 24 19:10:28 CET 2007 Paolo Molaro ++ ++ * mini-arm.h: use soft-float also on vfp for now. ++ ++Wed Jan 24 14:54:40 CET 2007 Paolo Molaro ++ ++ * mini.c: fix some more soft-float issues. ++ ++2007-01-24 Zoltan Varga ++ ++ * mini-sparc.h (MONO_ARCH_FRAME_ALIGNMENT): Fix sparc build. ++ ++2007-01-24 Massimiliano Mantione ++ * mini-arch.h, , inssel-amd64.brg, mini-x86.c, inssel-x86.brg, ++ mini-ia64.c, mini-sparc.c, mini-alpha.c: Introduced ++ MONO_ARCH_LOCALLOC_ALIGNMEENT to fix bug 80498. ++ ++Wed Jan 24 12:04:39 GMT 2007 Paolo Molaro ++ ++ * mini-arm.c: typo fix. ++ ++2007-01-23 Neale Ferguson ++ ++ * mini-s390x.c: Use lgb instructions for I1 type variables instead of lb. ++ ++2007-01-21 Zoltan Varga ++ ++ * mini.c (mono_allocate_stack_slots_full): Allocate memory from the cfg mempool. ++ Share stack slots for scalar types. Avoid expensive g_list_free () calls. ++ ++ * mini-x86.c (mono_arch_allocate_vars): Don't free the result of allocate_stack_slots_full. ++ ++ * mini-amd64.c mini-ia64.c mini-alpha.c: Ditto. ++ ++ * mini.h (MonoJitStats): Add a new JIT statistics: locals_stack_size. ++ ++ * inssel.brg: Fix a warning. ++ ++ * mini.h (MonoBasicBlock): Make bb->dominated a GSList. ++ ++ * abcremoval.c ssa.c ssapre.c: Update after this change. ++ ++ * dominators.c (compute_dominators): Allocate bb->dominated from the cfg mempool. ++ ++ * dominators.c (df_set): Use mono_bitset_union_fast. ++ ++Sat Jan 20 16:59:01 CET 2007 Paolo Molaro ++ ++ * mini.h, genmdesc.c, genmdesc.pl, mini-${arch}.c, cprop.c, ++ mini-codegen.c: reduce relocations and memory usage for the cpu ++ description. ++ ++2007-01-20 Zoltan Varga ++ ++ * mini-codegen.c (mono_regstate2_alloc_int): Optimize this using bsfq on amd64. ++ ++ * genmdesc.c genmdesc.pl mini.h: Remove some unused fields from the mdesc tables ++ to reduce their size. ++ ++2007-01-19 Mark Mason ++ ++ * exceptions-mips.c: fix mono_arch_ip_from_context(), increase exception debug support. ++ * mini-mips.c: more configuration macros, support long conditional branches, additional ++ asserts, fix epilog instrumentation. ++ * mini-mips.h: use standard stack walk ++ * cpu-mips.md: increase size of div, rem and conditional branches ++ ++Fri Jan 19 17:23:32 CET 2007 Paolo Molaro ++ ++ * mini.h, mini-codegen.c, mini-$(arch).h: claenup references ++ to cpu spec data. ++ ++2007-01-19 Zoltan Varga ++ ++ * aot-compiler.c (encode_klass_info): Allow classes of the form [][]. ++ (compile_method): Ditto. ++ ++ * aot-runtime.c (decode_klass_info): Ditto. ++ ++ * mini.c (mono_method_to_ir): Call mono_get_got_var () in a place where it is ++ needed by the code generated by inssel.brg. Also fix a warning. ++ ++Thu Jan 18 17:55:22 CET 2007 Paolo Molaro ++ ++ * mini.c: deal with enums that become genericinsts by ++ being nested in a generic class (bug #79956). ++ ++Thu Jan 18 16:52:56 CET 2007 Paolo Molaro ++ ++ * mini.c: match the generic definition to check for ++ private access with generic types (bug #78431). ++ ++Thu Jan 18 11:50:13 CET 2007 Paolo Molaro ++ ++ * genmdesc.pl, Makefile.am: perl implementation of genmdesc, ++ to make life easier for people cross-compiling that insist on not ++ using scratchbox. ++ ++2007-01-17 Mark Mason ++ ++ * inssel-long.brg: patch to deal with mips missing flags ++ * inssel-long32-mips.brg: implement overflow checks ++ * insset-mips.brg: implement overflow checks ++ * mini-mips.h: implement conditional exception handling ++ * mini-mips.c: add mips_emit_exc_by_name(), implement conditional exception handling. ++ Remove unused code, minor cleanups. ++ * exceptions-mips.c: minor cleanups ++ * mini-ops.h: add mips conditional exception ops ++ * cpu-mips.md: add mips conditional exception ops ++ ++ ++Wed Jan 17 19:22:34 CET 2007 Paolo Molaro ++ ++ * inssel.brg: patch from Mark Mason ++ to deal with mips missing of flags. ++ ++Tue Jan 16 20:01:01 CET 2007 Paolo Molaro ++ ++ * exceptions-ppc.c: execute fault handlers. ++ ++Tue Jan 16 19:54:44 CET 2007 Paolo Molaro ++ ++ * mini-ppc.c: handle missing call locationss with FORCE_INDIR_CALL. ++ ++Tue Jan 16 13:14:31 CET 2007 Paolo Molaro ++ ++ * mini.c: handle also floating point values in initialize_array. ++ ++Tue Jan 16 12:42:40 CET 2007 Paolo Molaro ++ ++ * mini.c, aot-runtime.c, aot-compiler.c: enable aot compilation of ++ array initialization and make it conditional on the intrins option. ++ ++Tue Jan 16 11:28:45 CET 2007 Paolo Molaro ++ ++ * mini.h, patch-info.h, Makefile.am, aot-compiler.c: reduce ++ relocations and put the patch info names close to the enum definition. ++ ++2007-01-15 Mark Mason ++ ++ * basic.cs, exceptions.cs: break up large tests to increase debugability. ++ ++Mon Jan 15 18:57:14 CET 2007 Paolo Molaro ++ ++ * mini.c: optimized RuntimeHelpers::InitializeArray () calls. ++ ++2007-01-12 Raja R Harinath ++ ++ * mini.c (mono_method_to_ir): Use new MonoGenericContext accessor. ++ ++Thu Jan 11 11:16:42 CET 2007 Paolo Molaro ++ ++ * Makefile.am: distribute the mips sources. ++ ++Wed Jan 10 19:49:33 CET 2007 Paolo Molaro ++ ++ * mini-codegen.h: handle bug #80489 here, by excluding ecx ++ directly. ++ ++Wed Jan 10 19:08:05 CET 2007 Paolo Molaro ++ ++ * cpu-x86.md: back out for now as this triggers other regressions. ++ ++Wed Jan 10 18:33:16 CET 2007 Paolo Molaro ++ ++ * cpu-x86.md: force src1 and dest regpair for long shift instructions ++ to eax:edx, so ecx can't get allocated to them (bug #80489). ++ ++Tue Jan 9 12:36:11 CET 2007 Paolo Molaro ++ ++ * mini.c, mini-exceptions.c: enabled running fault handlers ++ (bug #80469). ++ ++2007-01-03 Miguel de Icaza ++ ++ * driver.c: If nothing fail, do not use the string "failed", ++ because it makes it very annoying to view test result logs on the ++ web. ++ ++2006-12-30 Miguel de Icaza ++ ++ * debug-debugger.c (mono_debugger_main): Rename "main" to ++ "main_method" to prevent a warning. ++ ++ Remove a warning for unused field. ++ ++2006-12-28 Martin Baulig ++ ++ * debug-debugger.c ++ (MONO_DEBUGGER__debugger_info): Add `get_lmf_addr'. ++ ++2006-12-22 Martin Baulig ++ ++ * mdb-debug-info32.s, mdb-debug-info64.s: New files. ++ Put a pointer to the `MONO_DEBUGGER__debugger_info' into a ++ seperate `.mdb_debug_info' section, so we can access it from the ++ debugger even if the binary is stripped. ++ ++ * debug-debug.c: Reference the `MONO_DEBUGGER__debugger_info_ptr' ++ from the `.mdb_debug_info' here to prevent the linker from ++ removing that section. ++ ++ * Makefile.am (mono_debugger_sources): Add mdb-debug-info32.s / ++ mdb-debug-info64.s. ++ ++2006-12-19 Robert Jordan ++ ++ * mini-x86: enable the code to return small structures in ++ registers for FreeBSD as well. Fixes bug #80278. ++ * aot-runtime.c: Include sys/wait.h for WEXITSTATUS/WIFEXITED. ++ ++Mon Dec 18 19:47:17 CET 2006 Paolo Molaro ++ ++ * mini-x86.c: align the stack when calling the profiler ++ function instrumenting the prolog (on OSX). ++ ++Thu Dec 14 15:22:43 CET 2006 Paolo Molaro ++ ++ * mini.c: emit a break opcode where Debugger.Break () is called. ++ ++2006-12-13 Miguel de Icaza ++ ++ * mini.c (mono_method_to_ir): Provide useful information on this ++ assert, to prevent others from debugging like I did. ++ ++Tue Dec 12 17:01:38 CET 2006 Paolo Molaro ++ ++ * mini.c: enable code which was incorrectly commented ++ (bug #80235). ++ ++Tue Dec 12 16:28:15 CET 2006 Paolo Molaro ++ ++ * mini-x86.c: enable on OSX, too, the code to return small ++ structures in registers. ++ ++Mon Dec 11 19:22:35 CET 2006 Paolo Molaro ++ ++ * mini-x86.c: remove the use of the dynamic code manager here, too. ++ ++Mon Dec 11 19:08:33 CET 2006 Paolo Molaro ++ ++ * mini.h, debug-debugger.c, tramp-*.c: fixed ++ mono_debugger_create_notification_function() to use ++ mono_global_codeman_reserve () instead of a dynamic code manager. ++ ++Tue Dec 5 17:54:50 CET 2006 Paolo Molaro ++ ++ * mini.c, jit-icalls.h, jit-icalls.c: remove the ++ ves_array_element_address() jit icall and use a generated ++ managed method instead (which is about 4 times faster for a rank 3 ++ array access). ++ ++2006-11-29 Mark Mason ++ ++ * basic-calls.cs: additional tests for passing ++ structures as function arguments. ++ ++2006-11-29 Mark Mason ++ ++ * mini-mips.h: disable custom exception handling ++ * mini-mips.c: throw/rethrow should use jalr to call ++ exception stubs. Fixed bug with passing structures ++ by value. More support for tracing floating point ++ functions. ++ ++Wed Nov 29 20:28:17 CET 2006 Paolo Molaro ++ ++ * mini.c: fixed typo in the soft-float ldind.r4 handling ++ (bug #80086). ++ ++Wed Nov 29 11:33:03 CET 2006 Paolo Molaro ++ ++ * mini.c, mini.h, driver.c: added --runtime command line ++ option to select a different runtime than the autodetected one. ++ * jit.h: added API for embedders to initialize with a specific ++ runtime version. ++ ++Tue Nov 28 21:24:55 CET 2006 Paolo Molaro ++ ++ * mini.c: handle also boxing of r4 values (bug #80024). ++ ++Tue Nov 28 19:45:44 CET 2006 Paolo Molaro ++ ++ * mini-ppc.c: force indirect calls until we reserve ++ enough address space for all the generated code. ++ ++Tue Nov 28 20:04:34 GMT 2006 Paolo Molaro ++ ++ * exceptions-arm.c: workaround bugs in the libc definition ++ of struct ucontext. ++ ++Mon Nov 27 15:13:41 CET 2006 Paolo Molaro ++ ++ * inssel.brg: fixes from me and Mark Mason. ++ ++2006-11-23 Dick Porter ++ ++ * wapihandles.c (mini_wapi_seminfo): No need to adjust the counter ++ semaphore display now we've fixed the initial value ++ ++Wed Nov 22 11:04:37 CET 2006 Paolo Molaro ++ ++ * inssel.brg: partially revert the last change to fix the build. ++ ++2006-11-21 Mark Mason ++ ++ * inssel.brg: Add and use compare-and-branch macros to support ++ architectures that do not have condition code registers (ie. MIPS). ++ * *-mips.{c,brg,md}: Fix copyright statements ++ ++2006-11-20 Mark Mason ++ ++ * Makefile.am: remove mini-codegen.c from list of MIPS sources ++ * mini.c: Allow GET_CONTEXT to be specified by the arch port ++ * mini.h: Added declaration for mono_print_ins() ++ * mini-codegen.c: added ins_spec initializer for MIPS ++ * mini-codegen.c (mono_call_inst_add_outarg_reg): added asserts for ++ vreg to be virtual and hreg to be non-virtual. ++ * mini-codegen.c (mono_spillvar_offset): assert if MIPS - spilling ++ is not yet working/implemented correctly. ++ * mini-codegen.c (print_ins): rename to mono_print_ins(), make ++ non-static, fixup calls to print_ins() from other parts in the file. ++ ++2006-11-20 Mark Mason ++ ++ * basic-calls.cs: added tests for passing structures as arguments ++ to calls. ++ ++Mon Nov 20 19:40:11 CET 2006 Paolo Molaro ++ ++ * inssel-long32.brg: optimize signed division by power of two. ++ ++Mon Nov 20 17:37:58 CET 2006 Paolo Molaro ++ ++ * mini-arm.c: added support for interworking with thumb code ++ (mono must be still be built using the ARM instruction encoding). ++ ++2006-11-19 Miguel de Icaza ++ ++ * mini.c (type_from_op): Separate the conditions for OP_EQ as the ++ verifier has different rules for it. Fixes a few verifier issues ++ in the test suite. ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Put the message ++ at the end, so people know what happened. ++ ++Thu Nov 16 14:07:18 CET 2006 Paolo Molaro ++ ++ * brach-opts.c: in optimize_exception_target() make sure we ++ are in a catch clause (fixes bug #79871). ++ ++Thu Nov 16 12:42:13 CET 2006 Paolo Molaro ++ ++ * jit-icalls.c, jit-icalls.h, mini-arm.c, mini.c: ++ more soft-float support fixes. ++ ++Wed Nov 15 18:45:47 GMT 2006 Paolo Molaro ++ ++ * mini-arm.c, inssel-arm.brg: ABI fix for longs and doubles ++ that are passed half on the stack and half in registers. ++ ++Wed Nov 15 17:00:27 CET 2006 Paolo Molaro ++ ++ * mini-ops.h, mini-arch.h, helpers.c, Makefile.am: ++ more mips integration work from Mark E Mason ++ . ++ ++Wed Nov 15 16:34:03 CET 2006 Paolo Molaro ++ ++ * exceptions-mips.c, inssel-mips.brg, mini-mips.h, ++ cpu-mips.md, inssel-long32-mips.brg, mini-mips.c, ++ tramp-mips.c: added sources for the mips port, not ++ integrated in the build yet. Contributed by ++ Mark E Mason . ++ ++2006-11-14 Neale Ferguson ++ ++ * mini-s390[x].c (is_regsize_var): Support PTR/FNPTR too. ++ ++Tue Nov 14 16:06:37 CET 2006 Paolo Molaro ++ ++ * Makefile.am, inssel-float.brg, inssel-softfloat.brg: ++ put the soft-float rules in its own file since it seems to ++ break s390 compilation. ++ ++Mon Nov 13 15:54:38 CET 2006 Paolo Molaro ++ ++ * mini-arm.c: fixed wrnings. ++ ++Fri Nov 10 19:18:32 CET 2006 Paolo Molaro ++ ++ * mini-arm.c, mini-arm.h, cpu-arm.md, inssel-float.brg, ++ inssel-arm.brg: ARM support for soft-float. ++ ++Fri Nov 10 18:38:15 CET 2006 Paolo Molaro ++ ++ * mini.c, jit-icalls.c, jit-icalls.h: added first cut at handling ++ loads and stores of 32 bit fp values. ++ ++2006-11-10 Zoltan Varga ++ ++ * mini-sparc.c (is_regsize_var): Support PTR/FNPTR too. ++ ++ * tramp-sparc.c (mono_arch_patch_callsite): Fix this function so it actually ++ works. Fixes #79852 and #79463. ++ ++Thu Nov 9 16:56:13 CET 2006 Paolo Molaro ++ ++ * mini.c, mini-codegen.c, jit-icalls.c, jit-icalls.h: ++ more soft-float support WIP and fixes. ++ ++Wed Nov 8 16:40:02 CET 2006 Paolo Molaro ++ ++ * mini-arm.c: some VFP updates. ++ ++Tue Nov 7 19:45:51 CET 2006 Paolo Molaro ++ ++ * mini-exceptions.c: 0 is a valid local var offset in some ++ architectures, don't assert (bug #78508). ++ ++Tue Nov 7 18:17:52 GMT 2006 Paolo Molaro ++ ++ * exceptions-arm.c: fixed off by one error in stack walk code. ++ ++Tue Nov 7 11:27:26 CET 2006 Paolo Molaro ++ ++ * mini.h, mini.c: more precise tracking of type load exceptions. ++ ++2006-11-03 Robert Jordan ++ ++ * Makefile.am: [WIN32] Add monow.exe target. ++ * driver.c: [WIN32] Don't detach the console when debugging. ++ Fixes bug #79797. ++ ++2006-10-30 Miguel de Icaza ++ ++ * tramp-x86.c (mono_arch_patch_delegate_trampoline): Eliminate warning. ++ ++2006-10-23 Zoltan Varga ++ ++ * aot-compiler.c (emit_method_info): Add a case missed earlier. ++ ++ * driver.c (mini_regression): Fix --regression with AOT. ++ ++ * aot-compiler.c (emit_method_info): Fix AOT on amd64. ++ ++2006-10-17 Zoltan Varga ++ ++ * mini.c (GET_CONTEXT): Correct the definition of this for sparc/linux. ++ ++ * mini-sparc.h: Don't use sigaction on sparc/linux. ++ ++ * exceptions-sparc.c: Call mono_arch_flush_icache () in a couple of places. ++ ++ * mini-sparc.c (mono_sparc_flushw): Call mono_arch_flush_icache (). ++ ++ * mini-exceptions.c: Add proper include files for getpid (). ++ ++2006-10-16 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_method): Change this to return the native code ++ address instead of a MonoJitInfo* to avoid decoding the exception info for the ++ method. ++ ++ * aot-runtime.c aot-compiler.c: Use uint16 instead of uint32 entries in the ++ name cache to reduce its size. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump aot file format version. ++ ++2006-10-15 Zoltan Varga ++ ++ * mini-x86.c: Save/restore the current LMF structure more efficiently using ++ the mono_lmf TLS variable. ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Only access lmf->method in ++ trampoline lmf frames. ++ ++ * mini-sparc.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Define this on sparc as well. ++ ++2006-10-14 Zoltan Varga ++ ++ * mini-amd64.c: Save/restore the current LMF structure more efficiently using ++ the mono_lmf TLS variable. ++ ++ * mini-exceptions.c: Access the LMF structure through accessors. ++ ++ * mini.c: Allow the backends the option for storing the lmf in a dedicated TLS ++ variable instead of in jit_tls->lmf. ++ ++ * mini-x86.c mini-amd64.c: Update after lmf->lmf_addr name change. ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Only access lmf->method in ++ trampoline lmf frames. ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Do not set lmf->method as it is not needed. ++ ++2006-10-12 Zoltan Varga ++ ++ * mini.c trace.c mini-x86.c: Revert these too. ++ ++ * mini.c trace.c mini-x86.c: Remove warning workarounds after the mono_type_size () ++ signature change. ++ ++Tue Oct 10 11:35:20 CEST 2006 Paolo Molaro ++ ++ * genmdesc.c: removed now dead code. ++ ++2006-10-09 Robert Jordan ++ ++ * mini.c: Disable the CrashReporter on MacOS X; Fixes #74869 ++ ++Mon Oct 9 17:06:41 CEST 2006 Paolo Molaro ++ ++ * mini.h: do not leave gaps in the opcode values. ++ ++Mon Oct 9 16:08:51 CEST 2006 Paolo Molaro ++ ++ * jit-icalls.h: flag functions as internal here, too. ++ ++Mon Oct 9 15:58:18 CEST 2006 Paolo Molaro ++ ++ * mini.h, aliasing.h, declsec.h, regalloc.h, trace.h: mark internal ++ functions with the internal attribute. ++ ++Mon Oct 9 15:52:45 CEST 2006 Paolo Molaro ++ ++ * aot-compiler.c: fclose the file descriptor in the profile read loop. ++ ++Fri Oct 6 16:01:38 CEST 2006 Paolo Molaro ++ ++ * mini.c, jit-icalls.c, inssel-float.brg: beginnings of support ++ for soft-float. ++ ++2006-10-05 Zoltan Varga ++ ++ * mini-x86.c (emit_load_volatile_arguments): New function to handle arguments of ++ tail calls as on other platforms. ++ ++ * mini.c (mono_method_to_ir): Fix a few tailcall problems. Fixes #79557. ++ ++ * iltests.il: Add a few tailcall tests. ++ ++Tue Oct 3 16:33:08 CEST 2006 Paolo Molaro ++ ++ * driver.c: fix loop for old compilers (bug #79521). ++ ++2006-10-02 Zoltan Varga ++ ++ * mini-exceptions.c (ves_icall_get_trace): Remove debug printf. ++ ++ * aot-runtime.c (mono_aot_get_class_from_name): Avoid a memory allocation. ++ ++ * aot-compiler.c: Add a new option 'metadata-only' to only emit the cached ++ metadata without any code. ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Add some code to print out ++ more precise debugging information using gdb. ++ ++2006-09-30 Zoltan Varga ++ ++ * inssel-ia64.brg: Make the helper methods static. ++ ++Thu Sep 28 16:40:07 CEST 2006 Paolo Molaro ++ ++ * inssel-x86.brg: make the helper methods static. ++ ++Thu Sep 28 16:31:32 CEST 2006 Paolo Molaro ++ ++ * inssel-amd64.brg, mini-amd64.c: small cleanup, use inst_call. ++ ++Thu Sep 28 15:36:07 CEST 2006 Paolo Molaro ++ ++ * mini.c: updates for monoburg changes. ++ * inssel.brg: make a few helper functions static as they should. ++ ++2006-09-27 Zoltan Varga ++ ++ * Makefile.am: Move mini-codegen.c to common_sources. ++ ++Wed Sep 27 15:07:08 CEST 2006 Paolo Molaro ++ ++ * mini.h: instroduce inst_call in MonoInst for use in OUTARG ++ instructions. ++ * Makefile.am, cpu-g4.md, inssel-ppc.brg, mini-codegen.c, mini-ppc.c, ++ mini-ppc.h: port to use the common local register allocator. ++ ++2006-09-26 Zoltan Varga ++ ++ * mini.h: Remove the comment too then. ++ ++Tue Sep 26 14:02:58 CEST 2006 Paolo Molaro ++ ++ * mini.h: put back backend.data which is to be used shortly and ++ doesn't increase the size of MonoInst. If any 64 bit arch aligned ++ pointers on 4 byte boundaries it'd have much bigger issues running ++ and you can ifdef it out anyway. ++ ++2006-09-26 Zoltan Varga ++ ++ * mini.h (MonoInst): Remove backend.data field since it is unused and increases ++ MonoInst size by 4 bytes on 64 bit machines. ++ ++Tue Sep 26 11:57:26 CEST 2006 Paolo Molaro ++ ++ * *.{c,h,brg}: long due removal of the unused field in MonoInst and ++ replacement with more meaningful field names. Arch maintainers, please ++ check the assigned names are good enough for your arch. ++ ++2006-09-26 Zoltan Varga ++ ++ * cpu-ia64.md mini-ia64.c inssel-ia64.brg mini-ops.h: Get rid of the ++ OP_IA64_FETCHADD opcodes, use OP_ATOMIC_ADD_IMM_NEW opcodes instead. ++ ++Mon Sep 25 11:05:24 CEST 2006 Paolo Molaro ++ ++ * mini.h, driver.c, optflags-def.h, Makefile.am: reduce runtime ++ relocations and memory requirements, put the optimization flags ++ definitions in their own file. ++ ++2006-09-24 Zoltan Varga ++ ++ * jit-icalls.c (mono_helper_stelem_ref): Remove this unused helper function. ++ ++ * mini.c (mini_init): Remove reference to mono_helper_stelem_ref. ++ ++2006-09-22 Zoltan Varga ++ ++ * mini-amd64.c (add_valuetype): Fix an uninitialized memory issue. ++ ++Thu Sep 21 19:06:09 CEST 2006 Paolo Molaro ++ ++ * inssel.brg: use the correct function to get the size of an item ++ in an array, given an element class. ++ * aot-compiler.c: do not access class->class_size directly. ++ ++Thu Sep 21 12:10:56 CEST 2006 Paolo Molaro ++ ++ * mini.h, debug-mini.c: added a debugging function to print ++ info about local variables and arguments in a jitted method. ++ ++2006-09-20 Zoltan Varga ++ ++ * mini-alpha.c: More alpha port work from Sergey Tikhonov . ++ ++ * exceptions-ia64.c: Fix some problems reported by Bill Seurer . ++ ++2006-09-19 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_call_opcode): Avoid using the same loop index in the ++ inner and outer loops when passing vtypes. ++ ++Tue Sep 19 17:53:40 CEST 2006 Paolo Molaro ++ ++ * mini-ppc.c: take into account the cpu errata for cache flushing ++ which caused some random errors (bug #79381). ++ ++2006-09-19 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_exceptions): Emit the call to ++ mono_arch_throw_corlib_exception using emit_call () too. Fixes #79271. ++ ++2006-09-17 Zoltan Varga ++ ++ * aot-runtime.c (load_aot_module): Return immeditely if the AOT module was already ++ loaded. ++ ++ * exceptions-amd64.c (gregs_from_ucontext): Apply another patch from the ++ freebsd ports tree. ++ ++ * mini-amd64.c (emit_call): Avoid near calls on freebsd. ++ (mono_arch_patch_code): Remove the unused handling of MONO_PATCH_INFO_CLASS_INIT. ++ ++ * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix check for 32 bitness of ++ displacement. ++ ++2006-09-13 Zoltan Varga ++ ++ * aot-runtime.c (load_aot_module_from_cache): Fix PPC build. ++ ++2006-09-12 Zoltan Varga ++ ++ * mini.c (UNVERIFIED): Add a 'break-on-unverified' MONO_DEBUG option so this ++ macro does not have to be changed during debugging. ++ ++ * cpu-alpha.md inssel-alpha.brg mini-alpha.h mini-alpha.c exceptions-alpha.c tramp-alpha.c: More alpha port work from Sergey Tikhonov . ++ ++ * cpu-pentium.md: Rename this to cpu-x86.md for consistency with other platforms. ++ ++ * Makefile.am mini-x86.c mini-codegen.c: Rename pentium_desc to x86_desc. ++ ++ * mini.c (mini_get_ldelema_ins): Allow ldelema2d optimization if ++ MONO_ARCH_NO_EMULATE_MUL is defined. ++ ++ * mini-ia64.h (MONO_ARCH_CALLEE_FREGS): Reserve f33 for use by instructions. ++ ++ * mini-ia64.h: Define MONO_ARCH_NO_EMULATE_MUL. ++ ++ * mini-ia64.c: Implement CEE_MUL based on gcc emitted code. ++ ++ * mini-ia64.c (mono_arch_lowering_pass): Optimize store_membase_imm with offset==0. ++ ++2006-09-11 Zoltan Varga ++ ++ * mini-x86.h mini-amd64.h mini-exceptions.c: Move the bsd specific MAP_ANON ++ stuff to mini-exceptions.c where it is used. ++ ++ * mini-sparc.c (mono_arch_setup_jit_tls_data): Remove the duplicate altstack ++ setup code, the real one is in mini-exceptions.c. ++ ++ * mini-amd64.h mini-amd64.c exceptions-amd64.c: Move all dependencies on the ++ layout of ucontext_t to helper functions in exceptions-amd64.c, as on x86. Add ++ some changes from the freebsd ports tree. ++ ++ * mini-amd64.h exceptions-amd64.c: Fix the amd64 build. Get rid of the SC_ ++ constants. ++ ++ * mini-amd64.h: Freebsd has MAP_ANON instead of MAP_ANONYMOUS. ++ ++Mon Sep 11 13:18:55 CEST 2006 Paolo Molaro ++ ++ * mini.c: on Linux, check for /proc to be mounted ++ (bug# 79351, novell bug#201204). ++ ++Mon Sep 11 13:10:12 CEST 2006 Paolo Molaro ++ ++ * mini.c: handle cases where pthread_attr_getstack() behaves ++ incorrectly (bug #78096). ++ ++Mon Sep 11 11:31:10 BST 2006 Paolo Molaro ++ ++ * mini-arm.c: support larger stack frames (bug #79272). ++ ++2006-09-08 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_class_from_name): Remove a debug printf. ++ ++ * aot-compiler.c: Add a hash table to the AOT file mapping class names to typedef ++ tokens. ++ ++ * aot-runtime.c (mono_aot_get_class_from_name): New function used by ++ mono_class_from_name () to find a class from its name. ++ ++ * mini.c (mini_init): Register mono_aot_get_class_from_name () with the runtime. ++ ++2006-09-07 Zoltan Varga ++ ++ * mini-amd64.c (emit_call): Avoid strstr () call if possible. ++ ++2006-09-05 Kornél Pál ++ ++ * Makefile.am: Renamed mono-1.dll to mono.dll. (-avoid-version) ++ ++2006-09-04 Zoltan Varga ++ ++ * mini.c (mono_icall_get_wrapper): Fix a race condition on initializing ++ callinfo->trampoline. ++ ++ * mini-amd64.c (emit_call): Special case calls to the vararg array icalls. Hopefully ++ fixes #79271. ++ (mono_arch_patch_code): Add some debug code to help track down similar failures in the ++ future. ++ ++2006-09-03 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_plt_resolve): Add an assert. ++ ++2006-09-02 Zoltan Varga ++ ++ * tramp-x86.c (mono_arch_create_specific_trampoline): Don't increase ++ stats.method_trampolines, it is already done by the generic trampoline code. ++ ++ * tramp-amd64.c (mono_arch_create_specific_trampoline): Ditto. ++ ++2006-09-01 Zoltan Varga ++ ++ * mini.c: Remove some references to mono_compile_aot, and use cfg->compile_aot instead. ++ ++ * aot-runtime.c: Add some tweaks to the MONO_AOT_CACHE functionality. ++ ++ * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix a FIXME. ++ ++ * mini.c (print_jit_stats): Print mscorlib mempool size too. ++ ++ * mini.c (print_jit_stats): Print new stats. ++ ++ * *-alpha.c: More alpha port work from Sergey Tikhonov . ++ ++2006-08-31 Zoltan Varga ++ ++ * mini.c (mini_get_ldelema_ins): Fix verifier error when calling ++ Address on two dimensional arrays. Fixes #78729. ++ ++ * mini.h (MonoCompile): Add a 'skip_visibility' field. ++ ++ * mini.c (method_to_ir): Disable visibility checks if skip_visibility is set on ++ a method. ++ ++ * mini-amd64.c (mono_arch_emit_exceptions): Fix assertion introduced by the last change. ++ ++ * mini.c (mono_runtime_cleanup_handlers): Clean up signal handlers on unix. Fixes ++ #79130. ++ ++ * mini.c (handle_array_new): Applied patch from "briaeros007". Fix ++ a race condition. ++ (mini_get_ldelema_ins): Ditto. ++ ++2006-08-30 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_exceptions): Align fp constants to 16 bytes. ++ (mono_arch_output_basic_block): Avoid unaligned accesses in FNEG implementation. ++ Fixes #79213. ++ ++2006-08-29 Neale Ferguson ++ ++ * mini-s390.c, mini-s390x.c: Fix VARARG case processing with 0 arguments. Add ++ mono_arch_get_patch_offset as a dummy entry point to allow successful link. ++ ++ * exceptions-s390x.c: Cosmetic change. ++ ++ * tramp-s390.c: Fix warning. ++ ++ * cpu-s390.md: Correct length of mul_imm. ++ ++Wed Aug 23 19:24:00 CEST 2006 Paolo Molaro ++ ++ * aot-compiler.c: added binary writer with ELF backend ++ implementation (only on Linux/x86 for now). ++ ++2006-08-18 Zoltan Varga ++ ++ * Makefile.am: Don't run net 2.0 AOT tests. ++ ++ * aot-compiler.c (compile_method): Skip methods with tail calls as well. ++ (mono_compile_assembly): Skip net 2.0 assemblies as well. ++ ++ * aot-runtime.c (load_patch_info): Fix an uninitialized memory error. ++ ++Fri Aug 18 19:38:28 CEST 2006 Paolo Molaro ++ ++ * aot-compiler.c: simplified and refactored the asm-writing code ++ to allow different backends. ++ ++2006-08-18 Zoltan Varga ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version. ++ ++ * aot-compiler.c aot-runtime.c: Reorg the GOT slot allocation code a ++ little. Share patches of type TYPE_FROM_HANDLE as well. ++ ++ * mini.c (mono_patch_info_equal): New helper function. ++ (mono_patch_info_hash): Ditto. ++ ++ * aot-compiler.c (emit_method_code): Fix s390 build. ++ ++ * mini.c (mono_allocate_stack_slots_full): Fix yet another place where byref ++ is not handled because it is stored as a flag and not as a type ctor. Fixes ++ #79016. ++ ++2006-08-17 Zoltan Varga ++ ++ * aot-compiler.c: Fix computation of GOT slot statistics. ++ ++ * aot-compiler.c aot-runtime.c: Implement sharing of GOT slots for classes/fields. ++ Also remove support for not PIC AOT. ++ ++ * mini.h: Bump AOT file format version. ++ ++ * objects.cs: Add a test for #78990. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Applied patch from Peter Dettman ++ (peter.dettman@iinet.net.au). Fixes #79087. ++ ++ * basic-long.cs: Add a test for the above. ++ ++2006-08-16 Zoltan Varga ++ ++ * aot-compiler.c (get_got_offset): Add a cache for GOT entries, not yet used. ++ ++ * aot-compiler.c (get_plt_index): Add a cache for wrappers too. Simplify the ++ code somewhat. ++ ++2006-08-15 Zoltan Varga ++ ++ * mini.c (mini_init): Fix registration of idiv/imul opcodes which can throw ++ exceptions. ++ ++2006-08-10 Jonathan Chambers ++ ++ * mini.c: Don't verify COM proxy invoke calls ++ ++ ++2006-08-10 Dick Porter ++ ++ * wapihandles.c (mini_wapi_seminfo): More info, to help track down ++ which process is holding semaphores locked. ++ ++2006-08-08 Zoltan Varga ++ ++ * mini-ia64.c mini-amd64.c: Fix #79027. ++ ++ * mini-sparc.c (mono_arch_call_opcode): Fix the previous patch. ++ ++ * mini-sparc.c (mono_arch_call_opcode): Fix #79027. ++ ++ * mini-x86.c (mono_arch_call_opcode): Handle the case where there are no ++ implicit arguments in a vararg call. Fixes #79027. ++ ++2006-08-07 Zoltan Varga ++ ++ * mini.c (mono_get_element_address_signature): Use CDECL calling convention on windows. Fixes #78969. ++ (mono_get_array_new_va_signature): Ditto. ++ ++2006-08-05 Zoltan Varga ++ ++ * aot-runtime.c: Call init_plt lazily. ++ ++ * inssel-long.brg: Fix unsigned long->int conversion. ++ ++ * aot-runtime.c (init_plt): Remove a redundant make_writable () call. ++ ++ * aot-compiler.c aot-runtime.c: Reorganize the file structure in the amd64 case so ++ that most data is now in the .rss/.data section. ++ ++2006-08-04 Zoltan Varga ++ ++ * aot-compiler.c: Correct the computation of the 'direct-calls' statistic. ++ ++ * aot-compiler.c: Print the number of methods without GOT slots as a statistics. ++ ++ * aot-compiler.c aot-runtime.c tramp-amd64.c: Resurrect amd64 AOT support. ++ ++ * tramp-amd64.c (mono_arch_patch_callsite): Fix a warning. ++ ++ * jit-icalls.c (mono_helper_compile_generic_method): Unbox vtypes since this is a ++ virtual call. Fixes #79010. ++ ++ * mini.c (mono_method_to_ir): Pass an additional out arg to compile_generic_method ++ and use the result as the this argument in the real call. ++ ++ * generics.2.cs: Add a new test for #79010. ++ ++2006-08-03 Zoltan Varga ++ ++ * mini-x86.c: Fix a warning. ++ ++ * aot-compiler.c: Add a bunch of statistics. ++ ++ * mini.c (inline_method): Disable inlining in out-of-line bblocks. ++ ++2006-08-02 Zoltan Varga ++ ++ * mini-arch.h Makefile.am mini-ops.h mini-codegen.c: More alpha updates. ++ ++2006-08-01 Zoltan Varga ++ ++ * cpu-alpha.md inssel-alpha.brg mini-alpha.h mini-alpha.c exceptions-alpha.c tramp-alpha.c: More alpha port work from Sergey Tikhonov . ++ ++2006-07-13 Miguel de Icaza ++ ++ * mini.c (mono_method_to_ir): Obtain the original method in the ++ CIL stream and use this to perform validation. ++ ++ Fixed: #78816 ++ ++2006-07-19 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_argument_info): Fix a warning. ++ (mono_arch_call_opcode): Ditto. ++ ++ * mini.c (mono_method_to_ir): Clear ins_flag at the end of CEE_CALL. Fixes ++ #78826. ++ ++ * mini.c (mono_patch_info_dup_mp): New helper function. ++ ++ * aot-compiler.c (compile_method): Fix some of the memory allocated during ++ compilation. Fixes #78827. ++ ++2006-07-18 Kornél Pál ++ ++ * declsec.c: Use original security informations for ++ MONO_WRAPPER_MANAGED_TO_MANAGED. ++ ++2006-07-15 Jonathan Chambers ++ ++ * mini.c: Allow Com Interop methods/classes and ++ don't verify COM wrapper calls ++ ++ ++2006-07-13 Zoltan Varga ++ ++ * inssel-long32.brg: Fix long->i4 checked conversion. ++ ++ * exceptions.cs: Add a test for the above. ++ ++2006-07-08 Zoltan Varga ++ ++ * mini-exceptions.c (mono_setup_altstack): Fix a memory leak. ++ ++ * mini.c: Applied patch from Joachim Ante (joe@otee.dk). Fix some shutdown ++ leaks. ++ ++ * helpers.c (mono_disassemble_code): Avoid using fixed temporary files. Fixes ++ #78775. ++ ++2006-07-03 Zoltan Varga ++ ++ * mini.c: Fix solaris/x86 exception handling. ++ ++ * Makefile.am: Get rid of $(ICU_LIBS). ++ ++2006-07-02 Zoltan Varga ++ ++ * mini-exceptions.c: Fix handling of unhandled SIGSEGV exceptions on ia64. ++ (ves_icall_System_Security_SecurityFrame_GetSecurityStack): Use MONO_INIT_CONTEXT_FROM_CURRENT. ++ (ves_icall_System_Security_SecurityFrame_GetSecurityFrame): Ditto. ++ ++ * mini-ia64.h (MONO_CONTEXT_SET_FUNC): New macro. ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Prevent infinite loops if ++ this function causes a SIGSEGV. ++ ++2006-06-22 Zoltan Varga ++ ++ * mini.c: Remove unused solaris/x86 includes. ++ ++2006-06-21 Zoltan Varga ++ ++ * jit.h: Add G_BEGIN_DECLS/G_END_DECLS. ++ ++2006-06-20 Jb Evain ++ ++ * cpu-g4.md: fix max length of start_handler instruction. ++ ++2006-06-20 Massimiliano Mantione ++ * simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78656. ++ ++2006-06-16 Massimiliano Mantione ++ * ssa.c: Fixed bug 78653 for SSA based deadce. ++ * mini.h: added MONO_INST_DEFINITION_HAS_SIDE_EFFECTS flag go ++ MonoInst.flags, used in SSA based deadce. ++ * aliasing.c: Fixed bug 78653 for "fastpath" deadce. ++ * simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78653. ++ ++Thu Jun 15 16:52:46 CEST 2006 Paolo Molaro ++ ++ * tramp-ppc.c: don't use malloc () for trampoline code, sometimes ++ it can end up using non executable memory on ppc64 systems ++ running ppc32 userspace (fix from Johannes Berg). ++ ++2006-06-14 Dick Porter ++ ++ * wapihandles.c: Fix a bunch of signed/unsigned warnings from gcc ++ 4.1.1 ++ ++2006-06-13 Massimiliano Mantione ++ * mini.c: Made so that inline is locally disabled if it would ++ trigger a .cctor, because too many apps depend on this behavior ++ (which seems to be also the one of the MS CLR). ++ ++2006-06-13 Zoltan Varga ++ ++ * mini-amd64.c (mono_emit_stack_alloc): Fix initialization of localloc'ed memory. ++ No idea why this worked before. ++ ++ * branch-opts.c (mono_branch_optimize_exception_target): Avoid branches ++ which branch to outer exception clauses since they could skip the ++ inner finally clauses. Fixes #78633. ++ ++ * exceptions.cs: Add a test for the above. ++ ++ * mini.c (merge_basic_blocks): Nullify the branch at the end of the first bb. ++ Fixes #78629. ++ ++ * iltests.il: Add a test for the above. ++ ++2006-06-12 Zoltan Varga ++ ++ * mini.c (remove_block_if_useless): Do not remove the bblock immediately ++ after the end of a try bblock, to prevent asserts in mini_method_compile (). ++ ++ * iltests.il: Add a test for the above. ++ ++2006-06-10 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_lowering_pass): Remove some code duplication. ++ ++ * mini-ia64.c inssel-ia64.brg: Implement the new net 2.0 Interlocked.Add ++ methods as instrinsics. ++ ++2006-06-09 Wade Berrier ++ ++ * Makefile.am: Fix sources list for svn rename so that make dist succeeds ++ (simple-cee-ops.h ssapre-mini-ops.h) ++ ++2006-06-09 Neale Ferguson ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Fix this function on s390/s390x. ++ * mini-s390x.c, mini-s390.c: Correct ATOMIC operations (incorrect register for CS ++ instruction). ++ * mini-s390x.h, mini-s390.h: Simplify MCONTEXT_GET_BP. ++ * cpu-s390x.md: Fix max. length values for a couple of instructions. ++ ++2006-06-09 Jonathan Chambers ++ ++ * mini-exceptions.c: Minor fix for building mono in Visual Studio. ++ ++2006-06-08 Massimiliano Mantione ++ ++ * ssapre-cee-ops.h: Renamed as "simple-cee-ops.h" ++ * simple-cee-ops.h: Was "ssapre-cee-ops.h" (renamed). ++ * ssapre-mini-ops.h: Renamed as "simple-mini-ops.h" ++ * simple-mini-ops.h: Was "ssapre-mini-ops.h" (renamed). ++ * local-propagation.c: In mono_cprop_invalidate_values use a whitelist ++ of opcodes, so that bug 78549 should not happen again. ++ * ssapre.c: Updated to use the renamed files. ++ ++2006-06-08 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix a wrong reg-reg move ++ in OP_ATOMIC_EXCHANGE_I4. ++ ++2006-06-07 Wade Berrier ++ ++ * tramp-s390.c: Fix s390 build (add missing pointer declarations ++ in mono_debugger_create_notification_function) ++ ++2006-06-06 Zoltan Varga ++ ++ * mini.c (NEW_AOTCONST_TOKEN): Fix amd64 build. ++ ++ * mini.c (type_from_stack_type): Disable some changes which do not ++ seem to work. ++ ++ * driver.c: Reenable opts. ++ ++ * mini.h (MonoStackSlot): New structure to keep track of the verification state ++ of the evaluation stack. ++ ++ * mini.h (MonoBasicBlock): Add a 'stack_state' field to keep track of the ++ evaluation stack trace at entry to the bblock. ++ ++ * mini.c (merge_stacks): New function to perform verification of stack merges. ++ Turned off by default. ++ ++ * mini.c: Fill up ins->klass for instructions whose type is STACK_OBJ or ++ STACK_MP. ++ ++2006-06-06 Massimiliano Mantione ++ ++ * local-propagation.c: Fixed bug 78549. ++ ++2006-06-04 Zoltan Varga ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Fix this function on ia64. ++ ++2006-06-02 Miguel de Icaza ++ ++ * tramp-sparc.c, tramp-ppc.c, tramp-s390.c, tramp-s390x.c, ++ tramp-arm.c, tramp-ia64.c ++ (mono_debugger_create_notification_function): Update signature to ++ new signature and use new protocol for creating the notification ++ function. ++ ++ Should fix the build. ++ ++2006-06-02 Geoff Norton ++ ++ * exceptions-ppc.c (mono_jit_walk_stack) ++ (ves_icall_get_frame_info): Fix the build ++ ++2006-06-02 Zoltan Varga ++ ++ * mini.c (mono_set_defaults): Fix the handling of -O=-all. ++ ++2006-05-31 Raja R Harinath ++ ++ * il2tests.2.il: New file for generics CIL tests. Add test for ++ #78019. ++ * Makefile.am: Update. ++ ++ Fix #78019 ++ * mini.c (mono_method_to_ir): Don't apply box+brtrue optimization ++ to nullable types. ++ ++2006-05-30 Massimiliano Mantione ++ ++ * aliasing.c: Fixed bug 78311. ++ ++2006-05-29 Martin Baulig ++ ++ * mini-exceptions.c (mono_find_jit_info): When computing the ++ native offset, check whether we're actually inside the method's ++ code; call mono_debug_print_stack_frame() to format the frame. ++ (ves_icall_System_Exception_get_trace): Call ++ mono_debug_print_stack_frame() to format the stack frame. ++ (ves_icall_get_trace): Update to the new debugging API. ++ (mono_jit_walk_stack_from_ctx): Likewise. ++ (ves_icall_get_frame_info): Likewise. ++ ++ * mini.c (get_method_from_ip): Use the new debugging API. ++ (mono_print_method_from_ip): Likewise. ++ ++ * exceptions-ppc.c ++ (mono_jit_walk_stack): Use the new debugging API. ++ (ves_icall_get_frame_info): Likewise. ++ ++2006-05-27 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix MONO_PROFILE_COVERAGE. ++ ++2006-05-25 Massimiliano Mantione ++ ++ * mini.c: Added "limitator" to inline for debugging. ++ ++2006-05-24 Martin Baulig ++ ++ * debug-debugger.c (mono_debugger_init): Create a private, ++ malloc()-based code manager for the notification function and ++ intentionally leak it on exit. This fixes the crash-on-exit race ++ condition. ++ ++ * tramp-amd64.c ++ (mono_debugger_create_notification_function): Added ++ `MonoCodeManager *' argument. ++ ++ * tramp-x86.c ++ (mono_debugger_create_notification_function): Added ++ `MonoCodeManager *' argument. ++ ++2006-05-23 Massimiliano Mantione ++ ++ * aliasing.c: Fixed 64 bit issue. ++ * driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by ++ default since all known bugs are fixed (one more time!). ++ ++Tue May 23 13:47:28 CEST 2006 Paolo Molaro ++ ++ * mini.c: write barrier support. ++ ++2006-05-23 Martin Baulig ++ ++ * debug-debugger.c: Revert Paolo's change. Add comment and #error ++ check at the top of the file. ++ ++Sun May 21 12:22:29 CEST 2006 Paolo Molaro ++ ++ * debug-debugger.c: fix the build. Again. Hopefully Martin will stop ++ reverting changes without reason and without changelog entries. ++ ++2006-05-18 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Add support for large stack offets ++ to a few opcodes. Fixes #78439. ++ ++ * mini-sparc.c: Rename mono_sparch_break () to mono_arch_break () to improve ++ consistency with other archs. ++ ++ * mini-ia64.c (mono_arch_emit_prolog): Remove debug stuff left in by mistake. ++ ++Wed May 17 18:07:33 CEST 2006 Paolo Molaro ++ ++ * debug-debugger.c: fix the build. ++ ++2006-05-17 Martin Baulig ++ ++ * debug-debugger.c ++ (debugger_thread_vtable): Moved here from ../metadata/threads.c. ++ (debugger_init_threads): Formerly known as mono_debugger_init_threads(). ++ (debugger_finalize_threads): Formaly known as mono_debugger_finalize_threads(). ++ (debugger_attach): Call GC_mono_debugger_add_all_threads(). ++ ++2006-05-11 Zoltan Varga ++ ++ * mini.c (mini_init): Call pthread_attr_destroy () to fix a small memory leak. ++ ++2006-05-10 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_instrument_epilog): Fix handling of ++ MONO_TYPE_GENERICINST. ++ ++ * mini-amd64.c (mono_arch_instrument_epilog): Fix handling of ++ MONO_TYPE_GENERICINST. ++ ++2006-05-09 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_get_vcall_slot_addr): Add a missing call sequence. Fixes ++ #78325. ++ ++2006-05-08 Zoltan Varga ++ ++ * mini.c (mono_create_jump_trampoline): Allocate MonoJitInfo from the domain ++ mempool. ++ (mono_jit_free_method): Remove the method from jump_trampoline_hash as well. ++ ++2006-05-06 Zoltan Varga ++ ++ * mini.c (mini_cleanup): Applied patch from Joachim Ante (joe@otee.dk). Call ++ mono_trace_cleanup (). ++ ++ * iltests.il: Fix problem with the newly added test. ++ ++ * mini-codegen.c (mono_local_regalloc): When changing the dreg of an instruction ++ due to register constraints, free up the previous hreg. Fixes #78314. ++ ++ * iltests.il: Add new test for #78314. ++ ++ * mini-x86.c (mono_arch_get_inst_for_method): Use OP_ATOMIC_ADD_NEW_I4 for ++ Interlocked.Add. Fixes #78312. ++ ++ * mini-amd64.c (mono_arch_get_inst_for_method): Ditto. ++ ++2006-05-05 Zoltan Varga ++ ++ * inssel.brg (mini_emit_virtual_call): Fix a warning. ++ ++2006-05-05 Martin Baulig ++ ++ * debug-mini.c (mono_debug_open_block): New method. ++ ++ * mini-amd64.c ++ (mono_arch_output_basic_block): Call mono_debug_open_block() at ++ the beginning of each basic block. ++ ++ * mini-x86.c ++ (mono_arch_output_basic_block): Call mono_debug_open_block() at ++ the beginning of each basic block. ++ ++2006-05-04 Massimiliano Mantione ++ ++ * driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by ++ default until I understand why they break the build on amd64. ++ ++2006-05-04 Zoltan Varga ++ ++ * mini.c (mini_cleanup): Call mono_cleanup (). ++ ++ * mini.c (UNVERIFIED): New macro to make it easier to track down verification ++ errors. ++ ++2006-05-04 Massimiliano Mantione ++ ++ * aliasing.c: Fixed shameful cut&paste error that caused JIT crashes. ++ * driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by ++ default since all known bugs are fixed, and I cannot reproduce bug ++ 77944... I'm asking Matt Hargett to test again after this commit. ++ ++2006-04-28 Massimiliano Mantione ++ ++ * mini-codegen.c: Fixed typo that thrashed inline. ++ ++2006-04-28 Zoltan Varga ++ ++ * dominators.c (compute_dominators): Avoid using a worklist since ++ it is not correct in some cases. Instead, iterate over all bblocks as ++ in the original paper. Fixes --compile-all -O=all System.Xml.dll. ++ ++2006-04-28 Miguel de Icaza ++ ++ * mini.c (mono_jit_compile_method_inner): Use ++ mono_prepare_exception_from_error that resets the value ++ internally. ++ ++2006-04-27 Miguel de Icaza ++ ++ * mini.c: Move the mini_loader_error_to_exception to metadata. ++ ++2006-04-27 Massimiliano Mantione ++ ++ * aliasing.c: Fixed bug 78210. ++ ++2006-04-27 Massimiliano Mantione ++ ++ * driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by ++ default until all their problems (or the ones they trigger) are fixed. ++ ++2006-04-26 Zoltan Varga ++ ++ * aot-runtime.c (mono_aot_get_method_from_token_inner): Fix the previous patch. ++ ++ * aot-runtime.c (mono_aot_get_method_from_token_inner): Mark the method ++ as loaded only after resolving patches since that could invoke the same method. ++ ++ * aot-runtime.c (mono_aot_plt_resolve): Fix ppc etc. builds. ++ ++ * aot-compiler.c: Refactor mono_aot_compile_aot () into a bunch of smaller ++ functions. ++ ++ * aot-runtime.c (init_plt): Use a normal trampoline to transfer code to the ++ AOT loader. ++ ++ * aot-compiler.c (emit_plt): Pass the plt offset in %eax instead of on the ++ stack. ++ ++ * mini-trampolines.c (mono_aot_plt_trampoline): New trampoline to handle calls ++ made from AOT code through the PLT table. ++ ++ * mini-x86.h mini-amd64.h: Define MONO_ARCH_AOT_PLT_OFFSET_REG to the register ++ holding the plt offset when a call is made to the aot plt trampoline. ++ ++2006-04-25 Zoltan Varga ++ ++ * aot-runtime.c aot-compiler.c cpu-amd64.md mini-amd64.c: Update parts of the ++ amd64 AOT support. ++ ++ * Makefile.am (common_sources): Fix build breakage. ++ ++ * aot-runtime.c aot-compiler.c: Reorganize the AOT code yet again: Make all ++ calls through a jump table similar to the ELF PLT table. Avoid indirect calls for ++ intra-assembly calls if possible. ++ ++ * tramp-*.c: Add new functions for patching/nullifying PLT entries. ++ ++ * mini-trampolines.c: Handle PLT entries. ++ ++ * mini.c: Avoid creating a GOT var for calls. ++ ++ * jit-icalls.c (helper_ldstr_mscorlib): New helper function for loading strings ++ from mscorlib code. ++ ++ * jit-icalls.c (helper_newobj_mscorlib): New helper function to create objects ++ from mscorlib code. ++ ++ * mini.c (mono_method_to_ir): Use the new helper functions in throw bblocks in ++ AOT code. ++ ++ * mini.h: Bump AOT file format version. ++ ++ * mini.c (get_basic_blocks): Fix the calculation of bb->out_of_line so it ++ covers more cases. ++ ++2006-04-25 Martin Baulig ++ ++ * driver.c: Disable copyprop, consprop and inline when running ++ inside the debugger. ++ ++2006-04-25 Martin Baulig ++ ++ * debug-debugger.h (MonoDebuggerInfo): Replaced `get_thread_id' ++ with `get_current_thread' and added `detach'. ++ (MonoDebuggerMetadataInfo): Added `thread_size', ++ `thread_tid_offset', `thread_stack_ptr_offset' and ++ `thread_end_stack_offset'. ++ ++2006-04-25 Zoltan Varga ++ ++ * aot.c Makefile.am: Split aot.c into two new files aot-compiler.c and ++ aot-runtime.c. ++ ++ * inssel.brg (mini_emit_load_intf_reg_vtable): Use a new kind of AOT constant ++ ADJUSTED_IID to avoid the need for adjusting the IID at runtime. ++ ++ * mini.h (MonoJumpInfoType): Add MONO_PATCH_INFO_ADJUSTED_IID. ++ ++ * mini.c (mono_resolve_patch_target): Handle ADJUSTED_IID. ++ ++ * aot.c: Add support for ADJUSTED_IID. ++ ++2006-04-24 Zoltan Varga ++ ++ * aot.c (emit_method_order): Don't align method_order_end. ++ ++ * inssel.brg (stmt): Fix interface calls in AOT code which got broken by ++ the interface ID changes. ++ ++2006-04-21 Dick Porter ++ ++ * mini.c (mini_thread_cleanup): Clear the JIT TLS data when ++ cleaning up a thread. Fixes the new part of bug 77470. ++ ++2006-04-20 Geoff Norton ++ ++ * mini-ppc.c: Call mono_jit_thread_attach when transitioning a native ++ to managed wrapper. ++ ++2006-04-19 Zoltan Varga ++ ++ * mini.h mini.c: Remove mono_type_to_ldind/stind () which are now in marshal.c. ++ ++ * mini.c (mono_runtime_install_handlers): Handle SIGABRT similarly to ++ SIGSEGV. Fixes #78072. ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Add a 'signal' argument, ++ unregister our SIGABRT handler. ++ ++2006-04-19 Massimiliano Mantione ++ ++ * mini.c: Disabled inline where it can alter the call stack in a ++ way visible from managed code. ++ * driver.c: enabled inline,consprop,copyprop,treeprop,deadce by ++ default. ++ ++2006-04-16 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Attach the thread to the runtime as it is done ++ on other platforms. Fixes #78089. ++ ++2006-04-13 Martin Baulig ++ ++ * driver.c: Also check a `MONO_INSIDE_MDB' environment variable to ++ determine whether we're inside the debugger. ++ ++ * debug-debugger.h ++ (MonoDebuggerMetadataInfo): Added all offsets from `MonoDefaults'. ++ ++2006-04-12 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Handle multiple LEAVE statements inside a single ++ handler clauses. Fixes #78024. ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Handle large offsets ++ in the CALL_MEMBASE opcodes. Fixes #78088. ++ (mono_arch_get_vcall_slot_addr): Ditto. ++ ++2006-04-10 Martin Baulig ++ ++ * debug-debugger.c: The thread handling code has now been moved ++ into ../metadata/threads.c. ++ ++2006-04-10 Zoltan Varga ++ ++ * driver.c (mono_main): Fix --with-gc=none build. ++ ++ * mini-codegen.c (mono_spillvar_offset): Improve alignment. ++ (mono_spillvar_offset_float): Ditto. ++ (mono_local_regalloc): Only do the OP_MOVE optimization if ins->dreg is a local ++ hreg, not when its !global, since on ia64, there is a third category: stacked ++ registers. ++ ++Mon Apr 10 14:39:49 CEST 2006 Paolo Molaro ++ ++ * mini.c: set MonoInst->klass for load field address and a few other ++ places. ++ ++2006-04-10 Zoltan Varga ++ ++ * helpers.c (mono_disassemble_code): Emit debug info on amd64 as well. ++ ++2006-04-07 Zoltan Varga ++ ++ * dominators.c (compute_dominators): Fix yet another bug which surfaced after ++ the branch opt changes. ++ ++2006-04-06 Dick Porter ++ ++ * wapihandles.c (mini_wapi_semdel): Fix parameters in semctl () call. ++ ++ * wapihandles.c (mini_wapi_seminfo): ++ * driver.c (mono_main): Add semaphore info option ++ ++2006-04-05 Zoltan Varga ++ ++ * dominators.c (compute_dominators): Fix a bug which surfaced after the recent ++ branch optimization changes. Fixes #78009. ++ ++Wed Apr 5 16:40:33 CEST 2006 Paolo Molaro ++ ++ * mini.c: ignore accessibility of methods in managed->native wrappers. ++ ++2006-04-04 Zoltan Varga ++ ++ * mini.c (mini_cleanup): Call print_jit_stats () earlier since it accesses metadata. ++ ++ * mini.c (mini_cleanup): Free 'emul_opcode_map' as well. ++ ++2006-04-03 Zoltan Varga ++ ++ * mini.c: Modify the branch optimizations to preserve the invariant that ++ the entries inside the in_bb and out_bb arrays are unique. ++ (mono_unlink_bblock): Avoid creation of new arrays. ++ ++2006-04-02 Zoltan Varga ++ ++ * mini.c (mono_unlink_bblock): Fix regression caused by previous ++ change (#77992). ++ ++2006-04-01 Zoltan Varga ++ ++ * mini.c (optimize_branches): Remove the "optimizations" in ++ the cbranch1/cbranch2 -> branch cases which were causing several ++ problems in the past. Fixes #77986. ++ ++2006-03-31 Chris Toshok ++ ++ * driver.c (DEFAULT_OPTIMIZATIONS): back out the new set of ++ default optimizations :( ++ ++2006-03-31 Zoltan Varga ++ ++ * inssel-x86.brg mini-codegen.c mini.c: Merge some changes/fixes from linear-il ++ branch. ++ ++2006-03-31 Massimiliano Mantione ++ ++ * local-propagation.c: Added comments to structs and removed ++ "Mono" prefixes from local tree mover types. ++ ++2006-03-30 Zoltan Varga ++ ++ * Makefile.am (arch_sources): Define this for each architecture so ++ libmono_la_SOURCES is defined in one place. ++ ++Wed Mar 29 20:51:14 CEST 2006 Paolo Molaro ++ ++ * driver.c, wapihandles.c, Makefile.am: integrate the io-layer utils ++ from handles/. ++ ++Wed Mar 29 17:16:57 CEST 2006 Paolo Molaro ++ ++ * driver.c: print the GC name supplied by configure. ++ ++2006-03-29 Massimiliano Mantione ++ ++ * local-propagation.c: Added tree mover, and moved here all the ++ local propagation code from mini.c ++ * mini.c: Added support for treeprop, and moved all the local ++ propagation code to local-propagation.c ++ * mini.h: Added support for treeprop ++ * driver.c: Added support for treeprop, enabled consprop, copyprop, ++ treeprop, inline and deadce by default ++ * Makefile.am: Added local-propagation.c ++ ++2006-03-25 Zoltan Varga ++ ++ * exceptions-sparc.c: Applied patch from David S. Miller : Implement correct support for sparc/linux. ++ ++Fri Mar 24 20:07:19 CET 2006 Paolo Molaro ++ ++ * debug-debugger.c: make it compile without the Boehm GC. ++ ++Wed Mar 22 18:25:18 CET 2006 Paolo Molaro ++ ++ * mini.c: fixed issue with mismatch when an icall is registered ++ with multiple names but same address. ++ ++Tue Mar 21 15:59:57 CET 2006 Paolo Molaro ++ ++ * declsec.c, mini-exceptions.c: use write barrier to set reference ++ fields of managed objects. ++ ++2006-03-19 Zoltan Varga ++ ++ * mini.c (mono_print_method_from_ip): Recognize JIT trampolines as well. ++ (can_access_internals): Fix a warning. ++ ++ * mini.c (print_method_from_ip): Rename this to ++ mono_print_method_from_ip so it gets exported. ++ ++ * trace.c: Deal with strings inside StringBuilder's containing garbage ++ and fix memory leaks. Fixes #77848. ++ ++2006-03-19 Zoltan Varga ++ ++ * mini.c (mini_init): Disable the setting of GC_stackbottom on ia64. Hopefully ++ fixes #77787. ++ ++2006-03-16 Neale Ferguson ++ ++ * mini-s390.c: Remove OP_X86_TEST_NULL. ++ ++Thu Mar 16 17:19:04 CET 2006 Paolo Molaro ++ ++ * mini.c: use the correct GetHashCode() for the moving collector. ++ ++2006-03-16 Massimiliano Mantione ++ ++ * liveness.c: Regalloc spill cost tuning. ++ ++2006-03-15 Neale Ferguson ++ ++ * mini-s390x.h: Correct S390_LONG macro. ++ ++ * mini-s390x.c: Cleanup unused code. ++ ++2006-03-15 Zoltan Varga ++ ++ * jit-icalls.h: New file. ++ ++ * Makefile.am mini.c jit-icalls.c: Use a proper include file for the jit ++ icalls and include that instead of including jit-icalls.c. ++ ++ * mini-ppc.c (mono_arch_output_basic_block): Remove references to ++ OP_X86 opcodes. ++ ++Tue Mar 14 20:23:53 CET 2006 Paolo Molaro ++ ++ * mini.c: when checking for member accessibility, also check for ++ friend assemblies and for explicit interface implementations. ++ ++2006-03-14 Zoltan Varga ++ ++ * mini-codegen.c (mono_local_regalloc): Remove incorrect g_free () calls. ++ ++ * cpu-arm.md cpu-g4.md: Remove x86_ opcodes. ++ ++ * mini-x86.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so ++ common cases are done first. ++ ++ * mini-ops.h: Only define platform specific opcodes on the given platform. ++ ++ * mini.h regalloc.h mini-codegen.c: Merge optimizations from the linear-il ++ branch. ++ ++2006-03-14 Martin Baulig ++ ++ Revert Paolo's change from r57348: ++ ++ * mini.h: don't use gboolean for bitfields. ++ * mini.c: verifier changes for fields and methods accessibility. ++ ++2006-03-13 Neale Ferguson ++ ++ * mini-s390.h, mini-s390x.h: Fix calls to mono_call_inst_add_outarg_reg. ++ ++ * mini-s390x.c: Fix conv_r_un. ++ ++ * cpu-s390, cpu-s390x.md: Fix lengths. ++ ++Sun Mar 12 17:31:22 CET 2006 Paolo Molaro ++ ++ * mini.c: nested types have access to all the nesting ++ levels, not just the enclosing types. ++ ++Sun Mar 12 16:23:11 CET 2006 Paolo Molaro ++ ++ * mini.c: added a few more verification checks. ++ ++2006-03-12 Zoltan Varga ++ ++ * liveness.c: Merge optimizations from the linear-il branch. ++ ++2006-03-11 Zoltan Varga ++ ++ * mini-ia64.c (emit_call): Add a comment. ++ ++ * tramp-ia64.c (mono_arch_patch_callsite): Handle indirect calls as well. ++ ++ * tramp-ia64.c: Fix some warnings. ++ ++Sat Mar 11 20:15:59 CET 2006 Paolo Molaro ++ ++ * mini.h: don't use gboolean for bitfields. ++ * mini.c: verifier changes for fields and methods accessibility. ++ ++2006-03-11 Zoltan Varga ++ ++ * mini.c (mono_icall_get_wrapper): Fix an ia64 bug introduced by the ++ lazy icall wrapper changes. ++ ++ * dominators.c: Replace all the dominator algorithms with faster ++ ones from the linear-il branch. ++ ++ * inssel-*.brg: Allocate call->out_ireg_args and call->out_freg_args from ++ the mempool. ++ ++ * mini-amd64.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so ++ common cases are done first. ++ ++ * mini-amd64.c: Fix some warnings. ++ ++ * mini-codegen.c mini-*.c: Allocate call->out_ireg_args and call->out_freg_args ++ from the mempool. ++ ++ * mini.c (mono_jit_compile_method_with_opt): Fix a race in the newly ++ added code. ++ ++ * mini.h: Add a missing prototype. ++ ++2006-03-10 Zoltan Varga ++ ++ * mini.c: Compile icall wrappers lazily. ++ ++ * mini-codegen.c: Use printf instead of g_print since its much faster. ++ ++ * mini.h (mono_bitset_foreach_bit): Use the faster mono_bitset_find_start () ++ function. ++ ++ * mini.c (optimize_branches): Cache the negative result from ++ remove_block_if_useless (). ++ ++ * mini.c (optimize_branches): Avoid restarting the iteration after each change. ++ Also fix some bblock linking issues. ++ ++ * helpers.c (mono_disassemble_code): Reduce the size of the temporary ++ assembly files. ++ ++ * mini.h: Define G_LIKELY/G_UNLIKELY macros for older glib versions. ++ ++ * mini.h (MonoBasicBlock): Reorganize the fields, putting more frequently ++ accessed fields first, for better cache behavior. ++ ++Fri Mar 10 18:21:41 CET 2006 Paolo Molaro ++ ++ * mini.c: speedup IList array accesses. ++ ++2006-03-09 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Handle large methods overflowing the ++ inline_costs counter. Fixes #77190. ++ ++2006-03-06 Zoltan Varga ++ ++ * mini-exceptions.c: Call mono_trace_is_enabled () before printing ++ trace messages. Fixes #77706. ++ ++2006-03-04 Martin Baulig ++ ++ * tramp-amd64.c, tramp-x86.c ++ (mono_debugger_create_notification_function): Use ++ mono_global_codeman_reserve() to allocate a buffer at runtime and ++ return it. ++ ++ * debug-debugger.h (MonoDebuggerInfo): Added `initialize'. ++ ++ * debug-debugger.c (mono_debugger_init): Dynamically allocate the ++ notification function at runtime and then call `initialize' in the ++ `MONO_DEBUGGER__debugger_info' vtable. ++ ++2006-03-04 Zoltan Varga ++ ++ * iltests.il: Fix a visibility problem. ++ ++Wed Mar 1 15:55:25 CET 2006 Paolo Molaro ++ ++ * driver.c, mini.c: add hooks for the counters API. ++ ++Wed Mar 1 12:28:04 CET 2006 Paolo Molaro ++ ++ * driver.c: show disabled options. ++ ++Wed Mar 1 12:18:51 CET 2006 Paolo Molaro ++ ++ * linear-scan.c: always use cost-driven selection. ++ ++2006-02-28 Raja R Harinath ++ ++ * jit-icalls.c (helper_compile_generic_method): Revert change from ++ 2006-02-24. ++ ++Mon Feb 27 18:58:19 GMT 2006 Paolo Molaro ++ ++ * cpu-arm.md, mini-arm.c: implemented MemoryBarrier. ++ ++Sat Feb 25 17:39:21 CET 2006 Paolo Molaro ++ ++ * inssel.brg: style fixes, mostly to force the updated monoburg ++ to run for people using svn. ++ ++Sat Feb 25 17:07:42 CET 2006 Paolo Molaro ++ ++ * mini.c: match monoburg changes. ++ ++Sat Feb 25 16:04:33 CET 2006 Paolo Molaro ++ ++ * mini.h, mini.c, abcremoval.c, aliasing.c, liveness.c, ++ ssapre.c, graph.c, ssa.c: put the mono_burg_arity[] ++ declaration in the header file. ++ ++Sat Feb 25 14:19:31 CET 2006 Paolo Molaro ++ ++ * helpers.c: reduce relocations and mem usage. ++ ++Sat Feb 25 11:58:16 CET 2006 Paolo Molaro ++ ++ * mini.h, mini-codegen.c: disable logging features if ++ requested by configure. ++ ++Sat Feb 25 11:54:49 CET 2006 Paolo Molaro ++ ++ * mini.c: tiny verifier changes. ++ ++Fri Feb 24 18:17:52 CET 2006 Paolo Molaro ++ ++ * mini-ops.h, inssel-x86.brg, tramp-x86.c, mini-x86.c, ++ cpu-pentium.md: stack alignment changes for osx/x86, ++ partially from Geoff Norton . ++ ++2006-02-24 Raja R Harinath ++ ++ * jit-icalls.c (helper_compile_generic_method): Update to changes ++ in metadata/class.c. ++ ++2006-02-24 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add a missing check. ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add support for ++ interface calls with large offsets. ++ ++2006-02-23 Raja R Harinath ++ ++ * jit-icalls.c (helper_compile_generic_method): Document the ++ special-case we depend on so that we can inflate the method twice ++ with the same context with no bad side-effects. ++ ++Thu Feb 23 13:45:46 CET 2006 Paolo Molaro ++ ++ * mini-x86.c, mini-amd64.c: fix for case when xen support ++ is disabled. ++ ++Wed Feb 22 19:38:40 CET 2006 Paolo Molaro ++ ++ * mini-x86.c, mini-amd64.c: generate code to access tls items ++ in a faster way for Xen systems. ++ ++Wed Feb 22 10:31:25 CET 2006 Paolo Molaro ++ ++ * exceptions-x86.c, mini-x86.h, driver.c, mini-codegen.c: ++ updates and compilation fixes for the OSX/x86 port, mostly from ++ Geoff Norton . ++ ++Tue Feb 21 19:56:55 CET 2006 Paolo Molaro ++ ++ * inssel.brg: faster interface call implementation ++ to sync with the interface_offsets MonoVTable changes. ++ ++Mon Feb 20 10:37:57 CET 2006 Paolo Molaro ++ ++ * mini.c: more verification checks. ++ ++Fri Feb 17 19:47:29 CET 2006 Paolo Molaro ++ ++ * mini.c: added a few more verification checks. ++ ++2006-02-17 Neale Ferguson ++ ++ * mini-s390x.c, mini-s390x.h: Check for presence of long displacement ++ facility on the processor and use it if available. ++ ++Fri Feb 17 16:12:52 CET 2006 Paolo Molaro ++ ++ * driver.c, aot.c, mini.c: throw exception if the IL code is ++ invalid or unverifiable. ++ ++2006-02-17 Raja R Harinath ++ ++ * generics.2.cs (test_0_ldfld_stfld_mro): Use m.struct_field, not ++ m.StructField. ++ ++2006-02-16 Zoltan Varga ++ ++ * generics.2.cs: Add some tests for generics ldfld/stfld wrappers. ++ ++Wed Feb 15 16:23:17 CET 2006 Paolo Molaro ++ ++ * mini-s390x.c, mini-s390.c, mini.c, mini-amd64.c, mini-arm.c, ++ mini-ia64.c, mini-sparc.c, mini-x86.c, mini-ppc.c: fixed ++ handling of instantiated generic valuetypes. ++ ++2006-02-11 Zoltan Varga ++ ++ * mini-exceptions.c mini-x86.h mini-x86.c: Get rid of ++ MONO_INIT_CONTEXT_FROM_CALLER, and use MONO_INIT_CONTEXT_FROM_FUNC ++ instead. ++ ++ * generics.2.cs: Revert the nullable reftypes tests. ++ ++2006-02-10 Zoltan Varga ++ ++ * mini-exceptions.c (MONO_INIT_CONTEXT_FROM_CALLER): Avoid ++ using __builtin_frame_address (1) as it doesn't work in the presence ++ of optimizations. Hopefully fixes #77273. ++ ++ * Makefile.am generics.cs generics.2.cs: Revert the generics.2.cs ++ -> generics.cs change as it doesn't work with some automake versions. ++ ++Thu Feb 9 16:24:44 CET 2006 Paolo Molaro ++ ++ * mini.c: handle systems that sue a different way to ++ retrieve the stack address of the current thread. ++ ++2006-02-09 Zoltan Varga ++ ++ * Makefile.am generics.2.cs: Rename this to generics.cs and handle ++ it specially in the makefile. ++ ++ * generics.2.cs: Add tests for nullable reference types. ++ ++Wed Feb 8 19:33:17 CET 2006 Paolo Molaro ++ ++ * mini.c: always handle the case when mono_jit_init() ++ is called in a thread different from the main thread, ++ confusing libgc (bug #77309). ++ ++Mon Feb 6 09:01:24 EST 2006 Paolo Molaro ++ ++ * mini-ppc.c: fix handling of exceptions in large methods (bug #74932). ++ ++Fri Feb 3 18:51:35 CET 2006 Paolo Molaro ++ ++ * mini.c: change optimize_branches () to use a single loop ++ and introduce a new optimization to simplify some range checks. ++ ++2006-02-03 Martin Baulig ++ ++ * debug-debugger.c (debugger_thread_manager_thread_created): Removed ++ and merged with debugger_thread_manager_add_thread(). ++ (mono_debugger_main): Call debugger_thread_manager_add_thread() to ++ inform the debugger about the main thread. ++ ++2006-02-03 Zoltan Varga ++ ++ * basic.cs: Add test for div.un/rem.un constant folding. ++ ++2006-02-03 Neale Ferguson ++ ++ * cpu-s390x.md: correct int_xor_imm length ++ ++2006-02-03 Zoltan Varga ++ ++ * generics.2.cs: New test for #77442. ++ ++ * jit-icalls.c (helper_compile_generic_method): Check for null. Fixes ++ #77442. ++ ++2006-02-02 Martin Baulig ++ ++ * tramp-x86.c, tramp-amd64.c: It's now safe to #include ++ ++ ++ * debug-mini.c: Don't #define _IN_THE_MONO_DEBUGGER. ++ ++2006-02-02 Martin Baulig ++ ++ * debug-debugger.h: New header file for debug-debugger.c. ++ ++ * debug-debugger.c: Big API cleanup; don't run the managed Main() ++ function is a separate thread anymore; add support for attaching. ++ ++2006-02-01 Zoltan Varga ++ ++ * tramp-x86.c: Fix a warning. ++ ++2006-01-31 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Avoid hitting an assertion ++ on very large methods. ++ ++ * aot.c (load_patch_info): Fix a warning. ++ ++Mon Jan 30 12:51:10 CET 2006 Paolo Molaro ++ ++ * cpu-pentium.md, mini-x86.c, inssel.brg, inssel-x86.brg, ++ mini-ops.h: alu membase optimizations. ++ ++Fri Jan 27 21:11:08 CET 2006 Paolo Molaro ++ ++ * mini-ops.h, mini.c, inssel.brg, inssel-x86.brg: opcode ++ to speedup StringBuilder. ++ ++2006-01-27 Zoltan Varga ++ ++ * dominators.c (mono_compute_natural_loops): Fix detection of ++ loop body start blocks. ++ ++ * mini-exceptions.c (mono_print_thread_dump): Fix non x86 builds. ++ ++2006-01-26 Zoltan Varga ++ ++ * mini.h mini.c mini-exceptions.c: Add thread dump support. Fixes ++ #75145. ++ ++2006-01-25 Massimiliano Mantione ++ ++ * aliasing.c: Fixed aliasing issue on 64 bit archs. ++ ++2006-01-25 Martin Baulig ++ ++ * debug-debugger.c: Moved the `MonoDebuggerManager' and ++ `MonoDebuggerThread' typedefs here from mono-debug-debugger.h and ++ started to cleanup this file a little bit. ++ ++Tue Jan 24 18:20:48 CET 2006 Paolo Molaro ++ ++ * mini.c: optimize a codepath frequently happening in generics code. ++ ++2006-01-23 Martin Baulig ++ ++ * Makefile.am: Only compile debug-debugger.c on supported platforms. ++ ++ * debug-debugger.c: Kill the IO_LAYER() hack and use the io-layer ++ functions directly. ++ ++ * driver.c: debug-debugger.c is only available if ++ `MONO_DEBUGGER_SUPPORTED' is defined. ++ ++2006-01-23 Martin Baulig ++ ++ * debug-debugger.c: Only enable this on platforms where the Mono ++ Debugger is working (x86 and x86_64). ++ ++2006-01-21 Martin Baulig ++ ++ The Mono Debugger is now using the normal `mono' instead of the ++ `mono-debugger-mini-wrapper' when executing managed code. ++ ++ * debug-debugger.c: New file; previously known as ++ debugger/wrapper/wrapper.c. ++ ++ * debug-mini.c (mono_init_debugger): Removed. ++ ++ * driver.c (mono_main): Added new `--inside-mdb' command line ++ argument which is used when running inside the debugger. ++ ++2006-01-20 Zoltan Varga ++ ++ * liveness.c (mono_analyze_liveness): Remove some unused data ++ structures. ++ ++2006-01-17 Zoltan Varga ++ ++ * mini.h: Move mono_bitset_test_fast macro to monobitset.h where it belongs. ++ ++2006-01-16 Zoltan Varga ++ ++ * mini.h (mono_bitset_test_fast): Disable the 'fast' implementation which ++ depends on implementation details of monobitset. ++ ++ * mini.c (mini_get_ldelema_ins): Fix handling of 1 dimensional arrays. ++ Fixes #77271. ++ ++2006-01-15 Zoltan Varga ++ ++ * liveness.c: Update after monobitset changes. ++ ++2006-01-14 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Fix a leak. ++ ++2006-01-11 Neale Ferguson ++ ++ * inssel-s390x.brg: Fix reg: OP_LDADDR(OP_S390_LOADARG) register setting. ++ ++ * mini-s390x.c: Remove warning messages. ++ ++2006-01-11 Ben Maurer ++ ++ * mini.c: pass the jitinfo to mono_profiler_method_end_jit. ++ ++2006-01-10 Zoltan Varga ++ ++ * generics.2.cs: Add ldelem/stelem_any test. ++ ++2006-01-10 Neale Ferguson ++ ++ * mini-s390.c: Fix ATOMIC_ADD_I4 operation. ++ ++2006-01-07 Zoltan Varga ++ ++ * inssel-long.brg: Fix int->long ovf conversion rules. Fixes #77172. ++ ++2006-01-06 Zoltan Varga ++ ++ * generics.2.cs: Reenable vtype tests. ++ ++ * inssel-x86.brg: Remove an icorrect valuetype rule. ++ ++2006-01-06 Neale Ferguson ++ ++ * mini-s390x.c, inssel-s390x.brg, cpu-s390x.md: Fix ATOMIC_I8 operations. Provide ++ initial support for OP_ABS. ++ ++2006-01-05 Neale Ferguson ++ ++ * mini-s390x.c (emit_float_to_int): Correct r8 to unsigned int algorithm. ++ ++2006-01-05 Neale Ferguson ++ ++ * mini-s390.c, mini-s390.h, inssel-s390.brg, cpu-s390.md: Fix r8 to unsigned int ++ conversion and implement LADD/LSUB. ++ ++ * exceptions-s390.c: Standardize mono_arch_find_jit_info to match other ++ architectures. ++ ++2006-01-05 Neale Ferguson ++ ++ * mini-s390x.c, mini-s390x.h: Fix r8 to unsigned int conversion. ++ ++ * exceptions-s390x.c: Standardize mono_arch_find_jit_info to match other ++ architectures. ++ ++2006-01-05 Neale Ferguson ++ ++ * mini-s390x.c, mini-s390x.h, mini-s390.c, mini-s390.h: Fix lmf handling when ++ localloc is encountered. Fixes crash in test-183.cs when using gmcs ++ (stack walk problem). ++ ++2006-01-04 Zoltan Varga ++ ++ * aot.c (mono_aot_load_method): Fix a warning. ++ ++2006-01-03 Neale Ferguson ++ ++ * mini-s390x.h, exceptions-s390x.c, inssel-s390x.brg: Fix compiler warnings ++ ++2006-01-03 Zoltan Varga ++ ++ * iltests.il: Add test for #77148. ++ ++ * mini.c (mini_get_ldelema_ins): Handle arrays with rank 1 too. Fixes ++ #77148. ++ ++2006-01-03 Neale Ferguson ++ ++ * mini-s390x.c, inssel-s390x.brg: Remove debug statements ++ ++2006-01-03 Neale Ferguson ++ ++ * mini-s390x.c, mini-s390x.h, exceptions-s390x.c, tramp-s390x.c, inssel-s390x.brg, ++ cpu-s390x.md, mini-codegen.c, Makefile.am: add 64-bit s390 support to JIT. ++ ++ * basic-long.cs: Add lconv-to-r4/r8 tests. ++ ++2006-01-03 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix DynamicMethod support in some opcodes. ++ ++ * mini-sparc.c (mono_arch_call_opcode): Use mono_class_value_size () ++ here as on other archs. ++ ++2005-12-29 Neale Ferguson ++ ++ * mini-s390.c (mono_arch_get_inst_for_method): Add memory_barrier support. ++ ++2005-12-29 Neale Ferguson ++ ++ * inssel-s390.brg: Correct register assignment; Rework L[ADD|SUB]_OVF[_UN] for s390. ++ ++ * cpu-s390.md: Fix lengths of a couple of long instructions; Add memory_barrier. ++ ++ * mini-s390.c: Fix long add/sub overflow instructions; Fix displacement handling in ++ instrument_prolog; Add memory_barrier instruction. ++ ++2005-12-26 Zoltan Varga ++ ++ * exceptions-x86.c mini-x86.h: Fix solaris/x86 exception handling. ++ ++2005-12-23 Zoltan Varga ++ ++ * tramp-ia64.c (mono_arch_get_unbox_trampoline): Flush icache. ++ ++ * aliasing.c inssel.brg: Fix warnings. ++ ++ * inssel-ia64.brg (OP_MEMSET): Fix an optimization which previously ++ could skip initialization of some parts of memory. ++ ++ * mini.c mini-ia64.c: Fix warnings. ++ ++ * inssel-sparc.brg: Add an implementation of lneg which actually works. ++ ++2005-12-22 Zoltan Varga ++ ++ * aliasing.c (mono_build_aliasing_information): Add a workaround for ++ a crash seen on sparc. ++ ++ * mini-sparc.c: Add implementation of Thread.MemoryBarrier. ++ ++ * cpu-sparc.md: Add memory_barrier opcode. Remove unused opcodes. ++ ++2005-12-21 Neale Ferguson ++ ++ * mini-ops.h: Add s390_backchain instruction ++ ++ * inssel-s390.brg: Use backchaining instruction for LOADARG/STKARG operations. ++ ++ * cpu-s390.md: Add s390_backchain instruction ++ ++ * mini-s390.c: Significant ABI changes ++ ++ * mini-s390.h: Cater for zero length structures ++ ++2005-12-20 Neale Ferguson ++ ++ * mini-s390.c: ABI fixes ++ ++ * inssel-s390.brg: Remove debug statements ++ ++ * cpu-s390.md: Fix length of ATOMIC_xx operations ++ ++2005-12-19 Zoltan Varga ++ ++ * basic-float.cs: Add float<->long conversion tests. ++ ++2005-12-16 Neale Ferguson ++ ++ * mini-s390.c: Fix LOCALLOC processing. ++ ++ * tramp-s390.c (s390_magic_trampoline): Fix base calculation. ++ ++2005-12-15 Zoltan Varga ++ ++ * iltests.il: Add tests for some opcodes not covered by the other ++ tests. ++ ++2005-12-15 Neale Ferguson ++ ++ * mini-s390.c: Fix ADDCC/SBB bug revealed by test_0_ulong_regress; Correct ++ register loading for Tail processing; Correct trace output. ++ ++ * inssel-s390.brg: Reimplement LSUB_OVF due to s390 implementation of signed math. ++ ++ * cpu-s390.md: Correct size of jmp instruction. ++ ++2005-12-13 Neale Ferguson ++ ++ * mini-s390.c (mono_arch_emit_prolog): Remove some debugging bits. ++ ++2005-12-13 Neale Ferguson ++ ++ * inssel-s390.brg tramp-s390.c cpu-s390.md mini-s390.c mini-s390.h: ++ Bring s390 up to current level. ++ ++2005-12-12 Zltan Varga ++ ++ * generics.2.cs: Disable the newly added tests as they do not work yet. ++ ++ * generics.2.cs: Add valuetype tests. ++ ++2005-12-09 Zoltan Varga ++ ++ * basic-long.cs: Add i4->u8 test. ++ ++ * objects.cs: Add tests for JIT intrinsic. ++ ++ * mini.c (mini_get_inst_for_method): Resurrect the array Rank/Length ++ optimizations lost by a mistake. ++ ++2005-12-07 Zoltan Varga ++ ++ * basic-long.cs: Remove a test moved to objects.cs. ++ ++ * arrays.cs: Add more array tests. ++ ++2005-12-06 Zoltan Varga ++ ++ * arrays.cs: Add new tests for multi-dimensional arrays. ++ ++2005-12-06 Raja R Harinath ++ ++ * Makefile.am (test_sources2): Add generics.2.cs. ++ (EXTRA_DIST): Add test_sources2. ++ ++2005-12-05 Ben Maurer ++ ++ Support for boxing and unboxing nullable types as well as the ++ isinst operation on nullables, per the CLI ammendment. ++ ++ * inssel.brg (CEE_ISINST): Special case for nullable ++ ++ * mini.c (handle_unbox_nullable): new method ++ (handle_box): Special case for nullable types ++ (mono_method_to_ir): Call handle_unbox_nullable in correct ++ places. ++ ++ * generics.2.cs: New test suite ++ ++ * Makefile.am: Support for regression tests with generics. ++ ++2005-12-03 Zoltan Varga ++ ++ * mini-amd64.c (emit_load_volatile_arguments): Add loading of arguments ++ allocated to registers. Fixes #76800. ++ ++Thu Dec 1 12:59:40 EST 2005 Paolo Molaro ++ ++ * mini-ppc.c, inssel-ppc.brg: fix ABI issue (pinvoke3.cs). ++ ++2005-11-30 Zoltan Varga ++ ++ * exceptions.cs: Disable test_0_long_cast () test, since it fails on a lot ++ of platforms. ++ ++2005-11-29 Zoltan Varga ++ ++ * objects.cs basic-calls.cs: Move a test depending on valuetypes to ++ objects.cs. ++ ++ * inssel-long32.brg (CEE_CONV_I8): Remove unused labels. ++ ++ * inssel-long32.brg (CEE_CONV_I8): Convert this to a branchless version. ++Tue Nov 29 05:41:34 EST 2005 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: ensure a fp register is converted to ++ single precision before storing to a single precision location. ++ ++2005-11-28 Raja R Harinath ++ ++ * Makefile.am (ILASM): Use profile-dependent location of ilasm. ++ ++2005-11-27 Zoltan Varga ++ ++ * basic-long.cs basic-calls.cs objects.cs: Move some tests to the ++ correct files. ++ ++ * basic.cs: Remove test_0_byte_compares test which was moved to ++ objects.cs a long time ago. ++ ++2005-11-22 Massimiliano Mantione ++ ++ * aliasing.c: Fixed aliasing issue on 64 bit archs. ++ ++2005-11-20 Zoltan Varga ++ ++ * mini-ia64.c exceptions-ia64.c: Simplify the way filters/finally ++ handlers are called. ++ ++ * mini-ia64.c (mono_arch_emit_exceptions): Optimize size of exception ++ throwing code. ++ ++ * mini-ia64.c: Add support for the throw->branch exception ++ optimization. ++ ++ * driver.c (DEFAULT_OPTIMIZATIONS): Add MONO_OPT_EXCEPTION. ++ ++2005-11-18 Massimiliano Mantione ++ ++ * mini.c: Enabled "fastpath" deadce :-) ++ ++2005-11-18 Massimiliano Mantione ++ ++ * mini.c: Added "fastpath" deadce (deadce without SSA), and a simple ++ alias analysis pass to support it. ++ * mini.h: Likewise. ++ * ssa.c: Likewise. ++ * liveness.c: Likewise (liveness computation can use aliasing ++ information to be more accurate). ++ * driver.c: Added an "ssa" option go tell the JIT to use SSA, and ++ moreover made so that "--compile-all" uses the given optimization ++ flags and not the default ones. ++ * aliasing.c: Alias analysis (new file). ++ * aliasing.h: Likewise. ++ * Makefile.am: added "aliasing.c" and "aliasing.h". ++ ++2005-11-17 Zoltan Varga ++ ++ * mini-ops.h: Add missing OP_I opcodes so it is in synch with the ++ OP_L opcodes. ++ ++2005-11-13 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Remove the ++ fp >= end_of_stack exit condition, as it is not needed, and it might ++ become true for fp eliminated frames. ++ ++2005-11-11 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_epilog): Use G_STRUCT_OFFSET instead of hard ++ coded offsets. ++ ++Tue Nov 8 11:28:20 GMT 2005 Paolo Molaro ++ ++ * mini-arm.c: fixed alignment of doubles/longs to match ++ the C ABI (bug #76635). ++ ++Mon Nov 7 16:13:21 CET 2005 Paolo Molaro ++ ++ * aot.c: fix compilation with --enable-minimal=aot. ++ ++Fri Nov 4 12:34:15 GMT 2005 Paolo Molaro ++ ++ * mini-arm.c: fixed compatibility with the new ++ floating point emulator package for compares. ++ ++2005-11-03 Atsushi Enomoto pinvoke changes (r51396-51397). ++ ++2005-11-01 Zoltan Varga ++ ++ * mini-exceptions.c (print_stack_frame): Output to stderr. ++ (mono_handle_native_sigsegv): Ditto. ++ ++2005-10-30 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Remove unused ++ OP_LCONV_TO_OVF_I implementation. ++ ++ * mini-amd64.c: Add support for the throw->branch exception ++ optimization. ++ ++ * branch-opts.c (mono_branch_optimize_exception_target): Allow the case ++ when the catch clause catches a more general exception, i.e. Object. ++ ++2005-10-30 Zoltan Varga ++ ++ * cpu-ia64.md: Remove unused opcodes. ++ ++ * mini.c (GET_CONTEXT): Simplify this somewhat by removing arch ++ specific defines for architectures defining USE_SIGACTION. ++ ++ * mini-ia64.c: Fix some warnings. ++ ++ * exceptions-ia64.c (mono_arch_ip_from_context): Fix this, the previous ++ version seemed to skip a frame. ++ ++2005-10-30 Zoltan Varga ++ ++ * mini.c: Clean up the usage of sig->pinvoke flag. Now ++ only calls which are made to native code use this flag. ++ ++2005-10-29 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Disable fp elimination for ++ varargs methods as well. ++ ++ * mini-amd64.c exceptions-amd64.c: Allow fp elimination in methods ++ which have save_lmf set. Reorganize methods prologs a bit. ++ ++ * mini-amd64.c (mono_arch_compute_omit_fp): Move the check for the ++ debugger to the proper place. ++ ++2005-10-29 Martin Baulig ++ ++ * mini-amd64.c (debug_omit_fp): Temporarily disable fp elimination ++ when running inside the debugger until the debugger has support ++ for it. ++ ++2005-10-26 Zoltan Varga ++ ++ * mini.h: Fix a warning. ++ ++2005-10-24 Miguel de Icaza ++ ++ * mini.c (mono_pmip): Just a wrapper for get_method_from_ip which ++ we expose publicly, this returns the string. ++ ++2005-10-22 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Fix some corner cases ++ with fp elimination. ++ ++2005-10-21 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): Try to print a ++ native stacktrace using the glibc 'backtrace' function if available. ++ ++2005-10-20 Zoltan Varga ++ ++ * mini.h (MonoDebugOptions): Remove 'abort_on_sigsegv' option. ++ ++ * mini-exceptions.c (mono_handle_native_sigsegv): New function to ++ handle SIGSEGVs received while in native code. ++ ++ * mini.c (sigsegv_signal_handler): If the SIGSEGV happened in native ++ code, call mono_handle_native_sigsegv which will abort the runtime ++ after printing some diagnostics, instead of converting it into a ++ confusing NullReferenceException. ++ ++2005-10-18 Zoltan Varga ++ ++ * cpu-pentium.md: Remove unused opcodes. ++ ++2005-10-18 Zoltan Varga ++ ++ * mini-amd64.h (MonoLMF): Add rsp field. ++ ++ * mini-amd64.c exceptions-amd64.c tramp-amd64.c: Save the sp reg into ++ the lmf too. ++ ++2005-10-17 Zoltan Varga ++ ++ * mini-codegen.c (get_register_spilling): Fix some warnings. ++ ++2005-10-16 Zoltan Varga ++ ++ * mini-amd64.h mini-amd64.c exceptions-amd64.c: Add support for fp ++ elimination during exception handling. Enable fp elimination by ++ default. ++ ++ * mini-amd64.h mini-amd64.c: Add preliminary support for frame pointer ++ elimination. ++ ++2005-10-16 Martin Baulig ++ ++ * mini-exceptions.c ++ (mono_debugger_run_finally): New public method for the debugger. ++ ++2005-10-10 Zoltan Varga ++ ++ * debug-mini.c (mono_debug_init_method): Fix warning. ++ ++ * mini.h branch-opts.c (mono_branch_optimize_exception_target): Make ++ the 'exname' parameter const to fix some warnings. ++ ++2005-10-09 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Fix another bug ++ introduced by the previous patch. ++ ++2005-10-08 Zoltan Varga ++ ++ * basic-float.cs: Add test for precision of float arithmetic. ++ ++ * mini-ia64.c (mono_arch_output_basic_block): Convert to/from doubles ++ when loading/storing single values from/to memory. ++ ++ * mini.c (mono_jit_compile_method_with_opt): Create the function ++ pointers in the correct domain. ++ ++2005-10-08 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Fix bug ++ introduced by previous patch. ++ ++ * mini-exceptions.c (mono_handle_exception_internal): Handle the case ++ when out_filter_idx is NULL. ++ ++ * mini-exceptions.c: Don't run filter clauses twice during exception ++ handling. Fixes #75755. ++ ++2005-10-07 Zoltan Varga ++ ++ * aot.c: Add support for ldflda wrappers. ++ ++ * mini.c (mono_method_to_ir): Use ldflda wrappers for CEE_LDFLDA. Fixes ++ #75902. ++ ++Tue Oct 4 20:23:25 CEST 2005 Paolo Molaro ++ ++ * mini.c, mini.h: do not consider exception handlers blocks when ++ setting up interface variables. ++ ++2005-10-04 Zoltan Varga ++ ++ * aot.c (emit_section_change): Fix emitting of sections on win32. Fixes #76322. ++ ++2005-10-03 Zoltan Varga ++ ++ * liveness.c (mono_analyze_liveness): Revert parts of r51051 since it ++ causes a regression. ++ ++ * mini.c (mini_thread_cleanup): Fix reading of freed memory. ++ ++2005-10-02 Zoltan Varga ++ ++ * mini.h (OP_PCONST): Move the definition of OP_PCONST into the rest ++ of the OP_P definitions. ++ ++ * TODO: Add a proposal for dealing with the CEE/OP mess. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Merge mul_imm ++ optimizations from the x86 port. ++ ++ * cpu-amd64.md: Ditto. ++ ++ * basic.cs basic-long.cs: Add tests. ++ ++Fri Sep 30 20:07:20 CEST 2005 Paolo Molaro ++ ++ * Makefile.am, driver.c, mini-x86.c, mini.c, mini.h, branch-opts.c: ++ Patrik Torstensson's implementation of my exception-handling ++ optimization idea, when the exception object is not used ++ (bug #62150). ++ ++Fri Sep 30 19:10:29 CEST 2005 Paolo Molaro ++ ++ * mini-x86.c, cpu-pentium.md: Patrik Torstensson's port ++ of the mul_imm optimizations from the old jit. ++ ++Fri Sep 30 11:37:51 EDT 2005 Paolo Molaro ++ ++ * mini.c, liveness.c: patch by Patrik Torstensson and ++ Zoltan Varga to improve performance in methods with ++ exception clauses. ++ ++2005-09-30 Zoltan Varga ++ ++ * driver.c: Remove 'Globalization' entry from --version. ++ ++2005-09-28 Zoltan Varga ++ ++ * mini.c (mono_jit_compile_method_inner): Do not load AOT code when ++ there is a profiler interested in JIT events. ++ ++ * aot.c: Load profile files produced by the AOT profiling module, and ++ reorder methods based on the profiling info. Add a 'method_order' table ++ to the AOT file to make mono_aot_find_jit_info work with the reordered ++ methods. ++ ++ * mini.h: Bump AOT file version info. ++ ++Wed Sep 28 17:12:48 CEST 2005 Paolo Molaro ++ ++ * mini-arm.h: work around what looks like a gcc bug when optimizations ++ are enabled. ++ ++2005-09-28 Raja R Harinath ++ ++ * Makefile.am (AM_CFLAGS): Don't use += to append inside ++ conditionals. Use ... ++ (PLATFORM_CFLAGS, ARCH_CFLAGS): ... these. ++ ++2005-09-27 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_call_opcode): Use mono_class_value_size () ++ to determine the amount of memory to copy when passing valuetypes. ++ ++ * inssel-amd64.brg: Remove PUSH(LDIND4) rules since they convert an ++ 4 byte load into a 8 byte load. Fix aligning of size in OP_OUTARG_VT. ++ ++2005-09-27 Zoltan Varga ++ ++ * mini.h mini.c aot.c: Add infrastructure to collect pagefault ++ information about aot. ++ ++2005-09-27 Ben Maurer ++ ++ * *.c: Replace the use of {Enter,Leave}CriticalSection with ++ macros. This will allow a deadlock debugger to easily be plugged ++ in. ++ ++Tue Sep 27 09:32:11 EDT 2005 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: added memory barrier instruction. ++ ++2005-09-27 Raja R Harinath ++ ++ * Makefile.am (AM_CFLAGS): Rename from INCLUDES. ++ (AM_CFLAGS) [PLATFORM_WIN32): Append to it, don't set it. ++ (AM_CFLAGS) [ARM]: Add arch/arm directory from the build tree. ++ ($(arch_built)) [CROSS_COMPILING]: Error out. ++ ++2005-09-26 Zoltan Varga ++ ++ * aot.c: Add support for the no_special_static flag for classes. ++ ++2005-09-24 Zoltan Varga ++ ++ * Reapply reverted patches. ++ ++ * *: Revert r50174 as well. ++ ++ * mini-amd64.c cpu-amd64.md inssel-amd64.brg: Revert r50170 as well. ++ ++2005-09-24 Zoltan Varga ++ ++ * mini-amd64.c: Revert r50342 to see if this fixed buildbot. ++ ++2005-09-23 Miguel de Icaza ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Only dereference info if it is ++ part of the SIG_HANDLER_SIGNATURE. ++ ++2005-09-23 Zoltan Varga ++ ++ * mini.h mini.c: Add a new MONO_DEBUG option to collect metadata pagefault ++ statistics. ++ ++ * mini-x86.c (mono_arch_call_opcode): Fix vararg calling convention ++ introduced by previous patch. ++ ++2005-09-21 Zoltan Varga ++ ++ * tramp-x86.c (mono_arch_create_trampoline_code): Restore caller ++ saved registers too. ++ ++ * mini-x86.c (mono_arch_allocate_vars): Rewrite this so it works based ++ upon the information returned by get_call_info (). ++ ++ * mini-x86.c (add_float): Fix stack size calculation. ++ (mono_arch_call_opcode): Rewrite this so it works based up the ++ information returned by get_call_info (). ++ (mono_arch_get_this_vret_args): Ditto. ++ ++2005-09-21 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_this_vret_args): Use the information ++ in cinfo to determine the registers which need to be used. ++ ++2005-09-20 Miguel de Icaza ++ ++ * driver.c (mono_main): Add --server and --desktop flags. ++ ++2005-09-16 Zoltan Varga ++ ++ * mini-ia64.h: Make register masks 64 bit. Don't treat argument ++ registers as global registers. ++ ++ * inssel-ia64.brg (stmt): Remove OP_OUTARG_REG () rules which are no ++ longer needed with the new register allocator. ++ ++ * mini-ia64.c: Use OP_MOVE instead of OP_SETREG for reg-reg moves. ++ ++ * cpu-ia64.md: Remove unused opcodes. ++ ++ * regalloc.c mini-codegen.c: Make register masks 64 bit on ia64. ++ ++2005-09-16 Zoltan Varga ++ ++ * cpu-amd64.md: Remove unused opcodes. ++ ++ * inssel-amd64.brg: Remove OP_OUTARG_REG () rules which are no longer ++ needed with the new register allocator. ++ ++ * inssel-amd64.brg mini-amd64.c: Use OP_MOVE instead of OP_SETREG for ++ reg-reg moves. ++ ++2005-09-16 Raja R Harinath ++ ++ * Makefile.am (check-local): Don't invoke semdel-wrapper. ++ ++2005-09-16 Martin Baulig ++ ++ * exceptions-amd64.c ++ (throw_exception): Don't call mono_debugger_throw_exception() if ++ we're a rethrow - see the FIXME in the code. ++ ++2005-09-15 Geoff Norton ++ ++ * mini.c (mono_init_exceptions): This only works on some architectures. ++ ++2005-09-15 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Add OP_LMUL imm -> OP_LMUL_IMM conversion ++ on ia64. ++ ++ * inssel-long.brg mini-ia64.c: Add OP_LMUL_IMM rules. ++ ++ * mini-ia64.h mini-ia64.c: Remove the altstack support code which is ++ now in mini-exceptions.c. ++ ++2005-09-15 Zoltan Varga ++ ++ * mini-amd64.h mini-am64.c: Remove the altstack support code which is ++ now in mini-exceptions.c. ++ ++2005-09-15 Zoltan Varga ++ ++ * exceptions-x86.c: Applied patch from Patrik Torstensson ++ . Add stack overflow handling support for win32. ++ ++ * mini-exceptions.c mini-x86.c mini.c: Move the altstack setup/teardown ++ code into mini-exceptions.c. Add some assertions to it. ++ ++2005-09-12 Zoltan Varga ++ ++ * aot.c (emit_section_change): Applied patch from "The Software Team" ++ (). Fix as errors on windows. ++ ++2005-09-11 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_create_trampoline_code): Fix saving of ++ method info into the LMF. ++ ++2005-09-11 Zoltan Varga ++ ++ * mini-ia64.c: Add proper unwind info for method epilogs. ++ ++ * exceptions-ia64.c: Add some code to help debugging. ++ ++ * mini-ia64.c mini-ia64.h: Add sigaltstack support. ++ ++ * mini-exceptions.c: Fix warning. ++ ++2005-09-11 Zoltan Varga ++ ++ * mini.c: Really fix build. ++ ++ * mini-x86.c mini-amd64.c: Fix build. ++ ++2005-09-11 Zoltan Varga ++ ++ * mini-ia64.c inssel-ia64.brg: Add InterlockedExchange instrinsics. ++ ++ * mini-ops.h cpu-ia64.md inssel-ia64.brg mini-ia64.c: Implement ++ some Interlocked methods as intrinsics. ++ ++ * mini.c (mini_get_inst_for_method): Call arch_get_inst_for_method ++ for Thread methods as well. ++ ++ * mini-ops.h: Add OP_MEMORY_BARRIER opcode. ++ ++ * inssel.brg: Add rule for OP_MEMORY_BARRIER. ++ ++ * mini-ia64.c mini-x86.c mini-amd64.c ++ cpu-ia64.md cpu-pentium.md cpu-amd64.md: Add implementation of ++ OP_MEMORY_BARRIER. ++ ++ * mini.c (mono_init_exceptions): Fix build breakage. ++ ++2005-09-10 Zoltan Varga ++ ++ * mini-ia64.c exceptions-ia64.c tramp-ia64.c: Remove 'manual' emitting ++ of instructions. Use the new ia64_unw_op macros for emitting unwind ++ info. ++ ++ * mini.c (mono_init_exceptions): Initialize exception handling ++ related trampolines at startup. ++ ++Fri Sep 9 19:30:37 BST 2005 Paolo Molaro ++ ++ * cpu-arm.md, mini-arm.c: fix for dynamic code (Gtk# apps). ++ ++2005-09-09 Zoltan Varga ++ ++ * mini.c: Handle type loading errors gracefully during compilation and ++ throw the appropriate exception. ++ ++Fri Sep 9 09:49:14 CEST 2005 Paolo Molaro ++ ++ * ldscript.mono, Makefile.am: use anonymous versions in the ldscript ++ for the mono binary. ++ ++2005-09-09 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): Comment out the G_BREAKPOINT()'s for ++ the release. ++ ++Thu Sep 8 14:53:45 BST 2005 Paolo Molaro ++ ++ * mini-arm.h: use emulation for conv.r.un for the release. ++ ++Thu Sep 8 11:28:45 BST 2005 Paolo Molaro ++ ++ * mini-arm.c, objects.cs: more fixes and tests for them. ++ ++Wed Sep 7 17:14:26 BST 2005 Paolo Molaro ++ ++ * mini-arm.c: align structures to at least 4 bytes to be able ++ to keep our current optimized memcpy. ++ ++Tue Sep 6 22:51:08 BST 2005 Paolo Molaro ++ ++ * mini-arm.c, cpu-arm.md, inssel-arm.brg: bugfixes. ++ ++2005-09-05 Gonzalo Paniagua Javier ++ ++ * mini.c: ignore SIGPIPE. ++ ++2005-09-04 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_lowering_pass): Convert 'and_imm 255' to zext1. ++ ++ * mini-ia64.h mini-ia64.c: Add some minor optimizations. ++ ++2005-09-02 Zoltan Varga ++ ++ * mini.h: Add prototype for mono_allocate_stack_slots_full. ++ ++Thu Sep 1 21:05:26 BST 2005 Paolo Molaro ++ ++ * exceptions-arm.c, mini.c, mini-arm.c, mini-arm.h: ++ exception handling support. ++ * mini-arm.c, mini-arm.h: bigendian fixes (partially from a ++ patch by Brian Koropoff ). ++ ++Thu Sep 1 10:22:44 EDT 2005 Paolo Molaro ++ ++ * mini.c: revert another 'optimization' which breaks when ++ items on the eval stack need to be saved at a basic block end ++ (bug #75940). ++ ++Wed Aug 31 17:29:32 CEST 2005 Paolo Molaro ++ ++ * jit-icalls.c: for arrays, ensure we always provide ++ lower bounds. ++ ++2005-08-30 Zoltan Varga ++ ++ * mini.c (mono_allocate_stack_slots_full): Fix ia64 build. ++ ++ * mini.c (mini_get_inst_for_method): Special case Object:.ctor as well. ++ ++2005-08-29 Zoltan Varga ++ ++ * mini-ia64.h mini-ia64.c: Implement frame pointer elimination. Keep ++ arguments in their original register. ++ ++2005-08-28 Zoltan Varga ++ ++ * mini-ops.h cpu-ia64.md inssel-ia64.brg mini-ia64.c: Optimize ++ memset/memcpy. ++ ++ * mini.c (mono_method_to_ir): Disable the MUL->MUL_IMM optimization ++ when ssapre is enabled. ++ ++ * inssel-long.brg: Fix bug in previous patch. ++ ++ * mini-ia64.c mini-ia64.h mini.c inssel-long.brg: Optimize ++ multiplication by a constant. ++ ++2005-08-27 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_setup_jit_tls_data): Add support for intel ++ icc. ++ ++ * tramp-ia64.c (mono_arch_create_trampoline_code): Use st8.spill for ++ saving registers. ++ ++Fri Aug 26 11:09:28 BST 2005 Paolo Molaro ++ ++ * inssel-arm.brg: apply changes tested by Brian Koropoff ++ . ++ ++2005-08-25 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_prolog): Fix calling of mono_jit_thread_attach () under windows. ++ ++2005-08-24 Zoltan Varga ++ ++ * mini-codegen.c (mono_local_regalloc): Avoid allocating dreg and sreg1/2 ++ to the same register if dreg is just a base register. ++ (print_ins): Improve printing of membase opcodes. ++ ++ * inssel-x86.brg: Add optimized ldind(reg) rules. ++ ++ * mini-x86.c cpu-pentium.md: Changes required to support the new rules. ++ ++Wed Aug 24 19:39:36 CEST 2005 Paolo Molaro ++ ++ * mini.c: when running under valgrind, set the stack bottom for ++ the GC at the actual approximate stack for the app (fixes running ++ mono with valgrind). ++ ++Tue Aug 23 21:38:50 CEST 2005 Paolo Molaro ++ ++ * mini.c: do no break at the first valuetype to init found ++ (fixes bug #75791). ++ ++Tue Aug 23 16:53:21 BST 2005 Paolo Molaro ++ ++ * cpu-arm.md, mini-arm.c: more fixes and LMF support. ++ ++Tue Aug 23 15:11:44 CEST 2005 Paolo Molaro ++ ++ * cpu-g4.md: fixed instruction length exposed by the nemerle compiler. ++ ++2005-08-23 Zoltan Varga ++ ++ * inssel-amd64.brg inssel-x86.brg: Fix the fcall rules. ++ ++2005-08-22 Zoltan Varga ++ ++ * inssel-x86.brg: Fix assert in patch_delegate_trampoline. ++ ++ * tramp-x86.c (mono_arch_patch_delegate_trampoline): Add some debug ++ code. ++ ++ * tramp-amd64.c (mono_arch_patch_delegate_trampoline): Add some debug ++ code. ++ ++ * mini.c (optimize_branches): Don't quit after 1000 iterations on large ++ methods. ++ ++Mon Aug 22 19:16:29 BST 2005 Paolo Molaro ++ ++ * tramp-arm.c: allocate less memory for the trampoline and fix typo. ++ ++2005-08-22 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Remove instructions inserted after a branch ++ in the tail recursion optimization. ++ ++ * mini.h helpers.c (mono_disassemble_code): Emit starts of basic blocks as ++ debug info into the assembly file. ++ ++ * iltests.il: Add test for filter regions. ++ ++ * mini.c (mono_method_to_ir): Fix handling of nested FILTER clauses. Fix ++ initial stack of filter regions. Fixes #75755. ++ ++Mon Aug 22 17:49:16 BST 2005 Paolo Molaro ++ ++ * mini-arm.c, cpu-arm.c: fixes and support for methods with bigger ++ stack requirements. ++ ++2005-08-22 Zoltan Varga ++ ++ * mini.c (mono_create_delegate_trampoline): Fix memory leak. Put back ++ the check for an already compiled method on non-ia64 platforms. ++ (mono_create_jump_trampoline): Store the MonoJitInfo structure into the ++ proper domain. ++ ++ * mini-x86.h tramp-x86.c: Add support for delegate trampolines. ++ ++ * inssel-x86.brg: Add some optimized call rules. ++ ++2005-08-21 Zoltan Varga ++ ++ * mini.c (mono_create_delegate_trampoline): Do not return an already compiled ++ method here. ++ ++ * mini.h mini-trampolines.c: Pass the trampoline argument to ++ mono_arch_patch_delegate_trampoline. ++ ++ * mini-ia64.h mini-ia64.c tramp-ia64.c: Add support for delegate trampolines. ++ ++ * mini-trampolines.c: Fix build. ++ ++ * mini-amd64.h: Add delegate trampolines. ++ ++ * mini.h mini.c mini-trampolines.c tramp-amd64.c: Add delegate trampolines. ++ ++ * inssel-amd64.brg: Add optimized call rules. ++ ++ * mini-ia64.c tramp-ia64.c: Improve instruction scheduling. ++ ++ * inssel-ia64.brg: Add optimized ldind(reg) rules. ++ ++2005-08-20 Zoltan Varga ++ ++ * mini.c (mono_create_class_init_trampoline): Fix bug caused by last ++ change. ++ ++ * mini-ia64.c: Remove LMF fixmes. ++ ++ * mini-ia64.h: Remove most fields from LMF. ++ ++ * inssel-ia64.brg (stmt): Fix unaligned access errors. ++ ++ * mini-trampolines.c: Add support for IA64 function descriptors. ++ ++ * mini.h mini.c jit-icalls.c exceptions-ia64.cdriver.c: Add support ++ for IA64 function descriptors. ++ ++Sat Aug 20 16:51:44 BST 2005 Paolo Molaro ++ ++ * tramp-arm.c: patch the vtable for virtual calls. Added ++ support code to register/unregister the LMF. ++ * mini-arm.c, mini-arm.h: warning fixes, fixes, speedups, ++ more LMF work. ++ ++2005-08-19 Dick Porter ++ ++ * mini.c: Use a gsize to store the thread ID, so it can hold a 64 ++ bit value if needed. ++ ++2005-08-19 Zoltan Varga ++ ++ * mini.c (mini_get_method): Move handling of wrapper data here. ++ ++ * mini.c (mono_method_to_ir): Add support for dynamic methods. ++ ++ * mini.c (mono_method_to_ir): Convert nonvirtual calls to abstract methods into ++ virtual. ++ ++ * mini.c (mono_method_to_ir): Emit IR for CEE_NOP as well, so ++ bblock->code does not remain empty. ++ ++2005-08-17 Zoltan Varga ++ ++ * arrays.cs: Add regression test for #75832. ++ ++ * inssel-amd64.brg cpu-amd64.md mini-amd64.c: Fix LDELEMA optimization ++ rules. Fixes #75832. ++ ++ * mini-ia64.c tramp-ia64.c exceptions-ia64.c: Implement improved ++ instruction scheduling. ++ ++2005-08-12 Zoltan Varga ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Fix IA64 build. ++ ++2005-08-11 Zoltan Varga ++ ++ * mini-exceptions.c mini-x86.h: Move VC stuff into macros in mini-x86.h. ++ ++ * mini-codegen.c: Fix VC build. ++ ++ * cpu-pentium.md: Increase length of atomic_exhange_i4. ++ ++2005-08-09 Gonzalo Paniagua Javier ++ ++ * mini.h: fix signature for mono_register_opcode_emulation. ++ ++2005-08-09 Zoltan Varga ++ ++ * mini.c: Get rid of most of the helper_sig_... constants using ++ mono_create_icall_signature (). ++ ++2005-08-08 Zoltan Varga ++ ++ * jit-icalls.c (helper_ldstr): New helper function. ++ ++ * mini.c (get_basic_blocks): Set out_of_line for bblocks containing a throw. ++ ++ * mini.c (mono_method_to_ir): If an LDSTR instruction is in a bblock with a ++ throw, load the string using a helper call instead of creating a string object. ++ ++ * aot.c: Update after LDSTR changes. ++ ++ * mini.h: Bump AOT file version. ++ ++ * aot.c: Save class size info into the AOT file. Print more statistics during ++ compilation. ++ ++ * mini.h: Bump AOT file version. ++ ++ * tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Fix ++ ordering of disasm cases. Fixes #74957. ++ ++Thu Aug 4 19:47:24 BST 2005 Paolo Molaro ++ ++ * mini-ops.h, mini-arch.h, inssel.brg, mini.c, mini.h, ++ jit-icalls.c, mini-codegen.c, Makefile.am: changes in ++ the generic code needed for the ARM port. ++ ++Thu Aug 4 19:42:54 BST 2005 Paolo Molaro ++ ++ * exceptions-arm.c, tramp-arm.c, mini-arm.c, mini-arm.h, cpu-arm.md, ++ inssel-arm.brg: more ARM features and fixes. ++ ++Mon Aug 1 18:37:38 BST 2005 Paolo Molaro ++ ++ * tramp-arm.c, mini-arm.c, cpu-arm.md, inssel-arm.brg: more ++ ARM port work in progress. ++ ++2005-07-30 Zoltan Varga ++ ++ * mini-ia64.c (mono_arch_call_opcode): Ongoing IA64 work. ++ ++ * mini-exceptions.c mini-ia64.h: Ongoing IA64 work. ++ ++ * mini-ia64.c (ia64_emit_bundle): Ongoing IA64 work. ++ ++ * inssel.brg (mini_emit_memset): Add support for unaligned access. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * mini-ia64.c exceptions-ia64.c: Ongoing IA64 work. ++ ++2005-07-28 Zoltan Varga ++ ++ * TODO: Remove out-of-data todo stuff. ++ ++ * mini.h mini.c (mono_create_jit_trampoline_from_token): Remove some ++ dead code. ++ ++ * aot.c: Save/load MonoCachedClassInfo->has_nested_classes. ++ ++ * mini.h: Bump corlib version. ++ ++2005-07-27 Martin Baulig ++ ++ * mini-codegen.c ++ (create_copy_ins): Added `const unsigned char *ip' argument; set ++ `copy->cil_code' from it. ++ ++2005-07-27 Martin Baulig ++ ++ * mini-exceptions.c (mono_handle_exception): Don't call ++ mono_debugger_handle_exception() for filters. ++ ++2005-07-27 Zoltan Varga ++ ++ * mini-trampolines.c (mono_aot_trampoline): Handle AppDomain:InvokeInDomain ++ as well. ++ ++2005-07-26 Martin Baulig ++ ++ Committing a patch from Michal Moskal . ++ ++ * mini.c (mono_method_to_ir): In `CEE_CALLI', only use ++ helper_compile_generic_method() if the method is actually virtual ++ and non-final. ++ ++2005-07-26 Martin Baulig ++ ++ * mini.c ++ (trampoline_code): Renamed to `mono_trampoline_code' and made it ++ public; this is now accessed directly by the debugger. ++ (mono_generic_trampoline_code): Removed. ++ ++ * debug-mini.c ++ (mono_debug_init_method): Also add interncalls and wrappers. ++ ++2005-07-23 Zoltan Varga ++ ++ * mini-ia64.c mini-ia64.h: Add support for tracing/profiling. ++ ++2005-07-22 Zoltan Varga ++ ++ * aot.c (mono_aot_get_method_from_token): Fix a potential crash here. ++ ++2005-07-21 Zoltan Varga ++ ++ * aot.c (load_patch_info): Fix handling of stfld_remote wrapper. ++ ++2005-07-20 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_setup_jit_tls_data): Use the nice way of ++ getting TLS offsets on AMD64 too. ++ ++2005-07-20 Kornél Pál ++ ++ * driver.c: Detach console when executing IMAGE_SUBSYSTEM_WINDOWS_GUI on win32 ++ ++Wed Jul 20 18:05:19 BST 2005 Paolo Molaro ++ ++ * exceptions-arm.c, mini-arm.c, tramp-arm.c, cpu-arm.md, ++ inssel-arm.brg, mini-arm.h: ARM port work in progress. ++ ++2005-07-20 Zoltan Varga ++ ++ * tramp-amd64.c (mono_arch_create_specific_trampoline): Fix build. ++ ++ * mini.h mini.c mini-*.h tramp-*.c: Move more cross platform trampoline code ++ to mini.c. ++ ++ * mini-sparc.c (mono_arch_get_vcall_slot_addr): Call ++ mono_sparc_is_virtual_call (). ++ ++ * mini-sparc.c (mono_arch_get_vcall_slot_addr): Fix warning. ++ ++ * tramp-sparc.c (mono_arch_create_trampoline_code): Fix order of ++ trampoline parameters. ++ ++ * mini-sparc.c (mono_arch_get_vcall_slot_addr): Fix signature. ++ ++ * mini-sparc.c (mono_arch_get_vcall_slot_addr): Rename this ++ to mono_arch_get_vcall_slot_addr. ++ ++ * Makefile.am tramp-sparc.c: Update the sparc port to use the generic ++ trampoline code. ++ ++ * *-sparc.*: Merge the mini-xp-regalloc branch for sparc. ++ ++2005-07-19 Zoltan Varga ++ ++ * mini-ia64.h mini-ia64.c: Finish pinvoke support. ++ ++2005-07-19 Martin Baulig ++ ++ * exceptions-amd64.c (throw_exception): Call ++ mono_debugger_throw_exception() here like we're doing it on i386. ++ ++2005-07-19 Zoltan Varga ++ ++ * mini-ia64.c: Add optimized TLS access support. ++ ++2005-07-18 Zoltan Varga ++ ++ * mini-exceptions.c: Ongoing IA64 work. ++ ++ * mini-ia64.c inssel-long.brg: Ongoing IA64 work. ++ ++ * mini.c: Use the default optimization set when embedding. Fixes ++ #75194. ++ ++2005-07-11 Zoltan Varga ++ ++ * tramp-amd64.c tramp-ia64.c Makefile.am: Move arch independent parts ++ of trampolines to a separate file. ++ ++ * mini-trampolines.c: New file. ++ ++ * mini.h tramp-x86.c: Move arch independent parts of trampolines to a ++ separate file. ++ ++ * tramp-x86.c: Reorganize the trampoline code to be similar to the ++ amd64/ia64 code. ++ ++ * mini-codegen.c: Fix cygwin build. ++ ++2005-07-10 Zoltan Varga ++ ++ * mini.c: Add some minor changes needed by the IA64 port. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++2005-07-09 Zoltan Varga ++ ++ * tramp-amd64.c mini-amd64.c: Update after latest AOT changes. Split ++ trampolines into arch-independent and arch-dependent parts. ++ ++ * mini-amd64.c (mono_arch_lowering_pass): Fix store_membase_imm -> store_membase_reg rule. ++ ++2005-07-08 Zoltan Varga ++ ++ * cpu-amd64.md: Merge the xp-regalloc-branch for amd64. ++ ++ * mini-ops.h mini-amd64.h mini-amd64.c inssel-amd64.brg Makefile.am: Merge ++ the xp-regalloc-branch for amd64. ++ ++ * mini-x86.h mini-x86.c cpu-pentium.md Makefile.am: Merge the ++ xp-regalloc-branch for x86. ++ ++2005-07-07 Zoltan Varga ++ ++ * inssel.brg (OP_THROW_OR_NULL): Allways rethrow the abort exception. ++ ++2005-07-06 Martin Baulig ++ ++ * mini.c ++ (mono_jit_compile_method_inner): Call mono_get_inflated_method(). ++ (mono_jit_runtime_invoke): Likewise. ++ ++2005-07-05 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Allocate the GOT in the .bss segment ++ on x86 too. ++ ++ * aot.c: Add new mono_aot_get_method_from_token () function to load AOT methods ++ without loading their metadata. Reorganize the file format so exception handling+ ++ debug info is kept separate from normal method info. Create MonoJitInfo ++ structures for methods lazily. ++ ++ * tramp-x86.c (x86_aot_trampoline): Use the new from_token method to avoid ++ loading metadata. ++ (x86_class_init_trampoline): Patch AOT class init trampolines too. ++ ++ * mini.c (mini_init): Install the new mono_aot_find_jit_info hook. ++ ++ * mini.c (mono_method_to_ir): Reduce the number of class init trampoline calls ++ in AOT code. ++ ++ * mini.h: Bump AOT file version. ++ ++2005-07-04 Zoltan Varga ++ ++ * mini-x86.c (peephole_pass): Fix the loadi1/loadi2 rules. ++ ++2005-07-01 Raja R Harinath ++ ++ * Makefile.am (check-local): Call semdel-wrapper. ++ ++2005-06-29 Zoltan Varga ++ ++ * mini-x86.c: Revert the last change as it seems to break the build.. ++ ++2005-06-28 Zoltan Varga ++ ++ * mini-x86.c (peephole_pass): Fix the loadi1/loadi2 rules. ++ ++ * mini-x86.c (mono_arch_cpu_init): Fix setting of fp precision in the VC build. ++ ++2005-06-27 Ben Maurer ++ ++ * mini.c (NEW_AOTCONST): make sure to call mono_get_got_var ++ outside of the macro, so strange stuff doesn't happen with gcc4 ++ (NEW_AOTCONST_TOKEN): Likewise. ++ ++2005-06-28 Martin Baulig ++ ++ * mini.c (mini_class_is_system_array): New static method; use this ++ instead of `klass->parent == mono_defaults.array_class' everywhere ++ since this also works for the new generic array class. ++ ++2005-06-26 Ben Maurer ++ ++ * inssel.brg: Remove warnings. ++ ++2005-06-24 Zoltan Varga ++ ++ * mini-ia64.c: Ongoing IA64 work. ++ ++ * basic-float.cs: Add float->i1 conversion test. ++ ++ * iltests.il: Add conv.u4 test. ++ ++2005-06-23 Zoltan Varga ++ ++ * inssel-long.brg: Fix bug caused by last change. ++ ++2005-06-23 Geoff Norton ++ ++ * mini-x86.h: Add __APPLE__ to the SC_* redefines with the other ++ BSDs. Allows the x86 JIT to work on OSX86 ++ ++2005-06-22 Zoltan Varga ++ ++ * inssel-long.brg: Use OP_LSHR_UN_IMM instead of OP_SHR_UN_IMM in ++ u4->i8 conversion. ++ ++ * mini-ia64.c: Ongoing IA64 work. ++ ++2005-06-19 Zoltan Varga ++ ++ * mini-ia64.c: Ongoing IA64 work. ++ ++ * driver.c: Clean up jit_code_hash as well when using --regression. ++ ++ * inssel-long.brg: Fix long->i4/u4 conversion rules. ++ ++ * basic-long.cs: Add tests for long->u4 conversion. ++ ++2005-06-18 Ben Maurer ++ ++ * mini.c: Take mono_get_domainvar out of macros. This makes sure ++ that we do not depend on undefined C behavior: the order stuff ++ gets evaluated within an expression. Fixes mono when compiled on ++ GCC 4. ++ ++2005-06-18 Zoltan Varga ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * aot.c: Lower memory usage while loading AOT methods. ++ ++ * tramp-x86.c: Avoid allocating+freeing MonoJitInfo structures. ++ ++ * mini.h: Bump AOT file format version. ++ ++2005-06-17 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Allow STACK_PTR as input to SWITCH. ++ ++2005-06-16 Sebastien Pouliot ++ ++ * declsec.c: Fixed APTC to check for FullTrust on caller assembly (and ++ not on callee assembly). Fixed some comments. ++ ++2005-06-16 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Mark the "methods" symbol as a function so ++ it gets proper disassembly. ++ (emit_method_info): Remove some dead code. ++ ++ * mini.c (mini_method_compile): Allways allocate the GOT var in ++ mono_method_to_ir for emulating opcodes. ++ ++2005-06-13 Zoltan Varga ++ ++ * mini.c (mono_jit_free_method): Remove the method from the JitInfo table ++ before freeing the code memory. Fixes #74990. ++ ++ * objects.cs: Add regression test for #74992. ++ ++ * liveness.c: Extend live ranges of arguments to the beginning of the ++ method. Fixes #74992. ++ ++ * exceptions-ia64.c mini-ia64.h: Modify ip during exception handling ++ so it points into the faulting instruction. ++ ++2005-06-12 Zoltan Varga ++ ++ * jit-icalls.c (mono_imul_ovf): Add exception handling. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * mini.c (mini_init): Fix signature of mono_delegate_ctor. ++ ++2005-06-11 Zoltan Varga ++ ++ * mini-ia64.h exceptions-ia64.c: Ongoing IA64 work. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++2005-06-10 Zoltan Varga ++ ++ * basic-long.cs: Add tests for add/sub.ovf. ++ ++ * basic.cs: Add tests for sub.ovf. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++2005-06-09 Zoltan Varga ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * basic.cs: Add conv.ovf.i4.un test. ++ ++2005-06-09 Massimiliano Mantione ++ ++ * mini.c: (remove_block_if_useless) Fixed bug 75061. ++ ++2005-06-08 Gonzalo Paniagua Javier ++ ++ * mini.c: no SIGUSR2 on windows. Remove it for PLATFORM_WIN32. ++ ++2005-06-07 Zoltan Varga ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++2005-06-07 Gonzalo Paniagua Javier ++ ++ * trace.[ch]: ++ * mini.c: added the ability to toggle trace on/off using SIGUSR2. ++ ++2005-06-04 Zoltan Varga ++ ++ * mini-ia64.c mini-ia64.h: Fix cleanup of memory stack. ++ ++2005-06-03 Zoltan Varga ++ ++ * mini-amd64.c (emit_call): Fix yet another bug in the near call optimization. ++ ++ * mini-amd64.c (amd64_patch): Add an assert to check that the destination ++ of a call is callable by a near call. ++ ++2005-05-31 Zoltan Varga ++ ++ * mini-ia64.c: Ongoing IA64 work. ++ ++2005-05-29 Zoltan Varga ++ ++ * genmdesc.c: Make the generated array non-static. ++ ++ * inssel-long.brg: Fix LSHR_IMM rule. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++2005-05-28 Zoltan Varga ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * mini-ia64.c: Ongoing IA64 work. ++ ++ * *-ia64.* jit-icalls.c mini-codegen.c: Ongoing IA64 work. ++ ++2005-05-28 Zoltan Varga ++ ++ * objects.cs basic-calls.cs: Move some tests to objects.cs. ++ ++ * objects.cs basic-long.cs: Move some tests to objects.cs. ++ ++2005-05-26 Zoltan Varga ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * iltests.il: Add a new test. ++ ++ * mini.c (mono_method_to_ir): Initialize valuetypes when created using ++ newobj. Fixes #75042. ++ ++2005-05-22 Zoltan Varga ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * *-ia64.*: Ongoing IA64 work. ++ ++ * basic.cs objects.cs: Move tests accessing static variables as well. ++ ++ * basic.cs objects.cs: Move test_0_pin_string to objects.cs. ++ ++2005-05-21 Zoltan Varga ++ ++ * mini.c (SIG_HANDLER_SIGNATURE): Fix warning. ++ ++ * driver.c: Always print failed tests. ++ ++ * mini-codegen.c: Use cfg->frame_reg instead of a macro for the ++ frame pointer. ++ ++ * *ia64*: Ongoing IA64 work. ++ ++2005-05-20 Zoltan Varga ++ ++ * basic.cs: Add tests for add.ovf. Fix warnings. ++ ++2005-05-18 Miguel de Icaza ++ ++ * driver.c (mono_main): Avoid crash if no argument is passed to ++ --break; Do not use g_error, but f_printf. And fix all other ++ ocurrences of the same crash. ++ ++2005-05-17 Zoltan Varga ++ ++ * mini.h mini.c: Generalize the existing uses of the MONO_DEBUG env variable ++ and add a new one: aborting when a SIGSEGV is raised while in unmanaged code. ++ Fixes #74742. ++ ++2005-05-14 Zoltan Varga ++ ++ * *-ia64.*: Add beginnings of IA64 backend. ++ ++ * Makefile.am mini-arch.h mini-codegen.c: Add IA64 support. ++ ++2005-05-13 Zoltan Varga ++ ++ * inssel-long.brg: Add missing ulong->{i1, i2} checked conversions. ++ Fixes #74925. ++ ++ * basic-long.cs exceptions.cs: Add new tests. Fix some warnings. ++ ++ * mini-amd64.c: Fix a warning. ++ ++2005-05-10 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix stack space leakage ++ in float_neg. Fixes #74897. ++ ++ * mini-amd64.c (emit_call): Fix another near call bug. ++ ++2005-05-06 Sebastien Pouliot ++ ++ * declsec.c: Keep the appdomain information in the structure. Added a ++ missing "return FALSE" for Unmanaged if FullTrust is set (or else the ++ value gets overwritten). ++ * declsec.h: Set the default MonoArray for the the stack to 6. Added ++ an MonoAppDomain member to MonoSecurityFrame. ++ * mini-exceptions.c: Do not use a glist to keep GC allocated objects ++ used in the stack walk. Now use a MonoArray which grow (double) when ++ it gets full. ++ ++2005-05-05 Lluis Sanchez Gual ++ ++ * mini.c: Re-enabled runtime cleanup, since running threads should ++ now properly stop when exiting. ++ ++2005-05-05 Zoltan Varga ++ ++ * mini-codegen.c: New file contaning the arch-independent local ++ register allocator. Not used by any architectures yet. ++ ++ * mini.h linear-scan.c: Merge some changes from the ++ mini-xp-local-regalloc branch. ++ ++2005-04-28 Zoltan Varga ++ ++ * mini-amd64.c (emit_call): Fix calls to native functions when the ++ runtime is compiled as a shared library. Fixes #74756. ++ ++ * mini.c (mono_method_to_ir): Assert if ldsfld and friends are used ++ on a literal field. Fixes #74751. ++ ++2005-04-25 Raja R Harinath ++ ++ * Makefile.am (RUNTIME): Add MONO_CFG_DIR. ++ ++2005-04-23 Zoltan Varga ++ ++ * objects.cs: Add missing null casting test. ++ ++2005-04-22 Zoltan Varga ++ ++ * mini-exceptions.c (mono_find_jit_info): Fix native offset calculation ++ in wrapper methods. Also rename 'address' variable to 'offset'. ++ ++2005-04-20 Zoltan Varga ++ ++ * mini.c debug-mini.c aot.c tramp-x86.c driver.c: Fix some gcc 4.0 ++ warnings. ++ ++ * Makefile.am (MCS): Use -unsafe instead of --unsafe. ++ ++ * aot.c: Applied patch from "The Software Team" . Make AOT compilation ++ work on windows. ++ ++Mon Apr 18 16:20:32 CEST 2005 Paolo Molaro ++ ++ * exceptions-ppc.c: update code to handle stack traces (fixes bug #74452). ++ ++2005-04-17 Zoltan Varga ++ ++ * mini-x86.c (mono_emit_stack_alloc): Initialize the whole allocated area not ++ just the last bytes. ++ ++2005-04-17 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Fix warning. ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Fix bug introduced ++ by the _MSC_VER stuff. ++ ++2005-04-16 Zoltan Varga ++ ++ * inssel-long.brg: Fix #74588. ++ ++ * cpu-amd64.md: Fix #74591. ++ ++ * iltests.il: Add new regression tests. ++ ++2005-04-13 Zoltan Varga ++ ++ * trace.c (mono_trace_enter_method): Print enums as an int, not as a ++ valuetype. ++ ++2005-04-11 Zoltan Varga ++ ++ * mini-x86.c (setup_stack): Unconditionally call pthread_attr_init (). ++ ++ * exceptions-x86.c mini-x86.h mini-x86.c: Applied some freebsd patches ++ from Bill Middleton . ++ ++2005-04-10 Zoltan Varga ++ ++ * arrays.cs: Add new regression test. Fix warnings. ++ ++2005-04-09 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix stack alignment ++ and leakage in CKFINITE. ++ ++ * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Change ++ this to a null op since it is called on amd64 too. ++ ++ * exceptions-amd64.c (get_throw_trampoline): Align stack. ++ ++ * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Remove ++ body since this is not used on amd64. ++ ++ * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Remove duplicate define. ++ ++ * mini-amd64.c: Remove obsolete fixmes. ++ ++ * mini.c (print_method_from_ip): Fix debugging support. ++ ++2005-2-1 Massimiliano Mantione ++ ++ * ssapre.c: Fix a subtle bug about availability, and limit SSAPRE ++ so that expressions that don't give much gain are not reduced. ++ * ssapre.h: Likewise. ++ ++2005-04-04 Zoltan Varga ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Remove last SC_EBP reference. ++ ++ * mini-x86.c (mono_emit_stack_alloc): Fix localloc under windows. ++ ++ * mini-x86.h exceptions-x86.c: Hopefully fix compilation on *BSD. ++ ++2005-04-01 Zoltan Varga ++ ++ * mini-sparc.c mini-sparc.h: Add asserts when running with sigaltstack. ++ ++ * exceptions-x86.c (mono_arch_monoctx_to_sigctx): Fix cygwin build. ++ ++2005-03-31 Zoltan Varga ++ ++ * mini-x86.c: If sigaltstack support is enabled, perform win32 style ++ stack touching. ++ ++ * mini.h (mono_arch_sigctx_to_monoctx): New arch-specific function. ++ ++ * mini.h (mono_arch_monoctx_to_sigctx): New arch-specific function. ++ ++ * mini.c: sigaltstack support requires MONO_ARCH_USE_SIGACTION. ++ ++ * mini-x86.h mini-x86.c exceptions-x86.c: Add support for ++ MONO_ARCH_USE_SIGACTION. Fixes #74252. ++ ++ * mini-x86.h: Enable MONO_ARCH_USE_SIGACTION on linux. ++ ++ * mini-x86.c: Fix up stack overflow handling. ++ ++ * exceptions.cs: Add new regression test. ++ ++2005-03-30 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_prolog): Adjust stack after calls to ++ mono_jit_thread_attach. ++ ++ * mini.c (mono_method_to_ir): Verify called method is not abstract. ++ ++2005-03-29 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Applied Ben's patch from bug #61441 to ++ avoid calling constructors using callvirt. ++ ++ * inssel.brg: Fix #74073. ++ ++2005-03-29 Sebastien Pouliot ++ ++ * aot.c, mini.h: Added mono-compiler.h header to allow/ease ++ compilation with non-GCC compilers. ++ * mini-exceptions.c, mini-x86.c|h: Patches to make compilation of mono ++ possible using VS.NET. Adapted from the work of J Lothian (for VC6). ++ ++Tue Mar 29 11:43:01 CEST 2005 Paolo Molaro ++ ++ * inssel.brg, arrays.cs: fix long standing 64 bit issue in access to ++ klass->interface_offsets (will likely fix bug#74073). ++ ++2005-03-29 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_is_int_overflow): Fix rex handling. ++ ++2005-03-28 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix order of parameters ++ to amd64_div_reg_size (). ++ ++ * mini-amd64.c (mono_arch_emit_exceptions): Emit a near call here too. ++ ++2005-03-27 Zoltan Varga ++ ++ * cpu-amd64.md (store_membase_reg): Fix length of storer8 opcodes. ++ ++2005-03-24 Zoltan Varga ++ ++ * driver.c: Turn off automatic command line globbing under windows. Fixes #73763. ++ ++2005-03-24 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Remove debugging stuff left in by mistake. ++ ++ * mini.c (mono_precompile_assembly): Load and precompile referenced ++ assemblies as well. Fixes #74015. ++ ++2005-03-23 Zoltan Varga ++ ++ * cpu-amd64.md (sin): Fix up maximum lengths of some opcodes. ++ ++2005-03-23 Sebastien Pouliot ++ ++ * declsec.c: Skip linkdemand checks for intra-corlib calls. This skips ++ a lot of checks and (anyway) permissions cannot work until corlib is ++ loaded. ++ ++Wed Mar 23 14:29:49 CET 2005 Paolo Molaro ++ ++ * mini-ppc.c: fixed ABI issue on sysv/ppc. ++ ++Tue Mar 22 19:03:17 CET 2005 Paolo Molaro ++ ++ * tramp-ppc.c, exceptions-ppc.c: added missing icache flush ++ calls (fixes bug#72824). ++ ++Tue Mar 22 16:28:48 CET 2005 Paolo Molaro ++ ++ * mini.c: fix tail recursion elimination (see test in bug#73936). ++ ++2005-03-21 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Add inline versions of ++ some fp functions in sse2 mode. ++ ++2005-03-20 Zoltan Varga ++ ++ * mini-x86.c (emit_tls_get): Move tls handling into a separate helper function. ++ ++2005-03-19 Zoltan Varga ++ ++ * mini.h mini.c: Add mono_get_jit_tls_key (). ++ ++ * mini-x86.c: Enable fast TLS support on windows. ++ ++2005-03-17 Sebastien Pouliot ++ ++ * declsec.c: Renamed aptc to allowpartiallytrustedcallers. ++ * mini.c: Check for p/invoke method when generating code. If a ++ p/invoke method, or it's class, isn't decorated with [Suppress ++ UnmanagedCodeSecurity] then generate code to call System.Security. ++ UnmanagedDemand (only if the security manager is active). ++ ++2005-03-16 Zoltan Varga ++ ++ * tramp-amd64.c (create_specific_trampoline): Revert parts of the ++ last change as it seems to cause strange crashes. ++ ++Wed Mar 16 16:24:11 CET 2005 Paolo Molaro ++ ++ * *.c: handle unsafe function pointers where needed. ++ ++2005-03-16 Zoltan Varga ++ ++ * mini.c (mono_jit_free_method): Remove the fixme too. ++ ++2005-03-15 Miguel de Icaza ++ ++ * mini.c: As discussed, make the code actually free the delegate ++ thunk now, to enable the debugging of delegate problems, use ++ MONO_DEBUG=1 when running Mono. ++ ++ This takes also care of parts of the leaks as seen by Joe. ++ ++2005-03-15 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_setup_jit_tls_data): Enable ++ thread_tls_offset calculation. ++ ++2005-03-14 Sebastien Pouliot ++ ++ * declsec.c: Reworked linkdemand checks for icall. The previous code ++ was using the declaration code (untrusted) and didn't work as expected ++ with the CLR 2.0. We're now more compatible with 2.0 than 1.x for this ++ specific case. ++ ++2005-03-13 Zoltan Varga ++ ++ * iltests.il: Add new localloc test. ++ ++ * mini-amd64.c: Handle large stack allocations the same way as on ++ windows if stack overflow handling is working. ++ ++ * mini-amd64.c: Allocate the signal stack using mmap. ++ ++ * mini.c (sigsegv_signal_handler): Fix reading of context. ++ ++ * mini-exceptions.c: Fix up stack overflow handling. ++ ++ * mini-amd64.h mini-amd64.c: Fix up stack overflow handling. ++ ++ * tramp-amd64.c (create_specific_trampoline): Optimize trampoline size. ++ ++ * exceptions-amd64.c (mono_amd64_exceptions_init): Remove this. ++ ++ * mini.h mini.c tramp-*.c: Move common trampoline code to mini.c. ++ ++ * mini-x86.h mini-x86.c mini-amd64.h mini-amd64.c: Get rid of the ++ tramp_init functions as they are no longer needed. ++ ++2005-03-12 Zoltan Varga ++ ++ * tramp-amd64.c (mono_amd64_tramp_init): Fix typo. ++ ++ * tramp-amd64.c (mono_amd64_tramp_init): Init AOT trampoline as well. ++ ++ * mini-amd64.h mini-amd64.c (mono_amd64_exceptions_init): Remove this. ++ ++ * mini.c mini-*.h: Remove OUT_OF_LINE_BBLOCK defines since all arches ++ support that now. ++ ++ * mini-ops.h: Add OP_LMUL_IMM. ++ ++ * mini.c jit-icalls.cmini-amd64.h mini-amd64.c cpu-amd64.md: Implement ++ long mul/div opcodes as intrinsic. ++ ++ * mini-amd64.c (emit_call): Handle the case when the callee might be ++ an AOT method. ++ ++2005-03-11 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Reorder cases to be ++ extra safe. ++ ++ * mini-amd64.c (mono_arch_get_vcall_slot_addr): Fix ordering of cases. ++ ++ * aot.c (mono_aot_load_method): Get rid of bogus make_writable call. ++ ++2005-03-09 Ben Maurer ++ ++ * mini.c (mono_codegen): Don't leak here, to help people running ++ monogrind. ++ ++2005-03-08 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix int->float ++ conversions in sse2 mode. ++ ++ * basic-float.cs: Add regression test. ++ ++ * mini-amd64.c: Reenable sse2. ++ ++2005-03-07 Zoltan Varga ++ ++ * mini-amd64.c: Disable sse2 until some regressions are fixed. ++ ++2005-03-07 Joerg Rosenkranz ++ ++ * driver.c: Copyright text should include 2005. ++ ++2005-03-07 Zoltan Varga ++ ++ * cpu-amd64.md (load_membase): Fix more max lengths. ++ ++2005-03-06 Zoltan Varga ++ ++ * cpu-amd64.md (load_membase): Fix max length. ++ ++ * mini-ops.h: Add OP_F_MEMBASE opcodes. ++ ++ * inssel.brg: Add MONO_EMIT_BIALU_MEMBASE macro. ++ ++ * cpu-amd64.md inssel-amd64.brg mini-amd64.h mini-amd64.brg: Finish SSE2 ++ support and enable it by default. Also add OP_F_MEMBASE opcodes. ++ ++ * basic-float.cs: Add rounding regression test. ++ ++ * mini-amd64.c (INST_IGNORES_CFLAGS): Add more instructions. ++ ++2005-03-04 Neale Ferguson ++ ++ * inssel-s390.brg, mini-s390.c: Add support for passing/returning small ++ structures in registers for pinvoke wrappers. ++ ++2005-03-04 Zoltan Varga ++ ++ * mini-exceptions.c (ves_icall_get_trace): Return wrapper info as well. ++ ++2005-03-03 Zoltan Varga ++ ++ * mini.h mini.c mini-x86.c: Pass the domain of the native->managed ++ wrapper to mono_jit_thread_attach. ++ ++ * mini.c (mini_jit_thread_attach): New jit icall. ++ ++ * mini-x86.c (mono_arch_emit_prolog): Attach to the VM in ++ native->managed wrappers. ++ ++ * exceptions.cs: Add new regression test. ++ ++ * mini.c (optimize_branches): Check regions in the cbranch to throw ++ block case as well. Fixes #73242. ++ ++Tue Mar 1 18:35:27 CET 2005 Paolo Molaro ++ ++ * mini.c: thread safety fixes. ++ ++2005-02-27 Zoltan Varga ++ ++ * tramp-amd64.c (amd64_magic_trampoline): Disable the method_ptr ++ patching stuff, since delegates use jump trampolines so there is ++ no caller. ++ ++ * tramp-amd64.c (create_trampoline_code): Pass NULL as 'code' in ++ jump trampolines. ++ ++ * tramp-amd64.c: Fix build. ++ ++ * mini-x86.c tramp-x86.c: Moved get_vtable_slot_addr into mini-x86.c and rename ++ it to mono_arch_.... Add get_delegate_method_ptr implementation for x86. ++ ++ * mini-amd64.h mini.h mini-amd64.c tramp-amd64.c (mono_amd64_get_vcall_slot_addr): ++ Rename this to mono_arch.... ++ (mono_amd64_get_delegate_method_ptr_addr): Ditto. ++ ++ * mini-amd64.c (mono_amd64_get_delegate_method_ptr_addr): New helper function. ++ ++ * mini-amd64.c (emit_call): If both the caller and the callee is ++ guaranteed to have 32 bit addresses, emit a normal call. ++ ++ * tramp-amd64.c: Adapt to changes in mini-amd64.c. ++ ++ * tramp-amd64.c (amd64_magic_trampoline): Remove patching of trampolines. ++ * tramp-amd64.c (amd64_magic_trampoline): Add support for patching the ++ method_ptr inside delegates. ++ ++2005-02-26 Zoltan Varga ++ ++ * mini.c (mono_jit_free_method): Free the method info even if the native code is ++ invalidated. Fixes #73001. ++ ++ * mini.c: Add a proper icall wrapper for mono_delegate_ctor. ++ ++ * mini-x86.c: Only use stdcall for pinvokes on windows. ++ ++Thu Feb 24 15:22:30 CET 2005 Paolo Molaro ++ ++ * mini.c, mini.h: make mono_lmf_addr a fast-access thread var. ++ * mini-x86.c: remove unreliable __thread var offset detection, ++ use the correct accessors and enable by default. ++ ++2005-02-23 Zoltan Varga ++ ++ * mini.c (mono_jit_free_method): Fix memory leak. ++ ++2005-02-22 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Allocate a GOT var for THROW and RETHROW. ++ ++2005-02-21 Zoltan Varga ++ ++ * cpu-amd64.md: Fix lengths of atomic opcodes. ++ ++Mon Feb 21 16:52:20 CET 2005 Paolo Molaro ++ ++ * driver.c: try to not imply using ICU is any good. ++ ++2005-02-20 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_get_inst_for_method): Implement more ++ functions as inline ops. ++ ++ * mini-ops.h inssel-amd64.brg cpu-amd64.md mini-amd64.c: Implement ++ some Interlocked functions as inline ops. ++ ++ * mini.c (move_basic_block_to_end): Fix bug in last patch. ++ ++ * mini.h (MonoBasicBlock): Reorganize fields a bit. ++ ++ * mini-ops.h inssel.brg: Add OP_NOT_REACHED. ++ ++ * mini.c: Add support for OP_NOT_TAKEN. ++ ++ * mini-amd64.h mini-amd64.c: Add support for passing/returning small ++ structures in registers for pinvoke wrappers. ++ ++ * mini-amd64.c: Fix warnings. ++ ++2005-02-19 Zoltan Varga ++ ++ * mini.h (MonoCompile): Add 'ret_var_is_local' field. ++ ++ * mini.h mini.c (mono_arch_create_vars): Add new arch specific hook. ++ ++ * mini.c (NEW_RETLOADA): If the ret variable is a local, use its ++ address instead of loading the address from it. ++ ++ * mini-x86.c: Add support for returning small structs in registers ++ on Win32. Fixes part of #70864. ++ ++2005-02-18 Zoltan Varga ++ ++ * trace.c (get_token): Improve error checking. ++ ++2005-02-17 Zoltan Varga ++ ++ * jit-icalls.c (mono_ldvirtfn): Explicitly check for a NULL obj here. ++ ++2005-02-17 Sebastien Pouliot ++ ++ * mini.h: Moved MONO_EXCEPTION_* enum to metadata/class-internals.h so ++ it can be reused for MonoClass. ++ * mini.c: Renamed MONO_EXCEPTION_SECURITY to MONO_EXCEPTION_SECURITY ++ _LINKDEMAND. ++ ++2005-02-15 Sebastien Pouliot ++ ++ * mini.c: Fixed 2 cases where I sent a MonoMethod to managed code ++ instead of a MonoReflectionMethod. The method information wasn't used ++ when displaying SecurityException details (but will be now). ++ ++2005-02-15 Atsushi Enomoto ++ ++ * Makefile.am : windows build fix. ++ ++2005-02-14 Zoltan Varga ++ ++ * iltests.il: Add new regression test. ++ ++ * mini.c (mono_method_to_ir): Allocate a GOT var in CEE_NEWOBJ. Fixes ++ #72522. ++ ++2004-02-13 Sebastien Pouliot ++ ++ * mini.c: Moved linkdemand check into helper function check_linkdemand ++ to allow reuse for all intructions (CALL, CALLVIRT, NEWOBJ, JMP, ++ LDFTN, LDVIRTFTN). ++ ++2004-02-13 Sebastien Pouliot ++ ++ * declsec.c: Added statistics counter for different kinds of ++ LinkDemands. ++ * mini.h: Added CAS statistic counters to MonoJitStats. Removed unused ++ (and commented) declaration. ++ * mini.c: Added statistics counter for security Demand code ++ generation. Added display of security statistics. ++ ++2005-02-13 Zoltan Varga ++ ++ * declsec.c (mono_declsec_linkdemand_aptc): Applied patch from Robert Jordan (robertj@gmx.net). ++ Fix compilation errors under gcc-2.95. ++ ++2005-02-12 Ben Maurer ++ ++ * mini.c, driver.c: Use the new jit trampoline hashtable ++ ++Fri Feb 11 18:47:11 CET 2005 Paolo Molaro ++ ++ * mini.c, jit-icalls.c: use the managed implementation of memcpy, too. ++ ++2005-02-11 Martin Baulig ++ ++ * debug-mini.c (mono_debug_close_method): Free the line number array. ++ ++2005-02-10 Zoltan Varga ++ ++ * aot.c: Break up large methods into smaller ones. Share GOT slots for ++ icalls. ++ ++ * mini.h: Bump AOT file format version. ++ ++2005-02-10 Sebastien Pouliot ++ ++ * declsec.c: Added LinkDemand support and it's special cases for ECMA, ++ APTC and P/Invoke. ++ * declsec.h: Added macros to get/set lazyly initialized security ++ informations about assemblies. Added new enum for different type of ++ possible LinkDemand violation. Added function to check LinkDemands. ++ * mini.h: Added a field to MonoCompile to hold any security violation ++ detected when JITting a method (so it can be thrown later). ++ * mini.c: Added LinkDemand checks in mono_method_to_ir for CEE_CALL ++ and CEE_CALLVIRT. Added code to throw exception at the end of ++ mini_method_compile (note: the exception is unhandled right now). ++ ++Thu Feb 10 15:49:44 CET 2005 Paolo Molaro ++ ++ * mini.c, jit-icalls.c: use the managed implementation of ++ memset for initobj and memset, to avoid managed <-> unmanaged ++ transitions. ++ ++2005-02-10 Zoltan Varga ++ ++ * inssel.brg (mini_emit_virtual_call): Disable the virtual->nonvirtual ++ optimization if it would need a GOT var. ++ ++ * basic.cs: Add tests for constant propagation and switch statements. ++ ++ * ssa.c: Fix out-of-range constant propagation and switch statements. ++ ++2005-02-09 ++ ++ * inssel-x86.brg (reg): Align the allocation size in the localloc(imm) case too. ++ ++2005-02-08 Zoltan Varga ++ ++ * cpu-amd64.md (load_membase): Fix max length of load_membase. ++ ++Tue Feb 8 18:21:11 CET 2005 Paolo Molaro ++ ++ * mini.c: update to new signature of mono_class_get_allocation_ftn(). ++ ++2005-02-06 Neale Ferguson ++ ++ * cpu-s390.md, mini-s390.c: Correct bug with register usage on certain ++ arithmetic operations. ++ ++Sun Feb 6 07:10:12 EST 2005 Paolo Molaro ++ ++ * mini-ppc.c: add a workaround for broken user code that ++ DllImports vararg functions with non-vararg signatures. ++ ++2005-02-05 Zoltan Varga ++ ++ * mini.c (mono_jit_compile_method_inner): Add detection and a ++ meaningfull error message for assemblies written in Managed C++. ++ ++ * tramp-amd64.c mini-amd64.h: Add support for ++ create_trampoline_from_token (). ++ ++ * aot.c mini-x86.c abcremoval.c: Applied patch from ++ Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95. ++ ++2005-02-04 Zoltan Varga ++ ++ * mini.h mini.c mini-x86.h tramp-x86.c: Add a new kind of trampoline ++ which takes a MonoImage/token as parameter instead of a MonoMethod. ++ ++ * aot.c: Use the new trampoline for initializing vtables. ++ ++ * aot.c: Add support for ldfld/stfld_remote wrappers. ++ ++ * mini-ops.h cpu-pentium.md inssel-x86.brg mini-x86.c: Add optimized ++ rules for compare , IMM. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump it. ++ ++ * aot.c: Handle inherited finalizers correctly. ++ ++2005-02-03 Zoltan Varga ++ ++ * inssel.brg (stmt): Add a missing _setup_... (). ++ ++ * aot.c: Save some parts of the class state to the AOT file and use it ++ to recompute that state when a class is initialized. ++ ++ * mini.c: Install AOT hooks into the runtime. ++ ++ * mini.h: Bump AOT file format version. ++ ++ * mini.c (mono_method_to_ir): Initialize pointer type locals correctly. ++ Fixes #72148. ++ ++ * iltests.il: Add new test. ++ ++Wed Feb 2 16:53:59 CET 2005 Paolo Molaro ++ ++ * mini.c: fix typo. ++ ++Wed Feb 2 16:37:13 CET 2005 Paolo Molaro ++ ++ * mini.c: setup the statistical profiler in the thread attach ++ callback to cope with the new single thread code. ++ ++Wed Feb 2 15:43:58 CET 2005 Paolo Molaro ++ ++ * mini-ppc.c: ensure we have enough room for the profiler ++ calls (fixed bug#72084). ++ ++2005-02-02 Zoltan Varga ++ ++ * aot.c: Get rid of the MonoAotMethod structure and the hashtable holding ++ it. ++ ++2005-2-1 Massimiliano Mantione ++ ++ * driver.c: Re-enabled SSAPRE (two commits, I was just dumb). ++ ++2005-2-1 Massimiliano Mantione ++ ++ * ssapre.c: Fixed an issue with down safety (this allows IronPython ++ to succesfully execute parrotbench). ++ * ssapre.h: Likewise. ++ ++2005-2-1 Massimiliano Mantione ++ ++ * ssa.c: In mono_ssa_rename_vars, forced the creation of a new SSA ++ variable for stores to method arguments (fixes a SSAPRE issue). ++ ++Tue Feb 1 15:52:26 CET 2005 Paolo Molaro ++ ++ * mini.c: handle value types in dup, fixes gen-112.cs. ++ ++Tue Feb 1 11:45:19 CET 2005 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md, tramp-ppc.c: use a slower code ++ sequence for calls in dynamic methods to avoid thunks. ++ ++Tue Feb 1 11:44:01 CET 2005 Paolo Molaro ++ ++ * mini.c: correctly remove dynamic methods from the hashtable. ++ ++2005-1-20 Massimiliano Mantione ++ ++ * driver.c: Disabled SSAPRE until fix the bug that appears ++ in IronPython's parrotbench. ++ ++2005-01-31 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Get rid of Skip (other) messages. ++ ++ * mini.c (mono_method_to_ir): Revert the previous change. ++ ++ * mini.c (mono_method_to_ir): Do not inline ldfld and stfld wrappers ++ when AOT compiling. ++ ++ * tramp-x86.c (x86_magic_trampoline): Avoid calls to ++ mono_jit_info_table_find () etc. when running under valgrind. ++ ++ * inssel.brg: Fix warnings. ++ ++ * mini-exceptions.c: Fix warnings. ++ ++2005-01-31 Martin Baulig ++ ++ * driver.c (compile_all_methods_thread_main): Don't try to compile ++ generic methods or anything which has type parameters. ++ ++2005-01-30 Zoltan Varga ++ ++ * aot.c: Avoid costly calls to mono_method_full_name in tracing code and fix memory leaks. ++ ++ * TestDriver.cs: Add --verbose flags. ++ ++ * graph.c ssa.c: Fix 64 bit warnings. ++ ++ * abcremoval.h ssapre.h abcremoval.c ssapre.c mini.c tramp-amd64.c ++ trace.c mini-exceptions.c linear-scan.c inssel-amd64.brg inssel.brg: ++ Fix 64 bit warnings. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix uninitialized ++ variable not spotted by gcc. ++ ++ * mini-amd64.c inssel-amd64.brg: Applied patch from ++ Willibald Krenn . Clean up usage of ++ X86_COMPARE_MEMBASE opcodes. ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Fix AMD64 build. ++ ++2005-01-29 Ben Maurer ++ ++ * *: MonoMethod->signature might be NULL now. You *MUST* use ++ mono_method_signature. ++ ++2005-01-28 Zoltan Varga ++ ++ * driver.c (compile_all_methods_thread_main): Compile the methods ++ without invoking cctors. ++ ++Fri Jan 28 18:28:26 CET 2005 Paolo Molaro ++ ++ * mini.c: remove ben's "optimizations" to dup+stloc (bug #71905). ++ * basic-calls.cs: test for the above. ++ ++2005-01-28 Zoltan Varga ++ ++ * mini.c mini-exceptions.c aot.c exceptions-*.c: Update after ++ MonoJitInfo changes. ++ ++2005-01-27 Zoltan Varga ++ ++ * mini-exceptions.c (mono_handle_exception): Compute the stack trace ++ eagerly if it contains dynamic methods. ++ ++ * mini-exceptions.c (ves_icall_System_Exception_get_trace): New icall. ++ ++ * mini-exceptions.c (mono_handle_exception): Avoid computing the stack ++ trace, it is now computed by an icall from trace_ips. ++ ++ * mini-exceptions.c: Fix a warning. ++ ++Thu Jan 27 13:38:34 CET 2005 Paolo Molaro ++ ++ * mini-exceptions.c: don't bother getting stack trace info if ++ it's not going to be used. ++ ++2005-01-27 Raja R Harinath ++ ++ * Makefile.am (common_sources): Add ssapre-cee-ops.h and ++ ssapre-mini-ops.h. ++ ++2005-01-26 Zoltan Varga ++ ++ * mini.c (remove_block_if_useless): Only print debug stuff with -v -v. ++ ++ * aot.c: Avoid calling mono_method_get_header () if not needed. ++ ++ * mini.h: Bump AOT file format version. ++ ++ * mini.c (mono_emit_native_call): Allocate a GOT var here. ++ ++ * mini.c (mono_print_tree): Print more info for calls. ++ ++2005-01-26 Sebastien Pouliot ++ ++ * declsec.h: Remove warning by adding missing include for marshal.h ++ ++2005-01-26 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): In CEE_UNBOX_ANY, don't increase ++ `ip' twice. ++ ++2005-01-25 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_call_opcode): Add missing MONO_SSA_LOAD/STORE ++ flags. ++ ++ * ssa.c (mono_ssa_compute): Fix crashes when using AOT. ++ ++ * aot.c (mono_compile_assembly): Fix a warning. ++ ++2005-01-25 Sebastien Pouliot ++ ++ * declsec.c: Look for security attributes on the original MonoMethod ++ (and not the wrapped one). This fix permissions on icalls. ++ ++2005-01-23 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_allocate_vars): Use mono_allocate_stack_slots (). ++ ++ * mini.c (mono_allocate_stack_slots): Add a fixme. ++ ++ * mini-x86.c (mono_arch_allocate_vars): Use mono_allocate_stack_slots (). ++ ++Sun Jan 23 16:16:48 CET 2005 Paolo Molaro ++ ++ * inssel.brg: optimize casts of sealed types (more ++ optimizations waiting for fixes in remoting). ++ ++2005-01-23 Zoltan Varga ++ ++ * inssel.brg (stmt): Add another dummy rule. ++ ++ * driver.c: Fix warnings. ++ ++ * driver.c (mono_main): If running under valgrind, instruct glib to use ++ the system allocation functions so valgrind can track the memory ++ allocated by the g_... functions. ++ ++ * inssel.brg (stmt): Add DUMMY rule for OP_DUMMY_STORE. ++ ++ * mini-ops.h: Add OP_DUMMY_STORE opcode. ++ ++ * mini.h (MONO_BBLOCK_IS_IN_REGION): New helper macro. ++ ++ * liveness.c: Handle OP_DUMMY_STORE. Enable register allocation for ++ variables in try regions. ++ ++ * mini.c (mini_method_compile): Don't disable optimizations on large ++ methods when AOT compiling. ++ ++ * mini.c (mono_allocate_stack_slots): New arch independent method to ++ allocate stack slots. Not yet used. ++ ++2005-01-22 Ben Maurer ++ ++ * debug-mini.c (mono_debug_close_method): Plug some leaks. ++ ++Sat Jan 22 13:41:51 EST 2005 Paolo Molaro ++ ++ * mini-ppc.c: make the branch info relative as the code ++ buffer can be reallocated. ++ ++2005-01-22 Sebastien Pouliot ++ ++ * aot.c: Allow decoding of the new MONO_PATCH_INFO_DECLSEC. ++ * driver.c: Removed the AOT/security restriction. Now initialize the ++ security manager (in metadata) if --security is used. ++ * mini.c|h: Add the MONO_PATCH_INFO_DECLSEC code to use the index, ++ rather than the pointer to declarative security, when AOT is used. ++ ++Sat Jan 22 09:35:19 EST 2005 Paolo Molaro ++ ++ * mini.h, mini-ppc.h, mini-ppc.c: updated to use out of line ++ basic blocks, reduced intrinsic exception throwing code size. ++ ++2005-01-22 Miguel de Icaza ++ ++ * driver.c (mini_usage): Reorder the usage screen. ++ ++2005-01-21 Zoltan Varga ++ ++ * mini.c (mono_resolve_patch_target): Fix warning. ++ ++2005-01-20 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_local_regalloc): Fix bug introduced by ++ previous patch. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Ditto. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Revert last patch as it ++ breaks the amd64 build. ++ ++ * mini-x86.c (mono_arch_local_regalloc): Fix bug in div/rem ++ register allocation. Fixes #71454. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Ditto. ++ ++ * arrays.cs: Add new regression test. ++ ++2005-1-20 Massimiliano Mantione ++ ++ * ssapre.c: Turned usage of snprintf to GString. ++ * ssapre.h: disabled MONO_APPLY_SSAPRE_TO_SINGLE_METHOD ++ (I left it on by mistake in my previous commit). ++ ++Thu Jan 20 12:00:45 CET 2005 Paolo Molaro ++ ++ * mini.c, cfold.c, basic-calls.cs: preserve side effects ++ on cond branch optimization (fixes bug# 71515). ++ ++2005-1-20 Massimiliano Mantione ++ ++ * abcremoval.c: Fixed bug 71062. ++ * abcremoval.h: Likewise. ++ ++2005-1-20 Massimiliano Mantione ++ ++ * mini.c: Added a new functionality to optimize_branches, the removal ++ of useless basic blocks, and fixed some problem in the removal of ++ critical edges; some utility functions added for both purposes. ++ * ssapre.c: Added complex expression support, and fixed bug 70637. ++ * ssapre.h: Likewise. ++ * ssapre-cee-ops.h: Added file with list of "CEE_*" opcodes ++ enabled in SSAPRE. ++ * ssapre-mini-ops.h: Likewise, but for "OP_*" opcodes. ++ * driver.c: Re-enabled SSAPRE. ++ ++2005-01-19 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): Call mono_get_inflated_method() on ++ the result of mono_get_method_constrained(). ++ ++2005-01-18 Neale Ferguson ++ ++ * exceptions-s390.c tramp-s390.c: Allocate code using the global code ++ manager. ++ ++2005-01-18 Geoff Norton ++ ++ * jit-icalls.c (mono_llmult_ovf): Fix other overflow conditions to ++ be detected. Fixes #59296. ++ ++2005-01-18 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Remove some assertions ++ which can happen. Fixes #71361. ++ ++2005-01-18 Zoltan Varga ++ ++ * exceptions-sparc.c tramp-sparc.c: Allocate code using the global code ++ manager. ++ ++2005-01-17 Zoltan Varga ++ ++ * mini.c (mono_create_jump_trampoline): Revert last change as it causes ++ appdomain-unload.exe to fail. ++ ++ * mini.c: Fix some memory leaks. ++ ++Mon Jan 17 16:16:23 CET 2005 Paolo Molaro ++ ++ * inssel.brg: handle the new size of rank, idepth, max_interface_id. ++ Fixed bug and sped up some codepaths. ++ ++2005-01-17 Zoltan Varga ++ ++ * mini.c: Fix some memory leaks. ++ ++ * exceptions.cs basic-long.cs: Add test for checked ulong->int ++ conversion. ++ ++ * inssel-long.brg: Implement long_conv_to_ovf_i4_un. Fixes #71319. ++ ++ * inssel-long.brg: Fix conv.ovf.i8 when run on an int32. Fixes ++ #71320. ++ ++ * iltests.il: Add regression test for #71320. ++ ++2005-01-16 Zoltan Varga ++ ++ * mini.c (mono_codegen): Fix installation of profiler hooks. ++ ++ * mini-sparc.c mini-amd64.c: Don't allocate stack space for dead vars. ++ ++Sun Jan 16 12:19:35 CET 2005 Paolo Molaro ++ ++ * mini.h, mini.c, cfold.c: optimize access to enum ++ readonly fields, too. Eval conditional branches if possible ++ to perform unreachable code removal in more cases. ++ ++2005-01-15 Zoltan Varga ++ ++ * tramp-amd64.c exceptions-amd64.c: Use the new global code manager. ++ ++ * mini.c (mono_global_codeman_reserve): New function to allocate code memory from a global ++ code manager. ++ ++ * tramp-x86.c mini-x86.c exceptions-x86.c: Allocate all code memory so mono works with ++ WinXP DEP. Fixes #71244. ++ ++2005-01-14 Zoltan Varga ++ ++ * inssel.brg: Allways convert CEE_CONV_OVF_I4 to a move on 64 bit platforms. Fixes #71236. ++ ++2005-01-13 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Fix OP_ATOMIC_ADD_NEW_I4. ++ ++2005-01-11 Zoltan Varga ++ ++ * mini-exceptions.c exceptions-ppc.c aot.c: Cope with MonoJitInfo ++ changes. ++ ++ * mini.h: Bump AOT version. ++ ++ * mini.h (MonoCompile): Change exvar to a hash table. ++ ++ * mini.c: Allocate a separate exvar for each handler block. ++ ++ * mini.c: Get rid of the computation of filter_lengths, its not needed. ++ ++ * mini.c inssel.brg: Change OP_THROW_OR_NULL to compare the current ++ ex var with the pending exception and only throw if the two are equal. ++ Fixes #68552. ++ ++ * exceptions.cs: Add tests for rethrow and nested catch clauses. ++ ++ * mini-x86.c: Fix warnings. ++ ++ * Makefile.am (common_sources): Move mini-exceptions.c here as it is ++ used by all the ports now. ++ ++ * aot.c: Add write-symbols and save-temps options. ++ ++2005-01-10 Zoltan Varga ++ ++ * mini-x86.c: Add support for returning structs in registers from pinvoke functions on WIN32. ++ ++Mon Jan 10 16:11:16 EST 2005 Neale Ferguson ++ ++ * mini-ops.h, inssel-s390.brg, cpu-s390.md: Support OP_ATOMIC__xxx ++ operations. ++ ++ * tramp-s390.c: Check vtable slot belongs to the domain. ++ ++ * mini-exceptions.c, exceptions-s390.c: Standardize exception handling ++ as per other platforms. ++ ++ * mini-s390.c, mini-s390.h: Enable out-of-line bblock support. ++ ++Mon Jan 10 18:53:05 CET 2005 Paolo Molaro ++ ++ * driver.c: we don't run the Main() code in a subthread anymore. ++ ++Mon Jan 10 17:54:16 CET 2005 Paolo Molaro ++ ++ * mini.c: added experimental rtc support in the statistical ++ profiler: if the user has the permission, more accurate statistics ++ are gathered. Run with: MONO_RTC=4096 mono --profiler=default:stat .... ++ The MONO_RTC value must be restricted to what the linux rtc allows: ++ power of two from 64 to 8192 Hz. ++ ++2005-01-10 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_exceptions): Fix #71121. ++ ++Mon Jan 10 05:20:49 EST 2005 Paolo Molaro ++ ++ * mini-ppc.c: better icache flush for smp. ++ ++2005-01-09 Zoltan Varga ++ ++ * mini-amd64.c (emit_move_return_value): Fix memory leak. ++ ++ * mini-x86.c (get_call_info): Add the get_call_info () code from the ++ amd64 port, not yet used. ++ ++2005-01-07 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Disable inlining of ldfld wrappers with ++ a struct type. ++ ++2005-01-07 Sebastien Pouliot ++ ++ * driver.c: Added --security option to activate the security manager. ++ Right now this will allow code generation for declarative demands and ++ is disabled when AOT is specified. ++ * mini.c: Add code generation for declarative security demands. ++ * mini.h: Add mono_use_security_manager as an extern gboolean. ++ ++2005-01-07 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Speed up compilation a bit by ++ emitting more dense assembly code. ++ ++ * mini-sparc.c mini-sparc.h exceptions-sparc.c: Enable optimized corlib ++ exception throwing stuff. ++ ++2005-01-06 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_emit_exceptions): Fix typo in previous patch. Remove ++ dead code. ++ ++ * mini-amd64.c (mono_arch_emit_exceptions): Remove duplicate epilog stuff ++ left in by mistake. ++ ++ * driver.c (EXCLUDED_FROM_ALL): Disable SSAPRE until bug #70637 is ++ fixed. ++ ++ * mini-sparc.h mini-sparc.c: Enable out-of-line bblock support. ++ ++ * tramp-*.c: Only patch vtable slots if the object is in the current ++ domain. Fixes appdomain-unload.exe. ++ ++ * mini-amd64.c mini-amd64.h: Enable out-of-line bblock support. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Port regalloc fix from ++ x86 branch. ++ ++2005-01-05 Zoltan Varga ++ ++ * mini.c (reverse_branch_op): New helper function. ++ ++ * mini.c (optimize_branches): Run the new optimization only on ++ platforms which support it. Also reverse all kinds of branches. ++ ++ * mini.h (MonoBasicBlock): Add 'out_of_line' field. ++ ++ * mini.c (mono_method_to_ir): Set 'out_of_line' for bblocks which have ++ a throw statement. ++ ++ * mini.c (optimize_branches): Reverse not-equals branches if the false ++ bblock is a throw. This happens a lot of time with argument checking in ++ corlib. ++ ++ * mini.c (mono_codegen): Add support for placing basic blocks after ++ the function epilogue. ++ ++ * mini-x86.c mini-x86.h: Add support for placing basic blocks after the ++ function epilogue. ++ ++2005-01-05 Miguel de Icaza ++ ++ * mini.c (setup_stat_profiler): Only set this up if the platform ++ supports ITIMER_PROF. ++ ++2005-01-05 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_local_regalloc): Fix a bug introduced by the ++ previous patch. ++ ++ * inssel.brg: Fix a warning. ++ ++Wed Jan 5 16:40:18 CET 2005 Paolo Molaro ++ ++ * mini.c: added support for statistical profiler ++ (run with: --profile=default:stat). ++ ++2005-01-04 Zoltan Varga ++ ++ * mini-x86.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Enable this on x86. ++ ++ * mini-x86.c cpu-pentium.md: More fixes for usage of global registers. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Port some regalloc fixes ++ related to global registers from the amd64 port. ++ ++2005-01-03 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Handle MONO_CLASSCONST. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Fix some regalloc problems ++ with global registers. ++ (mono_arch_output_basic_block): Fix SWITCH in the AOT case. ++ ++ * aot.c (emit_method_code): Fix the 'method emitted as' messages. ++ ++2004-12-31 Zoltan Varga ++ ++ * debug-mini.c (encode_value): Fix off-by-one. ++ ++ * aot.c (encode_value): Likewise. ++ ++ * mini.c (mono_method_to_ir): Disable AOT for methods containing LDPTR. ++ ++2004-12-30 Zoltan Varga ++ ++ * mini.c linear-scan.c: Add a workaround for the mcs crash when using ++ AOT. ++ ++ * aot.c (mono_aot_load_method): Free up patch info if no longer needed. ++ ++ * aot.c (emit_method_info): Increase size of temp buffer. ++ ++ * mini-x86.c cpu-pentium.md mini.c: Load fp constants differently in ++ the AOT case. ++ ++2004-12-28 Zoltan Varga ++ ++ * aot.c (emit_method_info): Fix build. ++ ++ * aot.c: Further rework of the AOT file format to reduce the size of ++ the method info data. ++ ++ * mini.h: Bump AOT file format version. ++ ++2004-12-27 Martin Baulig ++ ++ * mini.c (mini_get_method): New static method; call ++ mono_get_method_full() and mono_get_inflated_method(). ++ (mono_method_to_ir): Use mini_get_method() instead of ++ mono_get_method_full(). ++ ++2004-12-26 Patrik Torstensson ++ ++ * mini-x86.c (atomic ops): fixed bug interlocked bug #70784. ++ ++2004-12-25 Zoltan Varga ++ ++ * inssel.brg (ldind_to_load_membase): Handle CEE_LDIND_I8. ++ ++ * inssel-amd64.brg: Add some optimization rules. ++ ++2004-12-24 Ben Maurer ++ ++ * aot.c: Remove the use of MonoGHashTable and other GC stuff. The ++ standard not GC'd stuff is fine. ++ ++2004-12-24 Zoltan Varga ++ ++ * aot.c: Rework the AOT file format to get rid of most of the global ++ symbols. This reduces the size of the mscorlib.dll.so by 1MB. ++ ++ * mini.h: Bump AOT file format version. ++ ++2004-12-23 Zoltan Varga ++ ++ * mini.h: Bump AOT file format version. ++ ++ * aot.c (mono_aot_is_got_entry): New function to determine if an ++ address is inside a GOT. ++ ++ * aot.c mini-x86.c tramp-x86.c: Make all patches use the GOT. ++ ++ * cpu-pentium.md: Increase the maximum size of some instructions which ++ might involve a got access. ++ ++ * mini.c (get_method_from_ip): Another debug helper function. ++ ++ * mini.c: Call mono_get_got_var () in a couple places. Handle the case ++ when got var accesses are created during the decompose phase. ++ ++ * mini-sparc.c: Change mono_compile_aot to cfg->compile_aot. ++ ++ * mini.h mini.c mini-x86.c aot.c mini-sparc.c: Add a 'compile_corlib' ++ argument mini_compile_method and to MonoCompile, and use this to ++ determine whenever a given method is compiled for AOT. This allows the ++ other methods compiled during AOT compilation to be free of AOT stuff, ++ so the backends does not need to add special support for them by ++ creating a fake GOT etc. ++ ++ * mini-x86.c (mono_arch_patch_code): Remove fake got stuff as it is no ++ longer needed. ++ ++2004-12-21 Ben Maurer ++ ++ * mini.c (mono_method_to_ir): It turns out that some of the ++ x-appdomain wrappers are lax with types, so just ignore this for ++ all wrappers. ++ ++ * inssel.brg (OP_CHECK_ARRAY_TYPE): Optimize this by only looking ++ at the vtable->klass. If it is non-shared code we can just use the ++ vtable. ++ ++Tue Dec 21 17:43:06 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c: access MonoDomain from tls, too. ++ ++2004-12-21 Sebastien Pouliot ++ ++ * declsec.c: Removed unused variable (and related warning ;-) ++ ++2004-12-21 Ben Maurer ++ ++ * iltests.il: New test for LDELEMA on an array of ref types. ++ ++ * mini.c (CEE_LDELEMA): We need to emit OP_CHECK_ARRAY_TYPE for ++ all ldelema's on reftypes. ++ (check_call_signature): Remove the OP_CHECK_ARRAY_TYPE from here, ++ it was the wrong place to put it. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Just use ecx as the ++ register to pop to make this cleaner, at the request of Paolo. ++ ++2004-12-20 Ben Maurer ++ ++ * mini-ops.h (OP_GETHASHCODE): New op. ++ ++ * inssel.brg (OP_GETHASHCODE): Emit code for the new opcode ++ ++ * mini.c (mini_get_inst_for_method): Create the intrinsic hash ++ operation. ++ ++ For a microbenchmark, this reduces the cost of Hashtable.get_Item ++ by 25%. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Rather than ++ ++ add ebp, 4 ++ ++ Emit ++ ++ pop edx ++ ++ The first is 3 bytes while the second is 1. This saves 36 kb on ++ mscorlib, quite a big saving. When bootstraping mcs, I was able to ++ see a small boost because of icache locality. ++ ++ * cfold.c (FOLD_BINOPCOMM): Kill add foo, 0 ++ ++Mon Dec 20 12:19:40 EST 2004 Paolo Molaro ++ ++ * Makefile.am, mini-ppc.h, mini-exceptions.c, exceptions-ppc.c: ++ started code sharing with the generic code. ++ ++Mon Dec 20 11:08:06 EST 2004 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: added code for direct access to ++ tls data slots. ++ ++Mon Dec 20 10:58:28 EST 2004 Paolo Molaro ++ ++ * mini-ops.h, inssel-x86.brg, cpu-amd64.md, inssel.brg, inssel-amd64.brg, ++ mini-amd64.c, mini-x86.c, cpu-pentium.md: renamed OP_X86_TLS_GET ++ to OP_TLS_GET. ++ ++2004-12-20 Sebastien Pouliot ++ ++ * declsec.c|h: Added functions to cache the declarative stack modifiers ++ in MonoJitInfo and to create a security frame from a MonoJitInfo ++ structure. ++ * mini.c: Initialize jinfo->cas_inited to FALSE when MonoJitInfo is ++ created. Register internal calls for System.Security.SecurityFrame:: ++ _GetSecurityFrame and _GetSecurityStack. ++ * mini.h: Added definition for new icalls (in mini-exceptions.c) and ++ the definitions for the new stack walk/callback mechanism. ++ * mini-exceptions.c: Added internal call GetSecurityFrame (to get the ++ first security frame for LinkDemands and InheritanceDemands) and ++ GetSecurityStack for Demands. Both use the new mono_walk_stack code ++ from lupus. ++ * mini-x86.h, mini-amd64.h, mini-sparc.h: Architecture specific stack ++ walk initialization (lupus). ++ ++2004-12-20 Ben Maurer ++ ++ * mini.c (mono_method_to_ir): In CEE_DUP, handle the dup / stloc ++ idiom. ++ (handle_loaded_temps): Do not create a temporary variable for ++ things that we know are temps. They will never be modified. ++ (mono_spill_call): Set MONO_INST_IS_TEMP ++ (mono_emulate_opcode): ditto ++ (emit_tree): ditto ++ (mono_method_to_ir.CEE_DUP): ditto ++ ++2004-12-19 Ben Maurer ++ ++ * mini.c (type_to_eval_stack_type): Make this handle the void type ++ (mono_emit_call_args): set the call->type with type_to_eval_stack_type ++ (emit_tree): use ip_in_bb to special case some common idioms ++ Update all callers to pass in the IP. ++ (mono_method_to_ir): Make CEE_CALL* do the above as well. ++ ++ This gives us a nice 2% speedup in mcs bootstrap. ++ ++ * mini-x86.c (peephole_pass): Peephole pass to make ++ mov [foo], eax ++ push [foo] ++ ++ into ++ ++ mov [foo], eax ++ push eax ++ ++ * mini.c (ip_in_bb): new method. ++ (mono_method_to_ir): use this method rather than doing the hash ++ lookup ourselves. ++ ++ * linear-scan.c (mono_linear_scan): When expiring actives, you ++ don't need to keep around variables that expire on this ++ instruction. This makes it so that: ++ a = b + 1 ++ will turn into: ++ store (ebx add (ebx, 1)) ++ which will become ++ add ebx, 1 ++ ++2004-12-19 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Optimize the common ldobj+stloc ++ combination to avoid doing two copies. Fix up problems with previous ++ patch. ++ ++ * mini.c: Fix 64 bit warnings. ++ ++ * mini-x86.c (INST_IGNORES_CFLAGS): Add OP_STOREI4_MEMBASE_REG. ++ ++2004-12-17 Zoltan Varga ++ ++ * mini-amd64.h mini-amd64.c exceptions-amd64.c: Port exception handling ++ changes from the x86 code. ++ ++ * mini.h: Add prototype for mono_arch_get_throw_corlib_exception (). ++ ++2004-12-16 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_epilog): Optimize the corlib exception ++ throwing code to reduce its size, unify the AOT and non-aot code and ++ get rid of relocations in the AOT case. ++ ++ * mini-x86.h mini.c exceptions-x86.c ++ (mono_arch_get_throw_corlib_exception): New arch specific function to ++ raise corlib exceptions which doesn't require relocations in the ++ caller. ++ ++ * aot.c (emit_method): Handle PATCH_INFO_NONE as well. ++ ++2004-12-15 Zoltan Varga ++ ++ * mini.c (mono_emit_method_call): Only allocate the got var when it is ++ needed. ++ ++ * mini-x86.c (mono_arch_patch_code): Add missing PATCH_INFO_METHOD_REL ++ in the AOT case. ++ ++2004-12-14 Patrik Torstensson ++ ++ * mini-x86.c, cpu-pentium.md, inssel-x86.brg: Fixed bug ++ with add function when used from Inc/dec atomic ++ functions. Re-enabled optimization on x86. ++ * mini-ops.h: renamed atomic_add functions to ++ allow _add to match the Interlocked::Add and ++ _add_next to match Interlocked::Inc/Dec. ++ ++2004-12-15 Massimiliano Mantione ++ ++ * mini.c: Fixed a subtle bug in mono_method_to_ir, about the ++ linking of BBs to the end BB, and enabled SSAPRE also with ++ consprop and copyprop (which was prevented by that bug). ++ ++2004-12-14 Patrik Torstensson ++ ++ * mini-x86.c: disabling the Interlocked optimizing code. ++ ++2004-12-14 Zoltan Varga ++ ++ * aot.c (load_aot_module): Move reading of got_addr after the AOT ++ file version check. ++ ++2004-12-14 Patrik Torstensson ++ ++ * mini-x86.c, inssel-x86.brg, cpu-pentium.md: removed _imm ++ interlocked optimization due lack of support on x86, rewrote ++ exchange to take into account that base may be in eax. ++ ++ xsp works again; activated Interlocked optimizing code. ++ ++2004-12-14 Zoltan Varga ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file version. ++ ++2004-12-13 Zoltan Varga ++ ++ * mini-ops.h: Add new opcodes. ++ ++ * mini.h: Add new patch types. Add got_var to MonoCompile. ++ ++ * mini.h mini-x86.c mini-amd64.c aot.c: Rename ++ mono_arch_get_aot_patch_offset () to mono_arch_get_patch_offset () and ++ make it work with all kinds of patchable code. ++ ++ * inssel.brg inssel-x86.brg: Add new rules dealing with computing the ++ address of the GOT, and referencing entries in the GOT. ++ ++ * mini.c: Add code to load the GOT address if needed by an opcode. ++ ++ * aot.c mini-x86.h mini-x86.c cpu-pentium.md: Add support for position ++ independent AOT code on the x86 using an elf-style Global Offset Table. ++ ++2004-12-14 Raja R Harinath ++ ++ * Makefile.am (RUNTIME): Set MONO_SHARED_DIR. ++ ++2004-12-13 Gonzalo Paniagua Javier ++ ++ * mini-x86.c: disabling the Interlocked optimizing code. It segfaults ++ when running xsp. ++ ++2004-12-13 Patrik Torstensson ++ ++ * mini-x86.c,mini-ops.h,inssel-x86.brg,cpu-pentium.md: Implementation ++ of Interlocked:Increment/Decrement/Add as inline ops. ++ (mini-x86.c (mono_arch_get_inst_for_method and mono_arch_output_basic_block)) ++ ++2004-12-12 Geoff Norton ++ ++ * exceptions-ppc.c: Reorder code so gcc3.4 can compile it ++ * mini-ppc.c: Unify mono_arch_patch_code with changes in r37636. ++ ++2004-12-12 Duncan Mak ++ ++ * mini-ppc.c (mono_arch_patch_code): Hopefully made this build ++ again. `patch_info->table_size' is no longer valid after Zoltan's ++ commit #37636. ++ ++2004-12-12 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): Only call mono_debug_init_method() ++ if we are the "real" method, ie. not an inlined method inside it. ++ ++2004-12-11 Ben Maurer ++ ++ * mini.c (CEE_LDSFLD): Make sure that the vtable has been init'd ++ before we look in the special fields table. This fixes ++ ../tests/thread-static-init.cs. ++ ++2004-12-11 Gonzalo Paniagua Javier ++ ++ * mini.c: return immediately after setting OP_ARRAY_RANK or CEE_LDLEN ++ for Array get_Rank and get_Length. Fixes bug #70465. ++ ++2004-12-11 Zoltan Varga ++ ++ * mini.h mini.c aot.c: Put the bblock table for a SWITCH patch into a ++ separate structure to reduce the size of MonoJumpInfo. ++ ++Fri Dec 10 18:09:22 CET 2004 Paolo Molaro ++ ++ * mini.c, mini.h, aot.c, driver.c: allow disabling the aot code. ++ ++2004-12-10 Patrik Torstensson ++ ++ * mini.c (mini_get_inst_for_method): Changed to allow ports ++ to return a MonoInst instead of opcode ++ (renamed mini_get_opcode_for_method to better reflect the new functionality) ++ ++ * mini-[x86|s390|s390x|ppc|sparc].c (mono_arch_get_inst_for_method): ++ Allow ports to return a created MonoInst instead of op-code, will enable ++ new optimizations. ++ (renamed mini_get_opcode_for_method to better reflected the functionality) ++ ++2004-12-09 Zoltan Varga ++ ++ * mini.c (NEW_AOTCONST): Share some code between the different NEW_AOTCONST macros. ++ ++2004-12-08 Zoltan Varga ++ ++ * mini.c jit-icalls.c: Pass generic_context to mono_ldtoken_wrapper. ++ Fixes #69985. ++ ++2004-12-08 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use `fsig->signature' ++ if we're a CEE_CONSTRAINED call. Fixes gen-118.cs. ++ ++2004-12-08 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Implement OP_FCONV_TO_ ++ correctly. ++ ++ * exceptions.cs: Disable some tests which depend on properties of x86 fp ++ arithmetic. ++ ++2004-12-08 Raja R Harinath ++ ++ * Makefile.am (CLEANFILES): Add *.exe, *.dll. ++ ++2004-12-07 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Fix LOCALLOC_IMM ++ bug introduced by the previous patch. ++ ++Tue Dec 7 11:44:39 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c, objectc.cs: handle large structs passed by value ++ (fixes bug #69972). ++ ++Tue Dec 7 10:43:31 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c: OP_ARGLIST implementation from ++ Geoff Norton . ++ ++Tue Dec 7 10:14:25 CET 2004 Paolo Molaro ++ ++ * inssel-x86.brg, inssel-ppc.brg: fix reference to register ++ in stmt: OP_OUTARG_VT (reg) (should fix bug #69785). ++ ++Tue Dec 7 10:06:39 CET 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: avoid calling ppc_patch in exception trampolines. ++ ++2004-12-01 Neale Ferguson ++ ++ * inssel-s390.brgi, mini-ops.h, mini-s390.c : Add stubs for support of tls offset ++ support. ++ ++2004-12-06 Zoltan Varga ++ ++ * mini-sparc.c: Zero out localled-ed memory. ++ ++ * iltests.il: Add tests for zeroing out localloc-ed memory. ++ ++2004-12-04 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): In CEE_CALLVIRT, use the new ++ mono_method_get_signature_full(). ++ ++2004-12-03 Massimiliano Mantione ++ ++ * mini.c: Added removal of critical edges (prerequisite for SSAPRE), ++ and some utility functions (always for SSAPRE), integrated SSAPRE. ++ * mini.h: Likewise. ++ * driver.c: Added ssapre option. ++ * ssa.c: Small fix on OP_ARG handling. ++ * ssapre.c, ssapre.h: Added files containing SSAPRE implementation. ++ * Makefile.am: Likewise. ++ ++2004-12-02 Zoltan Varga ++ ++ * tramp-x86.c (mono_arch_create_jit_trampoline): Remove code which is ++ now in the xp code. ++ ++ * mini.c (mini_init): Register mono_thread_force_interruption_checkpoint ++ icall. ++ ++2004-12-01 Neale Ferguson ++ ++ * inssel-s390.brg : Add OP_OUTARG_VT (OP_REFANYTYPE (reg)) rule. ++ ++ * cpu-s390.md : Increase instruction length of oparglist. ++ ++ * mini-s390.c : Implement vararg and TYPEDEBYREF support. ++ ++2004-11-30 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): In CEE_CALLVIRT, added support for ++ virtual generic methods. We call a special helper_compile_generic_method() ++ icall to retrieve the method from the vtable, inflate and compile ++ it and then do a CEE_CALLI. Thanks a lot to Paolo for this idea. ++ ++ * jit-icalls.c (helper_compile_generic_method): New JIT icall. ++ ++2004-11-30 Zoltan Varga ++ ++ * mini-sparc.c: Fix up vararg corner cases. Fixes #70019. ++ ++2004-11-29 Zoltan Varga ++ ++ * cpu-sparc.md mini-sparc.c (long_conv_to_ovf_i): Fill missing delay slot. ++ Fixes #69929. ++ ++2004-11-27 Ben Maurer ++ ++ * inssel.brg (CEE_SWITCH): The AOT stuff Zoltan added is only for ++ platforms with PIC aot. ++ ++2004-11-28 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): In CEE_DUP, added handle_stobj(). ++ Fixes gen-112.cs. ++ ++2004-11-28 Martin Baulig ++ ++ * mini-x86.c (mono_arch_call_opcode): Use the original type, not ++ the result of mono_type_get_underlying_type() to check whether ++ we're byref. ++ ++2004-11-26 Martin Baulig ++ ++ * mini.c ++ (mono_method_to_ir): Use `!method->signature->has_type_parameters' ++ in the g_assert(). ++ ++2004-11-26 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_this_vret_args): Handle this and vret ++ the same way as the other arguments so they won't get clobbered. ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Avoid doing virtual ++ calls through R11 since it is clobbered by the trampoline code. ++ ++2004-11-26 Raja R Harinath ++ ++ * Makefile.am: Consistently use $(RUNTIME) rather than ./mono to ++ pick up in-tree mscorlib.dll. ++ ++2004-11-25 Zoltan Varga ++ ++ * aot.c: Rename MonoAOTModule->cleanup to out_of_date. ++ ++ * mini-amd64.c aot.c: Switch to PIC relative AOT code. References to ++ runtime data/code are now stored in a table similar to the GOT in ELF. ++ This allows the code itself to be position independent. ++ ++ * aot.c: Fix loading of referenced assemblies after the lazy assembly ++ loading changes. ++ ++ * aot.c: Attach ELF type (object/function) directives to all global ++ symbols. ++ ++ * tramp-amd64.c (amd64_magic_trampoline): Patch RIP relative calls too. ++ ++ * inssel.brg (SWITCH): Emit an AOT_CONST in the aot case. ++ ++ * mini-amd64.h: Turn on PIC AOT code. ++ ++ * mini.h (mono_arch_get_aot_patch_offset): New arch specific function ++ returning the offset within an OP_AOTCONST instruction where the GOT ++ offset needs to be added. ++ ++ * mini.h: Bump AOT file format version. ++ ++2004-11-25 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): In CEE_CALL, don't allow calling any ++ uninflated generic methods. ++ ++2004-11-25 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): Don't allow any uninflated generic methods. ++ ++2004-11-24 Martin Baulig ++ ++ * minit.c (type_to_eval_stack_type): Set `inst->klass' to the ++ original klass (this only applies for generic instances). ++ ++2004-11-24 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): Use `STACK_OBJ' instead of ++ `ldind_type [CEE_LDIND_REF]' (which would be beyond the end of ++ that array). ++ ++2004-11-24 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Disable inlining for methods containing ++ localloc. Fixes #69678. ++ ++ * iltests.il (test_0_localloc_inline): Add regression test for #69678. ++ ++2004-11-23 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Set %al to the number of ++ used SSE registers on pinvoke calls. Fixes #69774. ++ ++2004-11-23 Geoff Norton ++ ++ * inssel-ppc.brg, mini-ppc.c: Use mono_class_from_mono_type instead of ++ vt->inst_vtype->data.klass. This fixes generic structs and bug #69766 ++ ++2004-11-23 Raja R Harinath ++ ++ * Makefile.am (MCS,ILASM): Don't refer to runtime/ directory. ++ Refer directly to the mcs/ tree. ++ ++2004-11-19 Neale Ferguson ++ ++ * mini-s390.c, tramp-s390.c, mini-s390.h: Add LMF processing for trampolines. ++ Check if a trampoline for a synchronized method is required. ++ ++Fri Nov 19 17:34:21 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: set to zero the memory allocated ++ with localloc if needed. Throe arithmetric exception in ++ div an rem if needed. Implement ovf checks in OP_LCONV_TO_OVF_I. ++ Adapted from a patch by Geoff Norton . ++ ++2004-11-19 Geoff Norton ++ ++ * mini-ppc.c: Call mono_type_get_underlying_type to unwrap generic ++ types before switching on type. Fixes #69622. ++ ++2004-11-19 Raja R Harinath ++ ++ * Makefile.am (check-local): New. Integrate into 'make check'. ++ (MCS,RUNTIME): Define using in-tree mono and mcs. ++ (ILASM): New. ++ (%.exe): Use $(ILASM). ++ ++Fri Nov 19 14:54:07 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c: adjust initial prolog size (bug #69691). ++ ++2004-11-18 Zoltan Varga ++ ++ * cpu-pentium.md (localloc): Increase max instruction len. Fixes ++ #69664. ++ ++2004-11-17 Raja R Harinath ++ ++ * Makefile.am (clean-local): Rename from 'clean'. ++ ++2004-11-15 Nelae Ferguson ++ ++ * mini.c, mini-x86.c, mini-amd64.c, exceptions-s390.c: Add siginfo_t parameter ++ to mono_arch_is_int_overflow. ++ * exceptions-s390.c: Add mono_arch_is_int_overflow routine to discern between ++ SIGFPE events. ++ ++2004-11-15 Sebastien Pouliot ++ ++ * declsec.c|h: New files to support declarative security attributes. ++ Added function to check if a method has (applicable) security. ++ * mini.c|h: Add check for declarative security attributes in ++ mono_method_check_inlining. ++ * Makefile.am: Added declsec.c and declsec.h to the build. ++ ++Mon Nov 15 11:53:46 CET 2004 Paolo Molaro ++ ++ * mini.c, mini.h: update to keep dynamic code info per-domain. ++ ++2004-11-12 Zoltan Varga ++ ++ * mini.c mini-*.h: Get rid of MONO_ARCH_HAVE_RETHROW since all architectures support it now. ++ (mini_init): Get rid of it from here too. ++ ++Thu Nov 11 20:17:17 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c, mini-ppc,h, cpu-g5.md, exceptions-ppc.c: ++ implemented OP_RETHROW (patch by Geoff Norton ++ ). ++ ++2004-11-10 Geoff Norton ++ ++ * tramp-ppc.c (ppc_magic_trampoline): Don't trampoline methods ++ between appdomains. Fixes appdomain-unload on PPC. ++ ++2004-10-26 Lluis Sanchez Gual ++ ++ * exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c, ++ mini-exceptions.c: handle the new wrapper types. ++ * mini.c: The CEE_ISINST and CEE_CASTCLASS opcodes now take the ++ token value as a MonoClass* when compiling a wrapper. ++ mono_jit_create_remoting_trampoline now takes an additional ++ MonoRemotingTarget parameter. ++ ++2004-11-10 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): Use `generic_container->context' ++ rather than creating a new one. ++ ++2004-11-09 Neale Ferguson ++ ++ * exceptions-s390.c, mini-s390, cpu-s390.md: Add support for OP_RETHROW. ++ ++ * inssel-390.md, mini-s390.c: Correct register allocation for globals. ++ ++2004-11-09 Zoltan Varga ++ ++ * aot.c (mono_aot_init): Add MONO_AOT_CACHE env variable to turn on ++ the experimental aot cache stuff. ++ ++Tue Nov 9 17:30:20 CET 2004 Paolo Molaro ++ ++ * aot.c, mini.c, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c, ++ mini-exceptions.c: update to exception clause structure changes. ++ ++2004-11-08 Zoltan Varga ++ ++ * exceptions-x86.c (throw_exception): Fix warnings. ++ ++ * mini-x86.h mini-x86.c cpu-pentium.md exceptions-x86.c: Add support ++ for OP_RETHROW. ++ ++2004-11-08 Zoltan Varga ++ ++ * exceptions-sparc.c (get_throw_exception): Really fix this. ++ ++2004-11-07 Ben Maurer ++ ++ * tramp-*.c: we no longer support icalls without wrappers, so ++ a bit of code can be removed here ++ ++2004-11-07 Zoltan Varga ++ ++ * exceptions-sparc.c (get_throw_exception): Fix more bugs in previous ++ patch. ++ ++ * cpu-sparc.md: Add op_rethrow. ++ ++ * exceptions-sparc.c (get_throw_exception): Fix bug in previous patch. ++ ++ * mini-sparc.h mini-sparc.c exceptions-sparc.c: Add support for OP_RETHROW. ++ ++ * mini.h: Add mono_arch_get_rethrow_exception () arch specific function. ++ * mini-ops.h: Add OP_RETHROW. ++ ++ * mini.c inssel.brg: Distinguish between THROW and RETHROW. ++ ++ * cpu-amd64.c mini-amd64.c exceptions-amd64.c: Add support for OP_RETHROW. ++ ++2004-11-05 Geoff Norton ++ ++ * helpers.c: Change otool arguments from -V -v -t to -v -t on Darwin ++ Makes the output much easier to read ++ ++2004-11-05 Ben Maurer ++ ++ * ssa.c: allocate MonoMethodVar.uses from the mempool. First, this ++ prevents another huge leak when compiling with ssa. Secondly, the ++ performance of doing this rather than freeing the lists is much ++ better. GList does a lock every time you allocate a list link, ++ so that it can use a memory pool. So, it is better to just use ++ a memory pool of our own. ++ ++ * ssa.c, linear-scan.c: replace g_list_remove_link with ++ g_list_delete. The remove one does not free the GList, so we were ++ leaking memory. On -O=all --compile-all with corlib, this cut down ++ 3 MB of allocations. ++ ++2004-11-05 Zoltan Varga ++ ++ * tramp-sparc.c (mono_arch_create_jit_trampoline): Fix sparc build. ++ ++ * tramp-amd64.c (mono_arch_create_jit_trampoline): Fix amd64 build. ++ ++ * mini.h mini.c tramp-*.c: Moved xp parts of JIT trampoline creation ++ into a new function mono_create_jit_trampoline (). ++ ++2004-11-02 Zoltan Varga ++ ++ * trace.c (get_spec): Allow tracing of classes without a namespace. ++ ++2004-11-02 Sebastien Pouliot ++ ++ * mini.c: Fix pointer overwrite in mini_method_compile. ++ ++2004-11-2 Geoff Norton ++ ++ * inssel-ppc.brg (OP_OUTARG_VT (CEE_LDOBJ (base))): ++ The darwin ABI needs some special handling for 1 and 2 byte structs ++ Lets use lbz/lhz instead of lwz everywhere. ++ * mini-ppc.c (calculate_sizes): The Darwin ABI needs from special handling ++ for 1 and 2 byte structs and struct which are size >= 3 || size % 4 != 0. ++ Use stb/sth for the former, and put the latter always on stack instead of in ++ argument registers. ++ ++2004-10-30 Zoltan Varga ++ ++ * trace.c (is_filenamechar): Add '_'. ++ ++2004-10-29 Neale Ferguson ++ ++ * mini-s390.c: Fix prolog length to allow for large trace requirements. ++ ++ * exceptions-s390.c: Remove dwarf unwinding stuff that was unused. ++ ++2004-10-29 Zoltan Varga ++ ++ * Makefile.am (libgc_libs): Do some automake magic so libmono/mono ++ depends on libmonogc. Fixes #68805. ++ ++2004-10-26 Miguel de Icaza ++ ++ * mini.c (mono_jit_free_method): Provide extra information for ++ this error. Currently this leaks, but will be turned into a ++ developer option in the future. ++ ++2004-10-26 Zoltan Varga ++ ++ * driver.c (mono_main): Applied patch from Willibald Krenn . Make --graph work for icalls and pinvoke methods. ++ ++2004-10-25 Zoltan Varga ++ ++ * aot.c (mono_aot_load_method): Align PATCH_INFO_R8 on an 8 byte ++ boundary. Fixes reading of PATCH_INFO_R4 and R8. ++ (mono_aot_load_method): Do not allocate MonoAotMethod in the GC heap. ++ ++2004-10-24 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_patch_code): Fix patching of class init ++ trampolines for AOT code. ++ ++2004-10-22 ++ ++ * aot.c (mono_compile_assembly): Disable AOT for methods containing calls to methods of ++ constructed types. Fixes #68136. ++ ++2004-10-21 Martin Baulig ++ ++ * exceptions-x86.c (throw_exception): Call mono_debugger_throw_exception(); ++ if it returns true, unwind the stack to the call instruction. ++ ++2004-10-21 ++ ++ * aot.c: Reorganize the AOT file format to avoid relocations. Fix warnings. ++ ++ * mini.h: Bump AOT version number. ++ ++ * objects.cs: Add another test for unbox trampolines. ++ ++ * tramp-amd64.c (amd64_magic_trampoline): Disable patching of trampolines for ++ valuetype methods. ++ ++2004-10-20 ++ ++ * driver.c: Add SHARED to the set of optimizations tested. ++ ++ * tramp-amd64.c (amd64_magic_trampoline): Patch trampoline code as well. ++ ++ * mini.c (mono_method_to_ir): Mark the domainvar as volatile when it is implicitly ++ used by CEE_NEWARR. ++ ++ * ssa.c (mono_ssa_deadce): Do not optimize away accesses to volatile variables. ++ ++2004-10-20 Martin Baulig ++ ++ * mini-exceptions.c (mono_handle_exception): Call ++ mono_debugger_handle_exception() to tell the debugger about ++ catch/finally clauses. ++ ++2004-10-18 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Pop arguments of the stack. ++ ++ * mini-amd64.c (mono_amd64_get_vcall_slot_addr): Handle extended registers. Fixes ++ #68447. ++ ++2004-10-15 Geoff Norton ++ ++ * mini-ppc.c (calculate_sizes): Marshal valuetypes for pinvoke ++ methods as their native size, fixed bug #57543, #57545. ++ * mini-ppc.c (mono_arch_output_basic_block): Use mulli for imm16 types ++ This saves a temporary register and mullw call down into 1 (minor perf ++ increase for cases like sum = sum * 5; This use to translate into: ++ li r11,5 ++ mullw r28,r28,r11 ++ It now translates to ++ mulli r28,r28,5 ++ ++2004-10-15 Zoltan Varga ++ ++ * trace.c (mono_trace_eval): Use mono_method_desc_full_match. Fixes ++ #68388. ++ ++2004-10-11 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): If we're a generic method, get the ++ MonoGenericContainer from our MonoMethodNormal and create a ++ MonoGenericContext from it. ++ ++2004-10-08 Zoltan Varga ++ ++ * inssel-long32.brg (OP_LCONV_TO_OVF_I2): Fix CONV_I1 -> CONV_I2. ++ ++ * basic-long.cs: Add test for checked i8->i2 cast. ++ ++Wed Oct 6 12:40:28 CEST 2004 Paolo Molaro ++ ++ * inssel-ppc.brg: added a couple of speedup rules. ++ ++2004-10-05 Zoltan Varga ++ ++ * Makefile.am (genmdesc_LDADD): Don't link this against libmetadata ++ to speed up rebuilds. ++ ++2004-10-04 Neale Ferguson ++ ++ * mini-s390.c: Minor fix to OP_OR_IMM. ++ ++2004-10-03 Zoltan Varga ++ ++ * tramp-sparc.c (sparc_magic_trampoline): Handle appdomain stuff ++ better. Fixes appdomain-unload.exe on sparc. ++ ++2004-10-02 Massimiliano Mantione ++ ++ * ssa.c: Fixed casts to unsigned where the value was of 64 bits in ++ simulate_long_compare, patch by will@exomi.com (Ville-Pertti Keinonen), ++ see bug 67324. ++ ++2004-10-02 Zoltan Varga ++ ++ * jit-icalls.c: Handle a nonexisting trunc function more correctly. ++ ++2004-09-30 Lluis Sanchez Gual ++ ++ * mini.c: Always generate a field read/write wrapper for members ++ of the class MarshalByRefObject since the actual instance could ++ be a CBO. ++ ++2004-09-28 Lluis Sanchez Gual ++ ++ * mini.c: Use mono_thread_exit() to stop threads, instead of ExitThread. ++ ++2004-09-28 Zoltan Varga ++ ++ * driver.c mini.h trace.c: Move the setting of the main assembly into ++ a separate function called mono_trace_set_assembly () and call it after ++ actually loading the main assembly. Fixes #66872. ++ ++2004-09-25 Zoltan Varga ++ ++ * mini-amd64.h mini-amd64.c tramp-amd64.c: Allocate trampoline memory ++ using the code manager. ++ ++2004-09-24 Zoltan Varga ++ ++ * tramp-amd64.c mini-amd64.h: Add support for MONO_ARCH_HAVE_INVALIDATE_METHOD. ++ ++2004-09-23 Zoltan Varga ++ ++ * cpu-amd64.md: Fix bug in previous patch. ++ ++ * cpu-amd64.md: Fix instruction lengths of membase opcodes. Fixes ++ #66650. ++ ++Wed Sep 22 19:03:20 CEST 2004 Paolo Molaro ++ ++ * mini.h, exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c, ++ mini-exceptions.c: updates for changed stack walk interface. ++ ++2004-09-21 Neale Ferguson ++ ++ * mini-s390.c, cpu-s390.md: Minor changes to OP_ARGLIST handling ++ ++2004-09-17 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix LDSTR in dynamic methods. Fixes #66132. ++ ++2004-09-13 Zoltan Varga ++ ++ * driver.c (mini_regression_list): Do not call mono_assembly_close ++ since assemblies can't be unloaded. ++ ++2004-09-11 Zoltan Varga ++ ++ * cpu-amd64.md: Fix more instruction lengths. ++ ++ * cpu-amd64.md: Fix lengths of some instructions. ++ ++2004-09-11 Ben Maurer ++ ++ * inssel.brg: Make the array ldelema check aot friendly. ++ ++2004-09-11 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_get_argument_info): Fix stack_unwind test. ++ ++ * cpu-amd64.md inssel-long.brg inssel-amd64.brg: Small optimizations. ++ ++2004-09-10 Zoltan Varga ++ ++ * mini-x86.c: Fix build. ++ ++ * mini-sparc.c mini-x86.c mini-amd64.c: Use the new ++ mono_type_get_underlying_type () helper function to simplify code. ++ ++2004-09-09 Martin Baulig ++ ++ * mini-amd64.c: Don't access `type->data.klass' directly, call ++ mono_class_from_mono_type() instead since the type may be a ++ generic instance. ++ ++2004-09-09 Martin Baulig ++ ++ * mini-amd64.c (get_call_info): Fix support for generic instances. ++ (add_valuetype): Use mono_class_from_mono_type() to get the class ++ since we can be a generic instance. ++ ++Thu Sep 9 01:43:53 PDT 2004 Paolo Molaro ++ ++ * mini-ppc.c, mini.h, regalloc.c, regalloc.h: powerpc speedups. ++ ++2004-09-07 Ben Maurer ++ ++ * liveness.c: reset spill costs on each scan: bug 62107 ++ ++2004-09-07 Bernie Solomon ++ ++ * exceptions-sparc.c (mono_arch_find_jit_info): remove ++ unnecessary line that doesn't compile ++ ++2004-09-07 Zoltan Varga ++ ++ * mini.c mini.h mini-x86.h tramp-x86.c: Instead of freeing delegate ++ trampolines, make them call an error function so people can fix their ++ code. ++ ++2004-09-06 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): When initializing locals, handle a ++ generic instances like a valuetype if it's a valuetype and like a ++ class if it's a class. ++ ++2004-09-06 Zoltan Varga ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Pop arguments off the ++ stack. Fixes #64674. ++ ++ * exceptions.cs: Add test for unwinding of call arguments. ++ ++Mon Sep 6 05:50:02 PDT 2004 Paolo Molaro ++ ++ * mini-*.c, mini-ops.h, inssel-long32.brg: introduced ++ OP_ADDCC_IMM and OP_SUBCC_IMM (add/sub immediate that will ++ set the carry/borrow flag). The sparc and s390 implementations ++ can now use optimized versions (and simplify the code). ppc bugfixes. ++ ++2004-09-06 Zoltan Varga ++ ++ * exceptions-ppc.c (mono_arch_find_jit_info): Fix memory leak. ++ ++2004-09-05 Zoltan Varga ++ ++ * inssel-amd64.brg: Remove leftover 32 bit rule. ++ ++ * mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support. ++ ++2004-09-04 Zoltan Varga ++ ++ * mini-exceptions.c (mono_find_jit_info): Refactor common code from ++ mono_arch_find_jit_info functions into a new function. Fix a memory ++ leak. ++ ++ * exceptions-x86.c exceptions-amd64.c exceptions-sparc.c: Remove ++ refactored code. ++ ++2004-09-02 Zoltan Varga ++ ++ * exceptions.cs inssel-long32.brg: Handle the OP_LCONV_TO_OVF_I2 case ++ as well. ++ ++ * exceptions.cs: Add array size tests. ++ ++ * mini.c: Allocate a separate icall wrapper for each arity of ++ mono_array_new_va. Fixes #59509. ++ ++ * exceptions.cs: Add testcase for 64578. ++ ++ * inssel-long32.brg: Fix OP_LCONV_TO_OVF_I1 rule. Fixes #64578. ++ ++ * trace.c (is_filenamechar): Allow 0..9 in strings. Fixes #65094. ++ ++2004-09-02 Martin Baulig ++ ++ * mini.c (mono_method_to_ir): When initializing the locals, call ++ handle_initobj() on the generic instance itself, not its ++ underlying type. ++ ++2004-09-02 Zoltan Varga ++ ++ * mini.h (MonoJitDynamicMethodInfo): New structure, extension of ++ MonoJitInfo for dynamic methods. ++ ++ * mini.c: Rename trampoline_hash_mutex to jit_mutex. ++ ++ * mini.c: Add support for freeing JIT data for dynamic methods. ++ ++2004-09-01 Martin Baulig ++ ++ * mini-x86.c (is_regsize_var): Added support for generic ++ instances. ++ (mono_arch_emit_prolog): Make this compile again, use ++ `x86_push_imm_template (code)'. ++ ++2004-08-30 Ben Maurer ++ ++ * mini-x86.c: make all push_imm instructions that get ++ patched always emit the long form ++ ++2004-08-30 Zoltan Varga ++ ++ * mini.c (mono_create_jump_trampoline): Store the jump trampolines ++ in a per-domain hash. ++ ++ * mini-amd64.c (merge_argument_class_from_type): Handle generic ++ types. ++ ++2004-08-29 Zoltan Varga ++ ++ * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: Ongoing SSE ++ work. ++ ++ * mini-amd64.c cpu-amd64.md inssel-amd64.brg mini-amd64.h: More SSE ++ work. ++ ++ * mini-amd64.c cpu-amd64.md: Implement checked int<->uint casts. ++ Beginnings of SSE2 support. ++ ++ * exceptions.cs: Add more tests for checked int<->uint casts. ++ ++2004-08-28 Martin Baulig ++ ++ * mini-x86.c (mono_arch_instrument_epilog): Added support for ++ generic instances. ++ ++ * mini.c ++ (mono_type_to_ldind, mono_type_to_stind, type_to_eval_stack_type): ++ Handle generic instances recursively. ++ ++2004-08-27 Ben Maurer ++ ++ * iltests.il: test for conv.u8 on a constant ++ ++2004-08-27 Ben Maurer ++ ++ * inssel-long32.brg: c&p rules for LCONV_x4 (membase) and ++ LCONV_x4 (shrun_32 (membase)). ++ ++2004-08-27 Ben Maurer ++ ++ * inssel-x86.brg: c&p rules for push/setret of long ++ ++2004-08-26 Ben Maurer ++ ++ * inssel-x86.brg: c&p rules for compare (base, regvar) and ++ compare (regvar, base) ++ ++ * inssel-x86.brg: more burg love ++ ++ * inssel.brg: more cleanup ++ ++ * inssel-x86.brg, inssel-long32.brg: burg cleanup. ++ ++2004-08-26 Ben Maurer ++ ++ * basic-long.cs, basic-calls.cs: new tests for optimization. ++ ++2004-08-26 Zoltan Varga ++ ++ * mini-amd64.c (read_tls_offset_from_method): Fix typo in previous ++ patch. ++ ++2004-08-25 Zoltan Varga ++ ++ * mini-amd64.c (read_tls_offset_from_method): Add another case. ++ ++2004-08-25 Bernie Solomon ++ ++ * inssel.brg (mini_emit_memcpy): use ++ NO_UNALIGNED_ACCESS to disable memcpy optimization ++ ++2004-08-25 Zoltan Varga ++ ++ * mini-amd64.c: Handle generic types in various places. ++ ++ * mini.c (mono_method_to_ir): Handle generic types in init locals. ++ ++2004-08-24 Zoltan Varga ++ ++ * mini.c (handle_box): Fix warning. ++ ++ * mini-amd64.c (mono_arch_local_regalloc): Fix regalloc problem. ++ ++ * mini-amd64.h: Enable the emit_state optimization. ++ ++ * mini-ops.h cpu-amd64.md: Add new amd64_test_null opcode. ++ ++ * mini-amd64.c: Add some new 64 bit peephole opts. ++ ++ * inssel.brg (mini_emit_memcpy): Optimize for 64 bit architectures. ++ ++ * cpu-amd64.md: sreg1 of div instructions must be %rax. ++ ++ * mini-amd64.c: Register allocator fixes. ++ ++ * mini.c: Add an optimization to emit_state to avoid allocation of new ++ registers on some platforms. ++ ++2004-08-23 Zoltan Varga ++ ++ * inssel-x86.brg inssel-amd64: Add yet another missing tree->dreg assignment. ++ ++ * mini-x86.c (mono_arch_local_regalloc): Fix bug in long register ++ allocation. Fixes #63085. ++ ++ * basic-long.cs: Add new regression test. ++ ++ * mini-amd64.c: Register allocator improvements. ++ ++2004-08-21 Zoltan Varga ++ ++ * mini-amd64.c (read_tls_offset_from_method): Add another code ++ sequence. ++ ++ * tramp-amd64.c (amd64_class_init_trampoline): Use a more efficient ++ instruction sequence for nullifying class init trampolines. ++ ++ * objects.cs: Add new regalloc test. ++ ++ * mini-amd64.c inssel-amd64.brg: Optimize parameter passing. ++ ++2004-08-20 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_call_opcode): Refactor this a little. ++ ++ * mini-amd64.c (mono_arch_regalloc_cost): Adjust regalloc costs for ++ arguments. ++ ++ * driver.c: Fix profiling after TLS changes. ++ ++ * driver.c (mono_main): Set mono_stats.enabled if needed. ++ ++ * mini.c (handle_alloc): New helper function used by CEE_NEWOBJ and ++ CEE_BOX. ++ ++2004-08-20 Ben Maurer ++ ++ * mini-x86.c: use a 1 op rather than a 2 op tls access ++ instruction -> faster. ++ ++2004-08-20 Zoltan Varga ++ ++ * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from ++ x86 backend. ++ ++2004-08-19 Bernie Solomon ++ ++ * exceptions-sparc.c (throw_exception): fix typo ++ ++2004-08-19 Ben Maurer ++ ++ * mini-x86.c, cpu-pentium.md, inssel-x86.brg: ++ set tree->dreg correctly with tls. Allow any ++ register to be used. ++ ++ * mini-x86.c (read_tls_offset_from_method): add new code ++ generation pattern seen with GCC. ++ ++ ++Thu Aug 19 17:26:55 CEST 2004 Paolo Molaro ++ ++ * mini-exceptions.c, exceptions-x86.c, exceptions-amd64.c, ++ exceptions-ppc.c, exceptions-s390.c, exceptions-s390x.c, ++ exceptions-sparc.c: fix some performance issues in exception ++ handling and setting of the stack trace for exceptions that were ++ already thrown. ++ ++2004-08-18 Zoltan Varga ++ ++ * mini-amd64.c inssel-amd64.brg cpu-amd64.md: Merge changes from ++ x86 backend. ++ ++ * mini-amd64.c (mono_arch_is_int_overflow): Handle all possible ++ registers. ++ ++2004-08-18 Ben Maurer ++ ++ This patch inlines tls access, when possible. ++ ++ * mini.h: new arch functions for TLS intrinsics. ++ All platforms updated with a stub. ++ ++ * mini.c: use the new intrinsics ++ ++ * mini-x86.c, cpu-pentium.md, inssel-x86.brg, mini-ops.h: ++ arch specific intrinsic for tls variables ++ ++2004-08-18 Zoltan Varga ++ ++ * Makefile.am (libmono_la_LDFLAGS): Enable creating of libmono dll ++ under windows. ++ ++2004-08-17 Ben Maurer ++ ++ * mini.c: thread local allocation ++ ++2004-08-16 Zoltan Varga ++ ++ * mini-amd64.h (MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS): Enable. ++ ++ * Makefile.am: Link against the static version of libmonogc. ++ ++ * Makefile.am: Link the static versions of the convenience libraries ++ into the mono executable. ++ ++ * mini-x86.h mini-x86.c: Throw the correct exception on integer overflow. ++ ++2004-08-15 Zoltan Varga ++ ++ * mini.h mini.c mini-amd64.h mini-amd64.c: Throw the correct exception ++ on integer overflow. ++ ++ * mini-amd64.c: Reorganize function call code. ++ ++ * mini-amd64.c (peephole_pass): Merge changes from mini-x86.c. ++ ++2004-08-14 Ben Maurer ++ ++ * inssel-x86.brg: use xor eax,eax. ++ ++ * basic.cs: new tests ++ ++2004-08-14 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_epilog): Use RIP relative addressing ++ in exception throwing code. ++ ++2004-08-14 Ben Maurer ++ ++ * inssel-x86.brg: use xor esi,esi. ++ ++2004-08-14 Zoltan Varga ++ ++ * driver.c (mono_main): Call mono_trace_parse_options earlier so it ++ can trace methods compiled during mini_init () too. ++ ++ * cpu-amd64.md mini-amd64.c (mono_arch_output_basic_block): Handle ++ CEE_CONV_U4. ++ ++2004-08-14 Ben Maurer ++ ++ * Makefile.am: static link on x86 (r=zoltan) ++ ++2004-08-14 Zoltan Varga ++ ++ * tramp-amd64.c (amd64_magic_trampoline): Avoid patching the trampoline ++ code since it causes some programs to fail. ++ ++2004-08-12 Zoltan Varga ++ ++ * mini-amd64.c (bb_is_loop_start): Merge changes from mini-x86.c. ++ ++2004-08-11 Bernie Solomon ++ ++ * mini.c: ovfops_op_map - add STACK_OBJ case for ++ CONV_I ++ * basic.cs: add test_0_pin_string as test ++ case for above. ++ ++2004-08-11 Bernie Solomon ++ ++ * Makefile.am: build C# if srcdir != builddir ++ ++Tue Aug 10 19:23:47 CEST 2004 Paolo Molaro ++ ++ * dominators.c, mini.h, mini-x86.c: fix loop alignment with ++ fall-through blocks. ++ ++Tue Aug 10 16:18:22 CEST 2004 Paolo Molaro ++ ++ * driver.c: enable loop by default again and include abcrem in -O=all. ++ ++2004-08-08 Zoltan Varga ++ ++ * iltests.il: Add some localloc tests. ++ ++ * mini.c (mono_method_to_ir): Set stack type of LOCALLOC correctly. ++ ++ * inssel-amd64.brg inssel-x86.brg: Set dreg of LOCALLOC correctly. ++ Fixes #62574. ++ ++ * inssel-amd64.brg: Add some optimizations. ++ ++ * mini-amd64.c (mono_arch_setup_jit_tls_data): Add tls offset detection ++ for gcc-3.4. ++ ++ * Makefile.am: Statically link mono against libmono on AMD64. ++ ++ * mini-amd64.c inssel-amd64.brg: Optimizations. ++ ++2004-08-07 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_emit_prolog): Optimize lmf saving a bit. ++ ++ * tramp-amd64.c: Patch calling code in trampolines. ++ ++2004-08-06 Zoltan Varga ++ ++ * mini-amd64.c: pinvoke struct passing fixes. ++ ++2004-08-05 Bernie Solomon ++ ++ * mini-sparc.c: redo change, make mono_arch_cpu_init call ++ mono_arch_cpu_optimizazions so sparcv9 is initialized when embedded ++ ++2004-08-05 Duncan Mak ++ ++ * mini.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to ++ CEE_LDELEM_ANY. ++ ++2004-08-05 Zoltan Varga ++ ++ * mini-amd64.c (emit_move_return_value): Move return value for normal ++ calls too. ++ ++2004-08-05 Martin Baulig ++ ++ * mini.c (ret_type_to_call_opcode): Don't use a `t' variable for ++ `type->type'; just modify `type' itself when dealing with enums ++ and generic instances. ++ (check_call_signature): Make `simple_type' a `MonoType *'. ++ ++2004-08-05 Zoltan Varga ++ ++ * mini.c: Use OP_PADD to add offsets to addresses. ++ ++ * mini-amd64.h: Disable SIGSEGV_ON_ALTSTACK. ++ ++2004-08-04 Bernie Solomon ++ ++ * mini-sparc.c (mono_arch_emit_epilog): fix check ++ for folding last op into restore instruction ++ ++2004-08-05 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_get_throw_exception_by_name): Allocate ++ helper methods using the code manager. ++ ++ * exceptions-amd64.c (mono_arch_get_throw_exception): Fix maximum length. ++ ++ * mini-amd64.c (mono_arch_allocate_vars): Fix tls offset detection. ++ ++Tue Aug 3 23:50:00 EST 2004 Neale Ferguson ++ ++ * mini-s390x.c mini-s390x.h tramp-s390x.c inssel-s390x.brg ++ cpu-s390x.md exceptions-s390x.c Makefile.am: S/390 64-bit JIT ++ ++ * mini-s390.c: fix tail processing ++ ++Tue Aug 3 01:35:44 PDT 2004 Paolo Molaro ++ ++ * mini-ppc.c: mul.ovf.un exception name fix. ++ ++2004-08-03 Martin Baulig ++ ++ * mini-x86.c (mono_arch_call_opcode): Correctly handle generic ++ instances; before jumping to `handle_enum', also modify `ptype'. ++ ++2004-08-02 Bernie Solomon ++ ++ * cpu-sparc.md: fcall maximal length too small. ++ ++2004-08-02 Zoltan Varga ++ ++ * mini-amd64.c mini.h: Add initial support for passing/returning ++ structures to/from pinvoked methods. ++ ++Mon Aug 2 11:59:35 PDT 2004 Paolo Molaro ++ ++ * mini-ppc.c: reg allocator fix. ++ ++2004-07-31 Zoltan Varga ++ ++ * mini-amd64.c (mono_arch_output_basic_block): Fix OP_X86_PUSH_OBJ. ++ ++ * inssel.brg: Optimize memset on 64 bit machines. ++ ++ * mini-amd64.c: Fix some vararg cases. ++ ++2004-07-30 Neale Ferguson ++ ++ * mini-s390.c: Corrected macro in emit_float_to_int ++ ++ * s390-abi.cs: Tests to exercise the s390 ABI ++ ++2004-07-30 Zoltan Varga ++ ++ * exceptions-amd64.c (mono_arch_find_jit_info): Fix restoring of ++ caller saved regs. ++ ++ * basic.cs: Add a test for add.ovf.un. ++ ++2004-07-30 Bernie Solomon ++ ++ * mini-sparc.c: add case for OP_IDIV_UN ++ ++2004-07-30 Zoltan Varga ++ ++ * mini-amd64.c mini-amd64.h mini.c: Add support for vararg pinvoke calls. ++ ++ * mini-amd64.c cpu-amd64.md: Ongoing JIT work. ++ ++2004-07-30 Ben Maurer ++ ++ * basic.cs: regression tests. ++ ++ * inssel-x86.brg: Disable cmp BYTE PTR [eax], imm, it causes various ++ regressions. ++ ++2004-07-30 Zoltan Varga ++ ++ * basic.cs: Add a new test. ++ ++ * mini-amd64.c aot.c cpu-amd64.md: Add support for tracing, profiling ++ and AOT. Various fixes and optimizations. ++ ++ * inssel.brg (CALL_REG): Add 64 bit versions of call_reg rules. ++ ++Fri Jul 30 15:49:26 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c: make sure temp regs are not used for global reg ++ allocation. ++ ++2004-07-29 Bernie Solomon ++ ++ * cpu-sparc.md: conv_i8 fix for 64bits ++ ++ * mini-sparc.c: add cases for OP_IXXX codes for 64bits ++ ++2004-07-29 Ben Maurer ++ ++ * cpu-pentium.md, mini-x86.c, inssel-x86.brg, mini-ops.h: ++ add opcode for cmp BYTE PTR [eax], imm. ++ ++ * inssel.brg: Make memcpy and memset takes bases. ++ ++2004-07-28 Zoltan Varga ++ ++ * *-amd64.*: More AMD64 work. ++ ++2004-07-28 Ben Maurer ++ ++ * cpu-pentium.md, inssel-x86.brg, mini-ops.h, mini-x86.c: ++ add a compare-not-equal opcode. ++ ++2004-07-28 Lluis Sanchez Gual ++ ++ * mini.c: Use mono_init_from_assembly instead of mono_init. ++ ++2004-07-28 Zoltan Varga ++ ++ * mini.c: Fix opcode mapping for STACK_MP on 64 bit platforms. ++ ++ * mini.c (CEE_NEWOBJ): Call mono_array_new_va using the correct signature. ++ ++ * mini.c: Use MONO_ARCH_SIGACTION on AMD64 as well. ++ ++ * inssel.brg: 64 bit fixes. ++ ++ * mini.h (MonoCallInst): Add some AMD64 specific data. ++ ++ * mini.h: Add some OP_P opcodes. ++ ++2004-07-28 Ben Maurer ++ ++ * basic.cs: tests for 61797 and 61740 ++ ++Tue Jul 27 16:05:19 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, mini-sparc.c, mini-s390.c: keep track of line ++ numbers in the debug info (spotted by Geoff Norton, ). ++ ++2004-07-24 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Add CEE_CONV_U8/I8. ++ ++ * *-amd64*.*: Ongoing AMD64 work. ++ ++2004-07-23 Zoltan Varga ++ ++ * inssel-long.brg: Implement CONV_I8/CONV_U8 in the backends. ++ ++ * *-amd64*: Ongoing AMD64 work. ++ ++ * mini-arch.h: Add AMD64 support. ++ ++ * mini-sparc.c (mono_arch_is_inst_imm): New arch dependent function. ++ ++ * mini.h: Add new arch dependent function mono_arch_is_inst_imm. ++ ++ * mini-ops.h: Add new opcodes. ++ ++ * Makefile.am: Add AMD64 support. ++ ++ * inssel.brg inssel-long32.brg inssel-long.brg: Move mul/div and shift ++ rules into the inssel-long*.brg files. ++ ++ * *-amd64.*: Add beginnings of AMD64 backend. ++ ++2004-07-22 Ben Maurer ++ ++ * mini.c (print_dfn): commenting out the code that prints ++ the cil. With -O=deadce, this makes -v -v crash. ++ ++ * cpu-pentium.md: make checkthis have a length of 2 ++ ++2004-04-21 Bernie Solomon ++ ++ * mini-sparc.h: fix implementations of __builtin ++ functions for Sun compiler for V9. ++ ++2004-07-16 Ben Maurer ++ ++ * mini.c: use the new stelem.ref wrapper ++ * exceptions.cs, arrays.cs: new stelem.ref tests ++ ++Wed Jul 14 19:08:41 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, exceptions-ppc.c: cleanups and fixes (the ++ new XSP should work with these changes). ++ ++2004-07-14 Ben Maurer ++ ++ * inssel-{long32,x86,}.brg: trivial optimizations. ++ ++Mon Jul 12 20:25:57 CEST 2004 Paolo Molaro ++ ++ * mini.c: load value when emitting box operation in ++ constrained calls. ++ ++2004-07-12 Ben Maurer ++ ++ * mini-x86.c (OP_CHECK_THIS): cmp DWORD PTR [eax], eax ++ is one byte shorter than cmp DWORD PTR [eax], 0. ++ ++Mon Jul 12 17:47:00 CEST 2004 Paolo Molaro ++ ++ * inssel-ppc.brg: arguments on the stack are always ++ relative to the stack pointer (spotted by Neale Ferguson). ++ ++2004-07-11 Gonzalo Paniagua Javier ++ ++ * exceptions-x86.c: delay appending the method name to the trace until ++ after mono_jit_info_table_find is called, as this gets the real ++ MonoMethod. ++ ++2004-07-09 Ben Maurer ++ ++ * aot.c: register roots ++ ++2004-07-09 Atsushi Enomoto ++ ++ * aot.c : I could just use PLATFORM_WIN32 flag. ++ ++2004-07-09 Atsushi Enomoto ++ ++ * aot.c : Reverting the previous fix. This time it broke linux build. ++ ++2004-07-09 Atsushi Enomoto ++ ++ * aot.c : quick cygwin build fix. mkdir() with two args does not exist. ++ ++2004-07-08 Zoltan Varga ++ ++ * mini.c (handle_stack_args): Remove some more debugging code. ++ ++ * mini.c (handle_stack_args): Remove debug output left in by mistake. ++ ++ * driver.c mini.h aot.c: Allow additional options to be specified with ++ --aot and pass them to mono_compile_assembly. ++ ++ * aot.c: Add experimental code to AOT compile all loaded assemblies ++ on demand and save the code into a cache in the filesystem. ++ ++ * aot.c: Add support for more wrapper methods. ++ ++ * mini.c (handle_stack_args): Handle some corner cases. Fixes ++ 58863. ++ ++ * cpu-*.md: Remove removed opcodes. ++ ++ * mini.h mini.c: Move JIT icall handling to icall.c. Replace usage of ++ CEE_MONO_PROC with CEE_MONO_ICALL. Move registration of marshalling ++ related icalls to marshal.c. ++ ++2004-07-06 Zoltan Varga ++ ++ * mini-ops.h: Add OP_SAVE_LMF and OP_RESTORE_LMF. ++ ++ * Makefile.am (EXTRA_DIST): Add inssel-long[32].brg. ++ ++ * inssel.brg: Fix warning. Add rules for SAVE_LMF and RESTORE_LMF. ++ ++2004-07-06 Ben Maurer ++ * liveness.c: If liveness is recomputated we need to reset the information ++ for each variable. This way, if the liveness range has been narrowed ++ by optimizations that happened after the last computation, we can return ++ a smaller range. ++ ++ For example, if you have ++ ++ { ++ int i = 0; ++ ++ // Tons of code that does not affect i ++ ++ i = foo (); ++ ... ++ } ++ ++ i = 0 is dead code and will be removed by SSA. However, when ++ linear scan gets to the code, i will still appear to be live ++ throughout the entire block. This prevents good register allocation. ++ ++2004-07-06 Martin Baulig ++ ++ * debug-mini.c (mono_debug_init_method): Allow ++ MONO_WRAPPER_MANAGED_TO_NATIVE wrappers. ++ (mono_debug_add_icall_wrapper): New method. ++ ++ * mini.c (mono_icall_get_wrapper): Call mono_debug_add_icall_wrapper(). ++ ++2004-07-05 Zoltan Varga ++ ++ * mini.c (optimize_branches): Fix linking of bblocks in branch->branch ++ optimization. ++ ++2004-07-03 Zoltan Varga ++ ++ * aot.c (mono_aot_load_method): Fix loading of debug info. ++ ++2004-07-02 Zoltan Varga ++ ++ * aot.c: Add logging support. ++ ++2004-07-01 Zoltan Varga ++ ++ * mini.h: Add prototype for mono_print_method_from_ip. ++ ++ * mini.c: 64 bit fixes. Use LCOMPARE for comparing longs. ++ ++ * inssel.brg: 64 bit fixes. ++ ++ * inssel.brg inssel-long32.brg: Move 32 bit arithmetic rules to ++ inssel-long32.brg. ++ ++ * Makefile.am: Add SPARC64 support. ++ ++2004-07-02 Zoltan Varga ++ ++ * aot.c: Fix alignment problems on 32 bit platforms. ++ ++2004-07-01 Zoltan Varga ++ ++ * helpers.c (mono_disassemble_code): Pass -xarch=v9 to assembler on ++ SPARC64. ++ ++ * aot.c: Add SPARC64 support. Reorganize patch table to fix alignment ++ problems. ++ ++ * mini.h: Bump AOT file version. Some 64 bit fixes. ++ ++2004-06-30 Zoltan Varga ++ ++ * inssel-sparc.brg: Add new rule to avoid register moves. ++ ++ * inssel.brg: Add ldind_to_load_membase helper function. ++ ++2004-06-30 Ben Maurer ++ ++ * mini.c: OffsetToStringData intrinsic. ++ ++2004-06-30 Zoltan Varga ++ ++ * ssa.c: Handle OP_LCOMPARE the same as OP_COMPARE. ++ ++ * objects.cs exceptions.cs basic.cs basic-long.cs basic-calls.cs: New ++ regression tests. ++ ++ * mini-ops.h cpu-sparc.md mini-sparc.h mini-sparc.c exceptions-sparc.c tramp-sparc.c inssel-long.brg: Add SPARC64 support. ++Mon Jun 28 18:05:09 CEST 2004 Paolo Molaro ++ ++ * mini.c: reinstated mono_compile_get_interface_var() ++ on x86, too, since the change breaks the Gtk# build there as well. ++ ++Fri Jun 25 17:36:28 CEST 2004 Paolo Molaro ++ ++ * driver.c: remove loop from the default optimizations: it seems to ++ interact badly with some of the other options (see bug #60613). ++ ++2004-06-25 Zoltan Varga ++ ++ * mini.c mini-x86.h mini-x86.c: Applied patch from Guenter Feldmann ++ (fld@informatik.uni-bremen.de): Add Solaris x86 support. ++ ++Tue Jun 22 21:29:11 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: small updates to be able to compile ++ vararg-using methods. ++ ++2004-06-21 Martin Baulig ++ ++ * mini/mini-exceptions.c ++ (mono_handle_exception): Added `gpointer original_ip' argument. ++ After calling mono_unhandled_exception(), call ++ mono_debugger_unhandled_exception() and if that returns true, ++ restore the context and return. ++ ++Mon Jun 21 19:26:40 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c: prefer the use of relative branches so ++ they won't need to be patched in aot code (patch from Patrick Beard). ++ ++Mon Jun 21 19:03:18 CEST 2004 Paolo Molaro ++ ++ * aot.c: patch from Patrick Beard to make the output assembly ++ more correct for the MacOSX assembler. Small tweak to ++ generate sane images on Linux/PPC, too. ++ ++Fri Jun 18 18:24:28 CEST 2004 Paolo Molaro ++ ++ * mini.c, mini.h, mini-ppc.c: handle varargs methods with a special ++ case until bug #59509 is fixed (shows up in #60332). ++ ++Tue Jun 15 16:36:51 CEST 2004 Paolo Molaro ++ ++ * mini.c: make sure the needed wrappers are compiled, too, with ++ precomp. ++ ++Mon Jun 14 18:36:08 CEST 2004 Paolo Molaro ++ ++ * driver.c: remove NPTL reference in --version output. ++ ++Sun Jun 13 17:25:28 CEST 2004 Paolo Molaro ++ ++ * aot.c: patch from Patrick Beard (pcbeard@mac.com) to ++ generate valid assembly for the Mach-O assembler. ++ ++Sun Jun 13 15:59:38 CEST 2004 Paolo Molaro ++ ++ * driver.c: don't include abcrem in the all optimization specifier ++ since it slows down jit compilation too much for now. ++ ++2004-06-12 Ben Maurer ++ ++ * mini.c: use BIGMUL only if both operands have the same signage. ++ * iltests.il: Test for bug 60056. (errors related to signage in ++ BIGMUL). ++ ++ r=lupus. ++ ++Thu Jun 10 16:06:42 CEST 2004 Paolo Molaro ++ ++ * mini.c, aot.c: memory leak fixes. ++ ++Tue Jun 8 16:37:15 CEST 2004 Paolo Molaro ++ ++ * inssel-long32.brg: implemented a few missing ulong cast opcodes. ++ ++Tue Jun 8 15:36:30 CEST 2004 Paolo Molaro ++ ++ * Makefile.am: remove the -static hack completely, it links in ++ statically glib as well. ++ ++Sat Jun 5 16:32:33 CEST 2004 Paolo Molaro ++ ++ * iltests.il, mini.c: fixed bug#59580 in branch optimization. ++ * exceptions.cs: make it compile with new mcs/csc. ++ ++2004-06-03 Massimiliano Mantione ++ * cpu-pentium.md basic-float.cs Fixed bug on fpu spills (see bug 54467), ++ and added relevant test case. ++ ++Mon May 31 19:41:46 CEST 2004 Paolo Molaro ++ ++ * mini.c revert Zoltan's fix to bug#58863 on ppc, since it causes ++ regressions in gtk-sharp. ++ ++2004-05-29 Zoltan Varga ++ ++ * exceptions.cs: New regression tests. ++ ++ * jit-icalls.c (mono_llmult_ovf): Fix some boundary conditions. ++ ++Sat May 29 10:45:58 CEST 2004 Paolo Molaro ++ ++ * mini.c: emit castclass/isinst in their own trees (bug #54209/59057). ++ ++2004-05-28 Zoltan Varga ++ ++ * mini-sparc.h (MONO_ARCH_NEED_DIV_CHECK): Define this. ++ ++ * cpu-sparc.md mini-sparc.c: Add overflow detection to div opcodes. ++ ++2004-05-28 Patrik Torstensson ++ ++ * mini.c (mono_jit_runtime_invoke): Init class in this ++ method instead of trusting mono_jit_compile_method to ++ do the work (because wrappers can be in object class) ++ ++2004-05-27 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): Fix sub.imm. ++ ++ * basic-long.cs: New regression test. ++ ++Thu May 27 15:50:52 CEST 2004 Paolo Molaro ++ ++ * cpu-g4.md, mini-ppc.c: fixes to long add/sub ovf opcodes ++ and div/rem checks. ++ ++Thu May 27 12:36:53 CEST 2004 Paolo Molaro ++ ++ * Makefile.am: fix miguel's change to build mono statically against ++ libmono (track build dependencies). ++ ++2004-05-26 Zoltan Varga ++ ++ * cfold.c: Some glib versions do not have G_MININT32. ++ ++2004-05-26 Massimiliano Mantione ++ ++ * mini-x86.c cpu-pentium.md Makefile.am basic-math.cs: Fixed problem ++ with precision of tan, atan, sin and cos, and implemented related ++ regressions tests (fixes bug 54467, but one new problem appeared and ++ is not fixed yet). ++ ++2004-05-26 Zoltan Varga ++ ++ * cfold.c (FOLD_BINOPZ): Avoid division by zero. ++ ++ * exceptions.cs: Add test for constant folding && division by zero. ++ ++ * driver.c mini.h mini.c mini-x86.c: Revert most of the previous patch ++ since driver.c is in libmono too, so the optimization was useless. ++ ++ * driver.c mini.h mini.c mini-x86.c: Moved the mono_lmf_addr TLS ++ variable to driver.c so the compiler can emit more efficient code to ++ access them. ++ ++2004-05-26 Gonzalo Paniagua Javier ++ ++ * Makefile.am: don't distribute generated inssel.[ch] files. ++ ++2004-05-25 Zoltan Varga ++ ++ * mini.c (mono_jit_compile_method_with_opt): Really emit icall wrappers ++ into the default appdomain. Fixes #58707. ++ ++ * jit-icalls.c: Remove the broken approximation for truncl, doing ++ no conversion is better. ++ ++ * mini.c (handle_stack_args): Avoid reusing variables for stack slots. ++ Fixes #58863. ++ ++Tue May 25 14:33:56 CEST 2004 Paolo Molaro ++ ++ * mini-ops.h, mini-ppc.c, cpu-g4.md, inssel-ppc.brg: eliminate the use ++ of the mcrxr instruction which is not available on some processors ++ even if it's documented to be. Implement add and sub overflow correctly ++ (still not complete for long unsigned). Speed up icalls a bit. ++ ++2004-05-25 13:01 CET Patrik Torstenson ++ ++ * mini.c (mono_jit_compile_method_with_opt): Make sure that ++ we run .cctor in the current domain instead of target_domain. ++ ++ Fixes bug #58558, .cctor not being called in -O=shared. ++ ++Tue May 25 12:46:50 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.h, jit-icalls.c: added explicit checks for divide by zero. ++ ++2004-05-24 Ben Maurer ++ ++ * mini-x86.c (EMIT_COND_BRANCH): If an OP_LABEL has an offset ++ which can be done with an imm8, do it that way. ++ (mono_arch_output_basic_block): ditto for a jmp ++ (mono_arch_emit_prolog): Computate maximum offset of a label. ++ ++2004-05-24 18:18 CET Patrik Torstenson ++ ++ * mini-x86.c (mono_arch_local_regalloc): the reg allocator ++ now tries to allocate prefered physical reg's for virtual ++ regs. This reduces the number of emited spills/loads with ++ 20-30% on our core assemblies. ++ ++Mon May 24 18:21:51 CEST 2004 Paolo Molaro ++ ++ * jit-icalls.c: truncl() is not needed and trunc() is ++ the correct thing to do anyway (bug #58287). ++ ++2004-05-24 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_flush_icache): Call sync_instruction_memory ++ if available. ++ ++Mon May 24 12:49:45 CEST 2004 Paolo Molaro ++ ++ * driver.c: enable loop optimizations by default. ++ ++Mon May 24 11:13:46 CEST 2004 Paolo Molaro ++ ++ * mini-x86.c: fix calc of max loop size when aligning loops start. ++ ++2004-05-23 Zoltan Varga ++ ++ * ssa.c (mono_ssa_cprop): Allocate carray dynamically instead of on ++ the stack. ++ ++2004-05-22 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_output_basic_block): ADD_IMM and SUB_IMM ++ should set carry. ++ ++ * basic-long.cs: Add tests for add/subtract of immediates with carry. ++ ++ * mini.c exceptions-x86.c: Remove MONO_USE_EXC_TABLES stuff. ++ ++ * mini.c (inline_method): Allways inline some wrappers even if the cost ++ is too large. Fixes #58785. ++ ++ * mini.c: Add support for MARSHAL_CONV_FTN_DEL. ++ ++2004-05-21 Zoltan Varga ++ ++ * mini-sparc.c exceptions-sparc.c: Applied patch from Mark Crichton ++ (crichton@gimp.org). Beginning of support for sparc/linux. ++ ++ * mini-sparc.c: Optimize retrieval of LMF address. ++ ++Fri May 21 08:00:12 EDT 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: handle alloca in methods with clauses. ++ ++Fri May 21 07:35:30 EDT 2004 Paolo Molaro ++ ++ * mini-ppc.c: cleanups, off-by-one fixes, avoid recursive thunks. ++ ++2004-05-20 Lluis Sanchez Gual ++ ++ * mini.c: Delegate most of the abort signal work to ++ mono_thread_request_interruption, which also handles Stop and Suspend ++ states. ++ ++2004-05-20 Zoltan Varga ++ ++ * mini.c mini.h: Allow inlining of icall wrappers if the backend ++ supports the save/restore lmf opcodes. ++ ++2004-05-19 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_setup_jit_tls_data): Handle code generated ++ by gcc-3.4 as well. ++ ++ * mini-x86.h mini-x86.c tramp-x86.c: Optimize lmf restoring code. ++ ++2004-05-18 Zoltan Varga ++ ++ * mini.h mini.c (mini_method_compile): Only run abc removal pass on ++ methods which contain array accesses. ++ ++ * mini.c (CEE_LDTOKEN): Handle this instruction correctly on bb ++ boundaries. Fixes #58537. ++ ++ * iltests.il: Add regression test for #58537. ++ ++2004-05-18 Patrik Torstensson ++ ++ * mini-x86.c (mono_arch_local_regalloc): Last part of ++ fix for bug #58633 (releasing register to early). ++ ++2004-05-18 Miguel de Icaza ++ ++ * basic-long.cs: Add new regression test. ++ ++2004-05-18 Patrik Torstensson ++ ++ * mini-x86.c (mono_arch_local_regalloc): Avoid releasing a ++ register too early on the chain. ++ ++2004-05-18 Zoltan Varga ++ ++ * mini.c (create_helper_signature): Use a helper function to reduce ++ the code which needs to be written. Also set the calling convention of ++ icalls on windows. Fixes #57840. ++ ++Tue May 18 11:05:18 CEST 2004 Paolo Molaro ++ ++ * mini.h, exceptions-x86.c, exceptions-sparc.c, exceptions-s390.c, ++ exceptions-ppc.c: added helper function to get the instruction address ++ from a signal handler context. ++ ++2004-05-17 Ben Maurer ++ ++ * helpers.c: use g_get_tmp_dir. Invokes happyness ++ from gonzalo. ++ ++2004-05-17 Ben Maurer ++ ++ * helpers.c: Add new env variable to pass args to objdump. ++ Specifically for those of us who love -Mintel. r=miguel, gonzalo. ++ ++2004-05-17 Radek Doulik ++ ++ * Makefile.am (common_sources): added abcremoval.h so it get ++ disted and daily mono packages on go-mono.com will build again ++ ++2004-05-17 Massimiliano Mantione ++ ++ * abcremoval.c: Fixed coding style, added copyright header. ++ ++ * abcremoval.h: Fixed style and moved prototype to mini.h, added copyright header. ++ ++ * mini.h: Added prototype for abc removal main function. ++ ++ * build_relations_propagation_table.pl: Added copyright header. ++ ++2004-05-16 Patrik Torstensson ++ ++ * basic-long.cs: reg test for complex ceq_long bug. ++ ++2004-05-16 Patrik Torstensson ++ ++ * mini-x86.c (mono_arch_local_regalloc): Correctly free ++ reg in long and clob case (bug #58343). Fixed/added comments. ++ ++2004-05-14 Ben Maurer ++ ++ * mini.c (mono_jit_runtime_invoke): Follow new convention ++ of calling the invoke method with an function pointer. ++ ++2004-05-14 Zoltan Varga ++ ++ * ChangeLog: Fix author of memory leak patch. ++ ++Fri May 14 15:13:06 CEST 2004 Paolo Molaro ++ ++ * Makefile.am: fix make dist as well... ++ ++ ++2004-05-14 Massimiliano Mantione ++ ++ * cfold.c: Made so that conversions from pointer to int4 are no-ops ++ on archs where pointers are 4 bytes long. ++ ++ * Makefile.am: Added abcremoval.c source file. ++ ++ * abcremoval.c: Added abcremoval.c. ++ ++ * abcremoval.h: Added abcremoval.h. ++ ++ * build_relations_propagation_table.pl: Added build_relations_propagation_table.pl. ++ ++ * inssel.brg: Enabled bounds check removal. ++ ++ * mini.c: Added support for abcrem optimization. ++ ++ * mini.h: Added abcrem optimization label. ++ ++ * driver.c: Added support for abcrem optimization. ++ ++ * propagated_relations_table.def: Added propagated_relations_table.def. ++ ++Fri May 14 14:30:13 CEST 2004 Paolo Molaro ++ ++ * mini.c, cfold.c: fix style. ++ ++Fri May 14 14:28:22 CEST 2004 Paolo Molaro ++ ++ * mini.c: handle issue with the low-level implementation of ++ some long opcodes (bug #54209). ++ ++2004-05-13 Ben Maurer ++ ++ * basic.cs: test for my new cmov stuff. ++ ++2004-05-13 Patrik Torstensson ++ ++ * mini-x86.c: added OP_X86_COMPARE_MEMBASE_IMM peephole ++ opt and added peephole documentation. ++ ++Thu May 13 11:41:49 CEST 2004 Paolo Molaro ++ ++ * tramp-ppc.c: rewrote the generic trampoline code. ++ ++2004-05-11 Patrik Torstensson ++ ++ * mini-x86.c: optimize long shl/shr asm code (one less branch) ++ ++2004-05-11 Zoltan Varga ++ ++ * basic.cs basic-long.cs objects.cs: Make these compile under MS csc. ++ ++ * mini.h mini.c dominators.c: Applied patch from Derek Woo ++ (derek@eecg.toronto.edu): Fix memory leaks in loop optimizations. ++ ++ * mini.c: Add new icalls for AsAny marshalling. ++ ++Tue May 11 16:00:38 CEST 2004 Paolo Molaro ++ ++ * tramp-ppc.c, mini-ppc.c: more cleanups. ++ ++2004-05-11 Gonzalo Paniagua Javier ++ ++ * mini.c: no warnings. ++ ++Tue May 11 13:59:28 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, mini.c: use mono_resolve_patch_target (). ++ ++2004-05-11 Lluis Sanchez Gual ++ ++ * mini.c: In the thread abort signal handler, if the thread is in the ++ process of being stoped, don't throw the Abort exception, just stop the ++ thread. ++ ++Tue May 11 12:15:24 CEST 2004 Paolo Molaro ++ ++ * tramp-ppc.c: removed old code. ++ ++Tue May 11 12:02:28 CEST 2004 Paolo Molaro ++ ++ * mini.h, mini-ppc.c, cfold.c: export mono_is_power_of_two(). ++ do some simple speed optimizations on ppc. ++ ++Mon May 10 17:21:00 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: fixes to handle large stack frames ++ and large offsets in load/store. ++ ++2004-05-07 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_local_regalloc): Remove the previous fix, since ++ it causes regressions. ++ ++2004-05-07 Zoltan Varga ++ ++ * mini-sparc.c: Fix vararg support + add beginnings of sigaltstack ++ support. ++ ++Fri May 7 13:25:50 CEST 2004 Paolo Molaro ++ ++ * jit-icalls.c: remove warnings. ++ * inssel-x86.brg, inssel.brg, mini-x86.c, cfold.c: some simple ++ speedups for unsafe code. ++ ++2004-05-07 Ben Maurer ++ ++ * inssel.brg: Optimize Stind.[ui][12]. r=zoltan. ++ ++2004-05-06 Zoltan Varga ++ ++ * basic-calls.cs: Add new regression test. ++ ++ * mini.c (mono_runtime_install_handlers): Use SA_ONSTACK since it is ++ more portable. ++ ++ * mini.c (mono_method_to_ir): Handle opcode emulation for *_OVF opcodes. ++ ++ * mini-x86.c (mono_arch_local_regalloc): Free new_dest register when it ++ is no longer used. ++ ++2004-05-06 Patrik Torstensson ++ ++ * mini-x86.[c|h], inssel-x86.brg, cpu-pentium.md, mini.c: enabled ++ long reg allocation in any reg (not only eax:edx) and implemented ++ long shl/shr ops in asm instead of helpers. ++ ++2004-05-05 Zoltan Varga ++ ++ * mini-sparc.h: Fix warnings. ++ ++ * exceptions-sparc.c (mono_arch_find_jit_info): Pop unused lfm off the ++ stack. ++ ++ * mini-exceptions.c (mono_handle_exception): Call the filter in a ++ separate statement for clarity. ++ ++ * mini-sparc.c: Update status. ++ ++2004-05-04 Zoltan Varga ++ ++ * mini-exceptions.c (ves_icall_get_frame_info): Flush register windows ++ here. ++ ++Mon May 3 22:58:51 CEST 2004 Paolo Molaro ++ ++ * inssel-ppc.brg: another small pre-release workaround: ++ we don't do overflow detection for long_sub_un. ++ ++Sun May 2 20:12:22 CEST 2004 Paolo Molaro ++ ++ * mini.c, mini-ops, inssel-long32.brg: speedup ulong >> 32 ++ (also works around a weird ppc bug: 57957). ++ ++Sat May 1 16:56:10 EDT 2004 Paolo Molaro ++ ++ * tramp-ppc.c: trampoline fixes. ++ ++Fri Apr 30 15:54:26 EDT 2004 Paolo Molaro ++ ++ * mini-ppc.c: fixed typos. ++ ++Thu Apr 29 20:15:41 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, exceptions-ppc.c: more code saves registers ++ at the top of the stack. Fixed typos. Use a frame registers ++ for all the methods with exception clauses. ++ ++Thu Apr 29 18:52:09 CEST 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: restore fp registers. ++ ++Thu Apr 29 18:26:56 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, exceptions-ppc.c: save the registers in reverse ++ order from the stack top (moved the stack room to save the ++ return value for trace after the param area). Fixed corruption ++ in restoring registers on unwind. ++ ++Thu Apr 29 16:47:15 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: fixed unisgned -> double conversion. ++ ++Thu Apr 29 13:50:51 CEST 2004 Paolo Molaro ++ ++ * exceptions-ppc.c, mini-ppc.h, mini-ppc.c: fixed localloc ++ and prolog/epilog for methods that use it. Allow ++ enough param area room for varargs methods. Fix miguel's ++ breakage in exception handling. ++ ++Thu Apr 29 12:06:51 CEST 2004 Paolo Molaro ++ ++ * Makefile.am: run genmdesc only on current arch. ++ ++2004-04-29 Gonzalo Paniagua Javier ++ ++ * exceptions-x86.c: ++ * mini-x86.h: fix the build on windows. ++ ++2004-04-28 Zoltan Varga ++ ++ * Makefile.am mini.h mini-exceptions.c mini-x86.h mini-sparc.h exceptions-sparc.c: Move parts of the sparc exception handling code to XP code. ++ ++ * exceptions-sparc.c exceptions-ppc.c exceptions-s390.c mini-ppc.h mini-s390.h mini-sparc.h: Fix up ports after changes. ++ ++ * mini-exceptions.c: New file. ++ ++ * mini.c mini-exceptions.c mini-x86.h exceptions-x86.c Makefile.am: ++ Move some parts of the x86 exception handling code to an ++ arch-independent file so it can be shared with other ports. ++ ++Tue Apr 27 12:15:59 CEST 2004 Paolo Molaro ++ ++ * trace.c, cpu-g4.md, inssel-ppc.brg, mini-ppc.c: some fixes for FP code. ++ ++2004-04-26 David Waite ++ ++ * driver.c: remove comma from end of enumeration declaration ++ ++2004-04-26 Jackson Harper ++ ++ * driver.c: parse config file before loading first assembly. This ++ allows the user gac to be enabled/disabled. ++ ++2004-04-23 Miguel de Icaza ++ ++ * mini-ppc.c (ppc_patch): Replaced the branch code patching with a ++ simpler mechanism: we do not care what is encoded initially ++ (branch absolute or relative), we care about the code and its ++ target. I kept the old code for reference for now. ++ ++ The new code tries first to determine if the jump is anywhere in ++ the -/+32 absolute meg range, if it succeeds, it encodes using the ++ absolute branch; If not, it tried to find something in the ++ relative range, if not, it uses the handle_thunk code. ++ ++Fri Apr 23 14:20:40 EDT 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: use the correct ip register on macosx. ++ ++Thu Apr 22 13:23:16 EDT 2004 Paolo Molaro ++ ++ * exceptions.c, mini.c, mini-ppc.h: adapt code to macosx. ++ ++Thu Apr 22 18:08:37 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md: made the branch macros more flexible. ++ Raise exception on integer divide by zero by hand since the hw ++ doesn't support it. Handle NaNs in FP compares. ++ ++Thu Apr 22 16:10:31 CEST 2004 Paolo Molaro ++ ++ * exceptions-ppc.c, mini-ppc.h, mini.c: simplified some ++ code reducing duplication between the platforms and enabled ++ signal exception handling (on linux for now). ++ ++Wed Apr 21 12:27:48 EDT 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: more macosx support. ++ ++Wed Apr 21 16:38:28 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.h, mini-ppc.c, cpu-g4.md: enable bigmul optimization. ++ ++Wed Apr 21 16:20:32 CEST 2004 Paolo Molaro ++ ++ * mini.h, mini-ppc.c, cpu-g4.md: support for implicit exceptions. ++ ++2004-04-19 Ben Maurer ++ ++ * iltests.il: more tests. ++ ++2004-04-19 Zoltan Varga ++ ++ * mini-*.c (mono_arch_get_allocatable_int_vars): Skip written-only ++ vars as well. ++ ++Mon Apr 19 19:39:47 CEST 2004 Paolo Molaro ++ ++ * mini-ppc.c: some fixes to bootstrap mcs/corlib/etc. ++ ++2004-04-19 Zoltan Varga ++ ++ * liveness.c: Mark variables as volatile in all basic blocks reachable ++ from exception clauses. ++ ++2004-04-18 Zoltan Varga ++ ++ * exceptions.cs (test_0_rethow_stacktrace): Make this work with ++ inlining. ++ ++2004-04-18 Ben Maurer ++ ++ * iltests.il, basic.cs: more tests for regalloc. ++ ++2004-04-17 Ben Maurer ++ ++ * iltests.il: Some tests for register allocation modifications ++ I have locally. ++ ++2004-04-16 Zoltan Varga ++ ++ * exceptions.cs: Add regression test for bug #56782. ++ ++ * exceptions-*.c (mono_arch_handle_exception): Do not overwrite the ++ original stack trace if an exception is rethrown. Fixes #56782. Oh, ++ the beauty of fixing the same thing in 5 different files... ++ ++2004-04-15 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Do not compute coverage for inlined ++ methods. ++ ++2004-04-14 Zoltan Varga ++ ++ * mini.c: Add support for STRWLPARRAY marshalling convention. ++ ++Wed Apr 14 18:15:55 CEST 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: missing fixes in mono_jit_walk_stack (need ++ to init the context to setup the regs pointer). ++ ++Wed Apr 14 17:59:09 CEST 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: more exceptions work. ++ ++Wed Apr 14 17:46:22 CEST 2004 Paolo Molaro ++ ++ * mini.c: avoid reusing the same MonoInst on multiple trees: this is ++ not allowed. ++ ++2004-04-13 Miguel de Icaza ++ ++ * inssel-x86.brg (reg): Add new rules for add, sub and mul that ++ can use the memory directly. ++ ++ * cpu-pentium.md: Update documentation from a post from Zoltan. ++ ++ add x86_add_membase, x86_sub_membase, x86_mul_membase ++ ++2004-04-13 Miguel de Icaza ++ ++ * mini-ppc.c: Remove unused definitions FLOAT_REGS and ++ GENERAL_REGS they were also hardcoded for all PPC ports. ++ ++ (add_general): Use PPC_NUM_REG_ARGS instead of GENERAL_REGS. ++ ++ Remove hard-coded limit for floating point registers, use ++ PPC_LAST_FPARG_REG instead in MONO_TYPE_R4 and MONO_TYPE_R8. ++ ++ Notice that in MacOS X calling conventions you can fit a lot more ++ floating point values in registers, so I should update the PInvoke ++ test to excercise the passing of floating point values on the ++ stack (currently broken). ++ ++2004-04-06 Miguel de Icaza ++ ++ * tramp-ppc.c (create_trampoline_code): Added ++ JUMP_TRAMPOLINE_SIZE. ++ (ppc_magic_trampoline): Follow the pattern from ++ x86_magic_trampoline: if code is set to zero, return. ++ (create_trampoline_code): Always pass MonoMethod to the jump ++ trampoline, before it was passing a null. ++ (mono_arch_create_jump_trampoline): Implement the jump stub, could ++ share the code with mono_arch_create_jit_trampoline. ++ ++ * mini-ppc.c (mono_arch_output_basic_block): CEE_JMP opcode ++ implemented. ++ (mono_arch_patch_code): MONO_PATCH_INFO_METHOD_JUMP patch type ++ implemented. ++ ++ * cpu-g4.md: Added length for jmp instruction, the worst case ++ scenario is 92 bytes (4 mandatory bytes, potential 19 registers ++ for save_lmf). ++ ++2004-04-08 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Add back unlink removed by mistake. ++ ++2004-04-07 Zoltan Varga ++ ++ * mini.c: Only set bblock->real_offset when adding a new bblock, and ++ before each IL instruction. ++ ++ * mini.c (CEE_BOX): Fix warnings. ++ ++2004-04-07 Gonzalo Paniagua Javier ++ ++ * mini.c: removed a few unused vars and extra whitespace. ++ ++2004-04-05 Ben Maurer ++ ++ * inssel.brg (MONO_EMIT_BOUNDS_CHECK): a new macro to emit bounds ++ checks. ++ (MONO_EMIT_BOUNDS_CHECK_IMM): the above, but when you know the ++ index. ++ (OP_GETCHR): use the above ++ (CEE_LDELEMA): use the above. ++ ++ * inseel-x86.brg (MONO_EMIT_BOUNDS_CHECK): a faster and smaller ++ version of the generic impl. ++ (MONO_EMIT_BOUNDS_CHECK_IMM): the same ++ (CEE_LDELEMA): use the above. ++ ++2004-04-05 Zoltan Varga ++ ++ * inssel-long32.brg (CEE_CONV_OVF_I8): Sign extend the i4 value to i8. ++ Fixes #56317. ++ ++ * iltests.il: Added new regression test for #56317. ++ ++2004-04-05 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_setup_jit_tls_data): Use pthread_attr_get_np ++ under NetBSD. Fixes #56450. ++ ++ * liveness.c (update_gen_kill_set): Fix previous patch. ++ ++2004-04-04 Gonzalo Paniagua Javier ++ ++ * mini-x86.h: SA_STACK defined as SA_ONSTACK. Fixed build under NetBSD. ++ ++2004-04-02 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Avoid handle_loaded_temps in ++ ldsfld and ldsflda. ++ ++ * inssel-sparc.brg: Add more optimizations. ++ ++ * mini-sparc.c: Replace multiply/divide with shifts if possible. ++ ++2004-04-01 Martin Baulig ++ ++ * mini.c (handle_box): New static function; moved the ++ implementation of CEE_BOX here. ++ (mono_method_to_ir): Added `constrained_call' variable. ++ (mono_method_to_ir:CEE_CONSTRAINED_): Set it. ++ (mono_method_to_ir:CEE_CALL): If `constrained_call' is set, use ++ mono_method_get_constrained() to get the method. ++ ++2004-04-01 Martin Baulig ++ ++ * mini.c (TYPE_PARAM_TO_TYPE, TYPE_PARAM_TO_CLASS): Removed. ++ (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): Removed. ++ (mono_method_to_ir): We don't need these macros anymore since ++ mono_class_get_full() already takes care of it. ++ ++2004-03-31 Gonzalo Paniagua Javier ++ ++ * aot.c: set aot_verbose to 0, fixed format string that caused sigsegv, ++ use @function (as doesn't accept #function here) and check the return ++ value of system and stop if fails. ++ ++2004-03-31 Gonzalo Paniagua Javier ++ ++ * mini.c: set the timeout to 2s when calling mono_domain_finalize. ++ ++2004-03-31 Zoltan Varga ++ ++ * mini-ppc.c (mono_arch_patch_code): Fix ppc build. ++ ++ * inssel-sparc.brg mini-sparc.c aot.c: Implement AOT support. ++ ++ * inssel-long32.brg (OP_LNEG): Use ADC instead of ADD here. Fixes ++ #56223. ++ ++ * basic-long.cs: Add test for negation of Int64.MinValue. ++ ++2004-03-30 Zoltan Varga ++ ++ * mini-sparc.c: Update status. ++ ++ * mini-sparc.c tramp-sparc.c: Save lmf in trampolines. ++ ++ * exceptions-sparc.c: Fix return value in filters. ++ ++ * inssel-sparc.brg: Fix register allocation in some rules. ++ ++2004-03-28 Martin Baulig ++ ++ * mini.c (mmono_method_to_ir): In CEE_STELEM, do a handle_stobj() ++ if neccessary. ++ ++2004-03-28 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_patch_code): Fix warnings. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Fix CEE_MUL_OVF_UN if ++ dreg is not EAX. Thanks to Willibard Krenn for spotting this. Also ++ remove unused conv_u4 opcode. ++ ++ * mini-x86.c: Remove valgrind workaround since it slows down things ++ even when mono is not run under valgrind. ++ ++2004-03-26 Zoltan Varga ++ ++ * mini-sparc.c: Update status. ++ ++ * inssel-sparc.brg: Add some optimizations. ++ ++ * inssel-sparc.brg mini-sparc.c: Rework branch instructions to allow ++ future delay slot filling. Add support for varargs, tail calls and JMP. ++ ++ * inssel.brg mini-ops.h mini.c: Use OP_REFANYTYPE instead of ++ CEE_REFANYTYPE, since CEE_REFANYTYPE needs a prefix to be unique. ++ ++ * inssel.brg: Fix register allocation in OP_ARGLIST. ++ ++ * inssel.brg: Fix warnings. ++ ++2004-03-25 Martin Baulig ++ ++ * mini.c (inflate_generic_field): Removed. ++ (mini_get_method): Removed, use mono_get_method_full(), ++ (mini_get_class): Removed, use mono_class_get_full(). ++ (mono_method_to_ir): Pass our generic context to ++ mono_field_from_token(). ++ ++2004-03-25 Martin Baulig ++ ++ * mini.c (mini_get_class): Take a `MonoGenericContext *' instead ++ of a `MonoMethod *'. ++ (mini_get_method): Take a `MonoGenericContext *' instead ++ of a `MonoMethod *'. ++ (TYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_TYPE): mono_method_to_ir() has ++ a new local variable called `generic_context' which holds the ++ current `MonoGenericContext *'; use it to lookup things. ++ ++2004-03-24 Martin Baulig ++ ++ * mini.c (mini_get_class): New static method; if we're inside a ++ generic instance, inflate the class if neccessary. ++ (mono_method_to_ir): Use mini_get_class() instead of mono_class_get(). ++ ++2004-03-24 Zoltan Varga ++ ++ * iltests.il: New regression test for #55976. ++ ++ * mini.c (mono_method_to_ir): Empty the stack in endfinally. Fixes ++ #55976. ++ ++2004-03-23 Zoltan Varga ++ ++ * exceptions-sparc.c (mono_sparc_handle_exception): Remove debugging ++ output. ++ ++2004-03-23 Zoltan Varga ++ ++ * liveness.c: Consider SSA stores as well as loads when making vars ++ volatile. ++ ++ * exceptions.cs: New regression tests for register allocation. ++ ++2004-03-22 Lluis Sanchez Gual ++ ++ * mini-ppc.c, tramp-ppc.c: Added lock for accessing the domain code manager. ++ * mini.c: Removed domain lock from mono_jit_compile_method_with_opt. Use ++ domain lock only to protect puntual access to data structures. ++ Added access lock for sighash, jit_icall_hash_name, ++ jit_icall_hash_addr and domain->code_mp. ++ ++2004-03-20 Zoltan Varga ++ ++ * driver.c: Print SIGSEGV handling method. ++ ++ * mini-x86.c (mono_arch_free_jit_tls_data): Add missing ifdef. ++ ++ * mini.c (setup_jit_tls_data): Handle case when this is called ++ multiple times for a thread. ++ ++ * mini-x86.c cpu-pentium.md: Fix floating point branch opcodes so fbxx ++ is different from fbxx_un. Fixes #54303. Also use constants instead of ++ magic numbers in a lot of places. ++ ++2004-03-19 Zoltan Varga ++ ++ * exceptions.cs: Fix cctor test when --regression is used. ++ ++Thu Mar 18 19:57:56 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c, exceptions-ppc.c: basic exceptions support ++ for Linux/ppc. ++ ++Thu Mar 18 19:56:19 CET 2004 Paolo Molaro ++ ++ * inssel-ppc.brg: fixed register assignments for some rules. ++ ++2004-03-17 Zoltan Varga ++ ++ * exceptions.cs: Add test for exceptions in static constructors. ++ ++ * mini.c (mono_jit_compile_method_with_out): Move the calling of ++ static constructors outside the domain lock. Fixes #55720. ++ ++2004-03-17 Martin Baulig ++ ++ * mini.c (get_generic_field_inst): Removed, this'll never happen. ++ (inflate_generic_field): Take the `MonoMethod *' instead of the ++ `MonoClass *' and added support for generic method. ++ (mono_method_to_ir): In CEE_LDSFLD and CEE_STSFLD, assert we never ++ have a `field->parent->gen_params', only inflate the field if it's ++ an open constructed type. ++ ++2004-03-17 Zoltan Varga ++ ++ * exceptions-x86.c (mono_arch_handle_exception): Allocate a new ++ exception object instead of the preconstructed ones. ++ ++2004-03-17 Gonzalo Paniagua Javier ++ ++ * mini.c: reverted changed to sigsegv_signal_handler commited ++ accidentally in the previous patch. ++ ++2004-03-17 Gonzalo Paniagua Javier ++ ++ * mini.c: ++ (mono_method_to_ir): CEE_CALLVIRT, abort if no method. It hanged when ++ running --aot with an old assembly. ++ ++2004-03-16 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_instrument_epilog): Fix handling of floating ++ point values. ++ ++ * mini-sparc.c: Add support for v9 branches with prediction. ++ ++2004-03-15 Bernie Solomon ++ ++ * mini.c (mini_init): #warning is GNUC only ++ ++ * mini-sparc.h: implement __builtin_frame_address ++ and __builtin_return_address for Sun C compiler ++ ++2004-03-15 Zoltan Varga ++ ++ * exceptions-sparc.c (mono_arch_has_unwind_info): Add missing function. ++ ++2004-03-14 Zoltan Varga ++ ++ * basic-calls.cs: Add test for unaligned byref long argument passing. ++ ++ * mini-ops.h: Add sparcv9 compare and branch instructions. ++ ++ * inssel-sparc.brg mini-sparc.h mini-sparc.c cpu-sparc.md: Use some ++ v9 instructions if we have a v9 cpu. ++ ++ * mini-sparc.c (mono_arch_get_global_int_regs): Use unused input ++ registers for global allocation. ++ ++ * exceptions-sparc.c: Fixes. ++ ++2004-03-11 Zoltan Varga ++ ++ * liveness.c (mono_analyze_liveness): Optimized version. ++ ++ * inssel-sparc.brg cpu-sparc.md: Ongoing sparc work. ++ ++ * mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Ongoing ++ sparc work. ++ ++ * basic-float.cs basic-calls.cs: New regression tests. ++ ++2004-03-10 Zoltan Varga ++ ++ * mini-x86.h: Define SIGSEGV_ON_ALTSTACK only if we have a working ++ sigaltstack implementation. ++ ++ * mini-x86.c (mono_arch_setup_jit_tls_data): Fix previous patch. ++ ++ * mini-x86.c (mono_arch_setup_jit_tls_data): Turn off the sigaltstack ++ stuff if SIGSEGV_ON_ALTSTACK is not defined. ++ ++2004-03-09 Zoltan Varga ++ ++ * mini.c: Fix warnings. ++ ++ * mini.c (mono_resolve_patch_target): New function which contains the ++ arch independent part of the patching process. ++ ++ * mini-x86.c (mono_arch_patch_code): Move arch independent parts of the ++ patching code to a separate function. ++ ++2004-03-09 Bernie Solomon ++ ++ * mini.c (add_signal_handler): ifdef out on Windows ++ ++2004-03-08 Zoltan Varga ++ ++ * mini-sparc.h mini-sparc.c inssel-sparc.brg exceptions-sparc.c ++ cpu-sparc.md: Add exception handling support + other fixes. ++ ++ * driver.c: Print --help output to stdout. Fixes #55261. Also fix ++ typed GC detection in --version. ++ ++ * basic.cs exceptions.cs: New regression tests. ++ ++ * mini.h mini-x86.h mini-ppc.h: Add MonoCompileArch structure where ++ the arch specific code can store data during a compilation. ++ ++ * mini-ops.h: Add OP_SETFRET. ++ ++ * mini.c (mini_get_ldelema_ins): Instead of allways calling the same ++ function, register a separate icall for each arity, so the icalls can ++ get a wrapper. ++ ++ * mini.c (mono_print_tree): Print negative offsets in a more readable ++ form. ++ ++ * mini.c: Make signal handling work on sparc. ++ ++ * mini.c (mini_init): Add emulation for lconv_to_r8_un. ++ ++ * inssel-long32.brg: Fix OP_LSUB_OVF_UN rule. ++ ++ * jit-icalls.c: Emulate truncl by aintl on solaris. ++ ++ * jit-icalls.c (mono_lconv_to_r8_un): New icall emulation function. ++ ++2004-03-05 Zoltan Varga ++ ++ * mini.c (mini_init): fconv_to_ovf can raise exceptions. ++ ++2004-03-04 Lluis Sanchez Gual ++ ++ * mini.c: In CEE_ISINST and CEE_CASTCLASS, if the type is an interface or ++ a MarshalByRef type, inline a method that performs the check, taking into ++ account that the object can be a proxy. Also implemented tow new opcodes: ++ CEE_MONO_CISINST and CEE_MONO_CCASTCLASS. ++ * inssel.brg: Implemented two new opcodes, mini-ops.h: OP_CISINST and ++ OP_CCASTCLASS, which implement CEE_MONO_CISINST and CEE_MONO_CCASTCLASS. ++ ++Tue Mar 2 17:23:48 CET 2004 Paolo Molaro ++ ++ * mini-ppc.c: if a relative branch displacement is too big ++ but it points to and area reachable with an absolute branch, ++ avoid the thunks. ++ ++Tue Mar 2 16:59:40 CET 2004 Paolo Molaro ++ ++ * mini.c: optimize small copies in cpblk. ++ ++2004-03-01 Zoltan Varga ++ ++ * basic-calls.cs basic-float.cs: New regression tests. ++ ++ * mini-sparc.c inssel-sparc.brg mini-ops.h: Access local variables at ++ negative offsets from %fp. Implement localloc. Fix local register ++ allocation. Fix the case when the this argument needs to be saved to ++ the stack. Implement some missing opcodes. ++ ++2004-02-26 Zoltan Varga ++ ++ * mini.c (mini_method_compile): Reenable global regalloc in methods ++ with exception handlers. ++ ++ * linear-scan.c (mono_varlist_sort): Fix warning. ++ ++ * linear-scan.c (mono_linear_scan): Fix computation of used_regs. ++ ++ * mini-x86.c (mono_arch_regalloc_cost): Reenable precise computation of ++ regalloc costs. ++ ++ * liveness.c: Make all variables uses in exception clauses volatile, to ++ prevent them from being allocated to registers. Fixes #42136. ++ ++2004-02-25 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_regalloc_cost): Revert this change since it ++ causes regressions. ++ ++ * mini.h linear-scan.c mini-x86.c mini-sparc.c mini-ppc.c: Add 'cfg' ++ argument to mono_arch_regalloc_cost. ++ ++ * mini-x86.c (mono_arch_regalloc_cost): Compute regalloc costs ++ precisely. ++ ++2004-02-24 Zoltan Varga ++ ++ * mini.h mini-x86.c mini-ppc.c mini-sparc.c linear-scan.c: ++ Make the cost of allocating a variable to a register arch dependent. ++ ++ * basic-calls.cs: Fix compilation of tests. ++ ++ * mini.h mini.c tramp-x86.c mini-x86.c: Add mono_running_on_valgrind () ++ helper function to cut back on the number of #ifdefs needed. ++ ++ * mini-ppc.c: Fix compilation. ++ ++ * basic-calls.cs: New regression tests. ++ ++ * mini-sparc.c (mono_sparc_is_virtual_call): New helper function. ++ ++ * tramp-sparc.c (create_specific_trampoline): Use g5 register instead ++ of l0 since that is callee saved. ++ ++ * tramp-sparc.c (sparc_magic_trampoline): Apply unbox trampoline only ++ to virtual calls. ++ ++ * mini-sparc.c: Ongoing work + flag virtual calls with a special kind ++ of delay instruction. ++ ++ * inssel.brg (OP_CHECK_THIS): Set tree->sreg1 and dreg correctly. ++ ++ * mini.h (MonoCallInst): Add 'virtual' flag. ++ ++ * inssel.brg (mini_emit_virtual_call): Set 'virtual' flag. ++ ++2004-02-23 Zoltan Varga ++ ++ * *.cs: New regression tests. ++ ++ * mini-sparc.c inssel-sparc.brg: Update after latest changes. Ongoing sparc ++ work. ++ ++ * mini.c (mono_runtime_install_handlers): Fix build. ++ ++ * mini.h (MonoJitTlsData): Add 'stack_size', 'signal_stack' and ++ 'signal_stack_size' members. ++ ++ * mini.h mini.c mini-x86.h mini-x86.c: Run sigsegv handlers on an ++ alternate signal stack. ++ ++ * exceptions-x86.c: Add stack overflow handling. ++ ++ * mini.h mini.c mini-x86.c mini-ppc.c trace.h trace.c: Move tracing ++ functions to arch independent code. ++ ++ * mini.c (mono_print_tree): Print more detailed info for load_membase ++ opcodes. ++ ++2004-02-23 Martin Baulig ++ ++ * mini.c (mini_get_method): Set `gmethod->generic_inst'. ++ ++Sun Feb 22 22:25:19 CET 2004 Paolo Molaro ++ ++ * mini-x86.c: fixed reg allocation for div/rem. ++ ++2004-02-22 Miguel de Icaza ++ ++ * driver.c (mono_main): Report some configuratio options on --version. ++ ++Fri Feb 20 11:01:44 PST 2004 Paolo Molaro ++ ++ * mini-ppc.c: fixed clt.un, cgt.un. Optimized calls to functions ++ low in the address space. Correctly flush memory in thunks where we ++ output native code. ++ ++2004-02-20 Martin Baulig ++ ++ * mini.c (mini_get_method): New static method; inflate all generic ++ methods and methods in open generic instances. ++ (mono_method_to_ir): Use mini_get_method() instead of mono_get_method(). ++ (ret_type_to_call_opcode): Added support for MONO_TYPE_GENERICINST. ++ ++2004-02-19 Zoltan Varga ++ ++ * mini-sparc.c (mono_arch_patch_code): Update after domain->code_mp changes. ++ ++ * tramp-sparc.c (mono_arch_create_jump_trampoline): Set ji->method. ++ ++2004-02-19 Bernie Solomon ++ ++ * helpers.c (mono_disassemble_code): use Sun's dis if not using gcc ++ ++ * mini-sparc.c (flushi mono_arch_output_basic_block): make ++ it compile using Sun's compiler. ++ ++2004-02-19 Zoltan Varga ++ ++ * mini-ops.h inssel-sparc.brg cpu-sparc.md mini-sparc.h mini-sparc.c tramp-sparc.c exceptions-sparc.c: Sparc port, part I. ++ ++ * basic-calls.cs basic-float.cs basic-long.cs objects.cs: New regression tests. ++ ++Tue Feb 17 21:41:20 CET 2004 Paolo Molaro ++ ++ * aot.c, mini-x86.c, mini.c: use the code manager instead of a mempool to hold native ++ code. ++ * mini-ppc.c: handle calls outside of the allowed range with thunks ++ allocated using the code manager. ++ * tramp-ppc.c: use the code manager to hold generated native code. ++ Fixed the magic trampoline to just patch vtable entries. ++ ++2004-02-17 Zoltan Varga ++ ++ * inssel.brg inssel-x86.brg: Move call(immediate) rules to the platform ++ independent file. ++ ++2004-02-16 Zoltan Varga ++ ++ * tramp-ppc.c (mono_arch_create_jump_trampoline): Fix compilation on ++ PPC. ++ ++ * mini-x86.c: Call mono_arch_get_lmf_addr instead of mono_get_lmf_addr ++ if we have a working __thread implementation. ++ ++ * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Remove ++ OP_CALL_IMM opcodes, since the CALL opcodes handles immediates as well. ++ ++2004-02-15 Zoltan Varga ++ ++ * mini-x86.c: Fix compilation under gcc 2. ++ ++2004-02-14 Zoltan Varga ++ ++ * mini.c (mono_codegen): Avoid infinite loop when an icall wrapper ++ contains a call to the wrapped function. ++ ++ * mini-ops.h cpu-pentium.md mini-x86.c inssel-x86.brg: Add ++ OP__IMM opcodes, and use them under X86. ++ ++ * mini.c (mono_jit_find_compiled_method): Fix warning. ++ ++ * cpu-pentium.md: Fix length of opcodes which use x86_alu_membase_imm. ++ ++ * jit-icalls.c (mono_ldftn_nosync): New JIT icall. ++ ++ * tramp-x86.c (mono_arch_create_jump_trampoline): Move arch independent ++ functionality to mini.c. ++ ++ * mini.c (mono_create_jump_trampoline): New function to create a jump ++ trampoline. Return a compiled method instead of a trampoline if it ++ exists. Add a cache for jump trampolines. ++ ++ * mini.c (mono_jit_find_compiled_method): New function to return a ++ compiled method if it exists. ++ ++ * mini-x86.c: Call mono_create_jump_trampoline instead of ++ mono_arch_create_jit_trampoline. ++ ++ * jit-icalls.c (mono_ldftn): Do not compile the method. Instead, return ++ a jump trampoline. Fixes #52092. ++ ++2004-02-11 Zoltan Varga ++ ++ * debug-mini.c (mono_init_debugger): Remove call to mono_verify_corlib, ++ which is not up-to-date. Add check_corlib_version () instead. ++ ++ * mini.c (mini_init): Call mono_thread_attach () so embedders do not ++ have to call it. ++ ++ * mini.c (mono_runtime_install_handlers): Remove check for valgrind ++ since newer valgrind versions do not need it. ++ ++ * mini.c (mono_jit_compile_method_with_opt): New helper function to ++ compile a method with a given set of optimizations. ++ ++ * mini.c: Compile icall wrappers on-demand instead of at startup. ++ ++ * mini-sparc.c mini-ppc.c: Call mono_icall_get_wrapper to obtain the ++ wrapper for an icall. ++ ++2004-02-10 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Handle switch with non-empty stack. Fixes ++ #54063. ++ ++ * iltests.il: Add test for non-empty stack before switch instruction. ++ ++2004-02-02 Zoltan Varga ++ ++ * mini.c: Add support for new stringbuilder marshalling conventions. ++ ++ * mini.c (mono_method_to_ir): Fix stack management of generic CEE_BOX. ++ ++2004-02-01 Martin Baulig ++ ++ * mini.c (MTYPE_PARAM_TO_TYPE): Method type arguments are stored ++ in `ginst->mtype_argv'. ++ ++2004-01-31 Miguel de Icaza ++ ++ * mini.c: Add comments, replace CEE_XXX+128 with OP_XXX to ++ facilitate grepping. ++ ++Wed Jan 28 14:04:58 CET 2004 Paolo Molaro ++ ++ * mini.c: fixed buglet in initobj generic implementation for references. ++ ++Fri Jan 23 16:10:44 EST 2004 Paolo Molaro ++ ++ * Makefile.am: make the version script conditional. ++ * jit-icalls.c: handle missing truncl(). ++ ++2004-01-23 Zoltan Varga ++ ++ * exceptions.cs: Add more tests for double->int conversion. ++ ++ * jit-icalls.c (mono_fconv_ovf_i8): Call truncl before comparison, so ++ we don't throw exceptions when converting 1.1 to a long. Fixes #53250. ++ ++Fri Jan 23 17:12:08 CET 2004 Paolo Molaro ++ ++ * driver.c: make --verbose --version emit an error ++ if the loaded corlib doesn't match the runtime version. ++ ++Mon Jan 19 17:44:50 CET 2004 Paolo Molaro ++ ++ * mini-ppc.h: export ppc_patch(). ++ * mini-ppc.c: call convention fixes. Added assert in ppc_patch(). ++ * tramp-ppc.c: call convention fixes: Linux/PPC support should be ++ on par or better than on MacOSX. ++ ++2004-01-19 Zoltan Varga ++ ++ * mini.c tramp-x86.c tramp-sparc.c: Updated after changes to ++ mono_lookup_pinvoke_call. ++ ++ * mini-x86.c: Under windows, the default pinvoke calling convention is ++ stdcall. Fixes #52834. ++ ++ * mini.c (optimize_branches): Add an upper bound to the number of ++ iterations to prevent infinite loops on strange loops. Fixes #53003. ++ ++2004-01-16 Zoltan Varga ++ ++ * inssel.brg: Add vectors<->one dimensional array checking to CASTCLASS ++ and ISINST. Fixes #52093. ++ ++ * objects.cs (test_0_vector_array_cast): New tests. ++ ++2004-01-15 Zoltan Varga ++ ++ * jit-icalls.c (helper_stelem_ref_check): New jit icall for array type ++ checking in Array.Set (). ++ ++ * mini.c (method_to_ir): Add array type checking in Array.Set (). Fixes ++ #52590. ++ ++ * object.cs (test_0_multi_array_cast): New regression test. ++ ++Thu Jan 15 16:30:24 CET 2004 Paolo Molaro ++ ++ * exceptions-ppc.c: fix build on Linux/PPC. ++ ++2004-01-14 Zoltan Varga ++ ++ * tramp-x86.c (x86_magic_trampoline): Disable code patching when ++ running under valgrind. ++ (x86_magic_trampoline): Fix build bustage. ++ ++ * debug-mini.c: Modify the debug info serialize/deserialize code so it handles ++ negative values as well. This is needed for the encoding of the line number ++ info, since sometimes the line numbers are not in increasing order. ++ ++2004-01-13 Zoltan Varga ++ ++ * cpu-pentium.md (localloc): Increase the size of the localloc ++ instruction since it is a loop under Win32. ++ ++ * debug-mini.c (record_line_number): Get rid of unneccesary memory ++ allocation. ++ ++2004-01-09 Zoltan Varga ++ ++ * exceptions-ppc.c exceptions-x86.c exceptions-sparc.c ++ tramp-x86.c tramp-ppc.c tramp-sparc.c: Applied patch from ++ Max Horn (max@quendi.de). Fix file names in comments. ++ ++2004-01-03 Zoltan Varga ++ ++ * ssa.c (mono_ssa_rename_vars): Allocate new_stack on the heap to ++ avoid stack overflow. ++ (replace_usage): Avoid uninitialized variable warnings. ++ ++ * mini.c (mono_method_to_ir): Avoid disabling SSA for array operations ++ and taking the address of valuetype variables. ++ ++2004-01-03 Patrik Torstensson ++ ++ * mini-x86.c: renamed fpflags to flags in RegTrack, going to be used ++ for other purposes than FP later on. ++ ++2004-01-02 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Prevent register allocation for arguments ++ of tail calls. ++ ++Fri Jan 2 13:37:25 CET 2004 Paolo Molaro ++ ++ * mini-ops.h, mini.c, inssel.brg: Object.GetType () speedup. ++ ++2003-12-30 Patrik Torstensson ++ ++ * mini-x86.h: Decreased number of availiable fp regs. ++ Solves corner cases with FP spilling. ++ ++2003-12-23 Patrik Torstensson ++ ++ * mini-x86.c, mini-ops.h, cpu-pentium.md: Added support ++ for floating point stack tracking / spilling on x86. ++ Fixes bug #49012. ++ ++ * basic-float.cs: added float mul overflow test. ++ ++2003-12-23 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Add workaround for bug #51126. ++ ++Sun Dec 21 19:53:16 CET 2003 Paolo Molaro ++ ++ * mini.h, mini-ppc.c, mini-ppc.h: small cleanups and ++ supports for cond branches that overflow the immediate ++ overflow offset. mcs can compile simple programs. ++ ++Fri Dec 19 21:17:16 CET 2003 Paolo Molaro ++ ++ * exceptions-ppc.c: exception handling support wip: ++ finally handlers get run on exception. ++ ++2003-12-19 Zoltan Varga ++ ++ * aot.c (mono_aot_get_method_inner): Avoid loading AOT code while ++ profiling. ++ ++Fri Dec 19 17:58:28 CET 2003 Paolo Molaro ++ ++ * cpu-g4.md, mini-ppc.c, exceptions-ppc.c, mini-ppc.h: ++ initial support for stack walking and unwinding. ++ ++2003-12-18 Zoltan Varga ++ ++ * driver.c (mono_main): Make corlib-out-of-sync message more ++ descriptive. Also remove verify_corlib call. ++ ++Wed Dec 17 15:31:41 CET 2003 Paolo Molaro ++ ++ * mini.c: make CEE_NEWARR calls and other emulated opcodes ++ not overlap with other call's arguments, too. ++ ++Wed Dec 17 12:49:23 CET 2003 Paolo Molaro ++ ++ * mini.h, mini.c, mini-ppc.c, mini-sparc.c, mini-x86.c: ++ move to arch-specific code the choice of arch-specific ++ intrinsics (from Laurent Morichetti (l_m@pacbell.net)). ++ * mini.c: ensure emulation calls will not interleave ++ with other calls. ++ ++Wed Dec 17 12:27:26 CET 2003 Paolo Molaro ++ ++ * tramp-ppc.c, basic-calls.cs: rework trampolines so that ++ the magic trampoline stack frame is dropped before executing ++ the new method. ++ ++Mon Dec 15 18:13:57 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed some opcode lengths ++ and integer to fp conversions. Added support for overflowing ++ arguments on the stack. Reserve a couple more registers as temps. ++ Added support for aot compilation (as output still needs to be ++ tweaked, though). ++ ++Sat Dec 13 17:49:10 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, basic-long.cs: fix jumps to known labels. ++ Don't overwrite return register in some corner cases. ++ ++2003-12-13 Zoltan Varga ++ ++ * mini.h mini.c driver.c mini-x86.c mini-ppc.c aot.c: Do not run ++ static constructors when AOT compiling. ++ ++ * driver.c (mono_main): Call mono_check_corlib_version. ++ ++Sat Dec 13 10:31:12 CET 2003 Paolo Molaro ++ ++ * cpu-g4.md, basic.cs: fixed div target register. ++ ++Sat Dec 13 09:45:56 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, basic.cs: shl_imm fix with test. ++ ++Fri Dec 12 21:25:14 CET 2003 Paolo Molaro ++ ++ * inssel-ppc.brg, mini-ppc.h, mini-ppc.c: support for passing ++ structures by value. Misc fixes. ++ * objects.cs: more tests. ++ ++Fri Dec 12 10:11:49 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c: lconv.ovf.i implemented. ++ ++2003-12-10 Gonzalo Paniagua Javier ++ ++ * mini.c: ++ (mini_init): don't error out if someone already called g_thread_init. ++ ++Tue Dec 9 17:27:14 CET 2003 Paolo Molaro ++ ++ * exceptions-x86.c, exceptions-ppc.c: allow the exception object ++ to be any type per the spec. Fix abnormal memory usage when ++ the same object is repeatedly thrown. ++ ++Tue Dec 9 15:39:54 CET 2003 Paolo Molaro ++ ++ * mini.c: check for overruns in IL code. ++ ++2003-12-09 Zoltan Varga ++ ++ * TODO: Add/remove some todo entries. ++ ++2003-12-08 Zoltan Varga ++ ++ * driver.c (mono_main): Call mono_verify_corlib. ++ ++2003-12-07 Lluis Sanchez Gual ++ ++ * inssel.brg: In CEE_ISINST and CEE_CASTCLASS, removed check for proxy. ++ This has been moved to mini.c ++ * mini.c: in mono_method_to_ir, CEE_ISINST and CEE_CASTCLASS cases, if the ++ type being casted is marshalbyref it could be a proxy, so instead of ++ emitting the type check code, emit a call to a runtime method that will ++ perform the check by calling CanCastTo if needed. ++ ++2003-12-06 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_prolog): Fix stack space allocation for ++ methods with large stack frames under Win32. ++ ++2003-12-04 Zoltan Varga ++ ++ * Makefile.am: Distribute regression tests. ++ ++ * mini-x86.c (mono_arch_get_allocatable_int_vars): Sort the var list ++ at the end instead of inserting each variable into the sorted list. ++ ++ * linear-scan.c (mono_varlist_sort): New helper function. ++ ++Wed Dec 3 20:46:28 CET 2003 Paolo Molaro ++ ++ * mini.c: ensure arguments and locals are within bounds. ++ ++Wed Dec 3 17:59:10 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md, basic.cs, basic-long.cs: more tests and ++ related fixes. ++ ++2003-12-03 Zoltan Varga ++ ++ * mini.c (mono_cprop_copy_values): Fix crash. ++ ++ * aot.c: Set verbosity back to 0. ++ ++Wed Dec 3 15:42:27 CET 2003 Paolo Molaro ++ ++ * regalloc.c: complete memory leak fix by Laurent Morichetti ++ (l_m@pacbell.net). ++ ++2003-12-03 Zoltan Varga ++ ++ * driver.c (main_thread_handler): Revert the previous patch. ++ ++ * tramp-x86.c (x86_class_init_trampoline): Avoid patching when running ++ under valgrind. ++ ++ * mini-x86.c (mono_arch_local_regalloc): Do not allocate transient ++ memory from the memory pool. ++ ++ * driver.c (main_thread_handler): Turn on all optimizations when ++ --aot is used. ++ ++ * mini.c (mono_find_jit_opcode_emulation): Turn emul_opcode_hash into ++ an array for better performance. ++ ++ * regalloc.c (mono_regstate_assign): Fix memory leak. ++ ++ * debug-mini.c (mono_debug_serialize_debug_info): New function to ++ serialize the debug info. ++ ++ * debug-mini.c (mono_debug_add_aot_method): New function to load the ++ debug info from the serialized representation. ++ ++ * aot.c: Save debug info into the generated file and load it when ++ loading a method. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump version number. ++ ++Mon Dec 1 16:54:05 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, tramp-ppc.c: save FP arguments in the trampoline. ++ More FP-related fixes. ++ ++Sun Nov 30 19:13:52 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: fixed finally handlers ++ and register allocation buglet. Hello world now runs. ++ ++Fri Nov 28 23:03:05 CET 2003 Paolo Molaro ++ ++ * cpu-g4.md, inssel-ppc.brg, mini-ppc.c: better long return support. ++ * tramp-ppc.c: fixed class init trampoline. ++ * inssel-ppc.brg, mini.c, jit-icalls.c, mini-ppc.h: more emulation. ++ ++Fri Nov 28 16:36:29 CET 2003 Paolo Molaro ++ ++ * cpu-g4.md, inssel-ppc.brg, jit-icalls.c, mini-ppc.c, mini-ppc.h, ++ mini.c: more ppc changes/fixes. ++ ++2003-11-27 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix tail calls with valuetype arguments. ++ Also optimize the case when the arguments are the same in the caller ++ and in the callee. ++ ++ * iltests.il: Add tests for tail calls with valuetype arguments. ++ ++Thu Nov 27 21:06:37 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c: fixes for struct return type. ++ ++Thu Nov 27 19:02:07 CET 2003 Paolo Molaro ++ ++ * mini.h, mini.c, mini-x86.c, mini-ppc.c, mini-sparc.c: move ++ mono_spillvar_offset() to arch-specific code. ++ ++Thu Nov 27 18:30:42 CET 2003 Paolo Molaro ++ ++ * mini-ppc.h, mini-ppc.c: handle some different ABI call convention issues. ++ ++2003-11-27 Zoltan Varga ++ ++ * exceptions-x86.c: Fix stack space leaks. ++ ++ * exceptions-x86.c (mono_arch_find_jit_info): Restore callee saved ++ registers from the lmf if the method has save_lmf set. ++ ++2003-11-26 Zoltan Varga ++ ++ * tramp-x86.c (x86_magic_trampoline): Avoid patching in the addresses ++ of icall wrappers into InvokeInDomain, since these are now per-domain. ++ ++Wed Nov 26 20:15:04 CET 2003 Paolo Molaro ++ ++ * mini-ppc.h, mini-x86.h, mini.c, inssel-ppc.brg, jit-icalls.c: ++ make some opcode emulation and intrinsic ops enabled/disabled ++ according to the architecture. More fixes. ++ ++Wed Nov 26 19:59:09 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, mini-sparc.c, cpu-g4.md: more bug fixes. ++ ++Wed Nov 26 19:18:29 CET 2003 Paolo Molaro ++ ++ * mini.h, inssel.brg, mini-x86.c, mini-ppc.c, mini-sparc.c: move ++ arch-specific handling for 'this' and struct return type to ++ arch-specific code. ++ ++2003-11-26 Gonzalo Paniagua Javier ++ ++ * aot.c: prevent divide by zero error when reporting (it happened with ++ Accessibility.dll). ++ ++2003-11-25 Zoltan Varga ++ ++ * mini.h (inst_switch): Remove unused macro. ++ ++2003-11-25 Gonzalo Paniagua Javier ++ ++ * aot.c: ++ (load_aot_module): free 'info->methods' and 'info' properly. No more ++ "free(): invalid pointer blah" messages when you have an old aot ++ compiled assembly. ++ ++2003-11-21 Lluis Sanchez Gual ++ ++ * jit-icalls.c, mini.c: Added support for context static fields. ++ ++2003-11-18 Zoltan Varga ++ ++ * mini.c (mono_method_blittable): Methods which set LastError are not ++ blittable either. Fixes #51108. ++ ++Tue Nov 18 16:41:37 CET 2003 Paolo Molaro ++ ++ * mini.c: flush icache. ++ * cpu-g4.md, mini-ppc.c, inssel.brg: more fixes. Trace support. ++ ++2003-11-18 Zoltan Varga ++ ++ * mini.c (mono_type_blittable): OBJECT is not blittable. Fixes #47842. ++ ++2003-11-17 Zoltan Varga ++ ++ * tramp-x86.c (x86_class_init_trampoline): Make code patching thread ++ safe on IA32. ++ ++ * mini-x86.c (mono_arch_call_opcode): Disable AOT for methods with ++ vararg calls. ++ ++ * inssel.brg (CEE_MKREFANY): Fix AOT case. ++ ++2003-11-16 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_local_regalloc): Fix regalloc for div ++ instruction when the result is discarded. ++ ++ * iltests.il (test_0_div_regalloc): New regression test. ++ ++ * arrays.cs: Fix compilation error. ++ ++Fri Nov 14 21:34:06 CET 2003 Paolo Molaro ++ ++ * inssel-x86.brg, inssel-float.brg, mini-ops.h: move x86-specific ++ float rules to inssel-x86.brg: sane architectures with FP registers ++ don't need to implement these rules. ++ ++Fri Nov 14 20:52:12 CET 2003 Paolo Molaro ++ ++ * mini-ppc.c, cpu-g4.md, inssel-ppc.brg: updates and fixes to the ppc port. ++ ++Fri Nov 14 17:58:27 CET 2003 Paolo Molaro ++ ++ * mini.h, inssel-long32.brg: fixed endianess issues in int64 ++ implementation of 32 bit systems. ++ ++Thu Nov 13 16:14:41 CET 2003 Paolo Molaro ++ ++ * exceptions-ppc.c: fix build on Linux/ppc from Jeroen@xs4all.nl ++ (Jeroen Zwartepoorte). ++ ++2003-11-12 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Use CEE_JMP only if the signature of ++ the caller and the callee matches. ++ ++ * mini.c (mono_method_to_ir): Add comment. ++ ++ * mini-x86.c (mono_arch_output_basic_block): Use mono_signbit, since ++ signbit is missing on some platforms. ++ ++2003-11-06 Zoltan Varga ++ ++ * mini.h (mono_arch_setup_jit_tls_data): New arch specific function. ++ ++ * mini.c (setup_jit_tls_data): Call the new function. ++ ++ * mini-x86.c mini-ppc.c mini-sparc.c: Define the new function. ++ ++ * mini-x86.c: Add experimental support for fast access to the lmf ++ structure under NPTL/Linux 2.6.x. ++ ++2003-11-06 Martin Baulig ++ ++ * ldscript: Make `GC_push_all_stack', `GC_start_blocking', ++ `GC_end_blocking' and 'gc_thread_vtable' public; they're used by ++ the debugger. ++ ++2003-11-02 Martin Baulig ++ ++ * mini.c (inflate_generic_field): New static method. ++ (mono_method_to_ir): In CEE_LDFLD and CEE_LDSFLD: if we're a ++ generic instance and the field is declared in a generic type, call ++ inflate_generic_field() to inflate it. Fixes gen-28.cs. ++ ++2003-10-31 Zoltan Varga ++ ++ * mini.h mini.c (mono_method_same_domain): New function to return ++ whenever the caller and the callee are in the same domain. ++ ++ * tramp-x86.c (x86_magic_trampoline): Use the new function. ++ ++2003-10-30 Martin Baulig ++ ++ * mini.c (MTYPE_PARAM_TO_TYPE, MTYPE_PARAM_TO_CLASS): New macros; ++ similar to TYPE_PARAM_TO_TYPE and TYPE_PARAM_TO_CLASS, but for ++ method parameters. ++ (mono_method_to_ir): Added support for MONO_TYPE_MVAR; similar to ++ MONO_TYPE_VAR, we the actual types from MTYPE_PARAM_TO_CLASS(). ++ ++2003-10-29 Zoltan Varga ++ ++ * mini.c mini-ops.h inssel.brg: Implement undeniable exception ++ propagation. ++ ++ * mini.c (sigusr1_signal_handler): Move creation of the thread abort ++ object here, so it is in the correct appdomain etc. ++ ++2003-10-27 Zoltan Varga ++ ++ * mini.c (mono_jit_compile_method_inner): Lookup icalls here if not ++ already done. ++ (mono_method_to_ir): Avoid freeing the type created returned from ++ mono_type_create_from_typespec, since it is put into an internal cache ++ by the function. Fixes pointer.exe. ++ ++ * mini.c tramp-x86.c tramp-sparc.c tramp-ppc.c: Use the normal ++ trampolines for icalls and pinvokes as well. Fixes #33569. ++ ++2003-10-24 Zoltan Varga ++ ++ * mini.c: Update after appdomain changes. ++ ++ * mini.c (mono_jit_compile_method_inner): Allways compile native ++ method wrappers in the root domain, since there can only be one ++ instance of them, whose address is stored in method->info. ++ ++2003-10-16 Zoltan Varga ++ ++ * mini.c (mono_runtime_install_handlers): Get rid of the MONO_VALGRIND ++ environment variable. Instead detect automatically whenever running ++ under valgrind using the magic macro RUNNING_ON_VALGRIND from ++ valgrind.h. ++ ++2003-10-16 Miguel de Icaza ++ ++ * trace.c, trace.h: New files that implement the new trace option ++ parsing. ++ ++ * driver.c: Document new --trace options. ++ ++ * exceptions-ppc.c, exceptions-x86.c, mini-ppc.c, mini-sparc.c, ++ mini-x86.c: Apply: ++ ++ - if (mono_jit_trace_calls) ++ + if (mono_jit_trace_calls != NULL && mono_trace_eval (method)) ++ ++ * mini.h: prototypes. ++ ++2003-10-15 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Fix initialization of typedbyref locals. ++ ++ * mini.c inssel.brg: Implement typedefbyref opcodes. ++ ++ * mini.c (mono_jit_compile_method): Remove unused local variable. ++ ++ * mini.c (mono_jit_compile_method_inner): Ditto. ++ ++2003-10-12 Zoltan Varga ++ ++ * tramp-x86.c (x86_class_init_trampoline): Fix build. ++ ++ * tramp-x86.c (x86_class_init_trampoline): Thread safety fixes. ++ ++2003-10-10 Zoltan Varga ++ ++ * mini.c (mono_no_aot): Remove unused global variable. ++ ++ * mini.c: Thread safety fixes. ++ ++2003-10-09 Zoltan Varga ++ ++ * mini.c (mono_create_class_init_trampoline): Add a lock around ++ class_init_hash_addr. ++ ++ * arrays.cs (test_0_newarr_emulation): Add new regression test for ++ #30073. ++ ++ * mini.c: Decompose the NEWARR instruction before decomposing its ++ arguments. Fixes #30073. ++ ++2003-10-08 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_emit_epilog): Add support for stdcall calling ++ convention. ++ ++2003-10-06 Zoltan Varga ++ ++ * mini.c (mono_method_to_ir): Allow wrapper data for CEE_LDELEMA. ++ ++ * inssel-x86.brg (OP_LOCALLOC): Fix register assignment for localloc. ++ ++ * driver.c: Add support for compiling icall wrappers to --compile. ++ ++2003-10-05 Zoltan Varga ++ ++ * inssel.brg: The empty value in class->interface_offsets is -1, not ++ 0. Fixes #49287. ++ ++2003-10-03 Zoltan Varga ++ ++ * objects.cs: New test for 'is' operator on an array of interfaces. ++ ++Wed Oct 1 19:40:02 CEST 2003 Paolo Molaro ++ ++ * tramp-ppc.c: update trampoline code to support jumps ++ and class initialization. ++ ++2003-09-30 Zoltan Varga ++ ++ * mini.c (mono_jit_compile_method): Fix reading of freed memory. ++ ++ * inssel.brg (OP_UNBOXCAST): Fix #46027. ++ ++ * inssel.brg (OP_UNBOX): Remove unused rule. ++ ++ * mini.h mini.c inssel-x86.brg: Allocate one SP variable for each ++ region instead of one for each method. Fixes #47813. ++ ++2003-09-29 Zoltan Varga ++ ++ * exceptions.cs (test_0_nested_finally): New regression test for ++ nested exception handlers. ++ ++ * mini.c (mono_jit_runtime_invoke): Fix for the previous fix. ++ ++ * mini.c (mono_method_to_ir): Avoid inlining tail calls. ++ ++ * mini.c (mono_method_to_ir): Fix tail recursion in the presence of ++ inlining. ++ ++ * mini.c (mono_method_check_inlining): Make the inlining limit ++ configurable by an environment variable. ++ ++ * mini.c (mono_jit_runtime_invoke): Add Gonzalo's fix for #36545. ++ ++ * mini.h: Bump AOT file version. ++ ++ * mini.h mini.c aot.c mini-x86.c: For relocations which refer to a ++ token, store the image along with the token, since the token might not ++ refer to the same image as the method containing the relocation, ++ because of inlining. ++ ++2003-09-27 Zoltan Varga ++ ++ * mini.c (mono_precompile_assemblies): New function to compile ++ all methods in all loaded assemblies. ++ ++ * mini.h driver.c: Added new optimization flag MONO_OPT_PRECOMP. ++ ++ * regalloc.h regalloc.c (MonoRegState): Change the type of ++ iassign and fassign to int*, since they can contain large negative ++ values if the register is spilled. Also added some comments. Fixes ++ #45817. ++ ++ * exceptions-x86.c (seh_handler): Fix handling of system exceptions ++ under Win32. Fixes #42964. ++ ++2003-09-26 Zoltan Varga ++ ++ * mini.h (MONO_PATCH_INFO_WRAPPER): New patch type. ++ ++ * aot.c: Added support for AOT compiling methods which contain calls ++ to wrappers. Currently, only remoting-invoke-with-check wrappers are ++ handled. ++ ++ * driver.c (compile_all_methods): Run the compilation in a thread ++ managed by mono. Fixes #44023. ++ ++ * mini.c (mono_codegen): Print full method name in verbose output. ++ ++ * mini-x86.c (mono_arch_patch_code): Fix warning. ++ ++ * mini-x86.c (mono_arch_patch_code): Allways create a trampoline for ++ jumps, since the method we are jumping to might be domain-specific. ++ ++ * aot.c: Added support for MONO_PATCH_INFO_METHOD_JUMP. ++ ++Tue Sep 23 10:50:27 CEST 2003 Paolo Molaro ++ ++ * inssel.brg: string chars are unsigned. ++ ++2003-09-15 Zoltan Varga ++ ++ * TODO: New todo item. ++ ++ * tramp-x86.c (x86_class_init_trampoline): New trampoline function ++ which calls mono_runtime_class_init and patches the call site to ++ avoid further calls. ++ (mono_arch_create_class_init_trampoline): New arch specific function ++ to create a class init trampoline. ++ (create_trampoline_code): Generalized so it can create ++ class init trampolines as well. ++ ++ * mini.c (helper_sig_class_init_trampoline): New helper variable. ++ (mono_create_class_init_trampoline): New function to create and cache ++ class init trampolines. ++ (mono_find_class_init_trampoline_by_addr): New function to lookup the ++ vtable given the address of a class init trampoline. Used by the ++ patching process. ++ (mono_codegen): Generate a call to a trampoline instead of ++ mono_runtime_class_init in LDSFLD[A]. ++ (mono_codegen): Add relocations for the new trampoline. ++ ++ * mini.h mini-x86.c aot.c: Added a new relocation type: ++ MONO_PATCH_INFO_CLASS_INIT. ++ ++ * mini.h: Bump AOT version number. ++ ++ * aot.c: Create a copy of the loaded code instead of using the original ++ so methods which call each other will be close in memory, improving ++ cache behaviour. ++ ++ * exceptions-x86.c (mono_arch_has_unwind_info): Back out the previous ++ patch since it breaks the regression tests. ++ ++ * exceptions-x86.c (mono_arch_has_unwind_info): Added explicit check ++ for the register saving instruction sequence since the ++ frame_state_for function in glibc 2.3.2 don't seem to detect it. ++ ++2003-09-14 Zoltan Varga ++ ++ * TODO: Fix todo item && remove another. ++ ++2003-09-12 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_patch_code): Fix tail calls broken by a ++ previous checkin. ++ ++ * aot.c: Moved the check for MONO_LASTAOT into the initialization ++ function of the module. ++ ++ * mini.h mini.c aot.c: Added a new optimization flag OPT_AOT for ++ turning on/off the usage of AOT code. Got rid of mono_no_aot and the ++ --no-aot command line option. ++ ++2003-09-11 Zoltan Varga ++ ++ * helpers.c (mono_disassemble_code): Make this work under cygwin. Patch ++ by Bernie Solomon (bernard@ugsolutions.com). ++ ++ * inssel.brg: Refactor the interface offset table related code into ++ its separate functions and add support for the AOT case. ++ ++2003-09-10 Zoltan Varga ++ ++ * aot.c (mono_aot_get_method_inner): Fix memory leak. ++ ++ * aot.c: Added mono_aot_verbose variable and made all debugging ++ output depend on the value of this variable. ++ ++ * aot.c (mono_aot_get_method_inner): Avoid dynamic allocation of ++ method_label and info_label. ++ ++ * mini.h mini-x86.c aot.c: Added a new relocation type ++ MONO_PATCH_INFO_IID for klass->interface_id. ++ ++ * mini.h mini.c driver.c aot.c: Changed mono_aot_get_method to return ++ the MonoJitInfo structure. ++ ++ * mini.c (mono_jit_compile_method): Avoid using non-shared AOT in ++ a non-root appdomain in shared mode. ++ ++Tue Sep 9 16:33:07 CEST 2003 Paolo Molaro ++ ++ * aot.c: make aot loader less verbose. Remove free of unused variable. ++ ++2003-09-08 Zoltan Varga ++ ++ * aot.c (mono_aot_get_method_inner): Fix MONO_PATCH_INFO_IMAGE. ++ ++ * .cvsignore: Added *.dll. ++ ++ * mini.c (mono_print_tree_nl): New function callable while debugging. ++ ++ * mini.c (mono_print_code): Export this. ++ ++ * tramp-x86.c (x86_magic_trampoline): Tell valgrind to recompile the ++ patched code. ++ ++2003-09-05 Zoltan Varga ++ ++ * mini.h (MonoCompile): Added 'jit_info' field. ++ ++ * mini.c (mini_method_compile): Save the generated MonoJitInfo into ++ the cfg structure, since it is needed by the AOT compiler. ++ ++ * mini.h (MONO_AOT_FILE_VERSION): Bump version number. ++ ++ * aot.c: A major rewrite. Changes include: ++ - save exception tables for methods which have them. ++ - cache failed lookups in aot_get_method () to avoid the (slow) calls ++ to g_module_symbol. ++ - reworked the file format so it is now much smaller and needs ++ fewer relocation entries. ++ ++2003-09-04 Zoltan Varga ++ ++ * aot.c (load_aot_module): Fix build bustage on platforms without ++ Boehm GC. ++ ++2003-09-04 Martin Baulig ++ ++ * Makefile.am (INCLUDES): Added $(LIBGC_CFLAGS). ++ ++2003-09-04 Zoltan Varga ++ ++ * TODO: Some new optimization ideas. ++ ++ * aot.c: Move AOT module loading logic here from mono_assembly_open. ++ ++ * aot.c: Save the optimization flags used to compile the code into ++ the AOT module. ++ ++ * mini.h mini-x86.c mini.c aot.c: Added new types of relocations to ++ support emitting domain specific code. ++ ++ * mini.h mini.c aot.c: Modified the JIT so the generated AOT code is ++ no longer domain neutral. It can be made domain neutral by compiling ++ with --optimize=shared. ++ ++ * aot.c (mono_aot_get_method_inner): Allow sharing of AOT methods ++ between appdomains. ++ ++ * driver.c mini.h mini.c: New --no-aot debugging option which disables ++ loading of AOT code. ++ ++ * inssel-x86.brg: Added missing AOTCONST -> OUTARG_VT rule. ++ ++ * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling method ++ if there is no domain neutrality information. ++ ++2003-09-01 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Emit a symbol containing the file ++ format version into the generated library. ++ ++ * mini-x86.c (mono_arch_patch_code): Do not emit the address of the ++ callee method into the caller since one of them could be shared. ++ ++ * mini.h mini-x86.c aot.c: Added two new relocations so throwing ++ system exceptions from AOT code now works. ++ ++ * tramp-x86.c (x86_magic_trampoline): Avoid patching the calling ++ method if it is domain neutral and the callee is not. ++ ++ * graph.c (cfg_emit_one_loop_level): Fix warning. ++ ++2003-08-30 Zoltan Varga ++ ++ * aot.c (mono_compile_assembly): Oops. Remove debugging cruft from ++ last checkin. ++ ++2003-08-29 Zoltan Varga ++ ++ * mini.c (mini_init): Call mono_marshal_init () explicitly since it ++ is needed by code which is executed before mono_runtime_init (). ++ Thanks to Bernie Solomon (bernard@ugsolutions.com) for noticing this. ++ ++ * mini.c (mono_thread_abort): Fix warning. ++ (mono_jit_compile_method): Call static constructor in the AOT case too. ++ ++ * aot.c (mono_compile_assembly): Fix warning. ++ ++2003-08-28 Gonzalo Paniagua Javier ++ ++ * mini.c: register a SIGINT handler if MONO_DEBUG is defined. ++ ++2003-08-28 Zoltan Varga ++ ++ * inssel.brg (OP_UNBOXCAST): Add support for the AOT case. ++ ++ * cpu-pentium.md: Fix the length of call opcodes so they include the ++ ESP restoring instruction. Fixes #47968. ++ ++2003-08-28 Martin Baulig ++ ++ * mini-x86.c (mono_arch_call_opcode): Added support for ++ MONO_TYPE_GENERICINST. ++ ++ * mini.c (check_call_signature): Added support for MONO_TYPE_GENERICINST. ++ ++2003-08-27 Zoltan Varga ++ ++ * Makefile.am (BUILT_SOURCES): Fix compilation on platforms without ++ a JIT. Patch by Bernie Solomon (bernard@ugsolutions.com). ++ ++ * mini.c jit-icalls.c tramp-x86.c tramp-ppc.c tramp-sparc.c: Get rid of ++ metadata_section. ++ ++2003-08-26 Martin Baulig ++ ++ * mini.c (get_basic_blocks): Added `unsigned char **pos' argument; ++ when reporting an error, set this to the actual error location. ++ (mono_method_to_ir): Report the correct error location if ++ get_basic_blocks() returned an error. ++ ++2003-08-25 Zoltan Varga ++ ++ * mini.c (mono_type_blittable): OBJECT is not blittable. ++ (mono_method_blittable): Methods which have marshalling descriptors ++ are not blittable either. Fixes #47842. ++ ++2003-08-22 Zoltan Varga ++ ++ * driver.c mini.c: Use an environment variable instead of a global ++ variable. Also fix the build. ++ ++ * mini.c (mini_init): Call g_thread_init () to make glib thread-safe. ++ Fixes #47682. Thanks to Laurent Morichetti (l_m@pacbell.net) for ++ reporting this. ++ ++ * driver.c mini.c: Added --with-valgrind option to turn off some ++ code which prevents mono from running under valgrind. ++ ++ * mini.c (mono_emit_call_args): Fixed warning. ++ ++ * mini.c (mono_emulate_opcode): Fixed warning. ++ ++Thu Aug 21 19:10:08 CEST 2003 Paolo Molaro ++ ++ * inssel.brg: 64bit fixes from Laurent Morichetti . ++ * linear-scan.c, mini-ppc.h, mini-sparc.h, mini-x86.h, mini.h, ++ regalloc.c, regalloc.h: specify available registers in arch-specific ++ code and support floats in the regallocator (patch by Laurent Morichetti ++ ) ++ ++Wed Aug 20 19:02:22 CEST 2003 Paolo Molaro ++ ++ * mini.c: mono_thread_current() can be called only after ++ mono_runtime_init(): rearrange code to not call it early on. ++ ++Wed Aug 20 13:14:31 CEST 2003 Paolo Molaro ++ ++ * mini.c: allocate jump tables in the code mempools. ++ ++Wed Aug 20 13:04:53 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini.h: make sure per-thread data allocated by the jit is ++ freed. ++ ++2003-08-10 Miguel de Icaza ++ ++ * cpu-pentium.md (ldtoken): Change the length for mul.ovf.un from ++ 12 to 16. This fixes bug #47453. ++ ++ ++Thu Aug 7 15:59:35 CEST 2003 Paolo Molaro ++ ++ * mini-ppc.c: fixed indexed load and unsigned compares. ++ ++2003-08-06 Lluis Sanchez Gual ++ ++ * mini.c: reenabled installation of handler for ++ thread abort signal. ++ ++Tue Aug 5 12:21:08 CEST 2003 Paolo Molaro ++ ++ * cprop.c, mini-x86.c, cpu-pentium.md: fix buglets spotted ++ by Laurent Morichetti . Disabled local cprop ++ until it's fixed and actually useful. ++ ++Mon Aug 4 12:12:26 CEST 2003 Paolo Molaro ++ ++ * inssel-long32.brg: couple more opcodes implemented. ++ ++Thu Jul 31 22:43:02 EDT 2003 Mark Crichton ++ ++ * mini-sparc.c: Even more opcodes implemeted. ++ ++Thu Jul 31 19:36:03 EDT 2003 Mark Crichton ++ ++ * mini-sparc.c: More opcodes implemented. ++ ++Thu Jul 31 15:16:26 EDT 2003 Mark Crichton ++ ++ * mini-sparc.c: More opcodes implemented. ++ ++Wed Jul 30 22:31:02 EDT 2003 Mark Crichton ++ ++ * inssel-sparc.brg: Add some needed rules. Direct ++ copy from PPC. ++ * Makefile.am: Use inssel-sparc.brg ++ * exceptions-sparc.c: 0xdeadbeef/0xdecafbad to keep ++ an assert happy for now. ++ ++Wed Jul 30 20:44:07 EDT 2003 Mark Crichton ++ ++ * mini-sparc.c: Fixed compile errors. ++ * exceptions-sparc.c: Same. We now produce a mono binary ++ on sparc-linux. Yea. ++ ++Wed Jul 30 14:10:12 EDT 2003 Mark Crichton ++ ++ * mini-sparc.c: Renamed registers. Also some macro cleanups. ++ * exceptions-sparc.c, tramp-sparc.c: Various compile fixes. ++ They compile, but do not work. ++ ++Wed Jul 30 17:52:41 CEST 2003 Paolo Molaro ++ ++ * Makefile.am, cpu-sparc.md, exceptions-sparc.c, mini-sparc.c, ++ mini-sparc.h, tramp-sparc.c: Beginning of sparc support ++ from Mark Crichton and Christopher Taylor ++ (ct@gentoo.org). ++ ++Tue Jul 29 12:43:08 CEST 2003 Paolo Molaro ++ ++ * mini.c: more opcodes implemented and better support for generics. ++ ++Fri Jul 25 18:51:45 CEST 2003 Paolo Molaro ++ ++ * cpu-g4.md, cpu-pentium.md: updates for new instructions. ++ * mini.c, mini.h: first cut at generics support: some new instructions ++ added and changed the behaviour of some of the existing ones. ++ ++2003-07-21 Miguel de Icaza ++ ++ * mini.c: Removed definition of metadata_shared mutex here. ++ ++Tue Jul 22 15:21:24 CEST 2003 Paolo Molaro ++ ++ * mini-x86.c: make vararg calls work for instance methods. ++ ++Fri Jul 18 19:26:20 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini.h, mini-x86.c, mini-ppc.c: mono_arch_call_opcode() ++ returns the arguments in a separte list, now. ++ ++Fri Jul 18 13:16:18 CEST 2003 Paolo Molaro ++ ++ * aot.c, mini.c: updates for array type representation changes. ++ ++Fri Jul 18 11:28:28 CEST 2003 Paolo Molaro ++ ++ * mini.c: register function to perform jit shutdown. ++ ++Thu Jul 17 16:02:41 CEST 2003 Paolo Molaro ++ ++ * mini.c: use a faster allocator if possible. ++ ++Thu Jul 17 16:00:39 CEST 2003 Paolo Molaro ++ ++ * aot.c: some cleanups and portability changes. ++ ++Wed Jul 2 11:08:10 CEST 2003 Paolo Molaro ++ ++ * mini.c: use faster allocation for CEE_BOX if possible. ++ ++Mon Jun 30 19:16:33 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini-ops.h, inssel.brg, mini-x86.c: optimized access to fields. ++ Moved inlined mempcy code to its own function so that is can be ++ reused. Added an inline memset function as well (optimized initobj). ++ * cpu-pentium.md, inssel-x86.brg: add and use lea_membase. ++ ++Fri Jun 27 11:19:10 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini-ops.h, inssel.brg: optimized a couple of Array methods. ++ ++Wed Jun 25 13:19:25 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini.h, mini.x86.c, mini-ppc.c: added facility so that ++ arch code can setup the cpu for CLR execution, if needed. ++ We use it on x86 to set the precision of FP operations. ++ ++Tue Jun 17 19:02:55 CEST 2003 Paolo Molaro ++ ++ * mini.c: disable some optimizations if we can guess they'll cost too ++ much for a given method. ++ ++2003-06-17 Zoltan Varga ++ ++ * mini.h mini.c: Rework last patch based on suggestions by Paolo. ++ ++2003-06-17 Zoltan Varga ++ * mini.h mini.c mini-x86.c: Added instruction level coverage ++ info collection support. ++ ++Mon Jun 16 18:13:29 CEST 2003 Paolo Molaro ++ ++ * driver.c, mini-ppc.c, mini-x86.c, mini.c, mini.h: the coverage stuff ++ is now implemented in the profiling API. Get rid of a couple of ++ unnecessary global variables. ++ ++2003-06-15 Nick Drochak ++ ++ * basic-long.cs: tests for negative values for bigmul, and unsigned. ++ * cpu-g4.md: add op_bigmul and op_bigmul_un ++ * cpu_pentium.md: add op_bigmul_un ++ * inssel-long32.brg: add rule for unsigned bigmul ++ * mini-ops.h: define OP_BIGMUL_UN ++ * mini-x86.c: THE BUG: handle (un)signed properly ++ * mini.c: choose unsigned opcode if needed. ++ This set of patches fixes bug #44291 ++ ++2003-06-13 Dietmar Maurer ++ ++ * mini.c (optimize_branches): improved to handle all kinds of ++ conditional branches. ++ ++Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini.h, jit-icalls.c: speedup emulation of opcodes that ++ don't raise exceptions. ++ ++Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro ++ ++ * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code ++ to arch-specific files. ++ ++2003-06-09 Martin Baulig ++ ++ * Makefile.am (libs): Added $(LIBGC_LIBS). ++ ++Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro ++ ++ * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN ++ and OP_ATAN (fixes bug#44293). ++ ++Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro ++ ++ * Makefile.am, mini-x86.c: rename cpu description array to ++ pentium_desc, since some compilers define the 'pentium' preprocessor ++ symbol. ++ ++2003-05-28 Dietmar Maurer ++ ++ * mini.c (mini_select_instructions): add explicit branch if the ++ following block is not the false target of a conditional branch - ++ we need this with any optimization that reorder or remove bblocks ++ ++ * mini.c (optimize_branches): bug fixes ++ ++2003-06-06 Dietmar Maurer ++ ++ * mini.c (mono_method_to_ir): inline static readonly fields ++ ++ * ssa.c (fold_tree): start cfold support for long (very simple ++ cases only) ++ ++ * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST) ++ ++Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro ++ ++ * inssel.brg: fixed memcpy (bug #44219). ++ ++2003-06-05 Dick Porter ++ ++ * driver.c: Set the glib log levels to not abort if g_message ++ recurses. ++ ++ g_set_prgname() has to happen before mini_init() so that the ++ process handle gets the info. ++ ++Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro ++ ++ * driver.c: add intrins to the default optimizations to get wider ++ exposure. ++ ++Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro ++ ++ * mini.h: some large basic blocks will overflow a 16-bit ++ integers for symbolic registers. ++ ++2003-06-04 Dietmar Maurer ++ ++ * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes. ++ (mono_arch_output_basic_block): fix bug 43499 ++ ++Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro ++ ++ * mini.c: kill duplicated definition of mono_debug_format. ++ ++Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro ++ ++ * mini-x86.c, arrays.cs: fixed register allocation bug. ++ ++2003-06-04 Dietmar Maurer ++ ++ * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1 ++ ++ * mini.c (mini_get_opcode_for_method): inline IEEERemainder ++ ++2003-06-04 Gonzalo Paniagua Javier ++ ++ * mini.c: ++ (print_method_from_ip): also print source location information if ++ available. ++ ++2003-06-02 Dietmar Maurer ++ ++ * mini.c (mono_find_block_region): bug fix in region code ++ (mini_method_compile): enable removing unreachable code again, but ++ only in methods without exception clauses. ++ ++Fri May 30 18:40:24 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h: ++ Implemented arglist opcode and handling of TypedReference type. ++ Fixed x86 call convention when a structure is returned. ++ Minimal support for calling static vararg methods. ++ ++2003-05-30 Dietmar Maurer ++ ++ * mini.c (mini_method_compile): always remove unreachable code, ++ because the code in them may be inconsistent (access to dead ++ variables for example). ++ ++Thu May 29 11:44:49 CEST 2003 Paolo Molaro ++ ++ * driver.c, debug-mini.c: warning fixes. ++ ++Wed May 28 11:19:15 CEST 2003 Paolo Molaro ++ ++ * Makefile.am, jit.h, mini.h: install header for embedding mono. ++ ++Tue May 27 17:56:12 CEST 2003 Paolo Molaro ++ ++ * mini.c: thread-static fields are registered in mono_class_vtable(), ++ so ensure the function is called before checking for them. ++ ++2003-05-27 Dietmar Maurer ++ ++ * mini.c (optimize_branches): fix for bug 43586 ++ ++ * jit-icalls.c (mono_llmult_ovf): added an additional check for ++ overflow (fixes Bug #43639) ++ ++Tue May 27 11:33:53 CEST 2003 Paolo Molaro ++ ++ * mini.c, objects.cs: allow the use of stobj for primitive types. ++ ++Tue May 27 10:33:53 CEST 2003 Paolo Molaro ++ ++ * mini.c: be less strict about argument checking until we support ++ running the verifier. ++ ++2003-05-27 Nick Drochak ++ ++ * basic-long.cs: tests for (ulong)int * (ulong)int also ++ * mini.c: use the same trick for (ulong)int * (ulong)int ++ ++2003-05-27 Nick Drochak ++ ++ * basic-long.cs: add regression test for (long)int * (long)int ++ * cpu-pentium.md: add op_bigmul specification ++ * inssel-long32.brg: add OP_BIGMUL rule ++ * mini-ops.h: add OP_BIGMUL ++ * mini-x86.c: register allocator: handle case where src1 needs to be ++ in EAX. ++ * mini.c: substitute special BIGMUL opcode in the tree for ++ (long)int * (long)int ++ ++Mon May 26 20:20:13 CEST 2003 Paolo Molaro ++ ++ * jit-icalls.c: call the type ctor on field access if needed. ++ ++Mon May 26 15:21:21 CEST 2003 Paolo Molaro ++ ++ * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed ++ to a method (including results of ldelema, bug#43207). ++ ++2003-05-26 Dietmar Maurer ++ ++ * graph.c (cfg_emit_one_loop_level): loop over all blocks. use ++ colors to show exception handler blocks. ++ ++ * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures ++ (fix for pinvoke7.cs). ++ ++Mon May 26 12:11:53 CEST 2003 Paolo Molaro ++ ++ * mini.h, mini.c: ensure correct initialization order for types that ++ require it. Prepare for lazy compilation of jit icall wrappers. ++ Provide a name for opcode emulation to reduce unneeded mallocing. ++ ++Fri May 23 16:08:54 CEST 2003 Paolo Molaro ++ ++ * mini-x86.c: better register restoring code and profiling ++ support for tail calls. ++ ++Fri May 23 15:30:53 CEST 2003 Paolo Molaro ++ ++ * mini.h, driver.c: prepare for leaf methods optimization. ++ ++Fri May 23 15:28:32 CEST 2003 Paolo Molaro ++ ++ * mini.c: get targets of branches before converting a method. ++ ++2003-05-23 Dietmar Maurer ++ ++ * mini.c (optimize_branches): added some experimental code (disbaled) ++ ++2003-05-22 Dietmar Maurer ++ ++ * mini.c (optimize_branches): fix branch to branch optimization ++ ++ * exceptions-x86.c (mono_arch_handle_exception): bug fix. ++ ++ * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code ++ ++ * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER ++ ++ * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf ++ if needed. ++ ++2003-05-21 Dietmar Maurer ++ ++ * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining. ++ enable use of interface variables again. ++ ++ * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate ++ I1 to registers because there is no simply way to sign extend 8bit ++ quantities in caller saved registers on x86. ++ ++ * inssel-float.brg: set costs of some rules to 2 so ++ that monobure always select the arch. specific ones if supplied, ++ regardless of the order we pass the files to monoburg. ++ ++Tue May 20 17:19:14 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini-x86.c: since the magic trampoline for jumps ++ can't patch the code directly, we do it as soon as the ++ method gets compiled. ++ ++Tue May 20 16:02:52 CEST 2003 Paolo Molaro ++ ++ * mini-x86.c, mini.h: introduce a new patching method ++ to support CEE_JMP and tail calls. ++ * mini.c: obey tail.call. Don't precompile methods target ++ of CEE_JMP. ++ * tramp-x86.c: new trampoline code to handle methods ++ reached through a jump. ++ ++2003-05-20 Dietmar Maurer ++ ++ * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16 ++ bit values to registers ++ ++2003-05-19 Dietmar Maurer ++ ++ * mini.c (mono_compile_get_interface_var): share interface ++ variables if possible. ++ ++2003-05-16 Martin Baulig ++ ++ * debug-mini.c (mono_init_debugger): New function to initialize ++ the debugger. This is not in the debugger since it needs to ++ access some of mini's internals. ++ ++2003-05-16 Dietmar Maurer ++ ++ * mini.c (mono_method_to_ir): inlining fixes/cleanups ++ ++Fri May 16 13:27:23 CEST 2003 Paolo Molaro ++ ++ * mini.c, mini-opts.h, inssel.brg: inline small memcpy ++ for value type handling. ++ ++2003-05-16 Dietmar Maurer ++ ++ * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers ++ (mono_method_check_inlining): enable inlining of all kinds of wrappers ++ ++2003-05-15 Lluis Sanchez Gual ++ ++ * mini.c: fixed little bug in CEE_NEWOBJ case when calling ++ the constructor through a proxy. ++ ++Thu May 15 17:17:27 CEST 2003 Paolo Molaro ++ ++ * jit-icalls.c, inssel.brg: fixes to array element address ++ calculations. ++ ++2003-05-15 Dietmar Maurer ++ ++ * mini-x86.c (is_regsize_var): allocate pointer to registers ++ ++Thu May 15 13:04:02 CEST 2003 Paolo Molaro ++ ++ * driver.c: fixed typo, added intrins to the set of optimizations ++ tested with regressions. ++ ++Thu May 15 11:57:42 CEST 2003 Paolo Molaro ++ ++ * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays. ++ * jit-icalls.c, exceptions.cs: fixed index out of range checks, added ++ test case. ++ ++2003-05-14 Dietmar Maurer ++ ++ * inssel.brg: remove some common pop instructions without side effects ++ ++Wed May 14 12:40:31 CEST 2003 Paolo Molaro ++ ++ * inssel-x86.brg: fixed thinko in int to double conversions. ++ ++Wed May 14 12:01:58 CEST 2003 Paolo Molaro ++ ++ * mini.c, jit-icalls.c: added runtime thread-static variable support. ++ ++Tue May 13 22:02:06 CEST 2003 Paolo Molaro ++ ++ * inssel-long32.brg: two more missing instructions. ++ ++2003-05-13 Dietmar Maurer ++ ++ * mini.c (mono_emit_call_args): set the cil_code for all arguments ++ if not already set. ++ ++2003-05-12 Zoltan Varga ++ ++ * mini-x86.c (mono_arch_output_basic_block): Handle negative zero ++ correctly. ++ ++ * basic-float.cs: Added tests for negative zero. ++ ++Sun May 11 14:56:27 CEST 2003 Paolo Molaro ++ ++ * inssel-long32.brg, basic-long.cs, exceptions.cs: handle ++ a couple of missing operations for long casts, with test cases. ++ ++2003-05-11 Gonzalo Paniagua Javier ++ ++ * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception. ++ ++2003-05-09 Dietmar Maurer ++ ++ * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better ++ code size estimation. ++ ++2003-05-08 Dietmar Maurer ++ ++ * mini.c (mono_jit_create_remoting_trampoline): make it work with ++ abstract methods (fix bug 42542) ++ ++ * aot.c: add ability to handle array types ++ ++2003-05-08 Zoltan Varga ++ ++ * mini.c: Call the _specific versions of the object allocation ++ functions if possible. ++ ++Tue May 6 17:18:33 CEST 2003 Paolo Molaro ++ ++ * driver.c: call setlocale (). ++ ++Tue May 6 14:38:22 CEST 2003 Paolo Molaro ++ ++ * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for ++ windows build. ++ ++2003-05-05 Dietmar Maurer ++ ++ * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136) ++ ++ * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting ++ wrappers (fix bug 42122) ++ ++2003-05-04 Martin Baulig ++ ++ * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes. ++ ++ * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g. ++ s/mini_set_defaults/mono_set_defaults/g. ++ ++2003-05-04 Martin Baulig ++ ++ * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g. ++ ++Sun May 4 11:48:08 CEST 2003 Paolo Molaro ++ ++ * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule ++ (reported by Don Roberts). ++ ++Fri May 2 18:36:45 CEST 2003 Paolo Molaro ++ ++ * mini.c: temporarily work around two bugs for this release. ++ ++Fri May 2 17:37:29 CEST 2003 Paolo Molaro ++ ++ * Makefile.am: avoid linking libmono with GMODULE_LIBS, because ++ that contains -export-dynamic and it makes using the ld script ++ useless. ++ * mini.h, main.c, driver.c: s/mini_main/mono_main/g. ++ ++Fri May 2 12:52:32 CEST 2003 Paolo Molaro ++ ++ * mini.h, mini-x86.c, driver.c: disable optimizations not available on a ++ specific cpu. ++ ++Thu May 1 15:28:21 CEST 2003 Paolo Molaro ++ ++ * mini.c: make sure leave calls all the needed finally blocks, ++ even when the target jumps out of multiple exception clauses. ++ ++Thu May 1 15:18:26 CEST 2003 Paolo Molaro ++ ++ * ldscript, Makefile.am: add linker script to reduce the number of ++ exported symbols (should also fix the issues with libwine defining ++ some of the same symbols in io-layer). ++ ++2003-05-01 Zoltan Varga ++ ++ * driver.c (mini_main): Avoid assertion when no file name is given on ++ the command line. ++ ++Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro ++ ++ * driver.c: added --version/-V command line option. ++ Added the inline optimization in the regression tests. ++ ++Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro ++ ++ * mini.c, basic-calls.cs: when inlining, save arguments to locals according ++ to the type in the method signature (fixes bug#42134). ++ ++Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro ++ ++ * mini.c: when inlining, check this is not null only when needed (bug #42135). ++ ++Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro ++ ++ * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn . ++ ++2003-04-30 Gonzalo Paniagua Javier ++ ++ * driver.c: fixed bug #42100. ++ ++2003-04-29 Dietmar Maurer ++ ++ * mini.c (mono_method_to_ir): UNBOX need to CAST objects first ++ ++Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro ++ ++ * mini.c: moved most of the code required to do inlining to its own ++ function so it can be reused. Inline also ctors if appropriate. ++ ++2003-04-28 Zoltan Varga ++ ++ * Makefile.am: Link with -export-dynamic so shared libs loaded by ++ the runtime can call mono API functions. ++ ++2003-04-27 Martin Baulig ++ ++ * debug-mini.c (mono_debug_init_method): Added ++ `guint32 breakpoint_id' argument; if the method has a breakpoint, ++ send a notification to the debugger. ++ ++ * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're ++ running in the Mono Debugger, just pass the breakpoint number to ++ mono_debug_init_method(). ++ ++ * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines. ++ ++Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro ++ ++ * mini.c: allow some more unsafe compares. ++ ++Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro ++ ++ * mini-x86.c, Makefile.am: make distcheck works (partially from ++ a patch by Richard Lee ). ++ * regset.c, regset.h: removed, they are unused. ++ ++2003-04-25 Dick Porter ++ ++ * driver.c: Usage reports the name as 'mono' not 'mini' ++ * exceptions-x86.c: Build and run on freebsd ++ ++Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro ++ ++ * Makefile.am: install the program with the 'mono' name and ++ the library as libmono instead of mini and libmini. ++ ++Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro ++ ++ * driver.c: provide the APIs for the embedding interface of the old jit. ++ ++2003-04-23 Dietmar Maurer ++ ++ * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775) ++ ++2003-04-23 Martin Baulig ++ ++ * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface. ++ ++ * driver.c: Added `--debug' command line argument to enable ++ debugging support. ++ ++2003-04-23 Martin Baulig ++ ++ * debug.[ch]: Removed. The code is now in ++ ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch]. ++ ++ * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the ++ last six months. ++ ++2003-04-22 Dietmar Maurer ++ ++ * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525) ++ ++2003-04-17 Gonzalo Paniagua Javier ++ ++ * mini.c: ++ (mini_cleanup): moved mono_runtime_cleanup call after the call to ++ mono_domain_finalize. ++ (mini_method_compile): use mono_method_profile* if the the option is ++ enabled. ++ ++2003-04-17 Zoltan Varga ++ ++ * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized ++ methods with their wrapper. ++ ++ * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized ++ methods with their wrapper. ++ ++ * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with ++ their wrapper. ++ ++ * mini.c (mono_method_to_ir): Subsitute synchronized methods with their ++ wrapper. ++ ++ * mini.c (mono_method_check_inlining): Avoid inlining synchronized ++ methods. ++ ++2003-04-17 Dietmar Maurer ++ ++ * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252 ++ ++2003-04-16 Dietmar Maurer ++ ++ * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead ++ of the mempool. This is slightly faster and uses less memory ++ ++Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro ++ ++ * mini.c: avoid O(n) allocation for variables. ++ ++Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro ++ ++ * mini.c: handle items on the stack after inlining methods. ++ ++Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro ++ ++ * mini.c: make the method->opcode optimization dependent ++ on MONO_OPT_INSTRINS and do it lazily. ++ ++Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro ++ ++ * driver.c: print overall results at the end of regression run. ++ ++Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro ++ ++ * inssel.brg: don't overwrite symbolic registers. ++ ++Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro ++ ++ * inssel-x86.brg: fix conversion from long to float. ++ ++2003-04-11 Dietmar Maurer ++ ++ * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR) ++ ++2003-04-10 Zoltan Varga ++ ++ * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable. ++ ++ * driver.c: Added --print-vtable option as in the old JIT. ++ ++Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro ++ ++ * inssel-long32.brg, exceptions.cs: fix conversions from long, too. ++ ++Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro ++ ++ * inssel.brg, basic.cs: fixed checked conversions to byte and short. ++ ++2003-04-09 Zoltan Varga ++ ++ * mini.c regalloc.c regalloc.h: Fix memory leak. ++ ++2003-04-09 Dietmar Maurer ++ ++ * aot.c (mono_aot_get_method): register all used strings ++ ++Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro ++ ++ * mini.c: always intern strings references with ldstr at compile time. ++ ++Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro ++ ++ * Makefile.am: add BUILT_SOURCES. ++ ++Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro ++ ++ * driver.c: give a better error message when the assembly to execute ++ doesn't have an entry point. ++ ++2003-04-07 Dietmar Maurer ++ ++ * Makefile.am: added hack for automake ++ ++ * mono/mini/mini.c (mono_save_args): always copy arguments to keep ++ correct sematics. ++ ++ * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls ++ ++22003-04-07 Martin Baulig ++ ++ * Makefile.am: Added Makefile.am. ++ ++ * debugger-main.c: Removed, this is now in the debugger where it ++ belongs. ++ ++ * mini.pc.in: Call this package `mini' for the moment. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff -urNad mono-2.4.4~svn151842~/mono/mini/mini-arm.c mono-2.4.4~svn151842/mono/mini/mini-arm.c +--- mono-2.4.4~svn151842~/mono/mini/mini-arm.c 2009-11-30 17:27:39.000000000 +0100 ++++ mono-2.4.4~svn151842/mono/mini/mini-arm.c 2010-02-22 15:51:11.000000000 +0100 +@@ -2273,6 +2273,12 @@ + return code; + } + ++gboolean ++mono_arm_thumb_supported (void) ++{ ++ return thumb_supported; ++} ++ + /* + * emit_load_volatile_arguments: + * +diff -urNad mono-2.4.4~svn151842~/mono/mini/mini-arm.h mono-2.4.4~svn151842/mono/mini/mini-arm.h +--- mono-2.4.4~svn151842~/mono/mini/mini-arm.h 2009-04-09 22:52:11.000000000 +0200 ++++ mono-2.4.4~svn151842/mono/mini/mini-arm.h 2010-02-22 15:51:11.000000000 +0100 +@@ -181,5 +181,11 @@ + void + mono_arm_throw_exception (MonoObject *exc, unsigned long eip, unsigned long esp, gulong *int_regs, gdouble *fp_regs); + ++void ++mono_arm_throw_exception_by_token (guint32 type_token, unsigned long eip, unsigned long esp, gulong *int_regs, gdouble *fp_regs); ++ ++gboolean ++mono_arm_thumb_supported (void); ++ + #endif /* __MONO_MINI_ARM_H__ */ + +diff -urNad mono-2.4.4~svn151842~/mono/mini/tramp-arm.c mono-2.4.4~svn151842/mono/mini/tramp-arm.c +--- mono-2.4.4~svn151842~/mono/mini/tramp-arm.c 2008-12-12 20:49:41.000000000 +0100 ++++ mono-2.4.4~svn151842/mono/mini/tramp-arm.c 2010-02-22 15:51:11.000000000 +0100 +@@ -40,6 +40,16 @@ + return 0; + } + ++static inline guint8* ++emit_bx (guint8* code, int reg) ++{ ++ if (mono_arm_thumb_supported ()) ++ ARM_BX (code, reg); ++ else ++ ARM_MOV_REG_REG (code, ARMREG_PC, reg); ++ return code; ++} ++ + /* + * mono_arch_get_unbox_trampoline: + * @gsctx: the generic sharing context +@@ -66,7 +76,7 @@ + + ARM_LDR_IMM (code, ARMREG_IP, ARMREG_PC, 4); + ARM_ADD_REG_IMM8 (code, this_pos, this_pos, sizeof (MonoObject)); +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_IP); ++ code = emit_bx (code, ARMREG_IP); + *(guint32*)code = (guint32)addr; + code += 4; + mono_arch_flush_icache (start, code - start); +@@ -210,7 +220,7 @@ + code += 4; + } + ARM_MOV_REG_REG (code, ARMREG_LR, ARMREG_PC); +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_R0); ++ code = emit_bx (code, ARMREG_R0); + + /* we build the MonoLMF structure on the stack - see mini-arm.h + * The pointer to the struct is put in r1. +@@ -269,7 +279,7 @@ + } + + ARM_MOV_REG_REG (code, ARMREG_LR, ARMREG_PC); +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_IP); ++ code = emit_bx (code, ARMREG_IP); + + /* OK, code address is now on r0. Move it to the place on the stack + * where IP was saved (it is now no more useful to us and it can be +@@ -297,7 +307,7 @@ + code += 4; + } + ARM_MOV_REG_REG (code, ARMREG_LR, ARMREG_PC); +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_IP); ++ code = emit_bx (code, ARMREG_IP); + + /* + * Now we restore the MonoLMF (see emit_epilogue in mini-arm.c) +@@ -326,9 +336,9 @@ + /* do we need to set sp? */ + ARM_ADD_REG_IMM8 (code, ARMREG_SP, ARMREG_SP, (14 * 4)); + if ((tramp_type == MONO_TRAMPOLINE_CLASS_INIT) || (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT) || (tramp_type == MONO_TRAMPOLINE_RGCTX_LAZY_FETCH)) +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_LR); ++ code = emit_bx (code, ARMREG_LR); + else +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_IP); ++ code = emit_bx (code, ARMREG_IP); + + constants = (gpointer*)code; + constants [0] = mono_get_lmf_addr; +@@ -367,7 +377,7 @@ + + code = buf = mono_global_codeman_reserve (16); + +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_LR); ++ code = emit_bx (code, ARMREG_LR); + + mono_arch_flush_icache (buf, code - buf); + +@@ -417,7 +427,7 @@ + } else { + ARM_LDR_IMM (code, ARMREG_R1, ARMREG_PC, 8); /* temp reg */ + ARM_MOV_REG_REG (code, ARMREG_LR, ARMREG_PC); +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_R1); ++ code = emit_bx (code, ARMREG_R1); + + constants = (gpointer*)code; + constants [0] = arg1; +@@ -522,7 +532,7 @@ + ARM_B_COND (code, ARMCOND_EQ, 0); + /* otherwise return, result is in R1 */ + ARM_MOV_REG_REG (code, ARMREG_R0, ARMREG_R1); +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_LR); ++ code = emit_bx (code, ARMREG_LR); + + g_assert (njumps <= depth + 2); + for (i = 0; i < njumps; ++i) +@@ -546,8 +556,8 @@ + + /* Jump to the actual trampoline */ + ARM_LDR_IMM (code, ARMREG_R1, ARMREG_PC, 0); /* temp reg */ +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_R1); +- *(guint32*)code = tramp; ++ code = emit_bx (code, ARMREG_R1); ++ *(gpointer*)code = tramp; + code += 4; + } + +@@ -600,8 +610,8 @@ + + /* Jump to the actual trampoline */ + ARM_LDR_IMM (code, ARMREG_R1, ARMREG_PC, 0); /* temp reg */ +- ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_R1); +- *(guint32*)code = tramp; ++ code = emit_bx (code, ARMREG_R1); ++ *(gpointer*)code = tramp; + code += 4; + + mono_arch_flush_icache (buf, code - buf); --- mono-2.4.4~svn151842.orig/debian/patches/fix_CreateDelegate_ArgumentException.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_CreateDelegate_ArgumentException.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_CreateDelegate_ArgumentException.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch taken from upstream SVN revision 130175 +## DP: 2009-03-25 Jb Evain +## DP: * Delegate.cs (CreateDelegate): fix checks to deal with +## DP: valuetypes -> obj conversions for arguments, and avoid +## DP: issues with such unallowed conversion for return types. + +@DPATCH@ +diff -urNad git~/mcs/class/corlib/System/Delegate.cs git/mcs/class/corlib/System/Delegate.cs +--- git~/mcs/class/corlib/System/Delegate.cs 2009-07-15 20:52:46.000000000 +0200 ++++ git/mcs/class/corlib/System/Delegate.cs 2009-09-07 21:55:10.000000000 +0200 +@@ -133,7 +133,7 @@ + + // Delegate contravariance + if (!match) { +- if (!delArgType.IsValueType && (delArgType != typeof (ValueType)) && (argType.IsAssignableFrom (delArgType))) ++ if (!argType.IsValueType && argType.IsAssignableFrom (delArgType)) + match = true; + } + +@@ -147,7 +147,7 @@ + #if NET_2_0 + if (!returnMatch) { + // Delegate covariance +- if (!delReturnType.IsValueType && (delReturnType != typeof (ValueType)) && (delReturnType.IsAssignableFrom (returnType))) ++ if (!returnType.IsValueType && delReturnType.IsAssignableFrom (returnType)) + returnMatch = true; + } + #endif --- mono-2.4.4~svn151842.orig/debian/patches/build_cecil_as_2.0.dpatch +++ mono-2.4.4~svn151842/debian/patches/build_cecil_as_2.0.dpatch @@ -0,0 +1,43 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## build_cecil_as_2.0.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/class/Makefile mono-2.4+dfsg/mcs/class/Makefile +--- mono-2.4+dfsg~/mcs/class/Makefile 2009-05-20 00:07:08.000000000 +0200 ++++ mono-2.4+dfsg/mcs/class/Makefile 2009-05-20 00:12:20.000000000 +0200 +@@ -93,9 +93,7 @@ + OpenSystem.C + + net_1_1_dirs := \ +- FirebirdSql.Data.Firebird \ +- Mono.Cecil \ +- Mono.Cecil.Mdb \ ++ FirebirdSql.Data.Firebird + + net_2_0_dirs := \ + Microsoft.Build.Framework \ +@@ -121,7 +119,9 @@ + System.ServiceModel.Web \ + Mono.Management \ + Mono.Options \ +- Mono.Simd ++ Mono.Simd \ ++ Mono.Cecil \ ++ Mono.Cecil.Mdb + + net_2_1_dirs := \ + corlib \ +diff -urNad mono-2.4+dfsg~/mcs/class/Mono.Cecil/Makefile mono-2.4+dfsg/mcs/class/Mono.Cecil/Makefile +--- mono-2.4+dfsg~/mcs/class/Mono.Cecil/Makefile 2009-02-14 00:51:37.000000000 +0100 ++++ mono-2.4+dfsg/mcs/class/Mono.Cecil/Makefile 2009-05-20 00:11:27.000000000 +0200 +@@ -9,7 +9,7 @@ + + NO_TEST = yes + +-ifneq (net_1_1, $(PROFILE)) ++ifneq (net_2_0, $(PROFILE)) + NO_INSTALL = yes + endif --- mono-2.4.4~svn151842.orig/debian/patches/fix_DynamicMethod_restrictedSkipVisibility_r138886.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_DynamicMethod_restrictedSkipVisibility_r138886.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_DynamicMethod_restrictedSkipVisibility_r138886.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad git~/mcs/class/corlib/System.Reflection.Emit/DynamicMethod.cs git/mcs/class/corlib/System.Reflection.Emit/DynamicMethod.cs +--- git~/mcs/class/corlib/System.Reflection.Emit/DynamicMethod.cs 2009-10-26 21:44:45.000000000 +0100 ++++ git/mcs/class/corlib/System.Reflection.Emit/DynamicMethod.cs 2009-12-13 15:53:46.000000000 +0100 +@@ -92,7 +92,10 @@ + public DynamicMethod (string name, Type returnType, Type[] parameterTypes) : this (name, returnType, parameterTypes, false) { + } + +- public DynamicMethod (string name, Type returnType, Type[] parameterTypes, bool restrictedSkipVisibility) : this (name, MethodAttributes.Public | MethodAttributes.Static, CallingConventions.Standard, returnType, parameterTypes, null, null, false, true) { ++ [MonoTODO ("Visibility is not restricted")] ++ public DynamicMethod (string name, Type returnType, Type[] parameterTypes, bool restrictedSkipVisibility) ++ : this (name, MethodAttributes.Public | MethodAttributes.Static, CallingConventions.Standard, returnType, parameterTypes, null, null, restrictedSkipVisibility, true) ++ { + } + + DynamicMethod (string name, MethodAttributes attributes, CallingConventions callingConvention, Type returnType, Type [] parameterTypes, Type owner, Module m, bool skipVisibility, bool anonHosted) --- mono-2.4.4~svn151842.orig/debian/patches/escape_Lucene.Net_search_string_r148946.dpatch +++ mono-2.4.4~svn151842/debian/patches/escape_Lucene.Net_search_string_r148946.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## escape_Lucene.Net_search_string_r148946.dpatch by Jo Shields +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Backport of upstream SVN revision r148946. Fixes a crash in the documentation +## DP: browser when searching for things like "()" + +@DPATCH@ +--- branches/mono-2-4/mcs/tools/monodoc/Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs 2009/01/20 16:20:03 123891 ++++ branches/mono-2-4/mcs/tools/monodoc/Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs 2009/12/30 20:05:46 148946 +@@ -108,7 +108,7 @@ + static public Query Parse(System.String query, System.String field, Analyzer analyzer) + { + QueryParser parser = new QueryParser(field, analyzer); +- return parser.Parse(query); ++ return parser.Parse(Escape(query)); + } + + /// Constructs a query parser. --- mono-2.4.4~svn151842.orig/debian/patches/fix_tuner_build.dpatch +++ mono-2.4.4~svn151842/debian/patches/fix_tuner_build.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_tuner_build.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/tuner/Makefile mono-2.4+dfsg/mcs/tools/tuner/Makefile +--- mono-2.4+dfsg~/mcs/tools/tuner/Makefile 2009-02-14 00:36:21.000000000 +0100 ++++ mono-2.4+dfsg/mcs/tools/tuner/Makefile 2009-05-21 04:28:34.000000000 +0200 +@@ -2,7 +2,7 @@ + SUBDIRS = + include ../../build/rules.make + +-LINKER = $(topdir)/class/lib/net_1_1/monolinker.exe ++LINKER = $(topdir)/class/lib/net_2_0/monolinker.exe + + LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:$(LINKER) -r:Mono.Cecil.dll + --- mono-2.4.4~svn151842.orig/debian/patches/build_permview_as_2.0.dpatch +++ mono-2.4.4~svn151842/debian/patches/build_permview_as_2.0.dpatch @@ -0,0 +1,21 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## build_permview_as_2.0.dpatch by Mirco Bauer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad mono-2.4+dfsg~/mcs/tools/security/Makefile mono-2.4+dfsg/mcs/tools/security/Makefile +--- mono-2.4+dfsg~/mcs/tools/security/Makefile 2009-02-14 00:36:30.000000000 +0100 ++++ mono-2.4+dfsg/mcs/tools/security/Makefile 2009-05-21 01:31:11.000000000 +0200 +@@ -6,8 +6,8 @@ + LOCAL_MCS_FLAGS = /lib:$(topdir)/class/lib/$(PROFILE) -r:Mono.Security.dll + + SECURITY_PROGRAMS = secutil.exe cert2spc.exe sn.exe makecert.exe chktrust.exe \ +- signcode.exe setreg.exe certmgr.exe caspol.exe permview.exe mozroots.exe +-SECURITY_PROGRAMS_2_0 = httpcfg.exe ++ signcode.exe setreg.exe certmgr.exe caspol.exe mozroots.exe ++SECURITY_PROGRAMS_2_0 = httpcfg.exe permview.exe + + HELPER_SOURCES = AssemblyInfo.cs $(topdir)/build/common/Consts.cs + SN_SOURCES = sn.cs StrongNameManager.cs $(HELPER_SOURCES) --- mono-2.4.4~svn151842.orig/debian/man/mono-find-requires.1 +++ mono-2.4.4~svn151842/debian/man/mono-find-requires.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/ --- mono-2.4.4~svn151842.orig/debian/man/caspol.1 +++ mono-2.4.4~svn151842/debian/man/caspol.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/ --- mono-2.4.4~svn151842.orig/debian/man/monograph.1 +++ mono-2.4.4~svn151842/debian/man/monograph.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/ --- mono-2.4.4~svn151842.orig/debian/man/mono-find-provides.1 +++ mono-2.4.4~svn151842/debian/man/mono-find-provides.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/ --- mono-2.4.4~svn151842.orig/debian/man/cli-wrapper.1 +++ mono-2.4.4~svn151842/debian/man/cli-wrapper.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/ --- mono-2.4.4~svn151842.orig/debian/man/pedump.1 +++ mono-2.4.4~svn151842/debian/man/pedump.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/ --- mono-2.4.4~svn151842.orig/debian/man/mjs.1 +++ mono-2.4.4~svn151842/debian/man/mjs.1 @@ -0,0 +1,11 @@ +.TH UNDOCUMENTED 1 "January 15th, 2004" "Debian GNU/Linux" "Mono Manual" +.SH NAME +undocumented \- No manpage for this program. +.SH DESCRIPTION +This +.B program +does not have a manpage. Run this command with the +.B help +switch to see what it does. For further information, refer to the .NET +documentation from the Mono project, located on +.B http://www.go-mono.com/docs/