Closed Bug 1425413 Opened 3 years ago Closed 3 years ago

Unexpected alignment requirements in js/src/jit/Linker.cpp

Categories

(Core :: JavaScript Engine: JIT, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla59
Tracking Status
firefox59 --- fixed

People

(Reporter: dan, Assigned: tcampbell)

References

Details

Attachments

(1 file)

After a change merged yesterday into trunk JS fails to build on non-JIT arches (ppc64/ppc64le/s390x) with following error

...
/usr/bin/g++ -o Unified_cpp_js_src16.o -c -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/dist/system_wrappers -include /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DENABLE_BINARYDATA -DENABLE_SIMD -DENABLE_WASM_THREAD_OPS -DJS_CACHEIR_SPEW -DENABLE_SHARED_ARRAY_BUFFER -DEXPORT_JS_API -DJS_HAS_CTYPES '-DDLL_PREFIX="lib"' '-DDLL_SUFFIX=".so"' -DMOZ_HAS_MOZGLUE -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/js/src -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/js/src -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/dist/include -I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-rtti -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -Wno-shadow -Werror=format -fno-strict-aliasing  -MD -MP -MF .deps/Unified_cpp_js_src16.o.pp   /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/js/src/Unified_cpp_js_src16.cpp
In file included from /home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/obj-powerpc64le-unknown-linux-gnu/js/src/Unified_cpp_js_src16.cpp:2:0:
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/js/src/jit/Linker.cpp: In member function ‘js::jit::JitCode* js::jit::Linker::newCode(JSContext*, js::jit::CodeKind, bool)’:
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/js/src/jit/Linker.cpp:27:5: error: static assertion failed: Unexpected alignment requirements
     static_assert(CodeAlignment >= ExecutableAllocatorAlignment,
     ^~~~~~~~~~~~~
gmake[4]: *** [/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox-src/config/rules.mk:1032: Unified_cpp_js_src16.o] Error 1
The assertion is new in bug 1421445.

Presumably due to
  https://searchfox.org/mozilla-central/source/js/src/jit/none/MacroAssembler-none.h#91

Ted, if the answer is to change the `4` to `sizeof(void*)` then r=me.
Blocks: 1421445
Flags: needinfo?(tcampbell)
Priority: -- → P1
Comment 1 is correct assessment, forwarding r+.
Flags: needinfo?(tcampbell)
Attachment #8937090 - Flags: review+
Assignee: nobody → tcampbell
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Pushed by tcampbell@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/34839f53008f
Fix non-jit platform MacroAssembler failure. r=jorendorff
https://hg.mozilla.org/mozilla-central/rev/34839f53008f
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
I confirm the fix helped on the ppc64/ppc64le/s390x platforms.
You need to log in before you can comment on or make changes to this bug.