On Fri, 6 Mar 2015, Janne Grunau wrote:
On 2015-03-05 23:38:00 +0200, Martin Storsjö wrote:
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.
---
Moved the check down into the arm section, removed a redundant
check, and changed "test" into [ to match the surrounding style.
---
configure | 6 ++++++
libavutil/arm/asm.S | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/configure b/configure
index 0e182b4..0042246 100755
--- a/configure
+++ b/configure
@@ -1494,6 +1494,7 @@ SYSTEM_FUNCS="
TOOLCHAIN_FEATURES="
as_dn_directive
as_func
+ as_object_arch
asm_mod_q
attribute_may_alias
attribute_packed
@@ -3921,6 +3922,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 8479304..943c1ce 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
ok
Any opposition to backporting this to release branches 9, 10 and 11 as
well?
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel