* commit 'd5a55981986ac5d1a31aef3a8d16eaff8534a412': build: check if AS supports the '.func' directive Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.3
@@ -1719,6 +1719,7 @@ SYSTEM_FUNCS=" | |||||
TOOLCHAIN_FEATURES=" | TOOLCHAIN_FEATURES=" | ||||
as_dn_directive | as_dn_directive | ||||
as_func | |||||
asm_mod_q | asm_mod_q | ||||
attribute_may_alias | attribute_may_alias | ||||
attribute_packed | attribute_packed | ||||
@@ -4279,6 +4280,11 @@ if enabled asm; then | |||||
\n: .int 0 | \n: .int 0 | ||||
.endm | .endm | ||||
m x | m x | ||||
EOF | |||||
check_as <<EOF && enable as_func | |||||
.func test | |||||
.endfunc | |||||
EOF | EOF | ||||
fi | fi | ||||
@@ -26,10 +26,16 @@ | |||||
# define ELF # | # define ELF # | ||||
#endif | #endif | ||||
#if HAVE_AS_FUNC | |||||
# define FUNC | |||||
#else | |||||
# define FUNC # | |||||
#endif | |||||
.macro function name, export=0, align=2 | .macro function name, export=0, align=2 | ||||
.macro endfunc | .macro endfunc | ||||
ELF .size \name, . - \name | ELF .size \name, . - \name | ||||
.endfunc | |||||
FUNC .endfunc | |||||
.purgem endfunc | .purgem endfunc | ||||
.endm | .endm | ||||
.text | .text | ||||
@@ -37,11 +43,11 @@ ELF .size \name, . - \name | |||||
.if \export | .if \export | ||||
.global EXTERN_ASM\name | .global EXTERN_ASM\name | ||||
ELF .type EXTERN_ASM\name, %function | ELF .type EXTERN_ASM\name, %function | ||||
.func EXTERN_ASM\name | |||||
FUNC .func EXTERN_ASM\name | |||||
EXTERN_ASM\name: | EXTERN_ASM\name: | ||||
.else | .else | ||||
ELF .type \name, %function | ELF .type \name, %function | ||||
.func \name | |||||
FUNC .func \name | |||||
\name: | \name: | ||||
.endif | .endif | ||||
.endm | .endm | ||||
@@ -34,6 +34,12 @@ | |||||
# define T @ | # define T @ | ||||
#endif | #endif | ||||
#if HAVE_AS_FUNC | |||||
# define FUNC | |||||
#else | |||||
# define FUNC @ | |||||
#endif | |||||
#if HAVE_NEON | #if HAVE_NEON | ||||
.arch armv7-a | .arch armv7-a | ||||
#elif HAVE_ARMV6T2 | #elif HAVE_ARMV6T2 | ||||
@@ -66,7 +72,7 @@ ELF .section .note.GNU-stack,"",%progbits @ Mark stack as non-executable | |||||
.noaltmacro | .noaltmacro | ||||
.endif | .endif | ||||
ELF .size \name, . - \name | ELF .size \name, . - \name | ||||
.endfunc | |||||
FUNC .endfunc | |||||
.purgem endfunc | .purgem endfunc | ||||
.endm | .endm | ||||
.text | .text | ||||
@@ -74,11 +80,11 @@ ELF .size \name, . - \name | |||||
.if \export | .if \export | ||||
.global EXTERN_ASM\name | .global EXTERN_ASM\name | ||||
ELF .type EXTERN_ASM\name, %function | ELF .type EXTERN_ASM\name, %function | ||||
.func EXTERN_ASM\name | |||||
FUNC .func EXTERN_ASM\name | |||||
EXTERN_ASM\name: | EXTERN_ASM\name: | ||||
.else | .else | ||||
ELF .type \name, %function | ELF .type \name, %function | ||||
.func \name | |||||
FUNC .func \name | |||||
\name: | \name: | ||||
.endif | .endif | ||||
.endm | .endm | ||||