diff --git a/configure b/configure index 9ac4a8e5fe8cf4b5b5d6c96e1ace111fe204a23a..ed8316fbb7771fb0a95f0c6296721f0691c20146 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 faddc0095ad7fc85d3f6cbae6a8fa054ad882dc2..c70a18991a47aa959e7672ab493c9ded02d3e692 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 c4d89189ea7906545ea83bd9377b6603a4feee39..b161015e394a7ba2d4dc8c7bcbfeb671f44e07aa 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 9c7b54e79e7f6abb779a641672a22bc2f7f26525..c2801fa1a92fd55ee230b955a67fa48290eeb3f9 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 93d74b65e1434ef9bf519654004f1ec4d00710fa..8479304f5fdce26450135d4ef77d7659f445758d 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