Closed Bug 1789591 Opened 3 years ago Closed 3 years ago

Align `WasmStructObject::inlineData_` using `alignas` instead of manually

Categories

(Core :: JavaScript: WebAssembly, defect)

defect

Tracking

()

RESOLVED FIXED
106 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox-esr102 --- unaffected
firefox104 --- unaffected
firefox105 --- unaffected
firefox106 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: jseward)

References

(Regression)

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

Filed by: abutkovits [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=389719183&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/EF1kfHoITdm9Rbfv4W46LQ/runs/0/artifacts/public/logs/live_backing.log


[task 2022-09-07T09:52:28.243Z] 09:52:28     INFO -  js/src/irregexp/regexp-compiler.o
[task 2022-09-07T09:52:28.244Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/js/src/irregexp'
[task 2022-09-07T09:52:28.290Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.293Z] 09:52:28     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/i686-w64-mingw32-clang++ -std=gnu++17 -o e_log.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -DDEBUG=1 -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/modules/fdlibm/src -I/builds/worker/workspace/obj-build/modules/fdlibm/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wno-ambiguous-reversed-operator -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-enum-float-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wno-error=deprecated-volatile -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-unknown-pragmas -Wno-unused-function -Wno-conversion-null -Wno-switch -Wno-enum-compare -Wno-psabi -Wthread-safety -Wno-unknown-warning-option -fno-sized-deallocation -fno-aligned-new -fms-extensions -fcrash-diagnostics-dir=/builds/worker/artifacts -D_HAS_EXCEPTIONS=0 -fno-exceptions -Wno-incompatible-ms-struct -mstackrealign -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pipe -g -gcodeview -O2 -fno-omit-frame-pointer -funwind-tables -Wno-parentheses -Wno-sign-compare -Wno-dangling-else -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/e_log.o.pp   /builds/worker/checkouts/gecko/modules/fdlibm/src/e_log.cpp
[task 2022-09-07T09:52:28.293Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.293Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.293Z] 09:52:28     INFO -  modules/fdlibm/src/e_log10.o
[task 2022-09-07T09:52:28.293Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.384Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/js/src/wasm'
[task 2022-09-07T09:52:28.386Z] 09:52:28     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/i686-w64-mingw32-clang++ -std=gnu++17 -o Unified_cpp_js_src_wasm1.o -c  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -DDEBUG=1 -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DJS_HAS_CTYPES -DFFI_BUILDING -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/js/src/wasm -I/builds/worker/workspace/obj-build/js/src/wasm -I/builds/worker/workspace/obj-build/js/src -I/builds/worker/checkouts/gecko/js/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/js/src/js-confdefs.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wno-ambiguous-reversed-operator -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-enum-float-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wno-error=deprecated-volatile -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-unknown-pragmas -Wno-unused-function -Wno-conversion-null -Wno-switch -Wno-enum-compare -Wno-psabi -Wthread-safety -Wno-unknown-warning-option -fno-sized-deallocation -fno-aligned-new -fms-extensions -fcrash-diagnostics-dir=/builds/worker/artifacts -Wno-incompatible-ms-struct -mstackrealign -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pipe -g -gcodeview -O2 -fno-omit-frame-pointer -funwind-tables -Werror=format -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/Unified_cpp_js_src_wasm1.o.pp   Unified_cpp_js_src_wasm1.cpp
[task 2022-09-07T09:52:28.386Z] 09:52:28     INFO -  In file included from Unified_cpp_js_src_wasm1.cpp:2:
[task 2022-09-07T09:52:28.387Z] 09:52:28     INFO -  In file included from /builds/worker/checkouts/gecko/js/src/wasm/WasmBuiltins.cpp:40:
[task 2022-09-07T09:52:28.387Z] 09:52:28    ERROR -  /builds/worker/checkouts/gecko/js/src/wasm/TypedObject.h:353:1: error: static_assert failed due to requirement '(__builtin_offsetof(js::WasmStructObject, inlineData_) % 8) == 0'
[task 2022-09-07T09:52:28.388Z] 09:52:28     INFO -  static_assert((offsetof(WasmStructObject, inlineData_) % 8) == 0);
[task 2022-09-07T09:52:28.388Z] 09:52:28     INFO -  ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2022-09-07T09:52:28.389Z] 09:52:28     INFO -  1 error generated.
[task 2022-09-07T09:52:28.389Z] 09:52:28    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:669: Unified_cpp_js_src_wasm1.o] Error 1
[task 2022-09-07T09:52:28.390Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/js/src/wasm'
[task 2022-09-07T09:52:28.390Z] 09:52:28     INFO -  gmake[4]: *** Waiting for unfinished jobs....
[task 2022-09-07T09:52:28.390Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.390Z] 09:52:28     INFO -  modules/fdlibm/src/e_log2.o
[task 2022-09-07T09:52:28.390Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.423Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/js/src/zydis'
[task 2022-09-07T09:52:28.423Z] 09:52:28     INFO -  js/src/zydis/DecoderData.o
[task 2022-09-07T09:52:28.425Z] 09:52:28     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/i686-w64-mingw32-clang -std=gnu99 -o DecoderData.o -c  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -DDEBUG=1 -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DJS_HAS_CTYPES -DFFI_BUILDING -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/js/src/zydis -I/builds/worker/workspace/obj-build/js/src/zydis -I/builds/worker/workspace/obj-build/js/src -I/builds/worker/checkouts/gecko/js/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -include /builds/worker/workspace/obj-build/js/src/js-confdefs.h -DMOZILLA_CLIENT -Qunused-arguments -fcrash-diagnostics-dir=/builds/worker/artifacts -mstackrealign -ffunction-sections -fdata-sections -fno-math-errno -pipe -g -gcodeview -O2 -fno-omit-frame-pointer -funwind-tables -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wenum-compare-conditional -Wstring-conversion -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-unknown-pragmas -Wno-unused-function -Wno-conversion-null -Wno-switch -Wno-enum-compare -Werror=implicit-function-declaration -Wno-psabi -Wthread-safety -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/DecoderData.o.pp   /builds/worker/checkouts/gecko/js/src/zydis/Zydis/DecoderData.c
[task 2022-09-07T09:52:28.426Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/js/src/zydis'
[task 2022-09-07T09:52:28.448Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.450Z] 09:52:28     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/i686-w64-mingw32-clang++ -std=gnu++17 -o e_log10.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -DDEBUG=1 -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/modules/fdlibm/src -I/builds/worker/workspace/obj-build/modules/fdlibm/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wno-ambiguous-reversed-operator -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-enum-float-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wno-error=deprecated-volatile -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-unknown-pragmas -Wno-unused-function -Wno-conversion-null -Wno-switch -Wno-enum-compare -Wno-psabi -Wthread-safety -Wno-unknown-warning-option -fno-sized-deallocation -fno-aligned-new -fms-extensions -fcrash-diagnostics-dir=/builds/worker/artifacts -D_HAS_EXCEPTIONS=0 -fno-exceptions -Wno-incompatible-ms-struct -mstackrealign -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pipe -g -gcodeview -O2 -fno-omit-frame-pointer -funwind-tables -Wno-parentheses -Wno-sign-compare -Wno-dangling-else -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/e_log10.o.pp   /builds/worker/checkouts/gecko/modules/fdlibm/src/e_log10.cpp
[task 2022-09-07T09:52:28.451Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.452Z] 09:52:28     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'
[task 2022-09-07T09:52:28.452Z] 09:52:28     INFO -  modules/fdlibm/src/e_pow.o
[task 2022-09-07T09:52:28.453Z] 09:52:28     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/modules/fdlibm/src'

:jseward, since you are the author of the regressor, bug 1774836, could you take a look?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jseward)
Flags: needinfo?(jseward)
Severity: S4 → --
Priority: P5 → P3
Summary: Perma [tier 2] /builds/worker/checkouts/gecko/js/src/wasm/TypedObject.h:353:1: error: static_assert failed due to requirement '(__builtin_offsetof(js::WasmStructObject, inlineData_) % 8) == 0' → Align `WasmStructObject::inlineData_` using `alignas` instead of manually

Bug 1774836 introduced a field WasmStructObject::padding_ in an attempt to
ensure that the subsequent field, WasmStructObject::inlineData_, is at least
8-aligned relative to the start of the object. Unfortunately this was done in
a way which is fragile -- it caused compilation failure on at least one Tier-2
target. This patch removes padding_ and instead uses alignas to request
the required alignment on inlineData_.

Assignee: nobody → jseward
Status: NEW → ASSIGNED
Pushed by jseward@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0dd3b1fd7332 Align `WasmStructObject::inlineData_` using `alignas` instead of manually. r=rhunt.
Component: General → JavaScript: WebAssembly
Product: Firefox Build System → Core

The product::component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit auto_nag documentation.

Priority: P3 → --
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 106 Branch

Set release status flags based on info from the regressing bug 1774836

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: