aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer2014-12-09 11:58:13 +0100
committerMichael Niedermayer2014-12-09 11:58:13 +0100
commit16e65419ed3e654a04091616bd81b8c96c79c268 (patch)
tree46e91a52bd14f4eee55c144675c321249d78ef98
parent99bf26fc6b17c05e9e1ec598a714c5efe1b978f6 (diff)
parentf963f80399deb1a2b44c1bac3af7123e8a0c9e46 (diff)
Merge commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46'
* commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46': arm: Use .data.rel.ro for const data with relocations Conflicts: configure Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure3
-rw-r--r--libavcodec/arm/fft_fixed_neon.S2
-rw-r--r--libavcodec/arm/fft_neon.S2
-rw-r--r--libavcodec/arm/fft_vfp.S2
-rw-r--r--libavutil/arm/asm.S6
5 files changed, 11 insertions, 4 deletions
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