Skip to content

Conversation

vargaz
Copy link
Contributor

@vargaz vargaz commented Mar 2, 2018

@vargaz vargaz requested a review from rolfbjarne as a code owner March 2, 2018 06:18
@vargaz vargaz mentioned this pull request Mar 2, 2018
@vargaz
Copy link
Contributor Author

vargaz commented Mar 2, 2018

This is now ready for review etc.

@rolfbjarne rolfbjarne added enable-device-build Makes our build include device support (which we disable for simple PRs to speed them up) run-all-tests Run all our tests. skip-device-tests labels Mar 2, 2018
Copy link
Member

@rolfbjarne rolfbjarne left a comment

Choose a reason for hiding this comment

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

Let me also setup a wrench lane, which will make this run our device tests as well.

builds/Makefile Outdated
$(PREFIX)/bin:
$(Q) mkdir -p $@

install-cross: install-llvm64 $(CROSS_TARGETS)
# Dependency used to build the offsets tool before recursively calling sdk makefiles
offsets-tool: $(MONO_PATH)/configure
Copy link
Member

Choose a reason for hiding this comment

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

I think this can just depend on $(MONO_PATH)/tools/offsets-tool/MonoAotOffsetsDumper.exe instead:

offsets-tool: $(MONO_PATH)/tools/offsets-tool/MonoAotOffsetsDumper.exe

and then it will be built when needed.

builds/Makefile Outdated
$(call Q_2,INSTALL ,[LLVM64]) install -c -m 0755 $(INSTALL_STRIP_FLAG) $^ $@

$(PREFIX)/LLVM/bin:
$(Q) mkdir -p $@

install-llvm64: .stamp-build-llvm64 $(LLVM_TARGETS)
install-llvm32:
Copy link
Member

Choose a reason for hiding this comment

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

This looks wrong, this target does nothing? If so, it can be removed.

builds/Makefile Outdated
# config/eglib-config.h is needed by the builds in runtime/
.stamp-build-$(2): $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(BUILD_DESTDIR)/$(2)
$(MAKE) -C $(SDK_BUILDDIR) package-ios-$(3) $(SDK_ARGS)
cp -r $(SDK_DESTDIR)/ios-$(3)/lib $(BUILD_DESTDIR)/$(2)
Copy link
Member

Choose a reason for hiding this comment

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

We like quiet builds 😄 i.e.:

    $(Q) cp -r
    $(Q) ...

@monojenkins
Copy link
Collaborator

Build failure

@rolfbjarne
Copy link
Member

Wrench builds will show up here: https://wrench.internalx.com/Wrench/index.aspx?lane=macios-mac-mono-sdk

@rolfbjarne rolfbjarne added the do-not-merge Do not merge this pull request label Mar 2, 2018
@rolfbjarne
Copy link
Member

Marking as do-not-merge until we get results from the device tests.

@monojenkins
Copy link
Collaborator

Build failure

1 similar comment
@monojenkins
Copy link
Collaborator

Build failure

@rolfbjarne
Copy link
Member

@vargaz another issue found on device:

Dyld Error Message:
Dyld Message: Library not loaded: /Users/builder/data/lanes/5966/fbce4e74/source/xamarin-macios/external/mono/sdks/out/ios-target32s/lib/libmonosgen-2.0.1.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/3B5ED21E-0CAE-4E6A-B426-73BBD2EE2748/mini.app/libxamarin-debug.dylib
  Reason: image not found
  Dyld Version: 370.6

My guess is that you're setting the install name correctly somewhere. This is somewhat complicated: https://github.com/xamarin/xamarin-macios/blob/97ef51bf8b3a0d3b5e16f62f9cfd579821db48ed/builds/Makefile#L1332-L1353

@monojenkins
Copy link
Collaborator

Build failure

Copy link
Contributor

@spouliot spouliot left a comment

Choose a reason for hiding this comment

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

  • sim tests looks good
  • need device tests results
  • need to check if this has impact in final app sizes (e.g. incorrect include of extra code in the runtime)

@monojenkins
Copy link
Collaborator

Build failure

@rolfbjarne
Copy link
Member

rolfbjarne commented Mar 12, 2018

@vargaz there's still an issue with the install path of libmono-profiler-log.dylib on tvOS (iOS seems fine):

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: /Users/builder/data/lanes/5966/cf75a3c0/source/xamarin-macios/external/mono/sdks/out/ios-targettv/lib/libmonosgen-2.0.1.dylib | Referenced from: /private/var/containers/Bundle/Application/55CF7694-D637-46A7-A32E-822CC93A0EB2/dont link.app/libmono-profiler-log.dylib | Reason: image not found

should be reproducible by running a test app on device with profiling enabled.

@monojenkins
Copy link
Collaborator

Build failure

@vargaz
Copy link
Contributor Author

vargaz commented Mar 12, 2018

@monojenkins build

@monojenkins
Copy link
Collaborator

Build failure

@monojenkins
Copy link
Collaborator

Build failure

@monojenkins
Copy link
Collaborator

Build failure

@vargaz
Copy link
Contributor Author

vargaz commented Mar 12, 2018

@monojenkins build

@monojenkins
Copy link
Collaborator

Build failure

@rolfbjarne
Copy link
Member

The device tests look good now, there doesn't seem to be anything new compared to master.

@spouliot
Copy link
Contributor

last build failed with

make[4]: *** No rule to make target `package-ios-target64-release'.  Stop.

@vargaz vargaz self-assigned this Mar 14, 2018
@vargaz
Copy link
Contributor Author

vargaz commented Mar 15, 2018

Working on updating them, need to wait for some changes to be merged to 2017-12.

@monojenkins
Copy link
Collaborator

Build failure

3 similar comments
@monojenkins
Copy link
Collaborator

Build failure

@monojenkins
Copy link
Collaborator

Build failure

@monojenkins
Copy link
Collaborator

Build failure

vargaz added 8 commits March 21, 2018 10:57
…K makefile.

* Build	   these by recursing into     external/mono/sdks/builds and calling the targets there.
* Add a	   few extra rules    to build dependencies like llvm	 and mono's configure to avoid
  these	   being build in parallel     by the SDK makefile.
* Copy config.h/eglib-config.h into builds/install so the build	in runtime/ doesn't have
  to add the builddirs to its includes.
…, so there is no need to run install_name_tool on them.
@monojenkins
Copy link
Collaborator

Build success

Copy link
Member

@rolfbjarne rolfbjarne left a comment

Choose a reason for hiding this comment

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

No new failures were found in the latest CI device tests, so I think this can be merged now.

@rolfbjarne rolfbjarne added do-not-merge Do not merge this pull request and removed do-not-merge Do not merge this pull request labels Mar 22, 2018
@rolfbjarne
Copy link
Member

It looks like we're still missing app size comparisons.

@vargaz vargaz merged commit 864091d into dotnet:master Mar 23, 2018
@vargaz
Copy link
Contributor Author

vargaz commented Mar 23, 2018

Will do that after the merge.

@vargaz
Copy link
Contributor Author

vargaz commented Mar 23, 2018

There seems to be a size increase, will investigate.

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 enable-device-build Makes our build include device support (which we disable for simple PRs to speed them up) run-all-tests Run all our tests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants