From 07b4b1b1cbafb73c03d04f25c8f3ae6d70975ed5 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 22 Jan 2021 23:41:52 +0900 Subject: Support coroutine on universal binary --- configure.ac | 3 +++ coroutine/universal/Context.S | 12 ++++++++++++ coroutine/universal/Context.h | 17 +++++++++++++++++ template/Makefile.in | 2 +- 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 coroutine/universal/Context.S create mode 100644 coroutine/universal/Context.h diff --git a/configure.ac b/configure.ac index 65afe5a99b..225a0ec218 100644 --- a/configure.ac +++ b/configure.ac @@ -2412,6 +2412,9 @@ AS_CASE([$rb_cv_coroutine], [yes|''], [ AC_MSG_CHECKING(native coroutine implementation for ${target_cpu}-${target_os}) rb_cv_coroutine= AS_CASE(["$target_cpu-$target_os"], + [universal-darwin*], [ + rb_cv_coroutine=universal + ], [x*64-darwin*], [ rb_cv_coroutine=amd64 ], diff --git a/coroutine/universal/Context.S b/coroutine/universal/Context.S new file mode 100644 index 0000000000..0fd8c01e7f --- /dev/null +++ b/coroutine/universal/Context.S @@ -0,0 +1,12 @@ +#if 0 +#elif defined __x86_64__ +# include "coroutine/amd64/Context.S" +#elif defined __i386__ +# include "coroutine/x86/Context.S" +#elif defined __ppc64__ +# include "coroutine/ppc64le/Context.S" +#elif defined __arm64__ +# include "coroutine/arm64/Context.S" +#else +# error "Unsupported CPU" +#endif diff --git a/coroutine/universal/Context.h b/coroutine/universal/Context.h new file mode 100644 index 0000000000..9a2ef425db --- /dev/null +++ b/coroutine/universal/Context.h @@ -0,0 +1,17 @@ +#ifndef COROUTINE_UNIVERSAL_CONTEXT_H +#define COROUTINE_UNIVERSAL_CONTEXT_H 1 + +#if 0 +#elif defined __x86_64__ +# include "coroutine/amd64/Context.h" +#elif defined __i386__ +# include "coroutine/x86/Context.h" +#elif defined __ppc64__ +# include "coroutine/ppc64le/Context.h" +#elif defined __arm64__ +# include "coroutine/arm64/Context.h" +#else +# error "Unsupported CPU" +#endif + +#endif /* COROUTINE_UNIVERSAL_CONTEXT_H */ diff --git a/template/Makefile.in b/template/Makefile.in index 72e37b512a..a1fd24154b 100644 --- a/template/Makefile.in +++ b/template/Makefile.in @@ -217,7 +217,7 @@ AR = @AR@ ARFLAGS = @ARFLAGS@$(empty) RANLIB = @RANLIB@ AS = @AS@ -ASFLAGS = @ASFLAGS@ $(INCFLAGS) +ASFLAGS = @ASFLAGS@ $(ARCH_FLAG) $(INCFLAGS) IFCHANGE = $(tooldir)/ifchange OBJDUMP = @OBJDUMP@ OBJCOPY = @OBJCOPY@ -- cgit v1.2.3