summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/common/bits/kernel-features.h5
-rw-r--r--libc/unistd/sysconf.c24
2 files changed, 17 insertions, 12 deletions
diff --git a/libc/sysdeps/linux/common/bits/kernel-features.h b/libc/sysdeps/linux/common/bits/kernel-features.h
index 88a71828b..5216d7bed 100644
--- a/libc/sysdeps/linux/common/bits/kernel-features.h
+++ b/libc/sysdeps/linux/common/bits/kernel-features.h
@@ -78,3 +78,8 @@
# define __ASSUME_FCNTL64 1
# define __ASSUME_VFORK_SYSCALL 1
#endif
+
+/* This header was added somewhere around 2.6.13 */
+#if __LINUX_KERNEL_VERSION >= 132621
+# define HAVE_LINUX_CPUMASK_H 1
+#endif
diff --git a/libc/unistd/sysconf.c b/libc/unistd/sysconf.c
index 37ccd4d63..82bcf2284 100644
--- a/libc/unistd/sysconf.c
+++ b/libc/unistd/sysconf.c
@@ -34,6 +34,16 @@
#include <regex.h>
#endif
+#ifdef HAVE_LINUX_CPUMASK_H
+# include <linux/cpumask.h>
+#endif
+#ifndef num_present_cpus
+# define num_present_cpus() (1)
+#endif
+#ifndef num_online_cpus
+# define num_online_cpus() (1)
+#endif
+
/* libc_hidden_proto(sysconf) */
/* libc_hidden_proto(getpagesize) */
@@ -658,20 +668,10 @@ long int sysconf(int name)
#endif
case _SC_NPROCESSORS_CONF:
-#if 0
- RETURN_FUNCTION(get_nprocs_conf());
-#else
- /* this is a hack. for now always claim we have exactly one cpu */
- return 1;
-#endif
+ RETURN_FUNCTION(num_present_cpus());
case _SC_NPROCESSORS_ONLN:
-#if 0
- RETURN_FUNCTION(get_nprocs());
-#else
- /* this is a hack. for now always claim we have exactly one cpu */
- return 1;
-#endif
+ RETURN_FUNCTION(num_online_cpus());
case _SC_PHYS_PAGES:
#if 0