From d5a55981986ac5d1a31aef3a8d16eaff8534a412 Mon Sep 17 00:00:00 2001 From: Janne Grunau <janne-libav@jannau.net> Date: Fri, 30 May 2014 09:58:43 +0200 Subject: [PATCH] build: check if AS supports the '.func' directive Not supported by Clang's integrated assembler. Since it just adds debug information it can safely omitted. --- configure | 6 ++++++ libavutil/aarch64/asm.S | 12 +++++++++--- libavutil/arm/asm.S | 12 +++++++++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 13bcdfe4d3a..59f72735818 100755 --- a/configure +++ b/configure @@ -1468,6 +1468,7 @@ SYSTEM_FUNCS=" TOOLCHAIN_FEATURES=" as_dn_directive + as_func asm_mod_q attribute_may_alias attribute_packed @@ -3733,6 +3734,11 @@ if enabled asm; then \n: .int 0 .endm m x +EOF + + check_as <<EOF && enable as_func +.func test +.endfunc EOF fi diff --git a/libavutil/aarch64/asm.S b/libavutil/aarch64/asm.S index 3690a33af67..850f16b415b 100644 --- a/libavutil/aarch64/asm.S +++ b/libavutil/aarch64/asm.S @@ -26,10 +26,16 @@ # define ELF # #endif +#if HAVE_AS_FUNC +# define FUNC +#else +# define FUNC # +#endif + .macro function name, export=0, align=2 .macro endfunc ELF .size \name, . - \name - .endfunc +FUNC .endfunc .purgem endfunc .endm .text @@ -37,11 +43,11 @@ ELF .size \name, . - \name .if \export .global EXTERN_ASM\name ELF .type EXTERN_ASM\name, %function - .func EXTERN_ASM\name +FUNC .func EXTERN_ASM\name EXTERN_ASM\name: .else ELF .type \name, %function - .func \name +FUNC .func \name \name: .endif .endm diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S index 5884e172f30..93d74b65e14 100644 --- a/libavutil/arm/asm.S +++ b/libavutil/arm/asm.S @@ -34,6 +34,12 @@ # define T @ #endif +#if HAVE_AS_FUNC +# define FUNC +#else +# define FUNC @ +#endif + #if HAVE_NEON .arch armv7-a #elif HAVE_ARMV6T2 @@ -66,7 +72,7 @@ ELF .section .note.GNU-stack,"",%progbits @ Mark stack as non-executable .noaltmacro .endif ELF .size \name, . - \name - .endfunc +FUNC .endfunc .purgem endfunc .endm .text @@ -74,11 +80,11 @@ ELF .size \name, . - \name .if \export .global EXTERN_ASM\name ELF .type EXTERN_ASM\name, %function - .func EXTERN_ASM\name +FUNC .func EXTERN_ASM\name EXTERN_ASM\name: .else ELF .type \name, %function - .func \name +FUNC .func \name \name: .endif .endm -- GitLab