diff --git a/lang/ruby33/files/patch-coroutine_ppc64le_Context.S b/lang/ruby33/files/patch-coroutine_ppc64le_Context.S index ba4ef6729932..7d5e386a5b89 100644 --- a/lang/ruby33/files/patch-coroutine_ppc64le_Context.S +++ b/lang/ruby33/files/patch-coroutine_ppc64le_Context.S @@ -1,16 +1,17 @@ ---- coroutine/ppc64le/Context.S.orig 2025-11-17 12:39:04 UTC +--- coroutine/ppc64le/Context.S.orig 2026-03-26 00:05:04 UTC +++ coroutine/ppc64le/Context.S -@@ -1,11 +1,19 @@ +@@ -1,12 +1,20 @@ #define TOKEN_PASTE(x,y) x##y + #define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name) +.abiversion 2 + .text .align 2 - .globl PREFIXED_SYMBOL(coroutine_transfer) - .type PREFIXED_SYMBOL(coroutine_transfer), @function - PREFIXED_SYMBOL(coroutine_transfer): + .globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer) + .type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function + PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer): + # Global entry: set up TOC pointer (r2) from r12. + # Required by ELFv2 ABI when this function is reached via the PLT. + addis 2, 12, .TOC. - PREFIXED_SYMBOL(coroutine_transfer)@ha @@ -18,5 +19,5 @@ + .localentry PREFIXED_SYMBOL(coroutine_transfer), .-PREFIXED_SYMBOL(coroutine_transfer) + # Make space on the stack for caller registers - addi 1,1,-160 + addi 1,1,-152