Skip to content

Conversation

emilio
Copy link
Contributor

@emilio emilio commented Aug 27, 2025

Fixes #3279

@emilio emilio force-pushed the opaque-layout branch 4 times, most recently from 03e523c to 4371cca Compare August 27, 2025 16:38
@emilio emilio enabled auto-merge August 27, 2025 16:38
@emilio emilio force-pushed the opaque-layout branch 2 times, most recently from 7de15db to a0884cf Compare August 27, 2025 16:52
@emilio emilio force-pushed the opaque-layout branch 6 times, most recently from 84054a7 to bef5c8a Compare August 27, 2025 18:03
@emilio emilio added this pull request to the merge queue Aug 27, 2025
Merged via the queue into main with commit 9366e0a Aug 27, 2025
51 checks passed
lando-prod-mozilla bot pushed a commit to mozilla-firefox/firefox that referenced this pull request Aug 28, 2025
…supply-chain-reviewers,profiler-reviewers,canaltinova

Bindgen historically represented 8-byte aligned types with u64. That's
borked in x86 where u64 is 4-byte aligned.

I fixed this in upstream bindgen
(rust-lang/rust-bindgen#3280), so update it.

There are a few changes needed:

 * mozilla/neqo#2913 to deal with the now
   properly aligned type.

 * Similar change (less fun because transmute, but still sound) in the
   macos crash reporter. I could try to generate a bit easier to use
   bindings for 8-byte 8-byte-aligned blobs, but this would do.

 * Some opaque additions in layout/style/ServoBindings.toml and the
   profiler bindings. This is unrelated to the opaque change, but
   fallout from other bindgen improvements. In particular, layout tests
   now run at compile time, so this uncovered some layout mismatches on
   platforms where we don't run rusttests on CI.

Differential Revision: https://phabricator.services.mozilla.com/D262840
github-actions bot pushed a commit to servo/stylo that referenced this pull request Aug 29, 2025
…supply-chain-reviewers,profiler-reviewers,canaltinova

Bindgen historically represented 8-byte aligned types with u64. That's
borked in x86 where u64 is 4-byte aligned.

I fixed this in upstream bindgen
(rust-lang/rust-bindgen#3280), so update it.

There are a few changes needed:

 * mozilla/neqo#2913 to deal with the now
   properly aligned type.

 * Similar change (less fun because transmute, but still sound) in the
   macos crash reporter. I could try to generate a bit easier to use
   bindings for 8-byte 8-byte-aligned blobs, but this would do.

 * Some opaque additions in layout/style/ServoBindings.toml and the
   profiler bindings. This is unrelated to the opaque change, but
   fallout from other bindgen improvements. In particular, layout tests
   now run at compile time, so this uncovered some layout mismatches on
   platforms where we don't run rusttests on CI.

Differential Revision: https://phabricator.services.mozilla.com/D262840
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Over-aligned opaque blobs are incorrect on x86.
1 participant