Permalink
Switch branches/tags
Commits on Dec 5, 2012
  1. Treat param area stack slots as being part of the callee frame, not t…

    vargaz committed Dec 5, 2012
    …he caller, so precise stack marking works for methods with tail calls as well.
  2. Add new test

    marek-safar committed Dec 5, 2012
  3. Update mcs translations

    marek-safar committed Dec 5, 2012
  4. Add resx to dist files

    marek-safar committed Dec 5, 2012
  5. Don't version shared libraries on Android.

    jonpryor committed Dec 5, 2012
    Wanted: profiler support on Android. ;-)
    
    ...which seems sane enough: we have this nifty pluggable profiler
    mechanism already, we have profilers built as separate shared libs
    (e.g. libmono-profiler-log.so), let's just "somehow" load one, call
    the init function, and we're off to the races, right?
    
    	void* h = dlopen ("path/to/libmono-profiler-log.so", RTLD_LAZY)
    	// h == null; dlerror() is:
    	//    Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library
    	//    "libmonosgen-2.0.so.0" needed by "libmono-profiler-log.so"; caused by
    	//    load_library(linker.cpp:745): library "libmonosgen-2.0.so.0" not found
    
    Ouch. So the problem is that libmonosgen-2.0.so contains a versioned
    SONAME ("libmonosgen-2.0.so.0"), and thus libmono-profiler-log.so
    contains a versioned SONAME reference, which cannot be resolved.
    (Android doesn't allow versioned .so's to be placed within .apks.)
    
    Fix the first: make libmonosgen-2.0.so unversioned. That way,
    libmono-profiler-log.so contains an unversioned library reference, and
    Android is appeased!
    
    (Unversion libmono-profiler-log.so for good measure.)
    
    Fix the second: with the above fix in place, libmono-profiler-log.so
    SITLL won't be loaded, with dlerror(3) reporting:
    
    	Cannot load library: soinfo_relocate(linker.cpp:975): cannot locate
    	symbol "monoeg_g_log" referenced by "libmono-profiler-log.so"
    
    The issue here is that libmonosgen-2.0.so contains unexported symbol
    references from eglib, e.g. monoeg_g_log(), and dlopen() won't use
    those unexported symbols. So just add the glib link references to
    libmono-profiler-log.so, and everything is kosher. Yay.
Commits on Dec 4, 2012
  1. Avoid using hand-specialized qsort<K,T> instantiations in SortImpl<TK…

    vargaz committed Dec 4, 2012
    …ey,TValue> when using full-aot, as it leads to a code blowup. Inline swap methods.
  2. Optimize the emission of dwarf line number info by mostly ordering th…

    vargaz committed Dec 4, 2012
    …e methods by their line numbers. dlsymutil becomes very slow otherwise.
Commits on Dec 3, 2012
  1. Update tests

    marek-safar committed Dec 3, 2012
  2. Make Main method public

    marek-safar committed Dec 3, 2012
  3. Add MonoTouch mode

    marek-safar committed Dec 3, 2012
Commits on Dec 1, 2012
Commits on Nov 30, 2012
  1. Handle a loader generic type hierarchy corner case. Fixes bxc #8549

    kumpera committed Nov 30, 2012
    	* class.c: Handle the case when the parent of a GTD needs a generic
    	instance of the child type leading to a generic instance with
    	inconsistent values.
    
    	Say we have this set of types:
    
    	class TextBoxBase<T> : TextInput<TextBox> where T : TextBoxBase<T> {}
    
    	class TextBox : TextBoxBase<TextBox> {}
    
    	class TextInput<T> : Input<T> where T: TextInput<T> {}
    
    	class Input<T> {}
    
    	Now the runtime tries to load TextBoxBase<>, this is the sequence of events:
    
    	1)Load type TextBoxBase<>
    	   2.1)Type has parent, find it
    	   2.2)Lookup parent TextInput<TextBox>
    	         3.1)Lookup TextInput<>
    	            4)Load type TextInput<>  //OK
    	         3.2)Lookup TextBok
    	            5)Load type TextBox
    	               6.1)Type has parent, find it
    	               6.2)Lookup TextBoxBase<TextBox>
    	                     7.1)Lookup TextBoxBase<> //OK
    	                     7.2)Lookup TextBox //OK
    	                     7.3)Create generic instance TextBoxBase<TextBox> //BOOM
    
    	Let's examine what happens in (7.3), we try to create the generic class instance TextBoxBase<TextBox>
    	which means we must inflate all of its MonoClass fields. One field in particular, parent, will be set to null
    	because the lookup for TextBoxBase parent in (2.2) still running which means the current value is null.
    
    	What does it mean? It means that TextBoxBase<TextBox> extends object and our program will misbehave.
    
    	Fixes bxc #8549
  2. Merge pull request #513 from pruiz/xamarin-bug-8565-v2

    kumpera committed Nov 30, 2012
    Fixed xamarin-bug #8565: System.Runtime.Serialization assembly remapping bug when targeting 2/3/3.5 profile.
  3. Merge pull request #498 from Unroll-Me/master

    grendello committed Nov 30, 2012
    Fix HttpContextWrapper.Session when Session State is disabled