Closed Bug 1765276 Opened 3 years ago Closed 3 years ago

Investigate fdlibm trigonometric functions fingerprinting resistance

Categories

(Core :: JavaScript Engine, task)

task

Tracking

()

RESOLVED FIXED
101 Branch
Tracking Status
firefox101 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(1 file)

The upgrade to clang 14 showed that fdlibm is not necessarily free of fingerprinting problems depending how it's compiled. This needs to be carefully reviewed.

Until clang 14, the default was -ffp-contract=fast, but some reason
didn't really enable FP contraction in practice. GCC has the same
default, but does, in fact enable FP contraction*. This leads to more
inconsistencies in FP results between builds than would normally be
expected, and has an effect on e.g. fingerprinting resistance in fdlibm
trigonometric functions, or some other places (e.g. bug 1765436).

As far as the Firefox versions Mozilla ships are concerned, FP
contraction only really affects aarch64, but this change should in
practice make no difference with the current version of clang used (13),
and would preserve our now new default behavior with clang 14.

(*) We never noticed because we neither build with GCC for arm64 nor run
tests with GCC builds.

Blocks: 1758780
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/4b684fca9289 Disable floating-point contraction. r=firefox-build-system-reviewers,andi
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 101 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: