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

Update mozjs (SpiderMonkey) to 128.0 #32769

Merged
merged 20 commits into from
Jul 29, 2024
Merged

Update mozjs (SpiderMonkey) to 128.0 #32769

merged 20 commits into from
Jul 29, 2024

Conversation

sagudev
Copy link
Member

@sagudev sagudev commented Jul 12, 2024

Companion PR for servo/mozjs#474

OffThread stuff is commented out.

Fun fact: No changes in codegen needed🎉


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • There are tests for these changes in WPT

@sagudev
Copy link
Member Author

sagudev commented Jul 12, 2024

@sagudev
Copy link
Member Author

sagudev commented Jul 12, 2024

Results are pretty good: https://github.com/sagudev/servo/actions/runs/9911961223/job/27388962921

"Bad" results

  • some changes on FinalizationRegistry: OK [expected ERROR], but subcases fail (so no regression)

  • TIMEOUT [expected OK] /webmessaging/message-channels/close-event/garbage-collected.tentative.any.html

    TIMEOUT [expected FAIL] subtest: Entangled port is garbage collected, and the close event is fired.

      Test timed out
    
  • TIMEOUT [expected OK] /webmessaging/message-channels/close-event/garbage-collected.tentative.any.worker.html

    TIMEOUT [expected FAIL] subtest: Entangled port is garbage collected, and the close event is fired.

      Test timed out
    

Timeouts are on all browsers: https://wpt.fyi/results/webmessaging/message-channels/close-event/garbage-collected.tentative.any.html?label=experimental&label=master&aligned, and before subcase was fail so this is not a regression.

Regressions

OK /html/semantics/scripting-1/the-script-element/module/crossorigin.html

FAIL [expected PASS] subtest: Root module, Error in CORS-same-origin script

     assert_equals: Unexpected _log value expected "running,8-1" but got "running,8-0"

FAIL [expected PASS] subtest: Imported module, Error in CORS-same-origin script

     assert_equals: Unexpected _log value expected "running,8-1" but got "running,8-0"

Has wrong col num (FIXED), so it's definitely not tested enough as only this test fails.

I also expected https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers (apparently there are no wpt tests for it? probably because this is in ecme test suite).

@sagudev
Copy link
Member Author

sagudev commented Jul 12, 2024

NOTE-TO-SELF: Run debugmozjs in CI: #14759.

@sagudev
Copy link
Member Author

sagudev commented Jul 13, 2024

Android still fails: https://github.com/sagudev/servo/actions/runs/9913444136/job/27390478428#step:13:1242, but it works in mozjs, so maybe more changes are needed in mach. cc @mukilan

@sagudev sagudev added the T-linux-wpt-2020 Do a try run of the WPT label Jul 13, 2024
@github-actions github-actions bot removed the T-linux-wpt-2020 Do a try run of the WPT label Jul 13, 2024
Copy link

🔨 Triggering try run (#9919707596) for Linux WPT

Copy link

Test results for linux-wpt-layout-2020 from try job (#9919707596):

Flaky unexpected result (11)
  • FAIL [expected PASS] /_mozilla/css/dirty_viewport.html (#13731)
  • OK /custom-elements/form-associated/ElementInternals-setFormValue.html (#29174)
    • PASS [expected FAIL] subtest: Single value - name is missing
    • PASS [expected FAIL] subtest: Newline normalization - \r\n in name (urlencoded)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/005.html (#27062)
    • PASS [expected FAIL] subtest: Link with onclick navigation and href navigation
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • FAIL [expected PASS] subtest: 0041 set in href="" targeting a frame and clicked

      assert_equals: expected "A" but got ""
      

    • FAIL [expected PASS] subtest: 0080 00FF set in href="" targeting a frame and clicked

      assert_equals: expected "�ÿ" but got ""
      

    • FAIL [expected PASS] subtest: 0080 00FF 0100 set in href="" targeting a frame and clicked

      assert_equals: expected "�ÿĀ" but got ""
      

    • FAIL [expected PASS] subtest: D83D DE0D set in href="" targeting a frame and clicked

      assert_equals: expected "😍" but got ""
      

    • FAIL [expected PASS] subtest: DE0D 0041 set in href="" targeting a frame and clicked

      assert_equals: expected "\ufffdA" but got ""
      

  • TIMEOUT [expected PASS] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html (#30063)
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • FAIL [expected PASS] subtest: DOMParser

      assert_unreached: got unexpected load event Reached unreachable code
      

    • FAIL [expected PASS] subtest: createHTMLDocument

      assert_unreached: got unexpected error event Reached unreachable code
      

    • FAIL [expected PASS] subtest: <template>

      assert_unreached: got unexpected error event Reached unreachable code
      

  • OK [expected TIMEOUT] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • PASS [expected TIMEOUT] subtest: reparent-form-during-planned-navigation-task
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: \r\n in value (normal form)
  • TIMEOUT [expected OK] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • TIMEOUT [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • FAIL [expected PASS] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)

      assert_equals: expected 18223616 but got 18223360
      

Stable unexpected results that are known to be intermittent (19)
  • PASS [expected TIMEOUT] /css/css-color/animation/opacity-animation-ending-correctly-002.html (#29216)
  • PASS [expected FAIL] /css/css-transforms/transform-input-018.html (#22725)
  • TIMEOUT /css/cssom-view/MediaQueryList-addListener-removeListener.html (#24569)
    • TIMEOUT [expected PASS] subtest: listeners are called in order they were added

      Test timed out
      

  • TIMEOUT /css/cssom-view/MediaQueryListEvent.html (#25275)
    • TIMEOUT [expected PASS] subtest: argument of addListener

      Test timed out
      

    • NOTRUN [expected PASS] subtest: argument of onchange
  • TIMEOUT /fetch/metadata/generated/element-img-environment-change.sub.html (#30111)
    • FAIL [expected PASS] subtest: sec-fetch-site - Not sent to non-trustworthy same-origin destination, no attributes

      promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • PASS [expected FAIL] subtest: Navigating to a different document with form submission
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • PASS [expected FAIL] subtest: Same-origin navigation started from unload handler must be ignored
  • OK /html/browsers/history/the-history-interface/traverse_the_history_2.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK /html/browsers/history/the-history-interface/traverse_the_history_4.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK [expected CRASH] /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
  • TIMEOUT [expected ERROR] /html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html (#32745)
  • TIMEOUT [expected ERROR] /html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args.html (#32745)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html (#31014)
    • TIMEOUT [expected FAIL] subtest: Ensure that the 'cuechange' event is not fired before video playback has begun.

      Test timed out
      

  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
  • TIMEOUT /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html (#24066)
  • TIMEOUT /resource-timing/test_resource_timing.https.html (#25216)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • TIMEOUT [expected OK] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html (#29053)
    • TIMEOUT [expected PASS] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe

      Test timed out
      

Copy link

✨ Try run (#9919707596) succeeded.

@sagudev
Copy link
Member Author

sagudev commented Jul 19, 2024

Android still fails: https://github.com/sagudev/servo/actions/runs/9913444136/job/27390478428#step:13:1242, but it works in mozjs, so maybe more changes are needed in mach. cc @mukilan

@mukilan are you doing/willing to do android work or should somebody else do it?

@mukilan
Copy link
Member

mukilan commented Jul 24, 2024

Sorry, missed the notifications from this PR. I can look into the android part.

mukilan added a commit to mukilan/servo that referenced this pull request Jul 24, 2024
We need Android NDK r26c for the SM upgrade (servo#32769) and the fix in
nixpkgs to make r26 NDKs function correctly (NixOS/nixpkgs#298285). Both
of those are not available in the snapshot of nixpkgs we use currently.

Signed-off-by: Mukilan Thiyagarajan <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Jul 24, 2024
* build: bump the nixpkgs snapshot

We need Android NDK r26c for the SM upgrade (#32769) and the fix in
nixpkgs to make r26 NDKs function correctly (NixOS/nixpkgs#298285). Both
of those are not available in the snapshot of nixpkgs we use currently.

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

* add cargo-deny to shell.nix

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

---------

Signed-off-by: Mukilan Thiyagarajan <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Jul 24, 2024
* build: bump the nixpkgs snapshot

We need Android NDK r26c for the SM upgrade (#32769) and the fix in
nixpkgs to make r26 NDKs function correctly (NixOS/nixpkgs#298285). Both
of those are not available in the snapshot of nixpkgs we use currently.

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

* add cargo-deny to shell.nix

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

---------

Signed-off-by: Mukilan Thiyagarajan <[email protected]>
@mukilan
Copy link
Member

mukilan commented Jul 25, 2024

@sagudev Apologies, I accidentally pushed to your fork while trying to trigger the CI job on my fork. Shall I force push without my commits?

@sagudev
Copy link
Member Author

sagudev commented Jul 25, 2024

@sagudev Apologies, I accidentally pushed to your fork while trying to trigger the CI job on my fork. Shall I force push without my commits?

It's okay, you can push to my branch/fork as I am not currently doing any work here.

@mukilan
Copy link
Member

mukilan commented Jul 25, 2024

So 2460979 fixes the Android build on both the CI and my NixOS system. However, I'm not sure if I understand the underlying issue correctly. On NixOS, without the fixes for setting LIBZ_SYS_STATIC=1 and the cargo:rustc-link-lib=static=z in build.rs, we get an error in the final link step about undefined references.

  = note: ld.lld: error: undefined hidden symbol: deflateEnd
          >>> referenced by Compression.cpp:54 (/home/mukilan/.cargo/git/checkouts/mozjs-953f58dcd23dbdae/e618981/mozjs-sys/mozjs/js/src/vm/Compression.cpp:54)
          >>>               Unified_cpp_js_src15.o:(js::Compressor::~Compressor()) in archive /home/mukilan/dev/servo.git/servo-pr/target/aarch64-linux-android/release/deps/libmozjs_sys-448477fcab6f6851.rlib

          ld.lld: error: undefined hidden symbol: deflateInit2_
          >>> referenced by Compression.cpp:75 (/home/mukilan/.cargo/git/checkouts/mozjs-953f58dcd23dbdae/e618981/mozjs-sys/mozjs/js/src/vm/Compression.cpp:75)
          >>>               Unified_cpp_js_src15.o:(js::Compressor::init()) in archive /home/mukilan/dev/servo.git/servo-pr/target/aarch64-linux-android/release/deps/libmozjs_sys-448477fcab6f6851.rlib

          ld.lld: error: undefined hidden symbol: deflate
          >>> referenced by Compression.cpp:116 (/home/mukilan/.cargo/git/checkouts/mozjs-953f58dcd23dbdae/e618981/mozjs-sys/mozjs/js/src/vm/Compression.cpp:116)
          >>>               Unified_cpp_js_src15.o:(js::Compressor::compressMore()) in archive /home/mukilan/dev/servo.git/servo-pr/target/aarch64-linux-android/release/deps/libmozjs_sys-448477fcab6f6851.rlib

I set LIBZ_SYS_STATIC=1 because otherwise the build script of libz-sys adds directives to use libz from the host, but perhaps because we are cross-compiling, the include and search lib paths are prefixed with the sysroot (e.g /nix/store../android-sdk/ndk/sysroot/nix/store/../libz-1.3.1, so effectively uses an invalid path.

I also needed the cargo:rustc-link-lib=static=z because when rustc invokes clang for the final link step, the -lz added by libz-sys ends up towards the end of the command line. By trial and error, I found that moving it towards the beginning fixed the error. For some reason, linking it as shared library doesn't fix the undefined reference issue.

Interestingly, the CI fails without the libz fixes, but it failing during the configure step of mozjs (same error that you shared) instead of a linker error.

  checking whether the linker supports Identical Code Folding... no
  checking whether removing dead symbols breaks debugging... no
  checking for valid optimization flags... no
  configure: error: These compiler flags are invalid: -O3

I'll try to figure out the exact reason, but let me know if you are able to make sense of the above issues.

Note: The NDK does have the libz and is part of the system search paths for the linker and header includes.

@sagudev
Copy link
Member Author

sagudev commented Jul 25, 2024

I set LIBZ_SYS_STATIC=1 because otherwise the build script of libz-sys adds directives to use libz from the host, but perhaps because we are cross-compiling, the include and search lib paths are prefixed with the sysroot (e.g /nix/store../android-sdk/ndk/sysroot/nix/store/../libz-1.3.1, so effectively uses an invalid path.

This sounds like libz-sys problem, maybe we can isolate it and fix it upstream.

I also needed the cargo:rustc-link-lib=static=z because when rustc invokes clang for the final link step, the -lz added by libz-sys ends up towards the end of the command line. By trial and error, I found that moving it towards the beginning fixed the error.

This is very weird, maybe there is some escaping problem or something, could you share whole invocation.

Also what is weird is that android CI in mozjs works (although we only run cargo build which does not trigger linker step).

@mukilan
Copy link
Member

mukilan commented Jul 25, 2024

This is very weird, maybe there is some escaping problem or something, could you share whole invocation.

This is the invocation without the link-lib directive in servoshell/build.rs. When we add the directive, we get an additional -lz after the "-lEGL" "-Wl,-Bstatic"

Gae24 pushed a commit to Gae24/servo that referenced this pull request Jul 26, 2024
* build: bump the nixpkgs snapshot

We need Android NDK r26c for the SM upgrade (servo#32769) and the fix in
nixpkgs to make r26 NDKs function correctly (NixOS/nixpkgs#298285). Both
of those are not available in the snapshot of nixpkgs we use currently.

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

* add cargo-deny to shell.nix

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

---------

Signed-off-by: Mukilan Thiyagarajan <[email protected]>
@mukilan
Copy link
Member

mukilan commented Jul 26, 2024

I think the issue might in mozjs, specifically in how zlib is included and compiled.

I'm able to reproduce the issue I'm seeing with:

//include <zlib.h>

__attribute__ ((visibility("hidden"))) extern int inflateInit_(void*, const char*, int);
__attribute__ ((visibility("hidden"))) extern int inflateInit2_(void*, int, const char*, int);

void test() {
   inflateInit_(0, 0, 0);
   inflateInit2_(0, 0, 0, 0);
}

I get the same 'undefined hidden symbol' error when trying to link the above with both static and dynamic libz. I don't see any error if the visibilty is changed to 'default' or we use the zlib header directly. Although, it is curious why static linking doesn't work here even though it does in servo (i.e the rust-link-lib=static=z directive).

@sagudev
Copy link
Member Author

sagudev commented Jul 26, 2024

I think the issue might in mozjs, specifically in how zlib is included and compiled.

I'm able to reproduce the issue I'm seeing with:

//include <zlib.h>

__attribute__ ((visibility("hidden"))) extern int inflateInit_(void*, const char*, int);
__attribute__ ((visibility("hidden"))) extern int inflateInit2_(void*, int, const char*, int);

void test() {
   inflateInit_(0, 0, 0);
   inflateInit2_(0, 0, 0, 0);
}

I get the same 'undefined hidden symbol' error when trying to link the above with both static and dynamic libz. I don't see any error if the visibilty is changed to 'default' or we use the zlib header directly. Although, it is curious why static linking doesn't work here even though it does in servo (i.e the rust-link-lib=static=z directive).

Where exactly is this in mozjs? https://github.com/sagudev/mozjs/tree/e618981f24a5105321301b33ab874632661846ed does not have any manual declarations by my search.

@mukilan
Copy link
Member

mukilan commented Jul 26, 2024

Sorry, I can clarify. I'm not saying we have literally declared them using the __attribute__. I was just pointing out that the error 'undefined hidden symbol' seems to indicate that somehow during compilation of mozjs, the 'zlib' symbols in mozjs have the same effect as if they were declared with 'hidden visiblity'. This is also confirmed by looking at the contents of the libmozjs_sys.rlib that rust produces using readelf:

[nix-shell:~/dev]$ readelf -a libmozjs_sys-448477fcab6f6851/Unified_cpp_js_src15.o  | grep inflate
000000000050  031a0000011b R_AARCH64_CALL26  0000000000000000 inflateInit_ + 0
000000000064  031b0000011b R_AARCH64_CALL26  0000000000000000 inflate + 0
00000000006c  031c0000011b R_AARCH64_CALL26  0000000000000000 inflateEnd + 0
000000000090  031e0000011b R_AARCH64_CALL26  0000000000000000 inflateInit2_ + 0
0000000000d8  031b0000011b R_AARCH64_CALL26  0000000000000000 inflate + 0
000000000114  031b0000011b R_AARCH64_CALL26  0000000000000000 inflate + 0
00000000013c  031c0000011b R_AARCH64_CALL26  0000000000000000 inflateEnd + 0
   794: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN   UND inflateInit_
   795: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN   UND inflate
   796: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN   UND inflateEnd
   798: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN   UND inflateInit2_

@sagudev
Copy link
Member Author

sagudev commented Jul 26, 2024

Try sagudev/mozjs@ff754c5 of mozjs (main branch on sagudev/mozjs)

@mukilan
Copy link
Member

mukilan commented Jul 26, 2024

Yes, sagudev/mozjs@ff754c5 does work without the libz related hacks in Servo!

Also, I found that SM forces all declarations to be hidden by default, including extern declarations.

#pragma GCC visibility is stronger than -fvisibility; it affects extern declarations as well. -fvisibility only affects definitions, so that existing code can be recompiled with minimal changes. This is more true for C than C++; C++ interfaces tend use classes, which are affected by -fvisibility. 

Commenting out the gcc_hidden.h include flag in toolchain.configure also makes Servo compile without sagudev/mozjs@ff754c5.

With sagudev/mozjs@ff754c5, the mozjs rlib now contains 'default' visibility references to the zlib symbols.

readelf -a ./target/aarch64-linux-android/release/deps/libmozjs_sys-1280b33408e3d35a.rlib | grep inflate
000000000050  031a0000011b R_AARCH64_CALL26  0000000000000000 inflateInit_ + 0
000000000064  031b0000011b R_AARCH64_CALL26  0000000000000000 inflate + 0
00000000006c  031c0000011b R_AARCH64_CALL26  0000000000000000 inflateEnd + 0
000000000090  031e0000011b R_AARCH64_CALL26  0000000000000000 inflateInit2_ + 0
0000000000d8  031b0000011b R_AARCH64_CALL26  0000000000000000 inflate + 0
000000000114  031b0000011b R_AARCH64_CALL26  0000000000000000 inflate + 0
00000000013c  031c0000011b R_AARCH64_CALL26  0000000000000000 inflateEnd + 0
   794: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND inflateInit_
   795: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND inflate
   796: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND inflateEnd
   798: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND inflateInit2_

I still can't find documentation that explains the linker's behaviour in this scenario with hidden symbols, so I don't yet understand how it works now with ff754c5. But I believe it should be safe to proceed with ff754c5 and no libz hacks in Servo, WDYT? If you agree, I can rebase and force push just the android changes after you push ff754c5 to the esr-128 branch in mozjs?

@sagudev
Copy link
Member Author

sagudev commented Jul 26, 2024

But I believe it should be safe to proceed with ff754c5 and no libz hacks in Servo, WDYT?

Sounds good to me.

If you agree, I can rebase and force push just the android changes after you push ff754c5 to the esr-128 branch in mozjs?

Okay, I pushed changes to esr-128 branch (commit hash is different due to rebase), so you can proceed.

EDIT: Do not forget to sign-off your commits.

sagudev and others added 3 commits July 27, 2024 16:16
Android NDK's layout has changed in r26 and 'lib64' no longer exists
under `toolchain/llvm/prebuilt/linux-x86_64`. The libraries that used to
be it are now present in `lib` folder itself.

This patch updates the build configuration to use the `lib` folder
instead when configuring the LIBCLANG_PATH environment variable.

This patch also updates to a newer mozjs version that includes fixes for
linker errors faced on Android (see servo#32769).

Signed-off-by: Mukilan Thiyagarajan <[email protected]>
README.md Outdated Show resolved Hide resolved
components/script/Cargo.toml Outdated Show resolved Hide resolved
Signed-off-by: Mukilan Thiyagarajan <[email protected]>
@sagudev sagudev requested a review from jdm July 28, 2024 07:18
Copy link
Member

@jdm jdm left a comment

Choose a reason for hiding this comment

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

Thank you!

Signed-off-by: sagudev <[email protected]>
@sagudev sagudev marked this pull request as ready for review July 28, 2024 16:58
@sagudev sagudev requested a review from gterzian as a code owner July 28, 2024 16:58
@sagudev sagudev enabled auto-merge July 28, 2024 16:58
@sagudev sagudev added this pull request to the merge queue Jul 28, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jul 28, 2024
@sagudev
Copy link
Member Author

sagudev commented Jul 29, 2024

@wusyong
Copy link
Member

wusyong commented Jul 29, 2024

@sagudev I tested on my local Windows device, and everything is working. Maybe it's because Servo CI doesn't run on windows-latest as Mozos CI does; instead, it uses windows-2022. This is probably because it doesn't use the latest Visual Studio library.

@sagudev
Copy link
Member Author

sagudev commented Jul 29, 2024

windows-latest = windows-2022 per https://github.com/actions/runner-images/tree/main

After a small research, I think the problem might be in stripping, so I am doing test run for that https://github.com/sagudev/mozjs/actions/runs/10138127855

@sagudev
Copy link
Member Author

sagudev commented Jul 29, 2024

windows-latest = windows-2022 per https://github.com/actions/runner-images/tree/main

After a small research, I think the problem might be in stripping, so I am doing test run for that https://github.com/sagudev/mozjs/actions/runs/10138127855

It works: https://github.com/sagudev/servo/actions/runs/10138407681/job/28030063629

Signed-off-by: sagudev <[email protected]>
@sagudev sagudev added this pull request to the merge queue Jul 29, 2024
Merged via the queue into servo:main with commit d132a02 Jul 29, 2024
11 checks passed
@sagudev sagudev deleted the mozjs-ESR128 branch July 29, 2024 08:28
@sagudev
Copy link
Member Author

sagudev commented Jul 29, 2024

I would like to thank everyone who helped me on this SM bump.

Gae24 pushed a commit to Gae24/servo that referenced this pull request Aug 7, 2024
* Update mozjs

Signed-off-by: sagudev <[email protected]>

* Fix changed readTransfer callback

https://bugzilla.mozilla.org/show_bug.cgi?id=1842713
Signed-off-by: sagudev <[email protected]>

* Use NewExternalArrayBuffer from glue

servo/mozjs@d33454b
Signed-off-by: sagudev <[email protected]>

* Fix columnorigin and filename being in latin1

Signed-off-by: sagudev <[email protected]>

* fixup newexternalarray

Signed-off-by: sagudev <[email protected]>

* Float16 (this might require more work for codegen support)

https://bugzilla.mozilla.org/show_bug.cgi?id=1833647
Signed-off-by: sagudev <[email protected]>

* js.strict is removed

https://bugzilla.mozilla.org/show_bug.cgi?id=1621603
Signed-off-by: sagudev <[email protected]>

* asm options are now somewhere else

https://hg.mozilla.org/mozilla-central/rev/26045c88e3972957087d535e7f259e08857bd2a2
Signed-off-by: sagudev <[email protected]>

* Comment out offthread compilation

Signed-off-by: sagudev <[email protected]>

* Set NDK to 26

Signed-off-by: sagudev <[email protected]>

* Fix 1-origin handling

Signed-off-by: sagudev <[email protected]>

* Expect `FinalizationRegistry` interface

Signed-off-by: sagudev <[email protected]>

* Good expectations

Signed-off-by: sagudev <[email protected]>

* more expectations

Signed-off-by: sagudev <[email protected]>

* Add `WeakRef` to interfaces expectation

Signed-off-by: sagudev <[email protected]>

* mozjs upgrade: fixes for Android

Android NDK's layout has changed in r26 and 'lib64' no longer exists
under `toolchain/llvm/prebuilt/linux-x86_64`. The libraries that used to
be it are now present in `lib` folder itself.

This patch updates the build configuration to use the `lib` folder
instead when configuring the LIBCLANG_PATH environment variable.

This patch also updates to a newer mozjs version that includes fixes for
linker errors faced on Android (see servo#32769).

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

* Patch libz-sys & update mozjs

Signed-off-by: sagudev <[email protected]>

* update NDK version in README

Signed-off-by: Mukilan Thiyagarajan <[email protected]>

* Use servo/mozjs

Signed-off-by: sagudev <[email protected]>

* Update mozjs again

Signed-off-by: sagudev <[email protected]>

---------

Signed-off-by: sagudev <[email protected]>
Signed-off-by: Mukilan Thiyagarajan <[email protected]>
Co-authored-by: Mukilan Thiyagarajan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants