DescriptionPreserve section and data alignment in libchrome.<ver>.so.
Current packing preserves 4-byte alignment (in practice, 8-byte alignment,
because a whole number of R_ARM_RELATIVE relocations is removed). However
this is insufficient for some NEON vector instructions. For example:
18b0c: f42c026f vld1.16 {d0-d3}, [ip :128]
requires a 16-byte alignment, and fails with SIGBUS if not aligned.
The NDK toolchain aligns .text and .data to 256 bytes. Retain this by
padding the non-packed (non-R_ARM_RELATIVE) relocations with sufficient
R_ARM_NONE entries so that 256 byte alignment is preserved. Update
test data so that enough R_ARM_RELATIVE entries are present for packing
to reduce file size.
BUG=385553
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278105
Patch Set 1 #
Total comments: 7
Patch Set 2 : Review feedback changes #
Messages
Total messages: 11 (0 generated)
|