diff --git a/configure b/configure index 13bcdfe4d3a8431bcf6bd1f09bc8c37cfeb90b40..59f727358187570944e10bdd167ebef768aa8373 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 3690a33af67dec4898c14f523b274352b8dec8d9..850f16b415b8d39440ae05dcdd52db61e636f740 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 5884e172f30f5c22512884a4b51ee8c87af60e43..93d74b65e1434ef9bf519654004f1ec4d00710fa 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