Closed Bug 1210456 Opened 7 years ago Closed 7 years ago

ARM64: Build fails with missing js::jit::AtomicOperations::loadSafeWhenRacy functions

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla44
Tracking Status
firefox44 --- fixed

People

(Reporter: jolesen, Assigned: jolesen)

References

Details

Attachments

(1 file)

The arm64 simulator build started failing with linker errors complaining about missing loadSafeWhenRacy and storeSafeWhenRacy functions.

Steps to reproduce:
1. Configure SpiderMonkey with js/src/configure --enable-simulator=arm64
2. make

Alternatively: js/src/devtools/automation/autospider.py arm64-sim

Results:
(On OS X El Capitan)
Compiler warnings (truncated):
...
In file included from /Users/jolesen/gecko-dev/obj-spider/js/src/Unified_cpp_js_src0.cpp:2:
In file included from /Users/jolesen/gecko-dev/js/src/asmjs/AsmJSCompile.cpp:22:
In file included from /Users/jolesen/gecko-dev/js/src/jit/CodeGenerator.h:10:
In file included from /Users/jolesen/gecko-dev/js/src/jit/IonCaches.h:22:
In file included from /Users/jolesen/gecko-dev/js/src/vm/TypedArrayCommon.h:20:
/Users/jolesen/gecko-dev/js/src/jit/AtomicOperations.h:138:21: warning: inline function 'js::jit::AtomicOperations::loadSafeWhenRacy<unsigned char>' is not
      defined [-Wundefined-inline]
    static inline T loadSafeWhenRacy(T* addr);
                    ^
...

Linker errors (truncated):
Undefined symbols for architecture x86_64:
  "unsigned char js::jit::AtomicOperations::loadSafeWhenRacy<unsigned char>(unsigned char*)", referenced from:
      js::ElementSpecific<SharedTypedArrayObjectTemplate<signed char>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      js::ElementSpecific<SharedTypedArrayObjectTemplate<unsigned char>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      js::ElementSpecific<SharedTypedArrayObjectTemplate<short>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      js::ElementSpecific<SharedTypedArrayObjectTemplate<unsigned short>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      js::ElementSpecific<SharedTypedArrayObjectTemplate<int>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      js::ElementSpecific<SharedTypedArrayObjectTemplate<unsigned int>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      js::ElementSpecific<SharedTypedArrayObjectTemplate<float>, js::SharedOps>::setFromAnyTypedArray(JSContext*, JS::Handle<js::SharedTypedArrayObject*>, JS::Handle<JSObject*>, unsigned int) in libjs_static.a(Unified_cpp_js_src12.o)
      ...
See Also: → 1206187
See Also: → 1208663
These methods landed with 1084248 for other architectures. A real
implementation is still needed, but this allows the code to build.
Attachment #8668571 - Flags: review?(lhansen)
Attachment #8668571 - Flags: review?(lhansen) → review+
https://treeherder.mozilla.org/#/jobs?repo=try&revision=6add8e90ce5d

(Although this patch fixes an arm64 build failure which try cannot test)
Keywords: checkin-needed
Status: NEW → ASSIGNED
https://hg.mozilla.org/mozilla-central/rev/be9ff8c301a4
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
You need to log in before you can comment on or make changes to this bug.