blob: 52a93080abfb6f47cd37dda8b54fe308b786738b [file] [log] [blame]
From 0f3fb0f1b8360ceefaf4d6b207fa700a7a3f99f8 Mon Sep 17 00:00:00 2001
From: Dan Padgett <dpadgett@google.com>
Date: Thu, 24 Mar 2016 16:29:43 -0700
Subject: [PATCH 08/17] Add patch: Implement sysconf _SC_PHYS_PAGES with
sysinfo
---
.../uclibc/uclibc-0072-sysconf-sc-phys-page.patch | 37 ++++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch
diff --git a/package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch b/package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch
new file mode 100644
index 0000000..426c057
--- /dev/null
+++ b/package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch
@@ -0,0 +1,37 @@
+commit 0a92bc274cf482bab5596c86e0c7e5c466a8f850
+Author: Jean-Francois Thibert <jfthibert@google.com>
+Date: Thu Nov 5 14:37:45 2015 -0500
+
+ Implement sysconf _SC_PHYS_PAGES with sysinfo
+
+diff --git a/libc/unistd/sysconf.c b/libc/unistd/sysconf.c
+index 503b395..06074c3 100644
+--- a/libc/unistd/sysconf.c
++++ b/libc/unistd/sysconf.c
+@@ -112,6 +112,14 @@ static int nprocessors_conf(void)
+ return ret != 0 ? ret : 1;
+ }
+
++static int get_phys_pages(void)
++{
++ struct sysinfo si;
++ if (sysinfo(&si) == 0) {
++ return si.totalram / getpagesize() * si.mem_unit;
++ }
++ return -1;
++}
+
+ #ifndef __UCLIBC_CLK_TCK_CONST
+ #error __UCLIBC_CLK_TCK_CONST not defined!
+@@ -747,11 +755,7 @@ long int sysconf(int name)
+ RETURN_FUNCTION(nprocessors_onln());
+
+ case _SC_PHYS_PAGES:
+-#if 0
+ RETURN_FUNCTION(get_phys_pages());
+-#else
+- RETURN_NEG_1;
+-#endif
+
+ case _SC_AVPHYS_PAGES:
+ #if 0
--
2.8.0.rc3.226.g39d4020