diff --git a/nt/gnulib-cfg.mk b/nt/gnulib-cfg.mk
index f1f4c4c2790..e9f00e748ea 100644
--- a/nt/gnulib-cfg.mk
+++ b/nt/gnulib-cfg.mk
@@ -73,3 +73,4 @@ OMIT_GNULIB_MODULE_lchmod = true
OMIT_GNULIB_MODULE_futimens = true
OMIT_GNULIB_MODULE_utimensat = true
OMIT_GNULIB_MODULE_file-has-acl = true
+OMIT_GNULIB_MODULE_nproc = true
diff --git a/src/w32.c b/src/w32.c
index 0eb69d4b1d1..9fe698d28d7 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -39,6 +39,7 @@ along with GNU Emacs. If not, see . */
#include
#include
#include
+#include
/* Include (most) CRT headers *before* ms-w32.h. */
#include
@@ -1962,6 +1963,16 @@ w32_get_nproc (void)
return num_of_processors;
}
+/* Emulate Gnulib's 'num_processors'. We cannot use the Gnulib
+ version because it unconditionally calls APIs that aren't available
+ on old MS-Windows versions. */
+unsigned long
+num_processors (enum nproc_query query)
+{
+ /* We ignore QUERY. */
+ return w32_get_nproc ();
+}
+
static void
sample_system_load (ULONGLONG *idle, ULONGLONG *kernel, ULONGLONG *user)
{
diff --git a/src/w32proc.c b/src/w32proc.c
index 3b7d92a2aa8..360f45e9e11 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -3878,15 +3878,6 @@ w32_compare_strings (const char *s1, const char *s2, char *locname,
return val - 2;
}
-/* FIXME: Remove, merging any of its special features into num-processors. */
-DEFUN ("w32-get-nproc", Fw32_get_nproc,
- Sw32_get_nproc, 0, 0, 0,
- doc: /* Return the number of system's processor execution units. */)
- (void)
-{
- return make_fixnum (w32_get_nproc ());
-}
-
void
syms_of_ntproc (void)
@@ -3921,8 +3912,6 @@ syms_of_ntproc (void)
defsubr (&Sw32_get_keyboard_layout);
defsubr (&Sw32_set_keyboard_layout);
- defsubr (&Sw32_get_nproc);
-
DEFVAR_LISP ("w32-quote-process-args", Vw32_quote_process_args,
doc: /* Non-nil enables quoting of process arguments to ensure correct parsing.
Because Windows does not directly pass argv arrays to child processes,