Skip to content

Commit f469298

Browse files
committed
merge revision(s) f96216d,0091fac1d8de07e86fef8315ba77609bed9dd7f5,04c704c5c967ea9bded6bf645439fe59c7d9f7d6,23655e6de5ee989feb8c65c7061fe9a71579dc54,7cb8904a12c850ee30dcd67817fa2f9dc3fee813,41168f69fbeb32cfc88210911d62e419b8116589,87f6154bb4c67ca77ee353bb1fe25a922036c0e5: [Backport #17202]
Remove "All Rights Reserved." from Copyright statement. Patch assembly so that it aligns properly Removed trailing spaces [ci skip] Fix build error on Apple silicon macOS This patch will fix following build error on macOS 11.0 + Xcode 12 beta. ``` $ ./configure $ make V=1 BASERUBY = /Users/watson/.rbenv/shims/ruby --disable=gems CC = clang -fdeclspec LD = ld LDSHARED = clang -fdeclspec -dynamiclib CFLAGS = -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=misleading-indentation -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99 -pipe XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/arm64-darwin20 -I./include -I. -I./enc/unicode/12.1.0 CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation SOLIBS = -lpthread -ldl -lobjc LANG = ja_JP.UTF-8 LC_ALL = LC_CTYPE = MFLAGS = Apple clang version 12.0.0 (clang-1200.0.22.19) Target: arm64-apple-darwin20.0.0 Thread model: posix InstalledDir: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin clang -fdeclspec -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=misleading-indentation -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/arm64-darwin20 -I./include -I. -I./enc/unicode/12.1.0 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -o cont.o -c cont.c In file included from cont.c:19: ./coroutine/ucontext/Context.h:32:5: error: 'getcontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations] getcontext(&context->state); ^ /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:37:6: note: 'getcontext' has been explicitly marked deprecated here int getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; ^ In file included from cont.c:19: ./coroutine/ucontext/Context.h:51:5: error: 'makecontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations] makecontext(&context->state, (void(*)(void))coroutine_trampoline, 2, (void*)start, (void*)context); ^ /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:38:6: note: 'makecontext' has been explicitly marked deprecated here void makecontext(ucontext_t *, void (*)(), int, ...) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHI... ^ In file included from cont.c:19: ./coroutine/ucontext/Context.h:59:5: error: 'swapcontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations] swapcontext(&current->state, &target->state); ^ /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:40:6: note: 'swapcontext' has been explicitly marked deprecated here int swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_... ^ 3 errors generated. make: *** [cont.o] Error 1 ``` Extract correct processor name for ARM64 Macs Prefix export symbol prefix to coroutine_transfer Revert "Revert "[ruby/fiddle] Use ffi_closure_free by default. (#20)"" This reverts commit efd641f. This changeset seems to be needed to suppress a warning on Ubuntu 20.04 https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20200304T033004Z.log.html.gz ``` closure.c:264:5: warning: 'ffi_prep_closure' is deprecated: use ffi_prep_closure_loc instead [-Wdeprecated-declarations] 264 | result = ffi_prep_closure(pcl, cif, callback, (void *)self); | ^~~~~~ ``` I guess there was a reason why the commit was reverted (maybe some CIs failed?), so try it again.
1 parent ea34799 commit f469298

File tree

19 files changed

+50
-67
lines changed

19 files changed

+50
-67
lines changed

configure.ac

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2309,6 +2309,9 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [
23092309
[x*64-darwin*], [
23102310
rb_cv_coroutine=amd64
23112311
],
2312+
[arm64-darwin*], [
2313+
rb_cv_coroutine=arm64
2314+
],
23122315
[x*64-linux*], [
23132316
AS_CASE(["$ac_cv_sizeof_voidp"],
23142317
[8], [ rb_cv_coroutine=amd64 ],

coroutine/amd64/Context.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## This file is part of the "Coroutine" project and released under the MIT License.
33
##
44
## Created by Samuel Williams on 10/5/2018.
5-
## Copyright, 2018, by Samuel Williams. All rights reserved.
5+
## Copyright, 2018, by Samuel Williams.
66
##
77

88
#define TOKEN_PASTE(x,y) x##y

coroutine/amd64/Context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* This file is part of the "Coroutine" project and released under the MIT License.
33
*
44
* Created by Samuel Williams on 10/5/2018.
5-
* Copyright, 2018, by Samuel Williams. All rights reserved.
5+
* Copyright, 2018, by Samuel Williams.
66
*/
77

88
#pragma once

coroutine/arm32/Context.S

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,28 @@
22
## This file is part of the "Coroutine" project and released under the MIT License.
33
##
44
## Created by Samuel Williams on 10/5/2018.
5-
## Copyright, 2018, by Samuel Williams. All rights reserved.
5+
## Copyright, 2018, by Samuel Williams.
66
##
77

8+
#define TOKEN_PASTE(x,y) x##y
9+
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
10+
11+
.file "Context.S"
812
.text
13+
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
14+
.align 2
15+
.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function
16+
.syntax unified
917

10-
.globl coroutine_transfer
11-
coroutine_transfer:
18+
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
1219
# Save caller state (8 registers + return address)
1320
push {r4-r11,lr}
14-
21+
1522
# Save caller stack pointer
1623
str sp, [r0]
17-
24+
1825
# Restore callee stack pointer
1926
ldr sp, [r1]
20-
27+
2128
# Restore callee state (8 registers program counter)
2229
pop {r4-r11,pc}

coroutine/arm32/Context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* This file is part of the "Coroutine" project and released under the MIT License.
33
*
44
* Created by Samuel Williams on 10/5/2018.
5-
* Copyright, 2018, by Samuel Williams. All rights reserved.
5+
* Copyright, 2018, by Samuel Williams.
66
*/
77

88
#pragma once

coroutine/arm64/Context.S

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22
## This file is part of the "Coroutine" project and released under the MIT License.
33
##
44
## Created by Samuel Williams on 10/5/2018.
5-
## Copyright, 2018, by Samuel Williams. All rights reserved.
5+
## Copyright, 2018, by Samuel Williams.
66
##
77

8+
#define TOKEN_PASTE(x,y) x##y
9+
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
10+
811
.text
912
.align 2
1013

11-
.global coroutine_transfer
12-
coroutine_transfer:
14+
.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
15+
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
1316

1417
# Make space on the stack for caller registers
1518
sub sp, sp, 0xb0
16-
19+
1720
# Save caller registers
1821
stp d8, d9, [sp, 0x00]
1922
stp d10, d11, [sp, 0x10]

coroutine/arm64/Context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* This file is part of the "Coroutine" project and released under the MIT License.
33
*
44
* Created by Samuel Williams on 10/5/2018.
5-
* Copyright, 2018, by Samuel Williams. All rights reserved.
5+
* Copyright, 2018, by Samuel Williams.
66
*/
77

88
#pragma once

coroutine/copy/Context.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* This file is part of the "Coroutine" project and released under the MIT License.
33
*
44
* Created by Samuel Williams on 24/6/2019.
5-
* Copyright, 2019, by Samuel Williams. All rights reserved.
5+
* Copyright, 2019, by Samuel Williams.
66
*/
77

88
#include "Context.h"

coroutine/copy/Context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* This file is part of the "Coroutine" project and released under the MIT License.
33
*
44
* Created by Samuel Williams on 27/6/2019.
5-
* Copyright, 2019, by Samuel Williams. All rights reserved.
5+
* Copyright, 2019, by Samuel Williams.
66
*/
77

88
#pragma once

coroutine/ppc64le/Context.S

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
#define TOKEN_PASTE(x,y) x##y
2+
#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
3+
14
.text
25
.align 2
36

4-
.globl coroutine_transfer
5-
.type coroutine_transfer, @function
6-
coroutine_transfer:
7+
.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
8+
.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function
9+
PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
710
# Make space on the stack for caller registers
811
addi 1,1,-152
912

0 commit comments

Comments
 (0)