diff --git a/mono-cleanup_crash.patch b/mono-cleanup_crash.patch new file mode 100644 index 0000000..412a30f --- /dev/null +++ b/mono-cleanup_crash.patch @@ -0,0 +1,28 @@ +--- mono/metadata/domain.c ++++ mono/metadata/domain.c +@@ -1907,6 +1907,12 @@ + domain->type_init_exception_hash = NULL; + } + ++ /* must do this early as it accesses fields and types */ ++ if (domain->special_static_fields) { ++ mono_alloc_special_static_data_free (domain->special_static_fields); ++ g_hash_table_destroy (domain->special_static_fields); ++ domain->special_static_fields = NULL; ++ } + for (tmp = domain->domain_assemblies; tmp; tmp = tmp->next) { + MonoAssembly *ass = tmp->data; + mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_ASSEMBLY, "Unloading domain %s %p, assembly %s %p, refcount=%d\n", domain->friendly_name, domain, ass->aname.name, ass, ass->ref_count); +@@ -1929,12 +1935,6 @@ + domain->null_reference_ex = NULL; + domain->stack_overflow_ex = NULL; + domain->entry_assembly = NULL; +- /* must do this early as it accesses fields and types */ +- if (domain->special_static_fields) { +- mono_alloc_special_static_data_free (domain->special_static_fields); +- g_hash_table_destroy (domain->special_static_fields); +- domain->special_static_fields = NULL; +- } + + g_free (domain->friendly_name); + domain->friendly_name = NULL; diff --git a/mono-core.changes b/mono-core.changes index acfc91e..994ed29 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 1 17:12:06 CET 2010 - ro@suse.de + +- try to prevent crash on exit in gmcs + call mono_alloc_special_static_data_free before closing + assemblies + ------------------------------------------------------------------- Tue Jan 26 22:30:50 UTC 2010 - ajorgensen@novell.com diff --git a/mono-core.spec b/mono-core.spec index f574356..4c43ae4 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -25,10 +25,11 @@ Group: Development/Languages/Mono Summary: A .NET Runtime Environment Url: http://go-mono.org/ Version: 2.6.1 -Release: 1 +Release: 2 BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: mono-%{version}.tar.bz2 Patch0: xen-aot.patch +Patch1: mono-cleanup_crash.patch ExclusiveArch: %ix86 x86_64 ppc ppc64 hppa armv4l sparc s390 ia64 s390x BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: mono = %{version}-%{release} @@ -1230,6 +1231,7 @@ Authors: %prep %setup -q -n mono-%{version} %patch0 +%patch1 %build # These are only needed if there are patches to the runtime