From 9b1d8f01a6e99166f9808c79966abe10786de8b6 Mon Sep 17 00:00:00 2001 From: osy <50960678+osy@users.noreply.github.com> Date: Sun, 3 Jan 2021 21:24:24 -0800 Subject: [PATCH] aarch64: remove usage of FUNC macro for clang Clang's arm64 assembler does not support multiple directives on a single line. C macros ALWAYS expand to a single line. --- arch/aarch64/getcontext.S | 6 +++++- arch/aarch64/setcontext.S | 6 +++++- arch/aarch64/swapcontext.S | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/arch/aarch64/getcontext.S b/arch/aarch64/getcontext.S index 2a1c4d7..1098706 100644 --- a/arch/aarch64/getcontext.S +++ b/arch/aarch64/getcontext.S @@ -15,7 +15,11 @@ ALIAS(getcontext, libucontext_getcontext) ALIAS(__getcontext, libucontext_getcontext) -FUNC(libucontext_getcontext) + .global PROC_NAME(libucontext_getcontext); + .align 2; + TYPE(libucontext_getcontext) + ENT(libucontext_getcontext) +PROC_NAME(libucontext_getcontext): str xzr, [x0, #REG_OFFSET(0)] /* save GPRs */ diff --git a/arch/aarch64/setcontext.S b/arch/aarch64/setcontext.S index 994652b..3d455a5 100644 --- a/arch/aarch64/setcontext.S +++ b/arch/aarch64/setcontext.S @@ -15,7 +15,11 @@ ALIAS(setcontext, libucontext_setcontext) ALIAS(__setcontext, libucontext_setcontext) -FUNC(libucontext_setcontext) + .global PROC_NAME(libucontext_setcontext); + .align 2; + TYPE(libucontext_setcontext) + ENT(libucontext_setcontext) +PROC_NAME(libucontext_setcontext): /* restore GPRs */ ldp x18, x19, [x0, #REG_OFFSET(18)] ldp x20, x21, [x0, #REG_OFFSET(20)] diff --git a/arch/aarch64/swapcontext.S b/arch/aarch64/swapcontext.S index d5bad2c..fddfa41 100644 --- a/arch/aarch64/swapcontext.S +++ b/arch/aarch64/swapcontext.S @@ -15,7 +15,11 @@ ALIAS(swapcontext, libucontext_swapcontext) ALIAS(__swapcontext, libucontext_swapcontext) -FUNC(libucontext_swapcontext) + .global PROC_NAME(libucontext_swapcontext); + .align 2; + TYPE(libucontext_swapcontext) + ENT(libucontext_swapcontext) +PROC_NAME(libucontext_swapcontext): str xzr, [x0, #REG_OFFSET(0)] /* save GPRs */