Substitute coroutine_transfer
with prefixed symbol in Makefile
``` coroutine/arm64/Context.S:31:57: error: invoking macro TOKEN_PASTE argument 1: empty macro arguments are undefined in ISO C90 [-Wpedantic] 31 | .global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer) | ^ ```
This commit is contained in:
parent
49ccc31d90
commit
1f39184bc7
@ -10,12 +10,11 @@
|
||||
* one at the bottom of this file */
|
||||
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.text
|
||||
|
||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
|
||||
#if defined(__CET__) && (__CET__ & 0x01) != 0
|
||||
/* IBT landing pad */
|
||||
|
@ -6,16 +6,15 @@
|
||||
##
|
||||
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.file "Context.S"
|
||||
.text
|
||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||
.align 2
|
||||
.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function
|
||||
.type PREFIXED_SYMBOL(coroutine_transfer),%function
|
||||
.syntax unified
|
||||
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
# Save caller state (8 registers + return address)
|
||||
push {r4-r11,lr}
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
##
|
||||
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#define x29 fp
|
||||
@ -28,8 +27,8 @@
|
||||
## See "Providing protection for complex software" for more details about PAC/BTI
|
||||
## https://developer.arm.com/architectures/learn-the-architecture/providing-protection-for-complex-software
|
||||
|
||||
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
.global PREFIXED_SYMBOL(coroutine_transfer)
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
|
||||
#if defined(__ARM_FEATURE_PAC_DEFAULT) && (__ARM_FEATURE_PAC_DEFAULT != 0)
|
||||
# paciasp (it also acts as BTI landing pad, so no need to insert BTI also)
|
||||
|
@ -1,11 +1,10 @@
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.text
|
||||
.align 2
|
||||
|
||||
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
.global PREFIXED_SYMBOL(coroutine_transfer)
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
|
||||
# Make space on the stack for caller registers
|
||||
addi.d $sp, $sp, -0xa0
|
||||
|
@ -9,15 +9,14 @@
|
||||
; To add support for AIX, *BSD or *Linux, please make separate implementations.
|
||||
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.machine ppc7400 ; = G4, Rosetta
|
||||
.text
|
||||
|
||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||
.align 2
|
||||
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
; Make space on the stack for caller registers
|
||||
; (Should we rather use red zone? See libphobos example.)
|
||||
subi r1,r1,80
|
||||
|
@ -8,15 +8,14 @@
|
||||
; To add support for AIX, *BSD or *Linux, please make separate implementations.
|
||||
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.machine ppc64 ; = G5
|
||||
.text
|
||||
|
||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||
.align 2
|
||||
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
; Make space on the stack for caller registers
|
||||
; (Should we rather use red zone? See libphobos example.)
|
||||
subi r1,r1,160
|
||||
|
@ -1,12 +1,11 @@
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.text
|
||||
.align 2
|
||||
|
||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||
.type PREFIXED_SYMBOL(coroutine_transfer), @function
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
# Make space on the stack for caller registers
|
||||
addi 1,1,-152
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.text
|
||||
.align 2
|
||||
|
||||
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
.global PREFIXED_SYMBOL(coroutine_transfer)
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
|
||||
# Make space on the stack for caller registers
|
||||
addi sp, sp, -0xd0
|
||||
|
@ -6,12 +6,11 @@
|
||||
##
|
||||
|
||||
#define TOKEN_PASTE(x,y) x##y
|
||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
||||
|
||||
.text
|
||||
|
||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
||||
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||
PREFIXED_SYMBOL(coroutine_transfer):
|
||||
|
||||
# Save caller registers
|
||||
pushl %ebp
|
||||
|
@ -452,9 +452,11 @@ gc_impl.$(OBJEXT): gc/$(BUILTIN_GC).c probes.h
|
||||
@$(ECHO) compiling $<
|
||||
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
||||
|
||||
PREFIXED_SYMBOL = name
|
||||
_PREFIXED_SYMBOL = TOKEN_PASTE($(SYMBOL_PREFIX),name)
|
||||
.$(ASMEXT).$(OBJEXT):
|
||||
@$(ECHO) assembling $<
|
||||
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -DSYMBOL_PREFIX=$(SYMBOL_PREFIX) -c $<
|
||||
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ "-DPREFIXED_SYMBOL(name)=$($(SYMBOL_PREFIX)PREFIXED_SYMBOL)" -c $<
|
||||
|
||||
.c.$(ASMEXT):
|
||||
@$(ECHO) translating $<
|
||||
|
Loading…
x
Reference in New Issue
Block a user