mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
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 changed files with 23 additions and 30 deletions
|
@ -10,12 +10,11 @@
|
||||||
* one at the bottom of this file */
|
* one at the bottom of this file */
|
||||||
|
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
|
|
||||||
#if defined(__CET__) && (__CET__ & 0x01) != 0
|
#if defined(__CET__) && (__CET__ & 0x01) != 0
|
||||||
/* IBT landing pad */
|
/* IBT landing pad */
|
||||||
|
|
|
@ -6,16 +6,15 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.file "Context.S"
|
.file "Context.S"
|
||||||
.text
|
.text
|
||||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
.align 2
|
.align 2
|
||||||
.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function
|
.type PREFIXED_SYMBOL(coroutine_transfer),%function
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
# Save caller state (8 registers + return address)
|
# Save caller state (8 registers + return address)
|
||||||
push {r4-r11,lr}
|
push {r4-r11,lr}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
#define x29 fp
|
#define x29 fp
|
||||||
|
@ -28,8 +27,8 @@
|
||||||
## See "Providing protection for complex software" for more details about PAC/BTI
|
## 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
|
## https://developer.arm.com/architectures/learn-the-architecture/providing-protection-for-complex-software
|
||||||
|
|
||||||
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.global PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
|
|
||||||
#if defined(__ARM_FEATURE_PAC_DEFAULT) && (__ARM_FEATURE_PAC_DEFAULT != 0)
|
#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)
|
# 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 TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.global PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
|
|
||||||
# Make space on the stack for caller registers
|
# Make space on the stack for caller registers
|
||||||
addi.d $sp, $sp, -0xa0
|
addi.d $sp, $sp, -0xa0
|
||||||
|
|
|
@ -9,15 +9,14 @@
|
||||||
; To add support for AIX, *BSD or *Linux, please make separate implementations.
|
; To add support for AIX, *BSD or *Linux, please make separate implementations.
|
||||||
|
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.machine ppc7400 ; = G4, Rosetta
|
.machine ppc7400 ; = G4, Rosetta
|
||||||
.text
|
.text
|
||||||
|
|
||||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
; Make space on the stack for caller registers
|
; Make space on the stack for caller registers
|
||||||
; (Should we rather use red zone? See libphobos example.)
|
; (Should we rather use red zone? See libphobos example.)
|
||||||
subi r1,r1,80
|
subi r1,r1,80
|
||||||
|
|
|
@ -8,15 +8,14 @@
|
||||||
; To add support for AIX, *BSD or *Linux, please make separate implementations.
|
; To add support for AIX, *BSD or *Linux, please make separate implementations.
|
||||||
|
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.machine ppc64 ; = G5
|
.machine ppc64 ; = G5
|
||||||
.text
|
.text
|
||||||
|
|
||||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
; Make space on the stack for caller registers
|
; Make space on the stack for caller registers
|
||||||
; (Should we rather use red zone? See libphobos example.)
|
; (Should we rather use red zone? See libphobos example.)
|
||||||
subi r1,r1,160
|
subi r1,r1,160
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function
|
.type PREFIXED_SYMBOL(coroutine_transfer), @function
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
# Make space on the stack for caller registers
|
# Make space on the stack for caller registers
|
||||||
addi 1,1,-152
|
addi 1,1,-152
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.global PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
|
|
||||||
# Make space on the stack for caller registers
|
# Make space on the stack for caller registers
|
||||||
addi sp, sp, -0xd0
|
addi sp, sp, -0xd0
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
#define TOKEN_PASTE(x,y) x##y
|
#define TOKEN_PASTE(x,y) x##y
|
||||||
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
|
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
|
.globl PREFIXED_SYMBOL(coroutine_transfer)
|
||||||
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
|
PREFIXED_SYMBOL(coroutine_transfer):
|
||||||
|
|
||||||
# Save caller registers
|
# Save caller registers
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
|
|
|
@ -452,9 +452,11 @@ gc_impl.$(OBJEXT): gc/$(BUILTIN_GC).c probes.h
|
||||||
@$(ECHO) compiling $<
|
@$(ECHO) compiling $<
|
||||||
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
|
||||||
|
|
||||||
|
PREFIXED_SYMBOL = name
|
||||||
|
_PREFIXED_SYMBOL = TOKEN_PASTE($(SYMBOL_PREFIX),name)
|
||||||
.$(ASMEXT).$(OBJEXT):
|
.$(ASMEXT).$(OBJEXT):
|
||||||
@$(ECHO) assembling $<
|
@$(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):
|
.c.$(ASMEXT):
|
||||||
@$(ECHO) translating $<
|
@$(ECHO) translating $<
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue