Closed Bug 1849275 Opened 10 months ago Closed 10 months ago

undefined reference to `void mozilla::ImplCycleCollectionTraverse<RefPtr<nsINode> >(nsCycleCollectionTraversalCallback&, mozilla::ContentIteratorBase<RefPtr<nsINode> >&, char const*, unsigned int)'

Categories

(Core :: DOM: UI Events & Focus Handling, defect)

defect

Tracking

()

RESOLVED FIXED
118 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- unaffected
firefox116 --- unaffected
firefox117 --- unaffected
firefox118 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Depending on optimizations, the build may fail with:

[task 2023-08-17T21:30:26.663Z] 21:30:26     INFO -  /builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/base/Unified_cpp_dom_base5.o: in function `mozilla::ScriptableContentIterator::cycleCollection::TraverseNative(void*, nsCycleCollectionTraversalCallback&)':
[task 2023-08-17T21:30:26.664Z] 21:30:26     INFO -  /builds/worker/checkouts/gecko/dom/base/ScriptableContentIterator.cpp:(.text._ZN7mozilla25ScriptableContentIterator15cycleCollection14TraverseNativeEPvR34nsCycleCollectionTraversalCallback+0x54): undefined reference to `void mozilla::ImplCycleCollectionTraverse<RefPtr<nsINode> >(nsCycleCollectionTraversalCallback&, mozilla::ContentIteratorBase<RefPtr<nsINode> >&, char const*, unsigned int)'
[task 2023-08-17T21:30:26.664Z] 21:30:26     INFO -  /builds/worker/fetches/binutils/bin/ld.bfd: libxul.so: hidden symbol `_ZN7mozilla27ImplCycleCollectionTraverseI6RefPtrI7nsINodeEEEvR34nsCycleCollectionTraversalCallbackRNS_19ContentIteratorBaseIT_EEPKcj' isn't defined
[task 2023-08-17T21:30:26.664Z] 21:30:26     INFO -  /builds/worker/fetches/binutils/bin/ld.bfd: final link failed: bad value

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

Template functions declared in headers, defined in one compilation unit
and used from multiple compilation units are a minefield. There is no
guarantee that all the used variants are instantiated from the compilation
unit containing the definition.

One way to deal with such issues is to add explicit instantiations in
the defining compilation unit, but here it causes problems, so we opt to
move the functions to the header.

Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/e4f39c21263f
Move template function definition to header. r=masayuki
Status: NEW → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → 118 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: