{"push_id":1506945314,"size":6,"distinct_size":6,"ref":"refs/heads/fastdev-binding-projects","head":"0539ec40a2145bc4c5ea777ab91bbdb039b60ef2","before":"f9fc8ef893a76fbd6124d6e243f3bb07f90beb58","commits":[{"sha":"482ab9051f97731c66464ca5e9dc5c51fb084a83","author":{"name":"Chris Hamons","email":"40a2251c604dbcb62f6bc7e7ada57eef631106fa@xamarin.com"},"message":"[XM] Rework binding project test to try to fix build machine issues (#1474)\n\n- https://bugzilla.xamarin.com/show_bug.cgi?id=50634","distinct":true,"url":"https://api.github.com/repos/rolfbjarne/xamarin-macios/commits/482ab9051f97731c66464ca5e9dc5c51fb084a83"},{"sha":"00b1c09acb737af8bbbe58b84b321cbce17a4519","author":{"name":"Sebastien Pouliot","email":"5796480dc26144c56008ee04d2977e878998889c@gmail.com"},"message":"[linker] Add an well known candidate inliner substep along with tests (#1513)\n\nTL&DR: This is *how* it should be done and tested, it's not complete\r\n(single, simple case) nor the most interesting case ;-)\r\n\r\nThe trick is to make sure each case is covered by tests so a mono\r\n_bump_ won't give us a BCL that does not conform to what the linker\r\nexpect.\r\n\r\nWhat's the impact ?\r\n\r\n1. There is the expected reduction of metadata in mscorlib. Since both\r\n   methods don't call other API there's no indirect effect (removal).\r\n\r\n--- before\t2017-01-15 11:12:44.000000000 -0500\r\n+++ after\t2017-01-15 11:12:56.000000000 -0500\r\n@@ -13166,9 +13166,6 @@\r\n System.Void System.Security.SecurityException::.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)\r\n System.Void System.Security.SecurityException::.ctor(System.String)\r\n System.Void System.Security.SecurityException::GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)\r\n-System.Boolean System.Security.SecurityManager::CheckElevatedPermissions()\r\n-System.Security.SecurityManager\r\n-System.Void System.Security.SecurityManager::EnsureElevatedPermissions()\r\n System.Security.SecurityRulesAttribute\r\n System.Security.SecurityRuleSet System.Security.SecurityRulesAttribute::m_ruleSet\r\n System.Void System.Security.SecurityRulesAttribute::.ctor(System.Security.SecurityRuleSet)\r\n\r\n2. There is no visible size change (even with #1) in mscorlib.dll due to\r\n   padding (compiler /filealign)\r\n\r\n   mscorlib.dll                793,600      793,600            0       0.00 %\r\n\r\n3. there's a *very* small reduction of mscorlib.*.aotdata size\r\n\r\n   mscorlib.armv7.aotdata      717,264      717,216          -48      -0.01 %\r\n   mscorlib.arm64.aotdata      712,840      712,704         -136      -0.02 %\r\n\r\n   AOT data *.aotdata        6,460,064    6,459,880         -184       0.00 %\r\n\r\n4. there's no change in executable size - normal as the AOT compiler has\r\n   _likely_ already doing the same optimization (before this commit)\r\n\r\n   Executable               29,270,272   29,270,272            0       0.00 %\r\n\r\nFull comparison: https://gist.github.com/spouliot/0464c8fa3a92b6486dfd90595d9eb718","distinct":true,"url":"https://api.github.com/repos/rolfbjarne/xamarin-macios/commits/00b1c09acb737af8bbbe58b84b321cbce17a4519"},{"sha":"b4cc60572be71c94083498ea744b710ecab5fc09","author":{"name":"Rolf Bjarne Kvinge","email":"7ef5491181287cce389555cfc27213f1f64295e9@xamarin.com"},"message":"[mtouch/mmp] Share code between link contexts.","distinct":true,"url":"https://api.github.com/repos/rolfbjarne/xamarin-macios/commits/b4cc60572be71c94083498ea744b710ecab5fc09"},{"sha":"a09c1e8cc5a91c883cfddb43d585032f8a75cfe2","author":{"name":"Rolf Bjarne Kvinge","email":"7ef5491181287cce389555cfc27213f1f64295e9@xamarin.com"},"message":"[mtouch] Store a list of members for each native symbol.\n\nThere might be more than one member for each P/Invoke symbol, so make sure to\nkeep track of every one of them.","distinct":true,"url":"https://api.github.com/repos/rolfbjarne/xamarin-macios/commits/a09c1e8cc5a91c883cfddb43d585032f8a75cfe2"},{"sha":"dae1d79aedd7562540263da11b5724b064b6f263","author":{"name":"Rolf Bjarne Kvinge","email":"7ef5491181287cce389555cfc27213f1f64295e9@xamarin.com"},"message":"[mtouch] Quote symbols passed to the native linker.\n\nAlso quote any arguments with a '$' character.","distinct":true,"url":"https://api.github.com/repos/rolfbjarne/xamarin-macios/commits/dae1d79aedd7562540263da11b5724b064b6f263"},{"sha":"0539ec40a2145bc4c5ea777ab91bbdb039b60ef2","author":{"name":"Rolf Bjarne Kvinge","email":"7ef5491181287cce389555cfc27213f1f64295e9@xamarin.com"},"message":"[mtouch] Make sure native symbols from third-party libraries are preserved in dylibs. Fixes #51548.\n\nThe native linker treats object files (.o) and static libraries (.a files,\nwhich are archives of .o files) differently.\n\nThe native linker will always include object files into the executable:\n\n\t$ echo \"void xxx () {}\" > foo.m\n\t$ clang -c foo.m -o foo.o -arch x86_64\n\t$ ld foo.o -dylib -o foo.dylib -macosx_version_min 10.12 -arch x86_64\n\t$ nm foo.dylib\n\t0000000000000fe0 T _xxx\n\nHowever, if the object file is inside a static library:\n\n\t$ echo \"void xxx () {}\" > foo.m\n\t$ clang -c foo.m -o foo.o -arch x86_64\n\t$ ar cru foo.a foo.o\n\t$ ld foo.a -dylib -o foo.dylib -macosx_version_min 10.12 -arch x86_64\n\t$ nm foo.dylib\n\t<no output>\n\nThis means that our testing library (libtest.a) which is a fat library of\n_object files_, do not show the problems reported in bug #51548.\n\nSo:\n\na) I've fixed the creation of libtest.a to be a fat library of _static\n   libraries_. This causes the `FastDev_LinkWithTest` test to fail exactly\n   like in bug #51548.\n\nb) I've made mtouch pass `-u <native symbol>` to the native linker, for every\n   native symbol referenced in a managed assembly, when creating a dylib.\n   Amazingly this seems to work fine even with symbols to Objective-C classes\n   (`_OBJC_CLASS_$_<class name>`).\n\nc) This also required adding support for collecting the Objective-C names of\n   all managed types registered with Objective-C to the linker. The\n   information is already available in the static registrar, but that would\n   require us to make sure the static registrar is executed before compiling\n   dylibs, which means those two tasks won't be able to run in parallel (also\n   there's no guarantee we'll even run the static registrar).\n\nhttps://bugzilla.xamarin.com/show_bug.cgi?id=51548","distinct":true,"url":"https://api.github.com/repos/rolfbjarne/xamarin-macios/commits/0539ec40a2145bc4c5ea777ab91bbdb039b60ef2"}]}
{"actor":{"display_login":"rolfbjarne"}}