Граф коммитов

1405 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 08ab894b4d [registrar] Minor code simplification. 2019-04-26 11:20:15 +02:00
Rolf Bjarne Kvinge 509c5be093 [registrar] Create a xamarin_nsstring_to_string to avoid code duplication. 2019-04-26 11:20:15 +02:00
Rolf Bjarne Kvinge 2b5229fe46 [registrar] Create a xamarin_string_to_nsstring function to avoid code duplication. 2019-04-26 11:20:15 +02:00
Rolf Bjarne Kvinge fc6b2c0a0d [runtime] Use a 'void*' for the context in conversion functions instead of 'guint32'.
No function changes, just a refactoring to allow for pointers as context.
2019-04-26 11:20:15 +02:00
Rolf Bjarne Kvinge c8ed014af7
[runtime] Improve exception creation. (#5944)
* [runtime] Add an inner exception parameter to Runtime.CreateProductException.

This allows us to simplify code by using inner (and outer) exceptions as
a means to provide information instead of passing extra information
around in order to create decent exceptions.

One example is how we pass the selector and method name to the method
that converts from a native id to a managed NSObject instance: passing
this information is not necessary anymore if we can use two exceptions,
one for the failure to convert from an id to a NSObject instance,
wrapped in a second that tells which method/selector call ran into this
conversion problem.

* [runtime] Throw better exceptions when the dynamic registrar can't marshal something.

* [runtime] Throw a better exception when something goes wrong when trying to marshal a return value.

* [runtime] Use inner exceptions to convey failure information instead of trying to create a single exception with all we know.

* Fix merge problem.
2019-04-26 11:16:23 +02:00
Alexander Köplinger 7f717f01ae
Merge pull request #5563 from xamarin/mono-2019-02
Bump to mono:2019-02
2019-04-25 19:24:35 +02:00
Rolf Bjarne Kvinge aa4eaf7c92
Make a copy of the static registrar and the runtime headers for Xamarin.Mac/Classic. (#5945)
* [registrar] Make a copy of the static registrar for Xamarin.Mac/Classic.

Make a copy of the static registrar for Xamarin.Mac/Classic, one which is
compatible with the binary artifacts we ship for Xamarin.Mac/Classic
(libxammac, XamMac.dll).

This way the static registrar can evolve in the future, without breaking
Xamarin.Mac/Classic.

* [runtime] Make a copy of the runtime headers too.

* Update comment.

* [mmp] Delay creating a Target instance until we know if we're a Classic or Unified app.

Otherwise the wrong static registrar might be created.
2019-04-25 18:08:10 +02:00
Rolf Bjarne Kvinge bd457212d5
[tests] Add sample tester. (#5870)
* [tests] Add sample tester.

Add a unit project that looks for iOS/macOS/tvOS sample projects in several
repositories, and builds them all.

* [tests][sampletester] Remove known issue which has now been fixed.

* [tests] Only run sample tests on CI in Azure Devops.

* Remove the possibility of automatically running the sample tests with
  xharness (so the sample tests won't run on PR bots or internal bots when the
  'run-all-tests' label is added). It's still possible to run the sample tests
  manually from the xharness web UI.

* Automatically trigger the sample test run in Azure Devops if the
  'run-sample-tests' label is applied to a PR (and that PR is executed on
  internal Jenkins).

* Fix typo.

* Fix path.

* Verbose output to track down scheduling failure.

* Bump maccore to get improved debug spew.

Diff: f527c9c526..f89d74b165

* [tests][sampletester] Fix build for TodoWCF.
2019-04-25 17:18:43 +02:00
Alexander Köplinger 99ea097abf Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-24 23:28:00 +02:00
Vlad Brezae 26ba16e3e6 [mtouch] Enable dsym even from aot'ed images when interpreter is enabled (#5919)
Fixes https://github.com/mono/mono/issues/13975
2019-04-24 13:11:39 -04:00
Rolf Bjarne Kvinge f802a02eed
[registrar] Add token type validation. (#5934)
This should never happen, but an MT0099 at build time is much better than a
runtime exception.
2019-04-23 14:57:55 +01:00
Alexander Köplinger 8ed5e3926a bcl-test-importer: Add three more unit test assemblies 2019-04-17 14:58:49 +02:00
Alexander Köplinger 3ebafb9725 bcl-test-importer: Correctly process watch/tv assemblies
The missing test assemblies validator wasn't matching them since it looked for monotouch_, instead of monotouch_watch_
2019-04-17 14:33:50 +02:00
Alexander Köplinger fc7008d226 bcl-test-importer: Select first type that ends with Test/Tests
We need to avoid selecting some unrelated type that could conflict between assemblies like FileCleanupTestBase.
2019-04-17 14:32:27 +02:00
Alexander Köplinger 65153f4985 Add System.Runtime.CompilerServices.Unsafe xunit test to iOS 2019-04-17 12:20:27 +02:00
Alexander Köplinger b1dc78525d bcl-test-importer: Append .Unsafe to System.Runtime.CompilerServices test suite
It's actually an important distinction.
2019-04-17 12:18:29 +02:00
Alexander Köplinger 455af1ccc1 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-15 15:05:36 +02:00
Alexander Köplinger 505a957acc [bcl-tests] Add Microsoft.CSharp reference to Mono.CSharp_test.dll on XM
It's needed for the C# "dynamic" feature.
2019-04-12 17:43:18 +02:00
Rolf Bjarne Kvinge 4967d6f516
[apidiff] Make temporary / stamp paths depend on APIDIFF_DIR. Fixes maccore#1522. (#5895)
This fixes an issue with the api comparison since the api comparison fails if
it detects unexpected modified files. Putting the temporary files in
APIDIFF_DIR makes sure the api comparison doesn't see those files as
unexpectedly modified.

Fixes https://github.com/xamarin/maccore/issues/1522.
2019-04-12 15:31:27 +02:00
Alexander Köplinger db86c8cc88 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-11 20:28:57 +02:00
Rolf Bjarne Kvinge f4efeb0e63
[mtouch] Avoid an NRE when using the embeddinator by returning an empty collection instead of null. (#5883)
Fixes this NRE:

    error MT0000: Unexpected error - Please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new
    System.ArgumentNullException: Value cannot be null.
    Parameter name: collection
      at System.Collections.Generic.List`1[T].InsertRange (System.Int32 index, System.Collections.Generic.IEnumerable`1[T] collection) [0x00003] in <a104f9cbbafd4348bcc580acb0a3f8a8>:0
      at System.Collections.Generic.List`1[T].AddRange (System.Collections.Generic.IEnumerable`1[T] collection) [0x00000] in <a104f9cbbafd4348bcc580acb0a3f8a8>:0
      at Xamarin.Bundler.Application.BuildApp () [0x00040] in /work/maccore/master/xamarin-macios/tools/mtouch/Application.cs:1541
      at Xamarin.Bundler.Application.BuildNative () [0x0001f] in /work/maccore/master/xamarin-macios/tools/mtouch/Application.cs:903
      at Xamarin.Bundler.Application+<>c.<BuildAll>b__148_2 (Xamarin.Bundler.Application v) [0x00000] in /work/maccore/master/xamarin-macios/tools/mtouch/Application.cs:840
      at System.Collections.Generic.List`1[T].ForEach (System.Action`1[T] action) [0x0001e] in <a104f9cbbafd4348bcc580acb0a3f8a8>:0
      at Xamarin.Bundler.Application.BuildAll () [0x00076] in /work/maccore/master/xamarin-macios/tools/mtouch/Application.cs:840
      at Xamarin.Bundler.Driver.Main2 (System.String[] args) [0x004a1] in /work/maccore/master/xamarin-macios/tools/mtouch/mtouch.cs:1369
      at Xamarin.Bundler.Driver.Main (System.String[] args) [0x00015] in /work/maccore/master/xamarin-macios/tools/mtouch/mtouch.cs:877
2019-04-10 21:48:05 +02:00
Alexander Köplinger d9376421fe Revert "[XHarness] Ignore monotouch_Microsoft.CSharp_xunit-test.dll until issue 5868 is fixed. (#5869)"
This reverts commit dc697dd5ef.
The mono issue was fixed.
2019-04-09 21:07:30 +02:00
Alexander Köplinger e42e1e8fce Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-09 21:06:44 +02:00
Rolf Bjarne Kvinge 8792992b79
[registrar] Make Runtime.GetINativeObject_Static take token references instead of type names. (#5879)
Saves some space in the executable by using 32-bit sized integers instead of much longer strings.
2019-04-09 16:47:33 +02:00
Manuel de la Pena dc697dd5ef
[XHarness] Ignore monotouch_Microsoft.CSharp_xunit-test.dll until issue 5868 is fixed. (#5869)
If not ignored, we will have an issue building the test app on device
resulting on a failure.
2019-04-09 12:57:27 +02:00
Alex Soto 6e2eddd328
[devops] Add azure devops build support (#5873) 2019-04-09 05:35:08 -04:00
Chris Hamons d98c22e39f
[mmp] Don't apply libintl hack when you explicitly ask for that file (#5855)
- A long while ago, this hack was added to mmp:

 	// Shutup the warning until we decide on bug: 36478
	if (shortendName.ToLowerInvariant () == "intl" && IsUnifiedFullXamMacFramework)

- This breaks use cases were we explicitly ask for that file, so let's
fix that for now until we can fix the root cause for real
2019-04-08 10:26:23 -05:00
Sebastien Pouliot 1664cf6426 Merge branch 'master' into mono-2019-02 2019-04-05 15:53:37 -05:00
Sebastien Pouliot d66375d275 [linker] Remove new memory allocations (List) in the sealer 2019-04-05 14:01:44 -05:00
Sebastien Pouliot fad23e95b2
Small fixlets to select better overloads / unneeded parameters (#5844) 2019-04-05 09:43:22 -05:00
Alexander Köplinger 067cbf0a28 Merge remote-tracking branch 'upstream/master' into mono-2019-02
# Conflicts:
#	tools/mmp/driver.cs
2019-04-05 11:19:11 +02:00
Alexander Köplinger cc58acdcd3 Bump mono
Commit list for mono/mono:

* mono/mono@6717c3422a [2019-02] Bump linker to latest master (#13818)
* mono/mono@6d2f150690 Add regression test
* mono/mono@fe613fb067 Add reflected class to event methods

Diff: a1fc070eb5...6717c3422a
2019-04-03 23:53:09 +02:00
Alexander Köplinger 7c73d70b4f [linker] Don't remove RuntimeCompatibilityAttribute from assembly
It's needed at runtime since it changes exception handling behavior.

The "link sdk" Linker_RuntimeWrappedException() test relies on it,
but this never showed up there since "link sdk" doesn't link the main assembly.
2019-04-03 23:52:18 +02:00
Vincent Dondain 86d1b42ad2 Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04:00
Alexander Köplinger 02176dc5de HttpClientHandler is still in System.Net.Http.dll and use short string for http handler in runtime-options.plist 2019-04-02 17:20:58 +02:00
Sebastien Pouliot 56d87eebba [linker] Adjust HttpClientHandler selection with the new (non BCL) location of the handlers 2019-04-01 21:24:24 -05:00
Sebastien Pouliot a9f8d7b379
[mtouch][mmp] Add control over the the linker new `BeforeFieldInit` optimization (#5820)
Add an mtouch/mmp optimization flag to control this new optimization since
3rd party code (in particular binaries) might depend on this side effect.
2019-04-01 21:21:56 -05:00
Sebastien Pouliot 9ebebf9f42
[linker] Teach linker to accept old (before optimization) bindings (#5823)
Existing binding binaries won't have the `[Preserve]` attribute on
the `Handler` field and, with the new optimization, would not work
properly.

This tweak make sure that older, already linker-safe, bindings will
remain this way (safe) in this (and future) versions of both iOS and
macOS SDK.
2019-04-01 09:35:14 -05:00
Alexander Köplinger bcae65f998 MTouch: Always add GSS framework when mono-native is used
According to Rolf it's fine to always add since the native linker will
figure out if it's really needed and so customers don't need to do
anything when using -all_load.
2019-03-27 11:14:53 +01:00
Alexander Köplinger 1cb9c5b068 Fix MT1015() mtouch test
Mono started using System.IO.File from CoreFX and it has a different
behavior for File.Copy() when the target is a directory:
It just puts the file into the directory instead of raising an exception.

In order to fix the MT1015 test we just check ourselves whether the target
is a directory.
2019-03-26 12:41:48 +01:00
Alexander Köplinger 032145f99b mmp: Require mono-native even for Classic mode
Many BCL APIs call into it now.
2019-03-25 16:37:37 +01:00
Alexander Köplinger f67ca65e95 mmp: Add -lc++ to clang arguments
We need to link with C++ now since Mono requires it on Desktop now.
2019-03-25 16:30:52 +01:00
Alexander Köplinger b23e775fbc Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-03-25 00:29:17 +01:00
Manuel de la Pena 56a304ea0e
[XHarness] Make TvOS and WatchOS use their test dlls. (#5794)
Up to this commit the test dlls used for the bcl tests were from iOS. Since
the Mono SDK provides the dlls for both missing platforms (TvOS and
WatchOS) we can now use the correct path for the dlls.

There is a small trick to minimize the project generation, since there
is a simple stirng.Replace, the logic now checks the platform under
test and does:

* TvOS - Goes from monotouch_TEST_NAME to monotouch_tv_TEST_NAME
* WatchOS - Gores from monotouch_TEST_NAME to monotouch_watch_TEST_NAME
2019-03-24 18:54:15 +01:00
Alexander Köplinger a4702c465c Update pdb files in install-source tool 2019-03-22 12:20:07 +01:00
Alexander Köplinger 9b039e0f9d Fix linker paths 2019-03-22 11:19:35 +01:00
Alexander Köplinger 0e249818d2 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-03-22 10:32:58 +01:00
Manuel de la Pena 1615b28ed1
[XHarness] Reduce the number of test applications for the BCL tests. (#5768)
This commit improves the state of the BCL testing in the following ways:

1. Improve the device tets running. Less apps, faster results.
2. WatchOS apps are left as they were to ensure that we do not have deplouyment/run issues.

We now support the ignore files per assembly name to simplify the
tracking of the ignored tests. All
2019-03-20 12:10:18 +01:00
Alexander Köplinger ca76be3bea Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-03-19 16:17:35 +01:00
Sebastien Pouliot 0dbc584977
[mtouch] Fix warning in RemoveBitcodeIncompatibleCodeStep.cs (#5787)
```
/Users/poupou/git/master/xamarin-macios/tools/linker/MonoTouch.Tuner/RemoveBitcodeIncompatibleCodeStep.cs(14,7): warning CS0105: The using directive for 'Xamarin.Linker' appeared previously in this namespace [/Users/poupou/git/master/xamarin-macios/tools/mtouch/mtouch.csproj]
```
2019-03-19 08:56:14 -05:00
Sebastien Pouliot 5c321ac89d
[mtouch] Update validations around --interpreter (#5772)
This also centralize other interpreter checks and options in the same
location (making it easier to read / update).

* Warn and switch the REPL if the interpreter is enabled on simulator

Why ? It's confusing to build the same code using different options for
simulator and devices. This is what happens if you try to use features
like `dynamic` or `System.Reflection.Emit`.

So instead of an error, we warn that the interpreter is not supported
and switch to the existing REPL mode.

The JIT remains the only option for the simulator but it allows testing
features without a device.

* Fail early if the interpreter is used on 32bits [1]

The current interpreter only works on 64 bits (so ARM64). However the
error won't be reported, back to the developer, until deployment time.

This temporary [1] fix spot the condition very early and report an error

```
error MT0099 : Internal error : The interpreter is currently only available for 64 bits.
```

instead of the current one at deploy time

```
IncorrectArchitecture: Failed to find matching arch for 32-bit Mach-O input file /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.tNKDlx/extracted/X.app/X
error MT1006: Could not install the application 'X.app' on the device 'Mercure': AMDeviceSecureInstallApplicationBundle returned: 0xe8000087 (kAMDIncorrectArchitectureError).

Application could not be uploaded to the device.
```

[1] https://github.com/mono/mono/issues/9871

* [tests] Fix/renumbered MT0138

The test was using simulator + interpreter which is not _really_
possible, we use REPL in that case - so we're now checking if
assemblies were specified with `--interpreter` to cover both cases.

Also 0138 was already used by `mmp` and the warning was **not**
registered or documented in the errors documents. To avoid
confusion it has been renumbered to 0142 and documented.
2019-03-19 08:22:39 -05:00
Alexander Köplinger 66ebb76e71 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-03-18 19:24:52 +01:00
Rolf Bjarne Kvinge 18b13ac876
[runtime] Use mono_array_setref instead of mono_array_set. (#5782)
* [Foundation] Add an NSArray.FromNSObjects overload that can take an array of INativeObjects.

* [runtime] Use mono_array_setref instead of mono_array_set.

Otherwise the GC won't know about the assignment, and the assigned value can
be freed if it's no longer referenced anywhere else.
2019-03-18 15:00:32 +01:00
Alexander Köplinger fe92aab5bb Merge remote-tracking branch 'upstream/master' into mono-2019-02
# Conflicts:
#	external/mono
#	src/Foundation/NSUrlSessionHandler.cs
2019-03-18 14:35:46 +01:00
Alexander Köplinger c2bd7011e2 Fix processing of tools/common/StringUtils.cs in XamarinSourcesPathMangler.cs 2019-03-16 02:48:14 +01:00
Sebastien Pouliot 61372a06ba
[mtouch] Disable some optimizations when the interpreter is enabled (#5770)
Some optimizations are not safe to apply when dynamically loading code
at runtime. This is not possible when ahead-of-time (AOT) compilation
is used, so those options were always enabled in the past. The
interpreter is changing the situation so those optimizations are now
disabled, when the interpreter is enabled.

The disabled optimizations are:

* 'remove-dynamic-registrar' when using the interpreter

This avoid the following exception when unknown (at build time) code
tries to register (at runtime)

```
Unhandled Exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> ObjCRuntime.RuntimeException: Can't register the class SubclassDemo.CustomView when the dynamic registrar has been linked away.
```

* 'inline-isdirectbinding' when using the interpreter

This avoid crashing (at runtime) when types are subclasses by the
interpreter (code unknown to `mtouch` at build time).

* 'register-protocols' when the interpreter is enabled

Dynamically loaded code can include protocols. When the optimization is
enabled then they won't be registered and won't work as expected.

Note: It is possible to re-enable the optimization(s), either one or all,
if the interpreter is not used to dynamically load code at runtime.
2019-03-15 09:05:53 -05:00
Sebastien Pouliot aa1aa68d07
[mtouch] Avoid MT0109 warnings when --repl (or --interpreter) is used (#5771)
In both cases we use a different binaries for a few assemblies. They
 include support for SRE and a few other things that are not normally
 usable on iOS. That's totally fine and not something that can be fixed
 (unless you stop using the feature). So this PR simply ignore that
 specific case so we don't warn about things that can't be changed (and
 are not a problem)

 E.g.
 ```
 Warning MT0109: The assembly 'mscorlib.dll' was loaded from a different path than the provided path (provided path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/mscorlib.dll, actual path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.iOS/repl/mscorlib.dll). (MT0109) (XXX)
 Warning MT0109: The assembly 'System.Core.dll' was loaded from a different path than the provided path (provided path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/System.Core.dll, actual path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.iOS/repl/System.Core.dll). (MT0109) (XXX)
 Warning MT0109: The assembly 'System.dll' was loaded from a different path than the provided path (provided path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/System.dll, actual path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.iOS/repl/System.dll). (MT0109) (XXX)
 Warning MT0109: The assembly 'System.Xml.dll' was loaded from a different path than the provided path (provided path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/System.Xml.dll, actual path: /Users/poupou/git/intr/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.iOS/repl/System.Xml.dll). (MT0109) (XXX)
 ```
2019-03-15 09:02:08 -05:00
Alexander Köplinger ed3acacd10 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-03-15 14:30:26 +01:00
Sebastien Pouliot d90d96ab2b
[mtouch] Consider deployment and simulator availability versions for frameworks. Fixes #5753 (#5765)
E.g. `MetalPerformanceShaders` is unusable in 10.3.1 on the simulator so
trying to build with the static registrar cause simlauncher to be rebuilt
with a **strong** (and not _weak_) reference to the framework. This cause
a crash then the application start

```
Dyld Error Message:
  Library not loaded: /System/Library/Frameworks/MetalPerformanceShaders.framework/MetalPerformanceShaders
  Referenced from: /Users/USER/Library/Developer/CoreSimulator/Devices/95679F95-CCE7-4733-8376-35E91E97039C/data/Containers/Bundle/Application/0F665B2D-ADAC-4CA0-BD04-33E968B3F268/FailerApp.app/FailerApp
  Reason: no suitable image found.  Did find:
	/System/Library/Frameworks/MetalPerformanceShaders.framework/MetalPerformanceShaders: mach-o, but not built for iOS simulator
```

ref: https://github.com/xamarin/xamarin-macios/issues/5753
2019-03-14 08:12:42 -05:00
Sebastien Pouliot ea96b2299a
[mtouch] Make the SealerSubStep a configurable optimization (#5766)
document it and adjust the optimization tests.

This allows the optimization to be:
* disabled (if ever needed) on fully AOT'ed applications
* re-enabled for the interpreter (at your own risk)
2019-03-14 08:12:17 -05:00
Alexander Köplinger 8274161551 Update mmp/mtouch projects to add new linker files and adapt to new logic 2019-03-13 00:34:52 +01:00
Manuel de la Pena 3fc1e32adb
[XHarness] Reenable the NUnit System.Data tests on mac os x. (#5749)
Fixes https://github.com/xamarin/maccore/issues/1192
Fixes https://github.com/xamarin/maccore/issues/1193
2019-03-11 18:50:18 +01:00
Manuel de la Pena 5bfbefab14
[XHarness] Reneable System.Security nunit tests on mac os x. (#5751)
Fixes  https://github.com/xamarin/maccore/issues/1197
2019-03-11 12:08:10 +01:00
Manuel de la Pena 9eb75dda71
[XHarness] Reenable the System.Core tests on mac os x. (#5743)
Fixes https://github.com/xamarin/maccore/issues/1191
2019-03-08 17:02:15 +01:00
Rolf Bjarne Kvinge 99e727c90b
Merge pull request #4904 from xamarin/mono-2018-10
Bump to mono:2018-10
2019-03-08 11:06:50 +01:00
Manuel de la Pena 112502c081
[Xharness] Reenable the SystemXml tests on mac os x. (#5735)
Fixes https://github.com/xamarin/maccore/issues/1201
Fixes https://github.com/xamarin/maccore/issues/1202
2019-03-07 17:19:47 +01:00
Manuel de la Pena bc3b5a2d43
[Tests] Fix the tests.sln to include the new test projects. (#5720)
Update the sun and ensure that the GUID of the projects are always the same to make the .sln file happy.
2019-03-07 13:14:53 +01:00
Manuel de la Pena cad438dcfa
[XHarness] Reenable the System.Configuration tests on mac os x. (#5702)
Reenable the tests and add support to ignoring certain tests depending
on the version of the mac os x that is under test. The
System.Configuration tests make no sense in Modern.

Fixes https://github.com/xamarin/maccore/issues/1189
Fixes https://github.com/xamarin/maccore/issues/1190
2019-03-07 13:09:56 +01:00
Sebastien Pouliot 2eb178c7cd
[apidiff] Remove the `_*` noise in XM diffs (#5721)
Fix comparison so the XM profiles do not report _inexistent_ changes for `_Attribute`, `_EventInfo` and `_Exception`. That noise makes it harder to review the diffs (for us) and is incorrect in our published API diffs (for release notes).

Also
* Delete .unzip.stamp on clean
* Skip classic XM diff (binaries won't change)
2019-03-06 11:02:50 -05:00
Manuel de la Pena e3153dcfbe
[Xharness] Reenable MonoPoxis tests on mac os x. (#5711)
Fixes https://github.com/xamarin/maccore/issues/1190
Fixes https://github.com/xamarin/maccore/issues/1188
2019-03-05 11:26:59 +01:00
Manuel de la Pena 92ebe5b64a
[XHarness] Reenable SystemServiceModelTests on mac os x. (#5710)
Fixes  https://github.com/xamarin/maccore/issues/1198
2019-03-04 18:17:56 +01:00
Manuel de la Pena 568d19944d
[XHarness] Reneable SystemIdentityModelTests on mac os x. (#5708)
Fixes  https://github.com/xamarin/maccore/issues/1194
2019-03-04 17:42:07 +01:00
Manuel de la Pena 10912633e3
[Xharness] Reenable the xunit based System.Data tests on mac os x. (#5709)
Fixes https://github.com/xamarin/maccore/issues/1208
2019-03-04 17:41:37 +01:00
Manuel de la Pena 98d9fc2cf3
[XHarness] Reenable MonoCSharpTests on mac os x. (#5696)
Fixes https://github.com/xamarin/maccore/issues/1186
2019-03-04 10:56:22 +01:00
Sebastien Pouliot 78859b97b8
[apidiff] Fix location for XI (when comparing), otherwise we get the full (not PR) diff (#5700) 2019-03-03 12:46:47 -05:00
Manuel de la Pena 365fd66609
[Xharness] Reenable System.Data.Sqlite tests on mac os x. (#5697)
Tests are reenabled and a small typo fixed.

Fixes https://github.com/xamarin/maccore/issues/1187
2019-03-01 17:52:55 +01:00
Manuel de la Pena 1b1792cb43
[XHarness] Reenable the System.IO.Compression and (#5694)
System.IO.Compression.FileSystem tests on mac os x.

Reenable the tests that can be ran without failures.

Fixes https://github.com/xamarin/maccore/issues/1195
Fixes https://github.com/xamarin/maccore/issues/1146
2019-03-01 17:02:42 +01:00
Manuel de la Pena de82764456
[XHarness] Reneable the System.Transaction tests on Mac OS X. (#5686)
Reenable the tests and ensure that the failing ones on Modern are
ignored. The bcl tests on mac os x can now make a diff between the
version (Moder/Full) to ignore files so that tests that work in a
version are not ignored in the other one.

Fixes https://github.com/xamarin/maccore/issues/1200
2019-03-01 10:29:21 +01:00
Rolf Bjarne Kvinge 221f3e4a37 Merge remote-tracking branch 'origin/master' into mono-2018-10 2019-03-01 09:35:53 +01:00
Rolf Bjarne Kvinge 590524243c
Improve MachO support to read LC_BUILD_VERSION and static libraries. (#5685)
* MachO.cs: Support reading LC_BUILD_VERSION

Newer SDKs set this instead of LC_VERSION_MIN_*

* MachO.cs: Add support for reading Mach-O files inside ar archives.

* [tests] Augment ProductTests.MinOSVersion to test static libraries as well.

* Adjust enum field names to match our naming scheme.
2019-03-01 08:00:53 +01:00
Sebastien Pouliot 507d37eef6
[apidiff] Fix the comparison with the previous commit (#5690)
The removal of the XML files broke the comparison with the previous
commit. It did NOT fail the original PR because the targets were
in the previous commit.

And it will fail this PR because the previous commit still does not
have the targets - but it _should_ be fine, once merged, for all
future PR.

Fixes https://github.com/xamarin/maccore/issues/1452
2019-02-28 20:49:10 -05:00
Alexander Köplinger 97b5aef47e Merge branch 'master' into mono-2018-10 2019-02-28 21:18:49 +01:00
Manuel de la Pena c2967c0d50
[XHarness] Ensure we do a nuget restore on bcl imported tests. Fixes #5383 (#5574)
* [XHarness] Ensure we do a nuget restore on bcl imported tests. Fixes #5383

We need to ensure that a nuget restore is done, otherwise we might have
build issues with missing libs.

Fixes https://github.com/xamarin/xamarin-macios/issues/5383
2019-02-28 18:27:01 +01:00
Alexander Köplinger bbbf15a72b Merge branch 'master' into mono-2018-10
# Conflicts:
#	tests/bcl-test/System.Core/System.Core.csproj.template
#	tests/bcl-test/System.Net.Http/System.Net.Http-mac.csproj.template
#	tests/bcl-test/System.ServiceModel.Web/System.ServiceModel.Web.csproj.template
#	tests/bcl-test/System.Xml.Linq/System.Xml.Linq-mac.csproj.template
#	tests/bcl-test/System/System.csproj.template
2019-02-28 13:06:00 +01:00
Manuel de la Pena 297aebef60
[Tests] Fix the make rule that generate the test projects. Fixes #5638 (#5666)
Fixed the rule to generate the tests. This branch adds missing test dlls
that the make rule check, or it will give an error stating that tests
are missing.

This feature should be added to xharness and an issue was created for
that: https://github.com/xamarin/maccore/issues/1447

Fixes https://github.com/xamarin/xamarin-macios/issues/5638
2019-02-28 11:52:04 +01:00
Sebastien Pouliot ad3b70e9c7
[api-diff] Remove apidiff XML reference files. Fixes #4891 (#5663)
Instead download the assemblies (part of existing bundle.zip) of the
current release and generate the XML locally (no storage in github)
before doing the diff against the newer, just built, assemblies.

reference: https://github.com/xamarin/xamarin-macios/issues/4891
2019-02-27 08:59:53 -05:00
Manuel de la Pena a04048fd68
[XHarness] Fix small typo that made the Mono.Security tests of mac appear in a diff part of the DOM. (#5669) 2019-02-27 11:07:34 +01:00
Rolf Bjarne Kvinge c46a8b9611 Merge remote-tracking branch 'origin/master' into mono-2018-10 2019-02-27 07:43:02 +01:00
Rolf Bjarne Kvinge 5cb8b84e73
Simplify ARM64-based CPU detection logic. (#5661)
* We only need to do a runtime check on watchOS.
* On watchOS assume we're on a ARM64-based CPU as long as we're not on a
  ARMv7k CPU.

Fixes an issue where we failed to detect a 64-bit iOS CPU as ARM64-based (in
particular iPhone X's ARM64v8).
2019-02-27 07:31:33 +01:00
Bernhard Urban e2ec9422f2 [mtouch] use "--aot=interp,full,[...]" for every assembly if interpreter mixed mode is enabled (#5655)
The Mono AOT compiler maintains a set of signatures of compiled methods.
Those signatures are necessary to emit wrappers to enable the transition
from interpreter->AOT code. Thus, they must be collected for each
assembly.
2019-02-25 09:24:34 -05:00
Rolf Bjarne Kvinge 2a272a311d
[siminstaller] Improve failure scenarios. (#5662)
* Improve the behavior when we fail to download the .dvtdownloadableindex file
  to report a "Not Found" if we get a "Forbidden" (403) response, since that's
  what it really is.
* Improve the behavior when we fail to download the .dvtdownloadableindex file
  to check if the requested simulators are already installed instead of always
  failing. This makes it possible to manually install the required simulators
  if needed (Apple might not have published simulators for the Xcode version
  we're using), and this would allow any checks to pass if the required
  simulators are already installed.
* Improve the code to modify the PackageInfo XML to not use simple string
  replacement (it's too fragile), use proper XML parsing instead.
* Fix "time left" math, I have no idea what my previous math was doing.
2019-02-25 07:33:37 +01:00
Alexander Köplinger 1e9de96789 Merge branch 'master' into mono-2018-10 2019-02-24 10:20:44 +01:00
Rolf Bjarne Kvinge 1a3a3fbade
Add tool to download and install simulators, and use it to provision the iOS 10.3 simulator if needed. Fixes maccore#1442. (#5645)
* [siminstaller] Added tool to install simulators from the command line.

* Auto-provision the iOS 10.3 simulator.
2019-02-22 10:39:16 +01:00
Rolf Bjarne Kvinge 4a69a8c238
[mtouch] Compile .bc files into .o files before passing them to the clang. (#5651)
Clang will automatically compile .bc files into object code if needed, but
it's done serially. If we do the compilation ourselves, it'll be parallelized.

This makes the dontlink tests build in half the time when building for watchOS
/ Release (it drops from ~15 minutes to ~7 minutes).
2019-02-22 09:57:20 +01:00
Alexander Köplinger 4a03840d4d Merge branch 'master' into mono-2018-10
# Conflicts:
#	external/mono
#	tests/xharness/WatchOSTarget.cs
#	tools/mtouch/Target.cs
2019-02-21 19:30:39 +01:00
Alexander Köplinger a8a1aa60cf Fix issue with dylibs included in appex
See https://github.com/mono/mono/issues/13107
2019-02-21 19:22:53 +01:00
Rolf Bjarne Kvinge d19620c35f
[mtouch] Pass outfile= to the AOT compiler when compiling to full llvm as well. (#5647)
The AOT compiler uses the 'outfile' as the base for a temporary .bc file. If
it's not set, the path to the assembly is used as the base instead. This does
not work if we compile the same assembly to multiple architectures (for
instance armv7k+arm64_32), because the temporary file will clash between those
AOT compilations.

This is not a problem for iOS (armv7+armv7s) because we don't compile to
bitcode (.bc files) on iOS.
2019-02-21 16:38:30 +01:00
Rolf Bjarne Kvinge 81038fc319
[mtouch] Hide linker warning about mismatched watchOS versions. (#5646) 2019-02-21 15:44:17 +01:00
Rolf Bjarne Kvinge 2ff07b6f3a
[mtouch] Don't use the native linker to create fat executables. (#5629)
* [mtouch] Don't use the native linker to create fat executables.

Don't use the native linker to create fat executables, instead link each
architecture separately, and then manually lipo everything together at the
end. This requires a few changes since we need to keep track of the linker
flags per architecture.

The problem is that bitcode files (.bc) do not correspond with a particular
architecture, so the linker can't distinguish between .bc files for armv7k and
.bc files for arm64_32. So if we pass all together to the linker, the linker
will add all .bc files to both architectures, thus duplicating everything (and
the linking fails with duplicate symbols errors).

* [mtouch] Fix building symlinked simulator executables.

* [mtouch] Fix several assumptions about each Target only producing a single executable.
2019-02-21 14:39:02 +01:00
Sebastien Pouliot 4028977b66
[linker] Fix sealer to handle method overrides (#5643)
The current code did not consider that overrides could be swept later,
if unused/unmarked by the linker, so we were missing opportunities to
make methods as final.
2019-02-21 08:24:53 -05:00
Rolf Bjarne Kvinge 5f33d73077
[mtouch] Automatically install when building the csproj. (#5637)
I keep forgetting to run 'make mtouch' after changing mtouch, and then
expecting a test project to pick up the changes.
2019-02-20 15:13:27 +01:00
Alexander Köplinger 777a406838 Merge branch 'master' into mono-2018-10 2019-02-20 14:29:27 +01:00
Rolf Bjarne Kvinge bfab0ee22a
[mtouch] Fix --dot:<path> to honor the path passed. (#5626)
Also change output to use the full path to files as nodes, instead of just the
filename, and instead use a label to set what's shown to just the filename.

This makes the graph correct when we have multiple files with the same name,
but different paths.
2019-02-20 06:30:08 +01:00
Rolf Bjarne Kvinge ffda8b93ba
[mtouch] Remove MT0028, since it's only applicable if iOS deployment target is < 4.2. (#5625) 2019-02-20 06:29:52 +01:00
Alexander Köplinger 75ea3ca9bc Merge branch 'master' into mono-2018-10
# Conflicts:
#	external/mono
#	tests/xharness/Extensions.cs
2019-02-18 18:04:06 +01:00
Rolf Bjarne Kvinge 011d91e093
[mtouch] Document --optimize=remove-unsupported-il-for-bitcode in mtouch --help. (#5609) 2019-02-14 18:36:29 +01:00
Rolf Bjarne Kvinge 2bc18499b5
[mtouch] Quote MONO_PATH if needed in debug spew. (#5607)
Makes c&p commands easier.
2019-02-14 16:33:18 +01:00
Rolf Bjarne Kvinge 5571877312 [mtouch] Use a custom symbol writer to ensure only pdb file names are written to assemblies.
We need our 32-bit and 64-bit assemblies to be identical so that we can avoid
duplicating the .dll in fat apps.

One difference used to be that the .dll contained the full path to the
corresponding .pdb ([1]), but we changed cecil to only write the filename
([2]). Unfortunately this change breaks something else, so it has to be
reverted ([3]).

This implements a different solution: we provide a custom symbol writer to
Cecil, which only writes the filename of the pdb in the .dll, not the full
path.

[1]: https://bugzilla.xamarin.com/show_bug.cgi?id=54578
[2]: https://github.com/jbevain/cecil/issues/372
[3]: https://github.com/jbevain/cecil/pull/554

(cherry picked from commit 53874c863996656eaba43a5582731b93eb6f53b7)

# Conflicts:
#	tools/mtouch/mtouch.csproj
2019-02-13 14:59:34 +01:00
Rolf Bjarne Kvinge 0f49b41513 Merge remote-tracking branch 'origin/master' into mono-2018-10 2019-02-13 13:51:37 +01:00
Rolf Bjarne Kvinge 7e67e7123d
[bcl-test-importer] Fix compiler warning about unused variable. (#5591)
Fixes this warning:

    tools/bcl-test-importer/BCLTestImporter/BCLTestProjectGenerator.cs(19,17): warning CS0414: The field 'BCLTestProjectGenerator.iOSReleasePattern' is assigned but its value is never used
2019-02-13 13:28:43 +01:00
Alexander Köplinger ea1e8b0572 MachO.cs: Support reading LC_BUILD_VERSION
Newer SDKs set this instead of LC_VERSION_MIN_*
2019-02-13 03:19:14 +01:00
Rolf Bjarne Kvinge d02c9bc8e0
Add a Runtime.IsARM64CallingConvention property. (#5569)
* Add a Runtime.IsARM64CallingConvention property.

Determining whether we should use the ARM64 calling convention in P/Invokes
gets more complicated with ARM64_32 (which for our purposes is a 32-bit
architecture).

So add a property on the Runtime class to avoid code duplication, and teach
the linker to optimize any calls to this property to a constant value whenever
possible (and the method is marked as optimizable).

Also change our code to use this new property, and make the corresponding
methods optimizable.

Some shuffling in mmp was required, which meant a little bit more code is now
shared between mtouch and mmp.

* Coding style.

* Test tweaks.

* Improve comment.

* Document new optimization

* Move ILReader to shared linker test code location.

* Disable inlining on armv7k.

* Change IsARM64CallingConvention to a read-only field.

We can give the AOT compiler a constant value for a read-only field, so that
the AOT compiler optimizes away the call to the field by using the constant
value.

This commit does not implement this change for the AOT compiler, but using a
read-only field makes it easy to implement it in the future.
2019-02-11 17:29:13 +01:00
Rolf Bjarne Kvinge 1141e01a63 [mtouch] Remove unnecessary exception handling. 2019-02-11 13:49:38 +01:00
Rolf Bjarne Kvinge c54fc2431f [mtouch] Show error in case of unexpected behavior. 2019-02-11 13:49:38 +01:00
Rolf Bjarne Kvinge 019fcb6a83 [mmp/mtouch] Share some code. 2019-02-11 13:49:38 +01:00
Rolf Bjarne Kvinge 930d66ff63 [mtouch/mmp] Use 99 as the error code for internal errors. 2019-02-11 13:49:38 +01:00
Rolf Bjarne Kvinge 5385f44021 [xharness] Some style/debug fixes. 2019-02-11 13:49:38 +01:00
Alexander Köplinger 213f23b829 Merge branch 'master' into mono-2018-10
# Conflicts:
#	tests/mtouch/mtouch.csproj
2019-02-07 23:12:42 +01:00
Rolf Bjarne Kvinge db44b386ae [MachO]: Implement reading min OS load commands. 2019-02-07 15:58:34 +01:00
Rolf Bjarne Kvinge a28fad5df3
Merge pull request #5556 from rolfbjarne/issue-5553
[build] Make sure -mmacosx-version-min is passed to the mono build. Fixes #5553.
2019-02-07 13:04:45 +01:00
Rolf Bjarne Kvinge b32ac08c6d
[mtouch] Simplify & unify lipo code. (#5558) 2019-02-07 13:04:19 +01:00
Rolf Bjarne Kvinge 135507957f
[linker] Remove non-bitcode compatible code, and show a warning. (#5551)
* [linker] Remove non-bitcode compatible code, and show a warning.

Remove code not currently compatible with bitcode and replace it with an
exception instead (otherwise we'll assert at runtime).

Also show a warning when we detect this.

This is quite helpful when looking at watch device test runs to filter out
failures we already know about.

This fixes point #2 in #4763.

* Improve documentation.

* Simplify linker code by using a substep.

* Fix whitespace issues.

* Improve reporting.

* Add support for reporting more than one MT2105 at the same time when making
  the errors instead of warnings.
* Only report MT2105 for methods that haven't been linked away.
* Format the error message nicer for properties.

* Tweak a bit for warning tests to pass.

* Use ExceptionalSubStep to provide better error information.

* Adjust where linker warnings/errors are reported from to avoid a NullReferenceException.
2019-02-07 07:57:01 +01:00
Alexander Köplinger 42c0b1e474 Merge branch 'master' into mono-2018-10
# Conflicts:
#	external/mono
2019-02-07 00:06:17 +01:00
Rolf Bjarne Kvinge 22c8ca5090
[docs] Make PreserveSmartEnumConversionsSubStep use unique error codes and improve ExceptionalSubStep error documentation. (#5555)
* Make PreserveSmartEnumConversionsSubStep use error codes that are not
  already used elsewhere: this isn't obvious at first, but all
  ExceptionalSubStep errors use a range of error numbers (10 numbers from NNN0
  to NNN9), so we need to reserve that entire range. In this case there were
  other errors using some of the numbers of the range for PreserveSmartEnumConversionsSubStep.
* Make sure there are anchor links for all the variations of each ExceptionalSubStep error.
2019-02-06 15:31:49 +01:00
Rolf Bjarne Kvinge ce72a51938 [MachO]: Implement reading min OS load commands. 2019-02-06 09:48:42 +01:00
Alexander Köplinger 8829aa0c39 Merge branch 'master' into mono-2018-10
# Conflicts:
#	tests/xharness/Harness.cs
2019-02-05 21:38:47 +01:00
Alexander Köplinger a67e2b270e Remove accidentally committed debugging helper 2019-02-05 15:08:47 +01:00
Rolf Bjarne Kvinge 6bc475e624
[xharness] Rework BCL test importation to not bail out completely if something went wrong. (#5540)
Rework BCL test importation to generate projects that won't compile instead of
giving up completely in case of generation failure.

This means that xharness can still be used for non-BCL tests even if the
generation of the BCL tests fail.
2019-02-05 12:55:46 +01:00
Alexander Köplinger 1c97aba973 Fix mono native copying when no linkcontext is available
When we're using cached linker output we can't access LinkContext.
Instead we need to cache the required values ourselves.
2019-02-05 11:37:02 +01:00
Rolf Bjarne Kvinge 736cb90ac6
[mtouch/mmp] Avoid a few clang warnings in the generated pinvoke code. (#5541) 2019-02-04 15:20:44 +01:00
Alexander Köplinger 68657484bb Merge branch 'master' into mono-2018-10 2019-02-04 15:11:58 +01:00
Rolf Bjarne Kvinge db01babe71
[tests] Set the correct environment variables when executing msbuild from the mtouch tests. (#5534)
This is usually not a problem, because these variables are already set when
running from the command-line or xharness. However, it shows up when running
tests directly from VSfM.
2019-02-04 07:59:29 +01:00
Sebastien Pouliot cf86b3e1ef
[mtouch] Use the 'repl' assemblies when the interpreter is enabled (#5535) 2019-02-01 15:55:27 -05:00
Alexander Köplinger b105a5dd6f Improve copying of libmono-native 2019-02-01 20:10:58 +01:00
Alexander Köplinger d612d3ec27 bugzilla -> github 2019-02-01 19:47:55 +01:00
Alexander Köplinger 8081626eda Improve copying of libmono-native 2019-02-01 19:40:50 +01:00
Rolf Bjarne Kvinge 510bb0b1cd
[mtouch] Add logging overloads that don't format the input. (#5525)
Sometimes we just Log a string without any format arguments. This works fine,
until the string comes from the user, and happen to contain braces, in which
case an invalid format exception is thrown.

Adding Log overloads that doesn't take format arguments (nor formats its
input) avoids this problem.
2019-02-01 07:43:15 +01:00
Alexander Köplinger e25499395d Link with GSS framework in mmp when Mono.Native is used 2019-01-31 14:32:21 +01:00
Alexander Köplinger acc513aba5 Add System.Net.Security.Native to mmp 2019-01-31 14:32:00 +01:00
Alexander Köplinger 8b21371437 Merge branch 'master' into mono-2018-10 2019-01-30 13:43:03 +01:00
Sebastien Pouliot aebbe023e0
[apidiff] Build API diffs based on 15.9/xcode10.1 so it only shows the changes from Xcode 10.2 (#5508) 2019-01-29 10:41:58 -05:00
Rolf Bjarne Kvinge 83718c0b72
[jenkins] Try to give better information when api comparison / generator diff fails. (#5477) 2019-01-25 17:33:58 +01:00
Rolf Bjarne Kvinge be504be9ac
[mtouch] Properly deserialize cached Objective-C class symbols. Fixes #5467. (#5468)
Deserialize cached Objective-C class symbols to match how the objects looked
before serialization. This means storing the Objective-C class name in the
Symbol.ObjectiveCName field, and not the Symbol.Name field.

Fixes https://github.com/xamarin/xamarin-macios/issues/5467.
2019-01-24 15:08:50 +01:00
Manuel de la Pena a63c1c7f62
[XHarness] Fix small typo in test projet name. (#5461)
The small typo made the test projects from mac and ios/tvos/watchos be
in different nodes in the xhanress web page which is ugly. They now wil
appear in the same node.
2019-01-23 10:15:36 +01:00
Manuel de la Pena a71f421a67
[XHarness] Reneable Sytem.Security tests on iOS, TvOS and WatchOS. (#5421)
Reneable the tests and ignore those failing ones.

Fixes  https://github.com/xamarin/maccore/issues/1139
2019-01-22 23:18:45 +01:00
Bernhard Urban bec4e8604a Merge branch 'master' of github.com:xamarin/xamarin-macios into mono-2018-10 2019-01-18 14:09:29 +01:00
Manuel de la Pena 879629bc9d
[XHarness] Reenable the System tests on iOS, WatchOS and TVOs. (#5425)
All the failing tests have been ignored. There are a large number of
tests ignored on the watchOS platform beacuase atm the iOS test dll is
used.

Fixes https://github.com/xamarin/maccore/issues/1135
2019-01-17 22:58:31 +01:00
Manuel de la Pena cf1a034e96
[XHarness] Reenable the NUnit Corlib tests from the iOS Mono SDK. (#5316)
Reenable the tests on iOS/TvOS/WatchOS. Fixes xamarin/maccore#1153
2019-01-17 22:55:06 +01:00
Manuel de la Pena fea85dc569
[XHarness] Reenable SystemTransactionsTests on iOS, TvOS and WatchOs. (#5411)
Fixes https://github.com/xamarin/maccore/issues/1134
2019-01-16 19:12:20 +01:00
Manuel de la Pena 34ca0496fc
[XHarness] Reneable the SystemNetHttpTests on iOS, TvOS and WatchOS. (#5405)
Failing iOS tests are ignored WatchOS is running the iOS tests until we have the tests in the SDK
for the watch runtime.

Fixes https://github.com/xamarin/maccore/issues/1144
Fixes https://github.com/xamarin/maccore/issues/1145

Mono issue: https://github.com/mono/mono/issues/12430
2019-01-16 12:16:22 +01:00
Manuel de la Pena c455a1d7b9
[XHarness] Reneable Mono.Security tests on WatchOS. (#5412)
Fixes https://github.com/xamarin/maccore/issues/1142
2019-01-16 12:13:34 +01:00
Manuel de la Pena 293ade0a30
[XHarness] Reneable the SystemSecurity tests on iOS, TvOS and WatchOS (#5410)
Some of the test classes are abstract, and we needed to change the
generator to ignore that fact. Before the change, we would have 0 test
cases.

Failing tests are ignored.

Fixes https://github.com/xamarin/maccore/issues/1128

Mono issue https://github.com/mono/mono/issues/12446
2019-01-16 12:11:53 +01:00
Manuel de la Pena f63030d267
[XHarness] Remove System.Threading.Tasks.Dataflow_xunit-test from iOS, TvOS and WatchOS. (#5407)
As with other tests, this have been added because they were present when
we built the test assemblies locally, but they are not present in the
Mono SDK.

Fixes https://github.com/xamarin/maccore/issues/1132
2019-01-15 17:38:18 +01:00
Manuel de la Pena d7813b3275
[XHarness] Remove System.Runtime.Serialization.Formatters.Soap_test from iOS, TvOS and WatchOS (#5406)
As with other tests, this assembly was added when we built the tests in
the iOS makefile, but they are not present in the Mono SDK.

Fixes https://github.com/xamarin/maccore/issues/1140
2019-01-15 17:35:05 +01:00
Manuel de la Pena 2ba9a34198
[XHarness] Reenable SystemLinqXunit on watchOS and TvOS. (#5395) 2019-01-15 12:11:09 +01:00
Manuel de la Pena 20595ce988
[XHarness] Remove not needed bcl tests for (#5400)
Remove tests that are not provided in the Mono iOS SDK for Mono.Runtime.

Fixes https://github.com/xamarin/maccore/issues/1141
2019-01-14 18:37:57 +01:00
Manuel de la Pena e53bfac5c0
[XHarness] Reenable System.Core tests on ios/tvos/watchos (#5397)
Fixes https://github.com/xamarin/maccore/issues/1143

Mono issue: https://github.com/mono/mono/issues/12419
2019-01-14 17:16:41 +01:00
Manuel de la Pena 102339ad47
[XHarness] Reenable the System.ServiceModel tests from the bcl. (#5384)
Fixes https://github.com/xamarin/maccore/issues/1138

A new mono issue was added: https://github.com/mono/mono/issues/12417
2019-01-14 16:58:36 +01:00
Manuel de la Pena 392cd4342a
[XHarness] Reneable System.Numerics XUnit tests on TvOS and WatchOS. (#5396) 2019-01-14 16:50:17 +01:00
Alexander Köplinger 929e4623c4 Merge branch 'master' into mono-2018-10
# Conflicts:
#	external/mono
2019-01-14 15:26:56 +01:00
Alexander Köplinger 0dae3f27ad Fix building XamMac projects 2019-01-14 14:58:37 +01:00
Manuel de la Pena e880c6c156
[XHarness] Remove not longer present bcl tests. (#5382)
As of Mono SDK 25a8be91115255341dd80ce4a225415feec46f56 we do not longer
have the test dll and therefore the test project can be removed.
2019-01-14 13:24:08 +01:00
Sebastien Pouliot 974617d144
[mtouch] Provide a better (and single) error message when the interpreter is enabled in simulator builds. (#5376)
Before

```
clang : error : no such file or directory: '/Users/poupou/git/xamarin/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib/libmono-ee-interp.a'
clang : error : no such file or directory: '/Users/poupou/git/xamarin/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib/libmono-icall-table.a'
clang : error : no such file or directory: '/Users/poupou/git/xamarin/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib/libmono-ilgen.a'
error MT5209 : Native linking error : clang: error: no such file or directory: '/Users/poupou/git/xamarin/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib/libmono-ee-interp.a'
error MT5209 : Native linking error : clang: error: no such file or directory: '/Users/poupou/git/xamarin/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib/libmono-icall-table.a'
error MT5209 : Native linking error : clang: error: no such file or directory: '/Users/poupou/git/xamarin/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib/libmono-ilgen.a'
MTOUCH : error MT5202: Native linking failed. Please review the build log.
    0 Warning(s)
    7 Error(s)
```

After

```
MTOUCH : error MT0141: The interpreter is not supported in the simulator. Do not pass --interpreter when building for the simulator.
    0 Warning(s)
    1 Error(s)
```
2019-01-11 11:38:22 -05:00
Manuel de la Pena adc9ddccf3
[XHarness] Reenable the System.Data tests from the bcl. (#5379) 2019-01-11 16:56:30 +01:00
Manuel de la Pena 6a1ecaabb0
[XHarness] Reenable the System.IO.Compression.Filesystem tests and ignore those failing ones. (#5374) 2019-01-11 12:22:48 +01:00
Alexander Köplinger 1e961da1da Add System.Net.Security.Native dllmap to mmp 2019-01-10 22:14:58 +01:00
Alexander Köplinger 32db60a51f Fix dllmap for System.Security.Cryptography.Native.Apple in mmp 2019-01-10 22:14:58 +01:00
Alexander Köplinger ca90eb2e19 Merge branch 'master' into mono-2018-10
# Conflicts:
#	external/mono
2019-01-10 22:13:44 +01:00
Chris Hamons a4332c90aa
[mmp] Add support for mono 5.18 by pulling in libmono-system-native.a (#5328)
- https://github.com/xamarin/xamarin-macios/issues/5324
- Patch tweaked over multiple commits in master so applied directly instead of cherry-pick
2019-01-10 13:31:31 -06:00
Manuel de la Pena 8e32a07af0
[XHarness] Reneable the System.IO.Compression tests. (#5373) 2019-01-10 19:05:13 +01:00
Manuel de la Pena 18035518fb
[XHarness] Reenable System.Xml tests from the mono test dlls. (#5370) 2019-01-10 16:26:54 +01:00
Rolf Bjarne Kvinge 2b4a3b948b
[mtouch] Disable native code sharing if the interpreter settings differ between the main app and app extensions. Fixes #5365. (#5369)
We can't share native code between apps and app extensions if the interpreter
settings differ between them, so detect this scenario and automatically
disable native code sharing.

Fixes https://github.com/xamarin/xamarin-macios/issues/5365.
2019-01-10 15:45:33 +01:00
Rolf Bjarne Kvinge 29e6afc0f3
[compare-commits] Only validate files when validating if files have unexpectedly changed. (#5360)
Fixes this problem:

    The following files were modified, and they shouldn't have been:
        /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/src

which shouldn't be reported, since the "file" in question is a directory.

Reference: https://github.com/xamarin/xamarin-macios/pull/5355#issuecomment-452400517
2019-01-09 16:07:23 +01:00
Rolf Bjarne Kvinge 327c0a8ddf
[xibuild] Add support for /verbose, and use it accordingly. (#5224)
* [xibuild] Add support for /verbose, and use it accordingly.

Also stop using xibuild when it's not needed.

* Use the same verbosity for xibuild as we do for xbuild/msbuild.
2019-01-09 07:43:22 +01:00
Marek Safar c6653167b9 Merge remote-tracking branch 'origin/master' into mono-2018-10 2019-01-07 14:41:25 +01:00
Manuel de la Pena 40921b9924
[XHarness] Reenable Mono.Data.Tds tests on watch os. (#5317)
Ignore the failing tests and run the rest. Fixes xamarin/maccore#1152
2018-12-21 10:38:13 +01:00
Manuel de la Pena 480f786839
[XHarness] Add support for ignore files in the blc tests (#5288)
This PR adds support to the use of *.ignore files for iOS/tvOS/WatchOS. The files are very similar to those that are use in xtro. We have:

* common-{TestProjectName}.ignore: For those tests that fail in all platforms.
* tvOS-{TestProjectName}.ignore: For tvOS specific failures.
* watchOS-{TestProjectName}.ignore: For watchOS specific failures.
* iOS-{TestProjectName}.ignore: for iOS specific projects.

Two test projects that were ignored previously have been added to show that the code does as advertised:

* SystemDataXunit: xUnit test project example. Fixes https://github.com/xamarin/maccore/issues/1131
* SystemServiceModelWebTests: NUnit test project example. Fixes https://github.com/xamarin/maccore/issues/1137

The files take the name of the failing tests, although we do support ignoring by class/namespace and other combinations, that would make the *.ignore files format more complicated and it is not worth it.
2018-12-20 23:13:17 +01:00
Rolf Bjarne Kvinge d6cf195b4e
[registrar] Throw EntryPointNotFoundException when generating P/Invoke wrappers for objc_msgSend*_stret on arm64. Fixes #5183. (#5312)
objc_msgSend*_stret doesn't exist on arm64, so trying to call these functions
in our generated P/Invoke wrappers will result in a clang error:

    [...]/pinvokes.m:180:69: error: 'objc_msgSend_stret' is unavailable: not available in arm64 (TaskId:243)

So instead generate a call to throw an EntryPointNotFoundException (which is
exactly what would happen if we didn't generate the P/Invoke wrapper).

Fixes https://github.com/xamarin/xamarin-macios/issues/5183.
2018-12-20 18:38:07 +01:00
Rolf Bjarne Kvinge b331ed8290
[registrar] Remove unused parameter from function call. (#5311) 2018-12-20 17:27:45 +01:00
Rolf Bjarne Kvinge 163f9a37f9
[mtouch] Ignore linker warnings about our own libraries being built for iOS 7.0 when deployment target is iOS 6.0. Fixes #5092. (#5310)
Only the arm64 slice are built for iOS 7.0 (because that's when arm64 was
introduced), the arm7(s) slices are built for iOS 6.0, which means it's safe
to ignore this warning.

Fixes https://github.com/xamarin/xamarin-macios/issues/5092.
2018-12-20 17:27:25 +01:00
Manuel de la Pena ef78b1dbc3
[XHarness] Do not build the test assemblies for the iOS platforms. (#5270)
We now download the ios Mono sdk which means that there is no need for
us to build the test assemblies on iOS, WatchOS and tvOS BUT we need to
do so for the Mac tests.

The change includes:
  1. Use fo the downloaded test assemblies.
  2. Removal of the dependency of building them in the tests.
  3. Move back to using reflection for the project generation.
  4. Remove the cached project details added in the workaround.
2018-12-18 14:21:09 +01:00
Marek Safar aa6fefb1c9 Merge remote-tracking branch 'origin/master' into mono-2018-10 2018-12-17 15:28:08 +01:00
Chris Hamons d7c2a45ca9
Add 'NoBindingEmbedding' style binding project support (#5167)
- Existing binding projects embed the native libraries within the assembly as managed resource
- This does not scale well and has performance implications
- This PR creates a new property, NoBindingEmbedding which when true processes the building and consumption of binding projects differently.
- Existing binding projects are not affected, they will continue as is
- I've written a full XM test suite and ported a subset to iOS. Since iOS only supports checked in projects, and I didn't want to make the existing situation worse by adding more, I only wrote tests that could use the existing test projects.
    -When we complete some form of msbuild testing reform, we'll revisit these tests.
- Remove two files in MyiOSFrameworkBinding that are not used (we use copies elsewhere)
- Remove unnecessary sleep and fix broken touch command
- Output failing test log to console instead of test output
    - VSfM does not handle thousands of lines of test failure message well
- Add ability to generate binding projects with LinkWith
2018-12-12 09:55:57 -05:00
Manuel de la Pena ffae762db2
[XHarness] Add support for xunit and nunit tests on Mac OS X. (#5182)
This change adds support to execute the tests provided by mono as assemblies.This includes:

1. App generation to run the bcl tests on modern and full.
2. Needed workaround to delay the compilation of the assemblies until we have them from the SDK.
3. All failing tests are ignored.
2018-12-12 10:38:48 +01:00
Bernhard Urban 4061adc2a4 [interp] fix mixed mode in Release configuration (#5230)
* [mtouch] do not strip assemblies when interpreter is used

* [xharness] add release mixed-mode configuration

* [xharness] enable debug mixed-mode config for mscorlib

* [mtouch] add link to mono issue
2018-12-11 17:51:05 +01:00
Rolf Bjarne Kvinge 07b040087e
[MachO] Add support for ARM64e and ARM64_32. (#5253)
Also remove some duplicated code.
2018-12-11 17:50:20 +01:00
Chris Hamons c00e9af445
[mmp] Add rpath during compile and not after via install_name_tool (#5251)
- https://github.com/xamarin/xamarin-macios/issues/5243
- https://github.com/xamarin/xamarin-macios/issues/5248
- There were multiple issues where we'd run out of space and install_name_tool
would randomly fail. We can easily move these two to during initial
clang and avoid those cases.
2018-12-11 10:28:55 -05:00
Rolf Bjarne Kvinge 366d94d28a
[mmp] Show the right error code in error message. (#5245) 2018-12-10 15:14:18 +01:00
Rolf Bjarne Kvinge 1cdfc65b38 Merge remote-tracking branch 'origin/master' into mono-2018-10 2018-12-07 08:25:46 +01:00
Chris Hamons 2e72e1aee0
[mmp] Add rpath to MonoBundle folder if we copy any NativeLibraries in (#5214)
- https://github.com/xamarin/xamarin-macios/issues/4435
- A common enough breakage in our handling of native references is if you have
two native libraries with dependencies (with rpath) between them that get copied into MonoBundle
- We did not add rpath to this location so we would not resolve them
- This is a behavior change, as anything that touches library resolution in mmp, but should be safe enough
- Add 2 ignore line for common swift libraries
2018-12-06 14:16:10 -05:00
Sebastien Pouliot 7b83195937
Merge pull request #4596 from xamarin/mono-2018-08
* Bump to mono:2018-06

* Bump mono

* Updates compression to work with the public span

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Bump Mono

* [runtime] always use `mono_jit_set_aot_mode` (#4491)

`mono_jit_set_aot_only` is deprecated and accidentally broke with
https://github.com/mono/mono/pull/7887

This should fix device tests with `mono-2018-06`

* Testing with Zoltan's patch

* Include libmono-system-native on Xamarin.Mac

* Bump Mono

Commit list for mono/mono:

* mono/mono@7bcda192a0 Bump llvm to release_60/fc854b8ec5873d294b80afa3e6cf6a88c5c48886. (#9786). (#9804)
* mono/mono@23e95ec7ad Apply F# portable pdb debug fix for pinvokes & bump (#9797)
* mono/mono@295f6d32af [2018-06] [MacOS] On Mac, use the copyfile API to copy files (#9696)

Diff: 7d5f4b6136...7bcda192a0

* Revert 4bacab3d5c, it doesn't fix the ios aot problems.

* Bump mono

* [tests] Adjust the MT0137 test for mcs change in behavior.

Starting with mono 5.16 mcs will now add assembly references when the assembly
is only used in attributes (this was already the case for csc in both 5.14 and
5.16, so it seems to be a compatibility change).

Adjust the MT0137 test accordingly.

* [msbuild] Fix parsing of json parser errors to handle trailing periods in the error message.

Fixes this test:

    1) Test Failure : Xamarin.iOS.Tasks.Bug60536.TestACToolTaskCatchesJsonException
         ColumnNumber
      Expected: 2
      But was:  0

* Bump mono

* [builds] Install the old llvm binaries into the LLVM36 directory and make the 32 bit builds use that.

* Bump mono

* Bump to mono:2018-08

* Initialize Dependency Injector.

* Fix typo

* Fix llvm build

* Reflect latest X509CertificateImpl changes

* Use same compile flags also for link

Linking can fail if the minimum versions are different

* Bump mono

* Bump mono

* Assembly.LoadFile accepts only absolute path

* Bump mono

* [jenkins] Don't give VSTS a fake branch. (#4667)

Something in VSTS changed, and now fake branch names don't work anymore.

So instead use real branch names (and for pull requests I've created a
'pull-request' branch we can use).

* Assembly.LoadFile accepts only absolute path

* [linker] Add new Facade (System.Threading.Tasks.Extensions).

Fixes these MTouch test failures:

    1. Xamarin.Linker.SdkTest.iOS_Unified :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    2. Xamarin.Linker.SdkTest.tvOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    3. Xamarin.Linker.SdkTest.watchOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

* [linker] Add new Facade (System.Threading.Tasks.Extensions).

Fixes these MTouch test failures:

    1. Xamarin.Linker.SdkTest.iOS_Unified :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    2. Xamarin.Linker.SdkTest.tvOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    3. Xamarin.Linker.SdkTest.watchOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

* [tests] Reference GuiUnit_Net_4_5 using a project reference.

This makes sure GuiUnit is built when the main project is built.

* [mono-sdks] Necessary changes to unify the LLVM provisioning for both iOS and Android. (#4732)

* Bump Mono

* [mtouch] add mixed-mode support (#4751)

* [mtouch] add --interp-mixed option

When enabling this option, mtouch will AOT compile `mscorlib.dll`.  At
runtime that means every method that wasn't AOT'd will be executed by
the runtime interpreter.

* [mtouch] Add support to --interpreter to list the assemblies to (not) interpret.

* [msbuild] Simplify interpreter code to use a single variable.

* Fix whitespace.

* [mtouch] Move mtouch-specific code to mtouch-specific file.

* [msbuild] An empty string is a valid value for 'Interpreter', so make it a non-required property.

* [mtouch] Add sanity check for aot-compiling interpreted assemblies.

* Bump Mono

* [linker] Updates SDKs facades list

* Bump mono

* [msbuild] Adds facades which might override default nuget version to framework list

The collision resolver task reads them from here https://github.com/dotnet/sdk/blob/master/src/Tasks/Common/ConflictResolution/FrameworkListReader.cs

* Bump mono to pick up hybrid suspend fixes

Pick up the 2018-08 backport (https://github.com/mono/mono/pull/10551)
of https://github.com/mono/mono/pull/10545

This should fix GC hangs when managed code runs on a GCD threadpool worker
thread.

* [builds] Fix target name in llvm36 provisioning

package-llvm-llvm36-32 isn't defined in external/mono/sdks/builds/llvm.mk,
but package-llvm36-llvm32 is.

* Revert "[builds] Fix target name in llvm36 provisioning"

This reverts commit b2338370cb.

* Revert "Fix llvm build"

This reverts commit f668561761.

* [mono-sdks] Necessary changes to unify the LLVM provisioning for both iOS and Android. (#4732)

* Bump mono

* Bump mono

* Revert "Use same compile flags also for link"

This reverts commit cf205396ff.

* Bump mono to pick up mono/mono@1a309a7b45

* [mmptest] System.Core doesn't depend on Mono.Posix in 2018-08

System.Core doesn't depend on Mono.Posix anymore since it's using the corefx
implementation of pipes now 0f0e31842f

* Bump mono and minimum system mono

* [security]: Make `SecCertificate` work with the latest runtime code.

* Fix the `NATIVE_APPLE_CERTIFICATE` logic; it should only be defined when
  using `XAMARIN_APPLETLS` and not on watch.

* It is no longer allowed to construct `X509Certificate` from a native pointer,
  the `X509Certificate(IntPtr)` and `X509Certificate2(IntPtr)` constructors now
  throw an exception.  Use `X509CertificateImplAppl` directly instead.

* Bump mono

* Bump VSmac min version to 7.7.0.1373

To pick up the fix for https://devdiv.visualstudio.com/DevDiv/_workitems/edit/658916/
Should fix the XM classic build failures

* Revert "Bump VSmac min version to 7.7.0.1373"

This reverts commit b2686bb152.

* Bump to a VSfM version that can build XM Classic projects.

* Bump mono system dependency

* Bump mono

Pick up mono/mono@1644a1a0 - fix for https://github.com/mono/mono/issues/10743

* Bump mono

* Bump mono

* [monotouch-test] Disable X509Certificate(byte[]) tests on watchOS (#4942)

* [monotouch-test] Disable X509Certificate(byte[]) tests on watchOS

* [tests] Add TestRuntime.AssertNotWatchOS()

* fixup WatchOS build

* Bump mono

* Bump mono

* [tests] Disable link-preserve-calendar-1 until we can upgrade it to be a Unified test.

See https://github.com/xamarin/xamarin-macios/pull/4596#issuecomment-428562076
for reference: mono's desktop API changed, the linker behavior the test is
verifying is only expected when using XM's Mobile profile.

* Bump mono

* Revert "[monotouch-test] Disable X509Certificate(byte[]) tests on watchOS (#4942)"

This reverts commit d003a9b918.

* Bump Mono.

* [security]: `NATIVE_APPLE_CERTIFICATE` should now be defined on watchOS as well.

* Mono 2018-08 requires macOS 10.9+, so Xamarin.Mac must as well.

* Bump min mono version for XM system apps.

Using a system mono < 5.18 results in a TypeLoadException:

    Could not resolve type with token 01000032 from typeref (expected class 'Mono.ISystemDependencyProvider' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')

* Bump guiunit to get updated min macOS version.

Commit list for mono/guiunit:

* mono/guiunit@9f67042 Bump min macOS version to 10.9.
* mono/guiunit@0c3159a [Harness] Fix exit code of 0 being reported in case of exceptions in the harness
* mono/guiunit@9b7497c Merge pull request #15 from mono/fix-more-warnings
* mono/guiunit@a264470 Fix more warnings
* mono/guiunit@dd094e7 Merge pull request #14 from mono/fix-warnings
* mono/guiunit@b3afede Fix build warnings

Diff: 1306b0d420...9f67042498

* [tests] More min macOS version setting to 10.9.

* Remove 10.7 & 10.8 availability attributes, since they're redundant now.

* Bump mono

* [2018-08][watchos] Use mono_dangerous_add_raw_internal_call for watchOS icalls (#5030)

* Add optional mono_dangerous_add_raw_internal_call to exports.t4

* Use mono_dangerous_add_raw_internal_call on watchOS for icall registration

Internal calls added with mono_dangerous_add_raw_internal_call run in GC Unsafe
mode under cooperative and hybrid suspend, whereas internal calls added with
mono_add_internal_call run in GC Safe mode since
mono/mono@5756ba4b46 in order for hybrid suspend
to be a transparent replacement for preemptive suspend (the old default).  The
icalls in GC Unsafe mode have a responsibility not to block indefinitely
without manually performing a thread state transition to GC Safe mode, and in
return they avoid a thread state transition when the icall is invoked from a
managed method.

* [mmptest] Less hardcoding.

* Bump minimum mono one that has 'mono_dangerous_add_raw_internal_call'.

* Bump mono

* Bump system mono dependency

* Fixes building mono tests

* [ImageCaptureCore] Remove redundant availability attribute.

* [mtouch] Clear the MONO_THREADS_SUSPEND environment variable before calling the AOT compiler. Works around mono/mono#11765.

Visual Studio for Mac may set MONO_THREADS_SUSPEND, and this ends up confusing
the AOT compiler when compiling for watchOS.

So unset the environment variable before calling the AOT compiler.

Works around https://github.com/mono/mono/issues/11765.
2018-12-06 10:52:19 -05:00
Bernhard Urban 3ddadfb852 [mmp] fix compilation error 2018-12-05 14:13:30 +01:00
Rolf Bjarne Kvinge 1af3903f1f
[xibuild] Don't redirect standard input. (#5209)
It's not needed, and it prevents subprocesses from detecting a terminal (and
thus no colors in the output).
2018-12-03 14:52:08 +01:00
Rolf Bjarne Kvinge a8c54e00b3
[xibuild] Auto-make if not already made. (#5211)
* [xibuild] Auto-make if not already made.

Automatically make xibuild if it doesn't already exist.

Also fix the script:

* Use bash instead of sh, since it references BASH_SOURCE.
* Don't hide errors (-e).
* Fix shellcheck warnings
	* Use $(..) instead of backticks, because backticks are strongly discouraged [1].
	* Sprinkle quotes.

[1] For the curious: https://stackoverflow.com/a/4708569/183422

* Run make in the right directory.
2018-12-03 11:49:26 +01:00
Marek Safar 60d08b8559 Merge branch 'master' into mono-2018-10 2018-11-29 13:41:32 +01:00
Rolf Bjarne Kvinge 1ffd62c749
[mtouch] Try cloning directories when copying them. (#5196)
Cloning directories is *much* faster than copying, so make sure we clone when
possible.

This will still fall back to copying if it the file system doesn't support
cloning.
2018-11-29 07:47:17 +01:00
Rolf Bjarne Kvinge 4e3dec7894 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-27 19:10:48 +01:00
Rolf Bjarne Kvinge e8d780229b
[mmp] Set DEVELOPER_DIR to our Xcode. (#5187)
This makes it possible to build mmp (the partial static registrar code) with
the wrong system Xcode (which is not supported, but that doesn't mean we can't
try to make it mostly work to ease our lives).

I tried this in the xcode9 branch (PR #2588), and it didn't stick after the
xcode9 branch was merged to master.

I tried again a year later with the xcode10 branch (PR #4691), and once again
the commit didn't stick after the xcode10 branch was merged to master.

So now I'm trying to get this directly into master instead.

Let's see if it's still there when we branch for xcode11 next year...
2018-11-27 18:09:17 +01:00
Rolf Bjarne Kvinge 428310c181 [mtouch] Clear the MONO_THREADS_SUSPEND environment variable before calling the AOT compiler. Works around mono/mono#11765.
Visual Studio for Mac may set MONO_THREADS_SUSPEND, and this ends up confusing
the AOT compiler when compiling for watchOS.

So unset the environment variable before calling the AOT compiler.

Works around https://github.com/mono/mono/issues/11765.
2018-11-27 12:06:12 +01:00
Rolf Bjarne Kvinge 23b7847066 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-26 08:05:36 +01:00
Rolf Bjarne Kvinge 2e754a2f70
[xibuild] Build the expected configuration. (#5172) 2018-11-23 16:22:14 +01:00
Manuel de la Pena 61b2038b3d
[Xharness] Add a workaround to not build the xunit tests when not needed. (#5156)
* [Xharness] Add a workaround to not build the xunit tests when not needed.

This is a workaround that does not use reflection to build the bcl test
projects. We need this until we have complete support of using mono as
an SDK.
2018-11-23 16:02:15 +01:00
Rolf Bjarne Kvinge 02fe5339a4
[runtime] Clean up public symbols. Fixes #5124. (#5155)
* [runtime] Clean up public symbols. Fixes #5124.

Clean up public symbols, by:

* Symbols that don't need to be public (most of them), can be private.
* Prefix all public symbols with `xamarin_`.
* Add a test to ensure we don't introduce new public symbols.
* Use C symbols instead of mangled C++ symbols, since those are easier to
  handle in the test.

This minimizes the chance of getting into a symbol clash with another native library.

Fixes https://github.com/xamarin/xamarin-macios/issues/5124.

* Some test fixes.
2018-11-21 11:48:15 -05:00
Rolf Bjarne Kvinge 74b966e403 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-20 13:08:41 +01:00
Rolf Bjarne Kvinge 50bb4912e1
Revert "[xharness] Only build the BCL tests when we need them. (#5139)" (#5149)
This reverts commit 7277bbcd2b, it breaks building & running the new BCL tests.
2018-11-20 07:06:37 -05:00
Rolf Bjarne Kvinge e6035b26b4 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-20 08:39:53 +01:00
Rolf Bjarne Kvinge 163059c19b Build xibuild before mlaunch, since mlaunch needs xibuild to build. (#5143) 2018-11-19 14:28:16 -05:00
Marek Safar ece0324f35 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-19 16:57:18 +01:00
Rolf Bjarne Kvinge 7277bbcd2b
[xharness] Only build the BCL tests when we need them. (#5139)
Only build the BCL tests when we need them, because we can't build them when
we're running the device tests (because we don't have a built source tree in
that case).

Since the test assemblies are required when generating the BCL projects, this
means we also delay creating the BCL projects until we need them.
2018-11-19 09:07:35 -05:00
Rolf Bjarne Kvinge f8a254d628 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-16 14:26:50 -05:00
Ankit Jain f865694f86 Move tests to use new tool xibuild and thus fix msbuild tests (#5128)
* xibuild: New wrapper tool to run msbuild or managed executables

MSBuild supports fallback paths for projects imported using
`$(MSBuildExtensionsPath)`, but these must be specified explicitly in
the app.config of the main executable. There was a PR to allow use of
properties for this in the app.config, but that was not accepted
upstream.

This is required for being able to:

1. build projects with msbuild against the in-tree XI/XM build output
2. and to run nunit tests against the same.

For this we introduce a new tool, `xibuild`, based on XA's `xabuild`.
This supports the fallback paths to be specified via the environment variable
`MSBuildExtensionsPathFallbackPathsOverride`[1].
It essentially operates in 3 modes:

1. `xibuild -c /path/to/foo.exe`
	Generates /path/to/foo.exe.config with the fallback paths inserted into that.

2. `xibuild -- /v:diag /path/to/project.csproj`
	Runs msbuild with the arguments after `--` with a custom app.config based on
	`MSBuild.dll.config`, with the fallback paths correctly inserted.
	This is in a temporary file and the original config file is not touched.

3. `xibuild -t -- /path/to/managed_tool.exe args`
	Generates `/path/to/managed_tool.exe.config` based on `MSBuild.dll.config` with
	the fallback paths inserted, and runs `managed_tool.exe` with the arguments.
	The default is to overwrite the config file.
	But there is also a switch to merge it with an existing config file.

--
1. Value of the environment variable $MSBuildExtensionsPathFallbackPathsOverride
is prepended to any existing list of search paths in `MSBuild.dll.config`, IOW,
it takes precedence. So, the order of lookup becomes:

  - Value of the property `$(MSBuildExtensionsPath)`
  - Value of the environment variable `$MSBuildExtensionsPathFallbackPathsOverride`
  - /Library/Frameworks/Mono.framework/External/xbuild on macOS

* Integrate use of `xibuild` with the tests

Update all uses of `msbuild` and invocations of tools like nunit that
might depend on using the in-tree builds to use `xibuild`.

* xibuild: Move help descriptions to OptionSet itself.
2018-11-16 14:24:35 -05:00
Manuel de la Pena 505006952c
[Tests] Add a new iOS app to run the xunit and nunit tests (#4914)
Mono know provides a set of testing assemblies that contain the tests to be ran in each of the supported platforms. This commit adds the following:

1. Two different runners that can be used to execute NUnit and xUnit tests.
2. The necessary  glue to get xharness to run the new tests and report the results.
3. A new test that will ensure that if mono adds new tests, xharness will report failures if the tests are not run or not ignored.
2018-11-16 13:31:40 -05:00
Ludovic Henry 1c59076f82 Merge branch 'master' of github.com:xamarin/xamarin-macios into mono-2018-10 2018-11-14 14:20:02 -05:00
Ludovic Henry 54f2bc4569 Revert "Merge pull request #5066 from spouliot/xcode10.1-master"
This reverts commit 72a825fc7d.
2018-11-14 14:17:06 -05:00
Martin Baulig 83de08eb78 [mmp]: Fix mono-native support. 2018-11-14 13:43:45 -05:00
Martin Baulig 91169d6112 Tooling support for mono-native. 2018-11-14 13:20:48 -05:00
Sebastien Pouliot 72a825fc7d Merge pull request #5066 from spouliot/xcode10.1-master
Merge xcode10.1 into master

(cherry picked from commit f60fcbbb16)
2018-11-14 13:10:46 -05:00
Martin Baulig 6fe944731d Merge remote-tracking branch 'origin/mono-2018-08' into mono-2018-10 2018-11-14 13:03:30 -05:00
Chris Hamons e91ba9f93a
[mmp] Fix typo (#5123)
- https://github.com/xamarin/xamarin-macios/issues/5121
2018-11-13 17:56:05 -05:00
Alex Soto 8c207428a9
[ImageCaptureCore] Add ImageCaptureCore Bindings (#5074)
* [ImageCaptureCore] Add ImageCaptureCore Bindings

Fixes xamarin/xamarin-macios#4273

* [ImageCaptureCore] remove not needed `unsafe`

Co-Authored-By: dalexsoto <alex@alexsoto.me>

* Implement feedback
2018-11-07 09:52:39 -05:00
Rolf Bjarne Kvinge 012a0650b6
[mtouch] Fix formatting for MT0079 and update the MT4134 test to take into account the warning. Fixes maccore#1116. (#5089)
Fixes https://github.com/xamarin/maccore/issues/1116.
2018-11-06 15:06:10 +01:00
Rolf Bjarne Kvinge ef8f1dcbfe
[mtouch/mmp] Unify Xcode lookup & verification code in mtouch and mmp. (#5077)
Share all the code to find and verify Xcode between mtouch and mmp.

Also print out the actual product version when logging which Xcode was used
(to make it easier to detect if a beta version is in use).
2018-11-05 08:16:29 +01:00
Chris Hamons 366281e8b7
[mmp] Remove duplicate libmono-system-native.a logic (#5073)
- https://github.com/xamarin/xamarin-macios/pull/4980 and the mono branch merge both added it
- However both copies were not the same, one was conditional and one added an extra -u option
- This collapses them into one check
2018-11-02 09:07:50 -05:00
Sebastien Pouliot f2a05eddc7
Merge xcode10.1 into d15-9 (#5063) 2018-10-31 17:30:44 -04:00
Sebastien Pouliot 3ab481ea70 Merge xcode10.1 into master
Also update apidiff from d15-9 since it's both frozen and includes xcode10.1
2018-10-31 15:54:48 -04:00
Rolf Bjarne Kvinge 7425218c78 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-10-30 07:42:02 +01:00
Rolf Bjarne Kvinge c69c74b3d3
Clone files if possible whenever it makes sense. (#5049)
Cloning is faster when supported, and it also saves disk space.
2018-10-29 16:09:30 +01:00
Rolf Bjarne Kvinge aa668710f7 [iTunesLibrary] Fix typo & confusion. (#5046)
I'm not sure why we have an entry in our list of frameworks claiming that
iTunesLibrary was introduced in macOS 10.9, when we didn't have any bindings
for the library back then.

In any case we also have an entry for iTunesLibrary in our list of frameworks
claiming that iTunesLibrary was introduced in macOS 10.14.

I looked at some of Apple's documentation for the types in iTunesLibrary, and
they all claim to be introduced in macOS 10.13 [2].

And to make matters even more interesting, Apple's documentation for the
framework itself states the library is in
/Library/Frameworks/iTunesLibrary.framework, and ships with iTunes 11.0+ [1]
(which is introduced in 2012).

Then I looked at a macOS 10.14 machine, and the framework is available at
/System/Library/Frameworks/iTunesLibrary.framework, and
/Library/Frameworks/iTunesLibrary.framework is just a symlink there
(/System/Library/Frameworks/iTunesLibrary.framework does not exist on my macOS
10.13 machines, while /Library/Frameworks/iTunesLibrary.framework does). From
this I conclude that the framework was converted into a
system framework in macOS 10.14, and as such our claim that the framework was
introduced in 10.14 is at least somewhat right.

So treat iTunesLibrary as any other framework introduced in macOS 10.14, and
remove our (duplicated) framework entry for 10.9 (for which we didn't have any
bindings anyway).

Also fix the path to the framework, I'm wonder how this got past our tests in
the first place.

[1] https://developer.apple.com/documentation/ituneslibrary: "... located at /Library/Frameworks/iTunesLibrary.framework ... The iTunes Library framework is available to users running iTunes v11.0 or above."
[2] https://developer.apple.com/documentation/ituneslibrary/itlibrary?language=objc
2018-10-26 17:22:03 -04:00
Martin Baulig 673325206d Merge remote-tracking branch 'origin/mono-2018-08' into mono-2018-10 2018-10-26 02:24:28 -04:00
Rolf Bjarne Kvinge cca50fe500 Mono 2018-08 requires macOS 10.9+, so Xamarin.Mac must as well. 2018-10-25 09:54:43 +02:00
Sebastien Pouliot d2a9a57bb9
[mtouch] Display a specific error is a .framework binary is invalid. Fixes #5028 (#5031)
Instead of a generic `MT0000` caused by an exception reading the magic
numbers of the binary framework file.

This was caused be uncompressing an archive, with a symlink, into a
file system that does not support symlinks (on Windows).

ref: https://github.com/xamarin/xamarin-macios/issues/5028
2018-10-23 14:15:58 -04:00
Rolf Bjarne Kvinge c378d6baa5
Add a UserType flag for registered types, and use it to improve the performance for is_user_type. (#5017)
* Refactor type map to have a separate flag field for each type instead of magic location in the array.

Refactor the type map to have a separate flag field for each type instead of a
magic location in the array. This simplifies some code, but also allows us to
introduce more flags in the future (which becomes increasingly complex if the
location in the array is to determine yet another value).

This has neglible performance impacts.

* Add a UserType flag for registered types, and use it to improve the performance for is_user_type.

Reflection in the Objective-C runtime is apparently quite slow, so try to
avoid it by computing the information we need for determining whether a
particular Objective-C type represents a user type or not in the static
registrar.

We store this information in a flag for the type in question in the type map,
and use a binary search to search the type map when needed.

This provides a significant improvement, in particular in the dontlink
scenario (probably because there are many more Objective-C types in the app,
which made Objective-C reflection slow). In fact, it somehow made the dontlink
scenario so fast that it's faster than the linkall scenario (which also
improved, but not nearly as much). While quite inexplicable, it's a consistent
result I've seen over multiple test runs.

Numbers
=======

Test case: 004283d7b6

Fix 1 refers to PR #5009.
Fix 2 refers to PR #5013.
Fix 3 refers to PR #5016.
Fix 4 is this fix.

iPad Air 2
----------

| Configuration       | Before | After fix 1 | After fix 2  | After fix 3  | After fix 4  | Improvement from fix 3 to fix 4 | Cumulative improvement |
| ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: |
| Release (link all)  | 477 ms |      481 ms |       224 ms |       172 ms |       148 ms |                     24 ms (14%) |           329 ms (69%) |
| Release (dont link) | 738 ms |      656 ms |       377 ms |       201 ms |       146 ms |                     55 ms (27%) |           592 ms (80%) |

iPhone X
--------

| Configuration       | Before | After fix 1 | After fix 2  | After fix 3  | After fix 4  | Improvement from fix 3 to fix 4 | Cumulative improvement |
| ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: |
| Release (link all)  |  98 ms |       99 ms |        42 ms |        31 ms |        29 ms |                      2 ms ( 6%) |            69 ms (70%) |
| Release (dont link) | 197 ms |      153 ms |        91 ms |        43 ms |        28 ms |                     15 ms (35%) |           169 ms (86%) |

When linking all assemblies, the type map has 24 entries, and when not linking
at all it has 2993 entries.

This is part 4 (the last) of multiple fixes for #4936.

The total speed-up is 69-86% (3-7x faster).
2018-10-22 07:57:16 +02:00
Rolf Bjarne Kvinge 900356c2e6
[Class] Sort our array of Class -> token references so that we can do binary instead of linear searches in it. (#5009)
Our type map has two sections: first come all the wrapper types, then all the
custom types. This means we need to sort these two sections separately, since
code elsewhere depends on this split in order to determine if a type is a
custom type or not.

We also need a minor modification in the array of skipped types, since it
contained indexes into the type map, which won't be valid after is has been
sorted. Instead store a type reference for the actual type in the array, and
use that to search the type map for the corresponding Class. This is a little
bit slower, but the results are cached in a dictionary, so it'll only happen
once for each type.

The performance is slightly slower when the type map has very few entries, but
that is repaid many times over when the number of entries go up.

Numbers
=======

Test case: 004283d7b6

iPad Air 2
----------

| Configuration       | Before | After  | Improvement   |
| ------------------- | ------ | ------ | ------------: |
| Release (link all)  | 477 ms | 481 ms | -4 ms (-0,8%) |
| Release (dont link) | 738 ms | 656 ms |   82 ms (11%) |

iPhone X
--------

| Configuration       | Before | After  | Improvement |
| ------------------- | ------ | ------ | ----------: |
| Release (link all)  |  98 ms |  99 ms | -1 ms (-1%) |
| Release (dont link) | 197 ms | 153 ms | 44 ms (22%) |

When linking all assemblies, the type map has 24 entries, and when not linking
at all it has 2993 entries.

This is part 1 of multiple fixes for #4936.
2018-10-19 07:33:15 +02:00
Martin Baulig 3f325dd3f0 Initial "Titanium Yellow" support. 2018-10-16 19:01:32 -04:00
Martin Baulig 47a2a3de15 Add `PreserveDependencyLookupStep` to mmp and mtouch to make it build again. 2018-10-15 13:24:33 -04:00
Chris Hamons d29ede7144
[mmp] Include libmono-system-native.a when embedding mono if it exists (#4980) 2018-10-15 09:12:56 -05:00
Sebastien Pouliot 855e682719
[linker] Set flag when processing ParameterInfo.get_Name from XML files. Fixes #4978 (#4981)
Commit 996d90614b fixed the use of XML files. However it did not set the flags so if it's used in both XML and in code then the dictionary is being added twice, which throws an exception like

```
error MT2102: Error processing the method 'System.Boolean SignalGo.Shared.Helpers.ReflectionHelper/d__0::MoveNext()' in the assembly 'SignalGo.Shared.dll': An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name()
```

reference: https://github.com/xamarin/xamarin-macios/issues/4978
2018-10-15 08:26:49 -04:00
Jo Shields 6f2ebedb74 Bump to mono:2018-06 (#4277)
* Bump to mono:2018-06

* Bump mono

* Updates compression to work with the public span

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Bump Mono

* [runtime] always use `mono_jit_set_aot_mode` (#4491)

`mono_jit_set_aot_only` is deprecated and accidentally broke with
https://github.com/mono/mono/pull/7887

This should fix device tests with `mono-2018-06`

* Testing with Zoltan's patch

* Include libmono-system-native on Xamarin.Mac

* Bump Mono

Commit list for mono/mono:

* mono/mono@7bcda192a0 Bump llvm to release_60/fc854b8ec5873d294b80afa3e6cf6a88c5c48886. (#9786). (#9804)
* mono/mono@23e95ec7ad Apply F# portable pdb debug fix for pinvokes & bump (#9797)
* mono/mono@295f6d32af [2018-06] [MacOS] On Mac, use the copyfile API to copy files (#9696)

Diff: 7d5f4b6136...7bcda192a0

* Revert 4bacab3d5c, it doesn't fix the ios aot problems.

* Bump mono

* [tests] Adjust the MT0137 test for mcs change in behavior.

Starting with mono 5.16 mcs will now add assembly references when the assembly
is only used in attributes (this was already the case for csc in both 5.14 and
5.16, so it seems to be a compatibility change).

Adjust the MT0137 test accordingly.

* [msbuild] Fix parsing of json parser errors to handle trailing periods in the error message.

Fixes this test:

    1) Test Failure : Xamarin.iOS.Tasks.Bug60536.TestACToolTaskCatchesJsonException
         ColumnNumber
      Expected: 2
      But was:  0

* Bump mono

* [builds] Install the old llvm binaries into the LLVM36 directory and make the 32 bit builds use that.

* Bump mono

* Bump mono

* [jenkins] Don't give VSTS a fake branch. (#4667)

Something in VSTS changed, and now fake branch names don't work anymore.

So instead use real branch names (and for pull requests I've created a
'pull-request' branch we can use).

* Assembly.LoadFile accepts only absolute path

* [linker] Add new Facade (System.Threading.Tasks.Extensions).

Fixes these MTouch test failures:

    1. Xamarin.Linker.SdkTest.iOS_Unified :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    2. Xamarin.Linker.SdkTest.tvOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    3. Xamarin.Linker.SdkTest.watchOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

* [mono-sdks] Necessary changes to unify the LLVM provisioning for both iOS and Android. (#4732)

* Bump Mono

* [mtouch] add mixed-mode support (#4751)

* [mtouch] add --interp-mixed option

When enabling this option, mtouch will AOT compile `mscorlib.dll`.  At
runtime that means every method that wasn't AOT'd will be executed by
the runtime interpreter.

* [mtouch] Add support to --interpreter to list the assemblies to (not) interpret.

* [msbuild] Simplify interpreter code to use a single variable.

* Fix whitespace.

* [mtouch] Move mtouch-specific code to mtouch-specific file.

* [msbuild] An empty string is a valid value for 'Interpreter', so make it a non-required property.

* [mtouch] Add sanity check for aot-compiling interpreted assemblies.

* Bump Mono

* [linker] Updates SDKs facades list

* Bump mono

* [msbuild] Adds facades which might override default nuget version to framework list

The collision resolver task reads them from here https://github.com/dotnet/sdk/blob/master/src/Tasks/Common/ConflictResolution/FrameworkListReader.cs

* Bump to a VSfM version that can build XM Classic projects.
2018-10-10 11:02:28 -04:00
Rolf Bjarne Kvinge 80881930c0
[install-source] Quiet warning. (#4964)
The line "Got empty dir for " is printed 6000 times when building on the bots;
this change will quiet this warning.
2018-10-10 15:44:40 +02:00
Rolf Bjarne Kvinge 3684204f5a
Improve generator diff to ignore changes we don't care about. (#4947)
This means we'll get an empty diff if there are no generator changes, so
update the logic that detects/reports empty generator diffs.

Also there's no need to ignore mdbs anymore, since we don't create mdbs.
2018-10-09 07:35:00 +02:00
Chris Hamons c41673dce8
Add mmp error when combining partial static registrar and linking (#4932)
- https://github.com/xamarin/xamarin-macios/issues/4825
2018-10-05 09:43:53 -05:00
Rolf Bjarne Kvinge 1044fa602d [linker] Add new Facade (System.Threading.Tasks.Extensions).
Fixes these MTouch test failures:

    1. Xamarin.Linker.SdkTest.iOS_Unified :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    2. Xamarin.Linker.SdkTest.tvOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    3. Xamarin.Linker.SdkTest.watchOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >
2018-10-05 10:38:58 +02:00
Chris Hamons 3119129ab7 Remove references to bugzilla and replace with github (#4920)
https://github.com/xamarin/xamarin-macios/issues/3647
2018-10-04 09:43:55 -04:00
Xamarin Jenkins User bc5d9a1b74 [mtouch] Fix [InternalsVisibleTo] attribute parsing. Fixes #4895 (#4921)
The input is a "user" string, i.e. not some well formatted metadata.
Spec [1] mention it's comma separated, but spaces are optional.

[1] https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/specifying-fully-qualified-type-names#specifying-assembly-names

Fixes https://github.com/xamarin/xamarin-macios/issues/4895
2018-10-04 09:43:38 -04:00
Sebastien Pouliot ac776ef924
[mtouch] Fix [InternalsVisibleTo] attribute parsing. Fixes #4895 (#4917)
The input is a "user" string, i.e. not some well formatted metadata.
Spec [1] mention it's comma separated, but spaces are optional.

[1] https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/specifying-fully-qualified-type-names#specifying-assembly-names

Fixes https://github.com/xamarin/xamarin-macios/issues/4895
2018-10-03 15:00:59 -04:00
Sebastien Pouliot 41c6ea48cb
Update API diff references wrt XM 5.0 (#4905) 2018-10-03 08:28:16 -04:00
Sebastien Pouliot e3a39c94bb
[apidiff] Update XM references to match XM 5.0 (#4890) 2018-09-28 14:48:16 -04:00
Rolf Bjarne Kvinge 11d9fe68db
[mtouch/mmp/docs] Improve MT0091 to include how to enable the linker. Fixes #4549. (#4852)
Fixes https://github.com/xamarin/xamarin-macios/issues/4549.
2018-09-21 16:51:23 +02:00
Sebastien Pouliot 204c233335
[apidiff] Update API diff to be based on XI 12.0 (#4844)
* XI references updated from `xcode10` (XI 12.0)
* XM references are not updated, we continue to compare with `d15.8`
* references_/* were temporary files that should not have been committed (old mistake)
2018-09-20 10:05:24 -04:00
Sebastien Pouliot f333b3aed6
[apidiff] Update API diff to be based on XI 12.0 (#4845)
* XI references updated from `xcode10` (XI 12.0)
* XM references are not updated, we continue to compare with `d15.8`
* references_/* were temporary files that should not have been committed (old mistake)
2018-09-20 09:28:31 -04:00