libphobos: Add Thread/Fiber support code for Darwin (PR98058)
commit6eae7549b8a350b92435be904efed195bd190bae
authorIain Buclaw <ibuclaw@gdcproject.org>
Mon, 19 Apr 2021 12:48:32 +0000 (19 14:48 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Mon, 19 Apr 2021 17:27:27 +0000 (19 19:27 +0200)
treecc4144e57ee31c6ef94edfe90b881cda17b25c13
parentb66e72b43e1e8f402dc958ce3cca35f7c273340d
libphobos: Add Thread/Fiber support code for Darwin (PR98058)

libphobos/ChangeLog:

PR d/98058
* configure: Regenerate.
* libdruntime/Makefile.am (DRUNTIME_DSOURCES_DARWIN): Add
core/sys/darwin/config.d
* libdruntime/Makefile.in: Regenerate.
* libdruntime/config/powerpc/switchcontext.S: Implement
fiber_switchContext for __MACH__.
* libdruntime/config/x86/switchcontext.S: Likewise.
* libdruntime/core/sys/darwin/config.d: New file.
* libdruntime/core/thread/fiber.d (Fiber.getThis): Mark noinline.
(UnsafeFiberMigration): Define for OSX/X86 and OSX/X86_64.
* libdruntime/core/thread/osthread.d (callWithStackShell): Add inline
assembler implementation for X86, X86_64, PPC, and PPC64.
* libdruntime/core/thread/threadbase.d (ThreadBase.getThis): Mark
noinline.
* libdruntime/gcc/deh.d (FuncTable): Remove definition.
* m4/druntime/os.m4 (DRUNTIME_OS_MINFO_BRACKETING): Check for right
bracket symbol on darwin* targets.
* testsuite/libphobos.thread/fiber_guard_page.d: Update test to
support ucontext-based Fibers.
12 files changed:
libphobos/configure
libphobos/libdruntime/Makefile.am
libphobos/libdruntime/Makefile.in
libphobos/libdruntime/config/powerpc/switchcontext.S
libphobos/libdruntime/config/x86/switchcontext.S
libphobos/libdruntime/core/sys/darwin/config.d [new file with mode: 0644]
libphobos/libdruntime/core/thread/fiber.d
libphobos/libdruntime/core/thread/osthread.d
libphobos/libdruntime/core/thread/threadbase.d
libphobos/libdruntime/gcc/deh.d
libphobos/m4/druntime/os.m4
libphobos/testsuite/libphobos.thread/fiber_guard_page.d