diff --git a/configure b/configure index 0933210069..8006f3bf26 100755 --- a/configure +++ b/configure @@ -1829,6 +1829,7 @@ HAVE_LIST=" perl pod2man sdl + section_data_rel_ro texi2html threads vdpau_x11 @@ -3990,6 +3991,7 @@ case $target_os in ;; android) disable symver + enable section_data_rel_ro SLIB_INSTALL_NAME='$(SLIBNAME)' SLIB_INSTALL_LINKS= # soname not set on purpose @@ -4138,6 +4140,7 @@ case $target_os in ;; linux) enable dv1394 + enable section_data_rel_ro ;; irix*) target_os=irix diff --git a/libavcodec/arm/fft_fixed_neon.S b/libavcodec/arm/fft_fixed_neon.S index 57a8cfb557..2651607544 100644 --- a/libavcodec/arm/fft_fixed_neon.S +++ b/libavcodec/arm/fft_fixed_neon.S @@ -242,7 +242,7 @@ function ff_fft_fixed_calc_neon, export=1 bx r3 endfunc -const fft_fixed_tab_neon +const fft_fixed_tab_neon, relocate=1 .word fft4_neon .word fft8_neon .word fft16_neon diff --git a/libavcodec/arm/fft_neon.S b/libavcodec/arm/fft_neon.S index 8b9ae2a82d..48f8dfc424 100644 --- a/libavcodec/arm/fft_neon.S +++ b/libavcodec/arm/fft_neon.S @@ -348,7 +348,7 @@ function ff_fft_permute_neon, export=1 pop {r4,pc} endfunc -const fft_tab_neon +const fft_tab_neon, relocate=1 .word fft4_neon .word fft8_neon .word fft16_neon diff --git a/libavcodec/arm/fft_vfp.S b/libavcodec/arm/fft_vfp.S index 27be91293e..ac601325f2 100644 --- a/libavcodec/arm/fft_vfp.S +++ b/libavcodec/arm/fft_vfp.S @@ -33,7 +33,7 @@ function ff_fft_calc_vfp, export=1 movrel a2, (fft_tab_vfp - 8) ldr pc, [a2, ip, lsl #2] endfunc -const fft_tab_vfp +const fft_tab_vfp, relocate=1 .word fft4_vfp .word fft8_vfp .word X(ff_fft16_vfp) @ this one alone is exported diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S index 35559ce27a..1d0e5a97b2 100644 --- a/libavutil/arm/asm.S +++ b/libavutil/arm/asm.S @@ -89,12 +89,16 @@ FUNC .func \name .endif .endm -.macro const name, align=2 +.macro const name, align=2, relocate=0 .macro endconst ELF .size \name, . - \name .purgem endconst .endm +.if HAVE_SECTION_DATA_REL_RO && \relocate + .section .data.rel.ro +.else .section .rodata +.endif .align \align \name: .endm