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

[release/6.0-preview7] [wasm] Add support for using custom native libraries #56013

Merged

Conversation

radical
Copy link
Member

@radical radical commented Jul 20, 2021

Backports:

  1. [wasm] Add support for using custom native libraries #55797
  2. [wasm] Use compile rsp instead of link, for compiling native files #55848
  3. Link with EmccCompileOptimizationFlag==-Oz by default in release #55939
  4. [wasm] Fix regression in compiling .bc -> .o files #56063

The main update being (1) to add support for custom native libraries. The others essentially address some regressions in building the native bits, which resulted in increased build time, and file size.
And the sdk version used to test against wasm workloads, is bumped to the latest preview7 build.

/cc @lewing @steveisok

Customer Impact

Allows customers use native libraries on Wasm, a highly requested feature we'd like feedback on and fixes build related regressions.

Regression?

Yes, includes fixes for size and build time regressions.

Risk

Low, restricted to Browser (and some mobile tasks).

Testing

Tests are included + manual testing.

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@radical radical added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jul 20, 2021
radical and others added 4 commits July 22, 2021 18:56
…otnet#55848)

.. and fix logging that broke recently.

`tasks/Common/Utils.cs`:

TaskLoggingHelper Utils.Logger is a static field, which must be set by
task else any methods in Utils, eg. RunProcess, silently fail to log
any messages. Also, this would be a problem when building multiple
projects in parallel, since the logger is a task-specific one.

Instead, we pass logger as an arg to all the methods.

(cherry picked from commit 3301e9d)
* [wasm] Add back --emit-llvm that got removed mistakenly, in an earlier commit

.. found thanks to Jerome Laban.

* [wasm] Set EmccCompile's messages to MessageImportance.Low by default.

.. and to MessageImportance.Normal if `$(EmccVerbose)==true`.

* [wasm] Quote filenames passed to emcc compile command line

* Add more blazorwasm tests - for debug/release, aot/relinking

* Bump sdk for workload testing to 6.0.100-rc.1.21370.2

* [wasm] Fix regression in compiling bitcode -> .o

The `-emit-llvm` arg has been incorrectly added, and removed from the
args used for compiling .bc->.o .

This commit fixes it, and adds a crude test for it, so we don't regress
again.

* Fix build

(cherry picked from commit 1d8ad03)
@radical radical removed the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jul 22, 2021
@radical radical requested review from lewing and steveisok July 22, 2021 23:05
@radical radical added the arch-wasm WebAssembly architecture label Jul 22, 2021
@ghost
Copy link

ghost commented Jul 22, 2021

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

Backports:

  1. [wasm] Add support for using custom native libraries #55797
  2. [wasm] Use compile rsp instead of link, for compiling native files #55848
  3. Link with EmccCompileOptimizationFlag==-Oz by default in release #55939
  4. [wasm] Fix regression in compiling .bc -> .o files #56063

The main update being (1) to add support for custom native libraries. The others essentially address some regressions in building the native bits, which resulted in increased build time, and file size.
And the sdk version used to test against wasm workloads, is bumped to the latest preview7 build.

/cc @lewing @steveisok

Author: radical
Assignees: -
Labels:

arch-wasm

Milestone: -

@radical
Copy link
Member Author

radical commented Jul 23, 2021

@lewing lewing added Servicing-consider Issue for next servicing release review Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jul 26, 2021
@lewing
Copy link
Member

lewing commented Jul 26, 2021

Approved offline

@mmitche mmitche merged commit 2b16e1c into dotnet:release/6.0-preview7 Jul 26, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 25, 2021
@radical radical deleted the backport-wasm-native-libs branch September 17, 2021 17:26
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants