diff options
author | Martin Storsjö <martin@martin.st> | 2017-08-31 12:06:44 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2017-09-02 22:18:20 +0300 |
commit | 9dde6ab06c48f9447cd16f39bee33569cddb7be4 (patch) | |
tree | 14b743294fbd5085849f3b1765ae7f92fc7e86cb /libavutil/file.c | |
parent | 547db1eaecd597031165a2bf637acaaacde52788 (diff) | |
download | ffmpeg-9dde6ab06c48f9447cd16f39bee33569cddb7be4.tar.gz |
arm: Fix SIGBUS on ARM when compiled with binutils 2.29
In binutils 2.29, the behavior of the ADR instruction changed so that 1 is
added to the address of a Thumb function (previously nothing was added). This
allows the loaded address to be passed to a BLX instruction and the correct
mode change will occur.
See: https://sourceware.org/bugzilla/show_bug.cgi?id=21458
By using adr with a label that isn't annotated as a thumb function,
we avoid the new behaviour in binutils 2.29 and get the same behaviour
as in prior releases, and as in other assemblers (ms armasm.exe,
clang's built in assembler) - an idea that Janne Grunau came up with.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavutil/file.c')
0 files changed, 0 insertions, 0 deletions