[FFmpeg-cvslog] arm: Suppress tags about used cpu arch and extensions

Martin Storsjö git at videolan.org
Mon Mar 9 00:43:22 CET 2015


ffmpeg | branch: release/2.4 | Martin Storsjö <martin at martin.st> | Thu Mar  5 23:38:00 2015 +0200| [450b02307cb631f501793b52b98b610c3a54378b] | committer: Martin Storsjö

arm: Suppress tags about used cpu arch and extensions

When all the codepaths using manually set .arch/.fpu code is
behind runtime detection, the elf attributes should be suppressed.

This allows tools to know that the final built binary doesn't
strictly require these extensions.

Signed-off-by: Martin Storsjö <martin at martin.st>
(cherry picked from commit dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73
and b77e335e441040a40fc6156b8e4a134745d10233)
Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=450b02307cb631f501793b52b98b610c3a54378b
---

 configure           |    6 ++++++
 libavutil/arm/asm.S |    6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/configure b/configure
index ee57ed9..d3e545f 100755
--- a/configure
+++ b/configure
@@ -1477,6 +1477,7 @@ SYSTEM_FUNCS="
 TOOLCHAIN_FEATURES="
     as_dn_directive
     as_func
+    as_object_arch
     asm_mod_q
     attribute_may_alias
     attribute_packed
@@ -3870,6 +3871,11 @@ ra .dn d0.i16
 .unreq ra
 EOF
 
+    # llvm's integrated assembler supports .object_arch from llvm 3.5
+    [ "$objformat" = elf ] && check_as <<EOF && enable as_object_arch
+.object_arch armv4
+EOF
+
     [ $target_os != win32 ] && enabled_all armv6t2 shared !pic && enable_weak_pic
 
 elif enabled mips; then
diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S
index 93d74b6..61c8b1b 100644
--- a/libavutil/arm/asm.S
+++ b/libavutil/arm/asm.S
@@ -49,11 +49,17 @@
 #elif HAVE_ARMV5TE
         .arch           armv5te
 #endif
+#if   HAVE_AS_OBJECT_ARCH
+ELF     .object_arch    armv4
+#endif
 
 #if   HAVE_NEON
         .fpu            neon
+ELF     .eabi_attribute 10, 0           @ suppress Tag_FP_arch
+ELF     .eabi_attribute 12, 0           @ suppress Tag_Advanced_SIMD_arch
 #elif HAVE_VFP
         .fpu            vfp
+ELF     .eabi_attribute 10, 0           @ suppress Tag_FP_arch
 #endif
 
         .syntax unified



More information about the ffmpeg-cvslog mailing list