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

1215 Коммитов

Автор SHA1 Сообщение Дата
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