Skip to content
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

[watch] add build rules for arm64_32 based on 2018-08-watchos branch #5465

Closed
wants to merge 30 commits into from

Conversation

lewurm
Copy link
Contributor

@lewurm lewurm commented Jan 23, 2019

NOTE: tested with this hacky patch for xharness: https://gist.github.com/lewurm/b4243bad2b4407bdd7f056bbdbeafd5b

Verified by running mini regression suite. It's green 🙂

Context: mono/mono#10641

lewurm and others added 5 commits January 23, 2019 21:44
Commit list for mono/mono:

* mono/mono@b6c818b204d [arm64_32] use emulate OPs so it works with bitcode compiled code for armv7k (xamarin#12443)
* mono/mono@204f917c972 [sdks] Add a XCODE32_DIR make variable and use it to compile the 32 bit cross compilers. (xamarin#12055)
* mono/mono@70a207adaa7 [ios] initial watch64_32 support (xamarin#11691)
* mono/mono@287b5598f93 [mini] rename s/__mono_ilp32__/MONO_ARCH_ILP32 (xamarin#11652)
* mono/mono@9939c1a6560 [System]Fix race condition in `SystemDependencyProvider.Initialize()`. xamarin#12538.
* mono/mono@b0c4390d608 [runtime] Don't probe aot cache on android
* mono/mono@725ba2a2523 Fix mono/mono#12461.
* mono/mono@1dee62626d4 [2018-08 Android,AOT] Support dumping AOT offsets with Android NDK r17+ (xamarin#12454) (xamarin#12465)
* mono/mono@146c8191fb2 [x86] Set the LLVM data layout.
* mono/mono@5d3077c7bcb [arm] Set the LLVM data layout, without it, opt seems to make incorrect optimizations.
* mono/mono@5266e6a8f10 [2018-08][debugger][backport] Fix crash when there is a generic struct with a field that is an enumerator (xamarin#12410)
* mono/mono@0d988bc696e Bump API snapshot submodule
* mono/mono@e6285d015b9 Bump corefx

Diff: mono/mono@51c4f45...b6c818b
@lewurm lewurm added the do-not-merge Do not merge this pull request label Jan 23, 2019
@lewurm
Copy link
Contributor Author

lewurm commented Jan 23, 2019

do not merge, until decided in which branch it should end up

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

🔥 Build failed 🔥

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

🔥 Build failed 🔥

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

🔥 Build failed 🔥

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

🔥 Build failed 🔥

Commit list for mono/mono:

* mono/mono@b1921c26355 Merge remote-tracking branch 'origin/2018-08' into 2018-08-watchos
* mono/mono@29eb176dd97 Bump bockbuild for GTK fix
* mono/mono@45e519e9dfd use for loop to access item values and avoid InvalidCastException which occurs because VirtualDirectoryMappingCollection enumerator returns key and it's not expected
* mono/mono@de14ec6c78e [2018-08] Add more detailed reporting for exceptions  (xamarin#13012)
* mono/mono@b0416692580 [ci] Bump bockbuild to get fontconfig download url fix
* mono/mono@d2e33f5f5c7 [2018-08] [interp] Add method to seq_points table after we finish registering it (xamarin#12906)
* mono/mono@32f1873983d [interp] Fix ldelema (xamarin#12930)
* mono/mono@7f8afd40072 [arm/bitcode] mark valuetype returns as such when dealing with pinvokes (xamarin#12931)
* mono/mono@f59b876a816 Merge remote-tracking branch 'origin/2018-08' into 2018-08-watchos
* mono/mono@bbf2394619a [ci] Support building the OSX .pkg on private Jenkins
* mono/mono@98810acba19 [runtime] Fix building older runtimes with newer system Mono (xamarin#12574)
* mono/mono@d946a250793 [2018-08] [runtime] Fix mono_pe_file_map logging (xamarin#12897)
* mono/mono@4d2b7f8b01b Merge pull request xamarin#12858 from monojenkins/backport-pr-12856-to-2018-08
* mono/mono@89fe6abeef7 [arm64] encode offset within stack slot for r4 in gsharedvt descriptor (xamarin#12885)
* mono/mono@9d21a2bb159 [Registry] Prevent crash due to background thread facing problems in the file system
* mono/mono@163f45d81ce [corlib] Fix GetFrames_AsyncCalls test not to block
* mono/mono@208d5a5f1b2 Avoid recursive extracting redundant frames from captured traces.
* mono/mono@bcc1b83e822 Add back missing stack frames to mono MERP reports (xamarin#12741)
* mono/mono@7a3ce9849ff Bump corert
* mono/mono@13204572a40 [arm/ios] workaround for faulty vcmp.f64 insn
* mono/mono@2359cba40e9 [coop] Fix deadlock when unwinding
* mono/mono@a4956c837e1 [2018-08] Native Crash Stability Fix Batch (xamarin#12565)
* mono/mono@d4d4fb79878 [eglib]Fix memory leak in `g_find_program_in_path()`. xamarin#11615.

Diff: mono/mono@b6c818b...b1921c2
@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

🔥 Build failed 🔥

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

🔥 Build failed 🔥

@lewurm
Copy link
Contributor Author

lewurm commented Feb 25, 2019

build

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

41 tests failed, 0 tests skipped, 311 tests passed.

Failed tests

  • monotouch-test/tvOS - simulator/Debug: BuildFailure
  • framework-test/tvOS - simulator/Debug: BuildFailure
  • mini/tvOS - simulator/Debug: BuildFailure
  • interdependent-binding-projects/tvOS - simulator/Debug: BuildFailure
  • fsharp/tvOS - simulator/Debug: BuildFailure
  • mscorlib/tvOS - simulator/Debug: BuildFailure
  • System/tvOS - simulator/Debug: BuildFailure
  • System.Core/tvOS - simulator/Debug: BuildFailure
  • System.Data/tvOS - simulator/Debug: BuildFailure
  • System.Net.Http/tvOS - simulator/Debug: BuildFailure
  • System.Numerics/tvOS - simulator/Debug: BuildFailure
  • System.Runtime.Serialization/tvOS - simulator/Debug: BuildFailure
  • System.Transactions/tvOS - simulator/Debug: BuildFailure
  • System.Web.Services/tvOS - simulator/Debug: BuildFailure
  • System.Xml/tvOS - simulator/Debug: BuildFailure
  • System.Xml.Linq/tvOS - simulator/Debug: BuildFailure
  • Mono.Security/tvOS - simulator/Debug: BuildFailure
  • System.ComponentModel.DataAnnotations/tvOS - simulator/Debug: BuildFailure
  • System.Json/tvOS - simulator/Debug: BuildFailure
  • System.ServiceModel.Web/tvOS - simulator/Debug: BuildFailure
  • Mono.Data.Sqlite/tvOS - simulator/Debug: BuildFailure
  • Mono.Data.Tds/tvOS - simulator/Debug: BuildFailure
  • System.IO.Compression/tvOS - simulator/Debug: BuildFailure
  • System.IO.Compression.FileSystem/tvOS - simulator/Debug: BuildFailure
  • Mono.CSharp/tvOS - simulator/Debug: BuildFailure
  • System.Security/tvOS - simulator/Debug: BuildFailure
  • System.ServiceModel/tvOS - simulator/Debug: BuildFailure
  • System.IdentityModel/tvOS - simulator/Debug: BuildFailure
  • introspection/tvOS - simulator/Debug: BuildFailure
  • dont link/tvOS - simulator/Debug: BuildFailure
  • dont link/tvOS - simulator/Release: BuildFailure
  • link all/tvOS - simulator/Debug: BuildFailure
  • link all/tvOS - simulator/Release: BuildFailure
  • link sdk/tvOS - simulator/Debug: BuildFailure
  • link sdk/tvOS - simulator/Release: BuildFailure
  • monotouch-test/tvOS - simulator/Debug (static registrar): BuildFailure
  • monotouch-test/tvOS - simulator/Release (all optimizations): BuildFailure
  • monotouch-test/watchOS 32-bits - simulator/Debug: Crashed
  • [NUnit] Mono SystemJsonTests/watchOS 32-bits - simulator/Debug: Crashed
  • mmptest/macOS/NonSystem: Failed (Execution failed with exit code 1)
  • MTouch tests/NUnit: Failed (Execution failed with exit code 3)

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

3 tests failed, 0 tests skipped, 349 tests passed.

Failed tests

  • [NUnit] Mono SystemTests/tvOS - simulator/Debug: Failed
  • mmptest/macOS/NonSystem: Failed (Execution failed with exit code 1)
  • MTouch tests/NUnit: Failed (Execution failed with exit code 2)

This also means updating the whitelisted symbols.
@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

3 tests failed, 0 tests skipped, 349 tests passed.

Failed tests

  • apitest/Mac Classic/NonSystem: Failed (Test run failed.)
  • mmptest/macOS/NonSystem: Failed (Execution failed with exit code 1)
  • MTouch tests/NUnit: Failed (Execution failed with exit code 1)

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

2 tests failed, 0 tests skipped, 350 tests passed.

Failed tests

  • monotouch-test/watchOS 32-bits - simulator/Debug: Crashed
  • [xUnit] Mono SystemNumericsXunit/watchOS 32-bits - simulator/Debug: Crashed

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

Build succeeded
API Diff (from stable)
⚠️ API Diff (from PR only) (🔥 breaking changes 🔥)
ℹ️ Generator Diff (please review changes)

@@ -219,7 +219,9 @@ SIMULATORWATCH_OBJC_CFLAGS = $(SIMULATORWATCH_CFLAGS) $(COMMON_SIMULATOR_OBJC_CF

DEVICEWATCH_SDK = $(XCODE_DEVELOPER_ROOT)/Platforms/WatchOS.platform/Developer/SDKs/WatchOS$(WATCH_SDK_VERSION).sdk
DEVICEWATCH_CFLAGS = -arch armv7k -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) $(CFLAGS) -fembed-bitcode $(IOS_COMMON_DEFINES)
DEVICEWATCH64_32_CFLAGS = -arch arm64_32 -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) $(CFLAGS) -fembed-bitcode $(IOS_COMMON_DEFINES)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arm64_32 watch needs a different min version. Here we pass $(MIN_WATCHOS_SDK_VERSION) which is 2.0, and I think the tooling will "force upgrade" it to 5.0. Afaik the first public arm64_32 watchOS was 5.1, that's why we choose that value in the mono SDK: https://github.com/mono/mono/blob/5232408f7ad6edd95429769970d314c741e442e1/sdks/versions.mk#L43

Note: This is merely needed to avoid warnings like those:

warning MT5203 : Native linking warning : warning: object file (/Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.59/SDKs/Xamarin.WatchOS.sdk/usr/lib/libmonosgen-2.0.a(libmonoutils_la-mono-time.o)) was built for newer watchOS version (5.1) than being linked (5.0)

@rolfbjarne
Copy link
Member

Superseded by #6040.

@rolfbjarne rolfbjarne closed this May 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge Do not merge this pull request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants