[webkit-changes] [WebKit/WebKit] 964f4b: REGRESSION(284376 at main)[WPE]: Build broken with GC...

Carlos Alberto Lopez Perez noreply at github.com
Mon Sep 30 12:08:32 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 964f4b1be9b5c53988d71c1029b2dc27c198cf16
      https://github.com/WebKit/WebKit/commit/964f4b1be9b5c53988d71c1029b2dc27c198cf16
  Author: Carlos Alberto Lopez Perez <clopez at igalia.com>
  Date:   2024-09-30 (Mon, 30 Sep 2024)

  Changed paths:
    M Source/JavaScriptCore/heap/MarkedBlock.cpp

  Log Message:
  -----------
  REGRESSION(284376 at main)[WPE]: Build broken with GCC and ARM64
https://bugs.webkit.org/show_bug.cgi?id=280614

Reviewed by Michael Catanzaro and Keith Miller.

GCC is failing to build on ARM64 after 284376 at main with this error:

 "error: address of explicit register variable ‘savedActualVM’ requested"

And that is because the variables `savedActualVM` and `savedBitfield` are
marked as register storage variables, but is not possible to take the
address of a register variable, which is needed to pass them into the
lambda by reference.

Not sure how Clang deals with this, I guess it automatically decides to
use heap storage for this two variables.
I tried to manually do that for this two variables but then GCC warns with:

 "warning: optimization may eliminate reads and/or writes to register variables [-Wvolatile-register-var]"

due to the conflicting usage of "volatile register" in DEFINE_SAVED_VALUE()
for ARM64, so just fix this by using the version of DEFINE_SAVED_VALUE()
that uses heap variables when the compiler is GCC.

* Source/JavaScriptCore/heap/MarkedBlock.cpp:

Canonical link: https://commits.webkit.org/284460@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list