From ea0cede5aa04ac22837befe5a690756e06ae195c Mon Sep 17 00:00:00 2001 From: k0kubun Date: Sat, 23 Jun 2018 07:21:12 +0000 Subject: [PATCH] mjit.c: initial cygwin support thread_pthread.c: Drop pthread_attr_setscope usage. It seems that, at least on Linux and macOS, PTHREAD_SCOPE_PROCESS is not supported and thus PTHREAD_SCOPE_SYSTEM should be used by default. Let's just stop calling this until we find some platform that needs `pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)`. [Misc #14854] From: fd0 (Daisuke Fujimura) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- mjit.c | 6 ++++-- thread_pthread.c | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mjit.c b/mjit.c index 80ab299039..3dc34e8f45 100644 --- a/mjit.c +++ b/mjit.c @@ -610,7 +610,7 @@ static const char *const CC_DLDFLAGS_ARGS[] = { MJIT_DLDFLAGS #if defined __GNUC__ && !defined __clang__ "-nostartfiles", -# ifndef _WIN32 +# if !defined(_WIN32) && !defined(__CYGWIN__) "-nodefaultlibs", "-nostdlib", # endif #endif @@ -618,10 +618,12 @@ static const char *const CC_DLDFLAGS_ARGS[] = { }; static const char *const CC_LIBS[] = { -#ifdef _WIN32 +#if defined(_WIN32) || defined(__CYGWIN__) MJIT_LIBS # if defined __GNUC__ && !defined __clang__ +# if defined(_WIN32) "-lmsvcrt", +# endif "-lgcc", # endif #endif diff --git a/thread_pthread.c b/thread_pthread.c index 6433849686..1a1a6fc0c6 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -1757,7 +1757,6 @@ rb_thread_create_mjit_thread(void (*child_hook)(void), void (*worker_func)(void) /* jit_worker thread is not to be joined */ if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) == 0 - && pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM) == 0 && pthread_create(&worker_pid, &attr, mjit_worker, (void *)worker_func) == 0) { ret = TRUE; }