[FFmpeg-cvslog] arm: Use .data.rel.ro for const data with relocations
Martin Storsjö
git at videolan.org
Tue Dec 9 12:08:24 CET 2014
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Sun Nov 16 12:51:54 2014 +0200| [f963f80399deb1a2b44c1bac3af7123e8a0c9e46] | committer: Martin Storsjö
arm: Use .data.rel.ro for const data with relocations
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f963f80399deb1a2b44c1bac3af7123e8a0c9e46
---
configure | 3 +++
libavcodec/arm/fft_fixed_neon.S | 2 +-
libavcodec/arm/fft_neon.S | 2 +-
libavcodec/arm/fft_vfp.S | 2 +-
libavutil/arm/asm.S | 6 +++++-
5 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/configure b/configure
index 9ac4a8e..ed8316f 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 faddc00..c70a189 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 c4d8918..b161015 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 9c7b54e..c2801fa 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 93d74b6..8479304 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
More information about the ffmpeg-cvslog
mailing list