Commit graph

8 commits

Author SHA1 Message Date
Jeremy Evans
a60831f9b6 Use ENDBR instruction in amd64 coroutine on OpenBSD
When running on newer Intel processors supporting the feature,
OpenBSD enforces indirect branch tracking.  Without this endbr64
instruction, jumps to the coroutine_transfer function result
in SIGILL on OpenBSD/amd64 when using such processors.

The OpenBSD Ruby ports have been using a patch similar to this
for the past two months.

From some research, cet.h has been supported by GCC for about
6 years and LLVM for about 4 years.
2024-06-13 07:28:59 -07:00
Samuel Williams
40d774bec6
Avoid memory dependency between instructions. (#8284) 2023-08-25 13:28:33 +12:00
David Carlier
0ead818d81 Generating note.GNU-stack section for FreeBSD on x86.
Not enabling for ELF in general as not all platform support it
 (e.g. NetBSD, implictly stack never executable).
2021-03-05 14:33:52 +13:00
Samuel Williams
f96216df8d
Remove "All Rights Reserved." from Copyright statement. 2019-12-28 12:41:47 +13:00
Samuel Williams
6c6bf9ffcb Add ucontext coroutine implementation for generic fallback. 2019-06-26 20:19:53 +12:00
Nobuyoshi Nakada
e0f0ab959e
Remove unused symbols 2019-05-16 21:58:42 +09:00
samuel
f33adbc11e Ensure stack is correctly protected
See https://bugs.ruby-lang.org/issues/15335 for more details.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24 11:35:34 +00:00
samuel
e64f71f812 Change Makefile rule for assembly to use .S rather than .s
It is more conventional to use compiler to pre-process and
assemble the `.S` file rather than forcing Makefile to use `.s`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24 11:35:29 +00:00
Renamed from coroutine/amd64/Context.s (Browse further)