diff --git a/configure b/configure index 9ac4a8e5fe..ed8316fbb7 100755 --- a/configure +++ b/configure @@ -1543,6 +1543,7 @@ HAVE_LIST=" libdc1394_1 libdc1394_2 sdl + section_data_rel_ro threads vdpau_x11 xlib @@ -3415,6 +3416,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 @@ -3549,6 +3551,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 faddc0095a..c70a18991a 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 c4d89189ea..b161015e39 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 9c7b54e79e..c2801fa1a9 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 93d74b65e1..8479304f5f 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