diff options
author | nagachika <nagachika@ruby-lang.org> | 2020-09-30 19:24:17 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2020-09-30 19:24:17 +0900 |
commit | f46929833923d96e4dc706945fd537a1caaebe66 (patch) | |
tree | 6f50b4b4efc468ab2998f93b1fa2423560ed9a33 /coroutine | |
parent | ea347990a5416c73a74f7dfa8a13b5ad5b7e79d4 (diff) |
merge revision(s) f96216df8dfd2d1e206150572912289f4dda7386,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(¤t->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 efd641ffab34e433a8d8a7d78914576f2425aa90.
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.
Diffstat (limited to 'coroutine')
-rw-r--r-- | coroutine/amd64/Context.S | 2 | ||||
-rw-r--r-- | coroutine/amd64/Context.h | 2 | ||||
-rw-r--r-- | coroutine/arm32/Context.S | 19 | ||||
-rw-r--r-- | coroutine/arm32/Context.h | 2 | ||||
-rw-r--r-- | coroutine/arm64/Context.S | 11 | ||||
-rw-r--r-- | coroutine/arm64/Context.h | 2 | ||||
-rw-r--r-- | coroutine/copy/Context.c | 2 | ||||
-rw-r--r-- | coroutine/copy/Context.h | 2 | ||||
-rw-r--r-- | coroutine/ppc64le/Context.S | 9 | ||||
-rw-r--r-- | coroutine/ucontext/Context.c | 2 | ||||
-rw-r--r-- | coroutine/win32/Context.asm | 2 | ||||
-rw-r--r-- | coroutine/win64/Context.S | 2 | ||||
-rw-r--r-- | coroutine/win64/Context.asm | 2 | ||||
-rw-r--r-- | coroutine/x86/Context.S | 2 |
14 files changed, 37 insertions, 24 deletions
diff --git a/coroutine/amd64/Context.S b/coroutine/amd64/Context.S index ac986b2aa5..051db1c5e8 100644 --- a/coroutine/amd64/Context.S +++ b/coroutine/amd64/Context.S @@ -2,7 +2,7 @@ ## This file is part of the "Coroutine" project and released under the MIT License. ## ## Created by Samuel Williams on 10/5/2018. -## Copyright, 2018, by Samuel Williams. All rights reserved. +## Copyright, 2018, by Samuel Williams. ## #define TOKEN_PASTE(x,y) x##y diff --git a/coroutine/amd64/Context.h b/coroutine/amd64/Context.h index 8fe323c1a1..352ed5555a 100644 --- a/coroutine/amd64/Context.h +++ b/coroutine/amd64/Context.h @@ -2,7 +2,7 @@ * This file is part of the "Coroutine" project and released under the MIT License. * * Created by Samuel Williams on 10/5/2018. - * Copyright, 2018, by Samuel Williams. All rights reserved. + * Copyright, 2018, by Samuel Williams. */ #pragma once diff --git a/coroutine/arm32/Context.S b/coroutine/arm32/Context.S index 4308e1d1d2..c5338f0b67 100644 --- a/coroutine/arm32/Context.S +++ b/coroutine/arm32/Context.S @@ -2,21 +2,28 @@ ## This file is part of the "Coroutine" project and released under the MIT License. ## ## Created by Samuel Williams on 10/5/2018. -## Copyright, 2018, by Samuel Williams. All rights reserved. +## Copyright, 2018, by Samuel Williams. ## +#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) +.align 2 +.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function +.syntax unified -.globl coroutine_transfer -coroutine_transfer: +PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer): # Save caller state (8 registers + return address) push {r4-r11,lr} - + # Save caller stack pointer str sp, [r0] - + # Restore callee stack pointer ldr sp, [r1] - + # Restore callee state (8 registers program counter) pop {r4-r11,pc} diff --git a/coroutine/arm32/Context.h b/coroutine/arm32/Context.h index e29fe1bb63..6b6807904f 100644 --- a/coroutine/arm32/Context.h +++ b/coroutine/arm32/Context.h @@ -2,7 +2,7 @@ * This file is part of the "Coroutine" project and released under the MIT License. * * Created by Samuel Williams on 10/5/2018. - * Copyright, 2018, by Samuel Williams. All rights reserved. + * Copyright, 2018, by Samuel Williams. */ #pragma once diff --git a/coroutine/arm64/Context.S b/coroutine/arm64/Context.S index f6e5f0a6bc..04e3f6d1ef 100644 --- a/coroutine/arm64/Context.S +++ b/coroutine/arm64/Context.S @@ -2,18 +2,21 @@ ## This file is part of the "Coroutine" project and released under the MIT License. ## ## Created by Samuel Williams on 10/5/2018. -## Copyright, 2018, by Samuel Williams. All rights reserved. +## Copyright, 2018, by Samuel Williams. ## +#define TOKEN_PASTE(x,y) x##y +#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name) + .text .align 2 -.global coroutine_transfer -coroutine_transfer: +.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer) +PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer): # Make space on the stack for caller registers sub sp, sp, 0xb0 - + # Save caller registers stp d8, d9, [sp, 0x00] stp d10, d11, [sp, 0x10] diff --git a/coroutine/arm64/Context.h b/coroutine/arm64/Context.h index a1ae921144..3bc19b1e4b 100644 --- a/coroutine/arm64/Context.h +++ b/coroutine/arm64/Context.h @@ -2,7 +2,7 @@ * This file is part of the "Coroutine" project and released under the MIT License. * * Created by Samuel Williams on 10/5/2018. - * Copyright, 2018, by Samuel Williams. All rights reserved. + * Copyright, 2018, by Samuel Williams. */ #pragma once diff --git a/coroutine/copy/Context.c b/coroutine/copy/Context.c index a1b8a71200..c1b4144e98 100644 --- a/coroutine/copy/Context.c +++ b/coroutine/copy/Context.c @@ -2,7 +2,7 @@ * This file is part of the "Coroutine" project and released under the MIT License. * * Created by Samuel Williams on 24/6/2019. - * Copyright, 2019, by Samuel Williams. All rights reserved. + * Copyright, 2019, by Samuel Williams. */ #include "Context.h" diff --git a/coroutine/copy/Context.h b/coroutine/copy/Context.h index 1319f55d16..8514a61dff 100644 --- a/coroutine/copy/Context.h +++ b/coroutine/copy/Context.h @@ -2,7 +2,7 @@ * This file is part of the "Coroutine" project and released under the MIT License. * * Created by Samuel Williams on 27/6/2019. - * Copyright, 2019, by Samuel Williams. All rights reserved. + * Copyright, 2019, by Samuel Williams. */ #pragma once diff --git a/coroutine/ppc64le/Context.S b/coroutine/ppc64le/Context.S index 1b39086f8f..61be9efcf0 100644 --- a/coroutine/ppc64le/Context.S +++ b/coroutine/ppc64le/Context.S @@ -1,9 +1,12 @@ +#define TOKEN_PASTE(x,y) x##y +#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name) + .text .align 2 -.globl coroutine_transfer -.type coroutine_transfer, @function -coroutine_transfer: +.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer) +.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function +PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer): # Make space on the stack for caller registers addi 1,1,-152 diff --git a/coroutine/ucontext/Context.c b/coroutine/ucontext/Context.c index eec4ef3956..2dc3f478e8 100644 --- a/coroutine/ucontext/Context.c +++ b/coroutine/ucontext/Context.c @@ -2,7 +2,7 @@ * This file is part of the "Coroutine" project and released under the MIT License. * * Created by Samuel Williams on 24/6/2019. - * Copyright, 2019, by Samuel Williams. All rights reserved. + * Copyright, 2019, by Samuel Williams. */ /* According to Solaris' ucontext.h, makecontext, etc. are removed in SUSv4. diff --git a/coroutine/win32/Context.asm b/coroutine/win32/Context.asm index 2647ea4bc4..f8f431239b 100644 --- a/coroutine/win32/Context.asm +++ b/coroutine/win32/Context.asm @@ -2,7 +2,7 @@ ;; This file is part of the "Coroutine" project and released under the MIT License. ;; ;; Created by Samuel Williams on 10/5/2018. -;; Copyright, 2018, by Samuel Williams. All rights reserved. +;; Copyright, 2018, by Samuel Williams. ;; .386 diff --git a/coroutine/win64/Context.S b/coroutine/win64/Context.S index 4b16e0ce8c..e0ee38e006 100644 --- a/coroutine/win64/Context.S +++ b/coroutine/win64/Context.S @@ -2,7 +2,7 @@ ## This file is part of the "Coroutine" project and released under the MIT License. ## ## Created by Samuel Williams on 4/11/2018. -## Copyright, 2018, by Samuel Williams. All rights reserved. +## Copyright, 2018, by Samuel Williams. ## .text diff --git a/coroutine/win64/Context.asm b/coroutine/win64/Context.asm index 59673ffa3e..8c4dea1c93 100644 --- a/coroutine/win64/Context.asm +++ b/coroutine/win64/Context.asm @@ -2,7 +2,7 @@ ;; This file is part of the "Coroutine" project and released under the MIT License. ;; ;; Created by Samuel Williams on 10/5/2018. -;; Copyright, 2018, by Samuel Williams. All rights reserved. +;; Copyright, 2018, by Samuel Williams. ;; .code diff --git a/coroutine/x86/Context.S b/coroutine/x86/Context.S index 001b699a30..6983f21c3b 100644 --- a/coroutine/x86/Context.S +++ b/coroutine/x86/Context.S @@ -2,7 +2,7 @@ ## This file is part of the "Coroutine" project and released under the MIT License. ## ## Created by Samuel Williams on 3/11/2018. -## Copyright, 2018, by Samuel Williams. All rights reserved. +## Copyright, 2018, by Samuel Williams. ## #define TOKEN_PASTE(x,y) x##y |