-
Notifications
You must be signed in to change notification settings - Fork 510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[xcode12.5] Initial bump for beta 1 #10573
Conversation
This version of Xcode requires macOS 11.0 or later.
🔥 Tests failed catastrophically on Build (no summary found). 🔥Result file $(TEST_SUMMARY_PATH) not found. Pipeline on Agent XAMBOT-1109 |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
🔥 Tests failed catastrophically on Build (no summary found). 🔥Result file $(TEST_SUMMARY_PATH) not found. Pipeline on Agent XAMBOT-1110' |
❌ Tests failed on Build ❌Tests failed on Build. Test results39 tests failed, 1 tests passed.Failed tests
Pipeline on Agent XAMBOT-1110' |
❌ Tests failed on Build ❌Tests failed on Build. Test results39 tests failed, 1 tests passed.Failed tests
Pipeline on Agent XAMBOT-1110 |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
❌ Tests failed on Build ❌Tests failed on Build. Test results37 tests failed, 4 tests passed.Failed tests
Pipeline on Agent XAMBOT-1109' |
New commits in xamarin/maccore: * xamarin/maccore@de616ca53e [mlaunch] Fix dependencies for Xcode 12.5 beta 1 (xamarin#2387) * xamarin/maccore@e93375583c [Actions] Fix rebase trigger. * xamarin/maccore@0dfeb85ff6 [CI][VSTS] Add information when the external tool fails. (xamarin#2377) * xamarin/maccore@87e165fdbb Remove Vincent as a code owner 😞 (xamarin#2368) * xamarin/maccore@55a700bb5b [build] Add /restore to Xamarin.Analysis build (xamarin#2366) * xamarin/maccore@2d9f8a9685 Bump to xamarin/xamarin-analysis@95245313 (xamarin#2362) Diff: https://github.com/xamarin/maccore/compare/428964bf32f06862eb4209129c6fb5b882c3b9be..de616ca53e22ebea66216374a15b8caf2ca77e3c
TD&LR: This PR simplifies how we refer to user frameworks and fixes both warnings and non-optimal (app) output. Much longer story: Additional testing on macOS showed some build-time warnings and an [extra (dupe) file](spouliot/xcframework@a20f8ab#diff-54fd7d9cd5deae57f30195be0a43133eace03c1132401741a317e0ae8d5e13fdR34). Logs shows that we referred to the xcframework several times, where once should have been enough. ``` /native-reference:/Users/poupou/git/spouliot/xcframework/Universal.xcframework /native-reference:/Users/poupou/git/spouliot/xcframework/Universal.xcframework/macos-arm64_x86_64/Universal.framework /native-reference:/Users/poupou/git/spouliot/xcframework/Universal.xcframework/macos-arm64_x86_64/Universal.framework/Universal ``` The first `/native-reference` line produced a warning like: ``` MMP warning MM2006: Native library 'Universal.xcframework' was referenced but could not be found. ``` which makes sense as the tools (both `mmp` and `mtouch`) are not, by design, aware of (unresolved) xcframeworks. Removing `{NativeReference}` from `Xamarin.Mac.Common.targets` (and `Xamarin.iOS.Common.targets`) as it has already been processed by `_ExpandNativeReferences` solves this. The other part of the issue (next two lines) is because `msbuild` does not track changes to directories like it does for files - and the workaround (in `_ExpandNativeReferences`) had to be copied in other places (both XI and XM `_CompileToNative`) and that was not enough (and would eventually need to be duplicated again and again). This could lead to duplicate entries (i msbuild logs) like ``` NativeReferences ../../Universal.xcframework/macos-arm64_x86_64/Universal.framework ../../Universal.xcframework/macos-arm64_x86_64/Universal.framework/Univeral ``` which maps to our extra entries. In order to simplify things we make the `_ExpandNativeReferences` resolve the full path to the library name (not the `.framework` directory) which simplifies both `_CompileToNative` and ensure a single way (at least for `msbuild`) to provide this data to the tools (`mmp` and `mtouch`). Using a file, instead of a directory, is also more consistent for the existing `-framework` option, e.g. we provide the names like: ``` --framework=CoreLocation --framework=ModelIO ``` So adding a full path that include the name is more appropriate, e.g. ``` --framework=/Users/poupou/git/master/xamarin-macios/tests/xharness/tmp-test-dir/xcframework-test760/bin/AnyCPU/Debug/bindings-xcframework-test.resources/XTest.xcframework/ios-i386_x86_64-simulator/XTest.framework/XTest ``` Finally for macOS applications it turns out we were embedding yet another copy of the framework's library inside the `MonoBundle`, which is clearly wrong, because of the last entry. ``` $ l bin/Release/xcf-mac.app/Contents/MonoBundle/Universal -rwxr-xr-x 1 poupou staff 167152 2 Dec 16:16 bin/Release/xcf-mac.app/Contents/MonoBundle/Universal ``` The tool now checks if a provided library is inside a framework (or not) which is a good validation to have anyway when it gets called directly, i.e. not thru `msbuild`.
❌ Tests failed on Build ❌Tests failed on Build. Test results37 tests failed, 4 tests passed.Failed tests
Pipeline on Agent XAMBOT-1109 |
❌ Tests failed on Build ❌Tests failed on Build. Test results7 tests failed, 34 tests passed.Failed tests
Pipeline on Agent XAMBOT-1109 |
``` 10:59:46.5383210 Making all in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/mmp-regression 10:59:46.5392610 TargetFrameworkFallbackSearchPaths=/Users/builder/azdo/_work/1/s/xamarin-macios/_mac-build/Library/Frameworks/Mono.framework/External/xbuild-frameworks MSBuildExtensionsPathFallbackPathsOverride=/Users/builder/azdo/_work/1/s/xamarin-macios/_mac-build/Library/Frameworks/Mono.framework/External/xbuild make all 10:59:46.6208220 /Applications/Xcode_12.5.0-beta.app/Contents/Developer/usr/bin/make clean 10:59:46.6956100 /Applications/Xcode_12.5.0-beta.app/Contents/Developer/usr/bin/make build 10:59:46.7422460 GEN dylib/libTest.dylib 10:59:46.8094820 ld: library not found for -lSystem 10:59:46.8097590 clang: error: linker command failed with exit code 1 (use -v to see invocation) 10:59:46.8110310 make[2]: *** [dylib/libTest.dylib] Error 1 10:59:46.8112570 make[1]: *** [run] Error 2 10:59:47.0030120 Process make exited with 2 ``` This happens on BigSur as it does not find the default location anymore...
The issue is the OS version, not the Xcode version. Update check to skip that test on macOS 11+
❌ Tests failed on Build ❌Tests failed on Build. Test results2 tests failed, 39 tests passed.Failed tests
Pipeline on Agent XAMBOT-1110 |
The test cannot work on BigSur since while you can `dlopen` the library you can open `fopen` it as a file (and can't embed it for the test). ``` 12:31:23.9407820 CSC : error CS1566: Error reading resource 'libz.dylib' -- 'Could not find file "/usr/lib/libz.dylib"' [/Users/builder/azdo/_work/1/s/xamarin-macios/tests/msbuild/Xamarin.MacDev.Tests/bin/Debug/net472/tmp-test-dir/msbuild-tests201/XM45Binding.csproj] 12:31:23.9407900 Done Building Project "/Users/builder/azdo/_work/1/s/xamarin-macios/tests/msbuild/Xamarin.MacDev.Tests/bin/Debug/net472/tmp-test-dir/msbuild-tests201/XM45Binding.csproj" (default targets) -- FAILED. ```
❌ Tests failed on Build ❌Tests failed on Build. Test results3 tests failed, 38 tests passed.Failed tests
Pipeline on Agent XAMBOT-1110' |
* `nm` changed it's output and test was updated * `clang` linking has a much higher limit for it's command-line length At least it does not seem to be OS specific since both 10.15 and 11.0 returns the same maximum ``` $ getconf ARG_MAX 1048576 ```
❌ Tests failed on Build ❌Tests failed on Build. Test results1 tests failed, 40 tests passed.Failed tests
Pipeline on Agent XAMBOT-1110' |
… update/opt to test
❌ Tests failed on Build ❌Tests failed on Build. Test results1 tests failed, 40 tests passed.Failed tests
Pipeline on Agent XAMBOT-1110' |
Failure unrelated to PR -> https://github.com/xamarin/maccore/issues/2370 |
This version of Xcode requires macOS 11.0 or later.