aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2015-02-18 00:40:06 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-03-13 13:04:31 +0100
commit47e8d17132b4f737a544ba777d6da99039b664a8 (patch)
treef1ff669dffd4408efc42d695bde569789b257c1d
parenta156f86e911a199d61251b69fc68bae452d15f3f (diff)
downloadffmpeg-47e8d17132b4f737a544ba777d6da99039b664a8.tar.gz
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@martin.st> (cherry picked from commit dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure6
-rw-r--r--libavutil/arm/asm.S6
2 files changed, 12 insertions, 0 deletions
diff --git a/configure b/configure
index ce745d21e4..3464d15b41 100755
--- a/configure
+++ b/configure
@@ -1769,6 +1769,7 @@ SYSTEM_FUNCS="
TOOLCHAIN_FEATURES="
as_dn_directive
as_func
+ as_object_arch
asm_mod_q
attribute_may_alias
attribute_packed
@@ -4504,6 +4505,11 @@ if enabled_any arm aarch64 || enabled_all ppc altivec && enabled asm; then
.func test
.endfunc
EOF
+
+ # llvm's integrated assembler supports .object_arch from llvm 3.5
+ enabled arm && test "$objformat" = elf && check_as <<EOF && enable as_object_arch
+.object_arch armv4
+EOF
fi
check_inline_asm inline_asm_labels '"1:\n"'
diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S
index 1d0e5a97b2..e9b0bcabdb 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