Closed Bug 1112945 Opened 10 years ago Closed 1 year ago

enable-shared-js builds broken by GCCellPtr being used in XPCOM tests

Categories

(Core :: JavaScript: GC, defect)

x86
macOS
defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: bzbarsky, Unassigned)

References

Details

Compile error is:

 8:18.97 /Users/bzbarsky/mozilla/inbound/obj-firefox-opt/netwerk/test/tmpx_64a0.list:
 8:18.97     PropertiesTest.o
 8:18.97 
 8:18.97 Undefined symbols for architecture x86_64:
 8:18.97   "JS::GCCellPtr::GCCellPtr(JS::Value const&)", referenced from:
 8:18.97       TraceCallbackFunc::Trace(JS::Heap<JS::Value>*, char const*, void*) const in libxpcomglue_s.a(Unified_cpp_xpcom_glue0.o)
 8:18.97   "JS::GCCellPtr::outOfLineKind() const", referenced from:
 8:18.97       nsScriptObjectTracer::NoteJSChild(JS::GCCellPtr, char const*, void*) in libxpcomglue_s.a(Unified_cpp_xpcom_glue0.o)
 8:18.97 ld: symbol(s) not found for architecture x86_64

Presumably the XPCOM tests are not compiled in whatever way actually works with JS_FRIEND_API (which does not have the same linkage behavior as JS_PUBLIC_API does)...  So we need to either make this public API or fix that test to no use cycle collection or fix how it's compiled or something.
Component: JavaScript Engine → JavaScript: GC
Actually, I just checked and using JS_PUBLIC_API on this class doesn't seem to help either.  So it's not friend vs public but just something about how these tests link JS differently than Firefox does in --enable-shared-js builds.  Or something.
Summary: enable-shared-js builds broken by GCCellPtr being friendAPI → enable-shared-js builds broken by GCCellPtr being used in XPCOM tests
(In reply to Boris Zbarsky [:bz] from comment #1)
> Actually, I just checked and using JS_PUBLIC_API on this class doesn't seem
> to help either.  So it's not friend vs public but just something about how
> these tests link JS differently than Firefox does in --enable-shared-js
> builds.  Or something.

To --enable-shared-js, I have to --disable-unified-compilation.
Assignee: terrence.d.cole → nobody

In the process of migrating remaining bugs to the new severity system, the severity for this bug cannot be automatically determined. Please retriage this bug using the new severity system.

Severity: blocker → --
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.