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,11 +727,7 @@ 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
@@ -773,8 +765,10 @@ fft %+ n %+ fullsuffix:
 %endrep
 %undef n
 
+SECTION .data.rel.ro write
 align 8
 dispatch_tab %+ fullsuffix: pointer list_of_fft
+SECTION .text
 %endmacro ; DECL_FFT
 
 %if HAVE_AVX_EXTERNAL
