Просмотр исходного кода

libuv: disable process affinity during CMake bootstrap

Avoid depending on platform-specific pthread features during bootstrap.
Brad King 7 лет назад
Родитель
Сommit
c5428d8db2
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      Utilities/cmlibuv/src/unix/process.c

+ 10 - 0
Utilities/cmlibuv/src/unix/process.c

@@ -45,6 +45,7 @@ extern char **environ;
 # include <grp.h>
 #endif
 
+#ifndef CMAKE_BOOTSTRAP
 #if defined(__linux__)
 # define uv__cpu_set_t cpu_set_t
 #elif defined(__FreeBSD__)
@@ -53,6 +54,7 @@ extern char **environ;
 # include <pthread_np.h>
 # define uv__cpu_set_t cpuset_t
 #endif
+#endif
 
 static void uv__chld(uv_signal_t* handle, int signum) {
   uv_process_t* process;
@@ -294,11 +296,13 @@ static void uv__process_child_init(const uv_process_options_t* options,
   int err;
   int fd;
   int n;
+#ifndef CMAKE_BOOTSTRAP
 #if defined(__linux__) || defined(__FreeBSD__)
   int r;
   int i;
   int cpumask_size;
   uv__cpu_set_t cpuset;
+#endif
 #endif
 
   if (options->flags & UV_PROCESS_DETACHED)
@@ -390,6 +394,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
     _exit(127);
   }
 
+#ifndef CMAKE_BOOTSTRAP
 #if defined(__linux__) || defined(__FreeBSD__)
   if (options->cpumask != NULL) {
     cpumask_size = uv_cpumask_size();
@@ -408,6 +413,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
       _exit(127);
     }
   }
+#endif
 #endif
 
   if (options->env != NULL) {
@@ -465,10 +471,14 @@ int uv_spawn(uv_loop_t* loop,
   int status;
 
   if (options->cpumask != NULL) {
+#ifndef CMAKE_BOOTSTRAP
 #if defined(__linux__) || defined(__FreeBSD__)
     if (options->cpumask_size < (size_t)uv_cpumask_size()) {
       return UV_EINVAL;
     }
+#else
+    return UV_ENOTSUP;
+#endif
 #else
     return UV_ENOTSUP;
 #endif