Page MenuHomePhabricator

Bug 1838323 - Disambiguate skvx when building with different arch options. r?glandium
ClosedPublic

Authored by lsalzman on Jul 6 2023, 1:54 AM.
Referenced Files
Unknown Object (File)
Thu, Oct 16, 4:29 AM
Unknown Object (File)
Wed, Oct 15, 2:40 AM
Unknown Object (File)
Mon, Oct 13, 6:29 PM
Unknown Object (File)
Sat, Oct 4, 11:33 PM
Unknown Object (File)
Aug 3 2025, 10:03 AM
Unknown Object (File)
Jul 13 2025, 11:46 AM
Unknown Object (File)
May 21 2025, 5:06 AM
Unknown Object (File)
May 20 2025, 12:32 AM
Subscribers
None

Details

Summary

It seems that GCC, under certain circumstances, does not completely inline code in the skvx namespace in Skia, even though the code specifies "always_inline". As a side-effect, it leaves around symbols that are generated with different architecture flags supplied. LTO then picks one of the symbols, at what may as well be random.

This could potentially be an issue under clang if it ever failed to inline.

As a workaround for both, we force skvx to exist in arch-specific namespaces, i.e. -Dskvx=skvx_foo, so that even in the worst case, no ambiguous symbols will be generated.

Diff Detail

Event Timeline

phab-bot published this revision for review.Jul 6 2023, 1:54 AM
phab-bot changed the visibility from "Custom Policy" to "Public (No Login Required)".
phab-bot changed the edit policy from "Custom Policy" to "Restricted Project (Project)".
phab-bot removed a project: secure-revision.
This revision is now accepted and ready to land.Jul 6 2023, 1:58 AM

This revision requires a Testing Policy Project Tag to be set before landing. Please apply one of testing-approved, testing-exception-unchanged, testing-exception-ui, testing-exception-elsewhere, testing-exception-other. Tip: this Firefox add-on makes it easy!