firefox-esr: backport kettenis's fft.asm fix from ffmpeg. Fixes an x-only
crash reported by ratchov.
This commit is contained in:
parent
f1145a57d2
commit
6b3adeb9dd
|
@ -7,6 +7,7 @@ MOZILLA_BRANCH = release
|
|||
MOZILLA_PROJECT = firefox-esr
|
||||
MOZILLA_CODENAME = browser
|
||||
MOZILLA_DIST = firefox
|
||||
REVISION = 0
|
||||
|
||||
WRKDIST = ${WRKDIR}/${MOZILLA_DIST}-${MOZILLA_DIST_VERSION:C/esr//}
|
||||
HOMEPAGE = https://www.mozilla.org/firefox/organizations/
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
The x86 assembly FFT implementation uses dispatch tables in .text. This is
|
||||
incompatible with x-only so move them into .data.rel.ro where we can have
|
||||
relocations. But since they are in the RELRO segment they will be made
|
||||
read-only by ld.so after relocations have been processed.
|
||||
|
||||
Index: media/ffvpx/libavcodec/x86/fft.asm
|
||||
--- media/ffvpx/libavcodec/x86/fft.asm.orig
|
||||
+++ media/ffvpx/libavcodec/x86/fft.asm
|
||||
@@ -548,10 +548,6 @@ DEFINE_ARGS zc, w, n, o1, o3
|
||||
%macro FFT_DISPATCH 2; clobbers 5 GPRs, 8 XMMs
|
||||
lea r2, [dispatch_tab%1]
|
||||
mov r2, [r2 + (%2q-2)*gprsize]
|
||||
-%ifdef PIC
|
||||
- lea r3, [$$]
|
||||
- add r2, r3
|
||||
-%endif
|
||||
call r2
|
||||
%endmacro ; FFT_DISPATCH
|
||||
|
||||
@@ -731,12 +727,6 @@ DECL_PASS pass_interleave_3dnow, PASS_BIG 0
|
||||
%define pass_interleave_3dnowext pass_interleave_3dnow
|
||||
%endif
|
||||
|
||||
-%ifdef PIC
|
||||
-%define SECTION_REL - $$
|
||||
-%else
|
||||
-%define SECTION_REL
|
||||
-%endif
|
||||
-
|
||||
%macro DECL_FFT 1-2 ; nbits, suffix
|
||||
%ifidn %0, 1
|
||||
%xdefine fullsuffix SUFFIX
|
||||
@@ -773,8 +763,10 @@ fft %+ n %+ fullsuffix:
|
||||
%endrep
|
||||
%undef n
|
||||
|
||||
+[SECTION .data.rel.ro write]
|
||||
align 8
|
||||
dispatch_tab %+ fullsuffix: pointer list_of_fft
|
||||
+__?SECT?__
|
||||
%endmacro ; DECL_FFT
|
||||
|
||||
%if HAVE_AVX_EXTERNAL
|
Loading…
Reference in New Issue