aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch
diff options
context:
space:
mode:
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>2013-01-07 14:01:45 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-01-07 13:41:10 +0000
commita746cf196792d1c0646f5e97e87055e0974d753e (patch)
treecc01560eb5c2af0122756c2ebd646d76e21f1e7f /meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch
parent7d64232f370817c0536412589bd4ed612f214e18 (diff)
downloadopenembedded-core-contrib-a746cf196792d1c0646f5e97e87055e0974d753e.tar.gz
procps: initialized environment correctly (backported from classic)
Without this patch, various procps tool can create "Unknown HZ value" messages because internal initialization happens in a wrong, random order. It has been applied to classic already. Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch')
-rw-r--r--meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch b/meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch
new file mode 100644
index 0000000000..203ccb3347
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.8/60_linux_version_init.patch
@@ -0,0 +1,54 @@
+## 60_linux_init.dpatch by <david.sugar@canonical.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix Linux version detection which relied on elf loader side-effect.
+## DP: This patch also depends on 40_gnu-kbsd-version, which modified
+## DP: init_Linux_version().
+
+@DPATCH@
+
+Upstream-Status: inappropriate [upstream unmaintained]
+---
+ proc/sysinfo.c | 1 +
+ proc/version.c | 5 +++--
+ proc/version.h | 1 +
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+Index: procps-3.2.8/proc/sysinfo.c
+===================================================================
+--- procps-3.2.8.orig/proc/sysinfo.c
++++ procps-3.2.8/proc/sysinfo.c
+@@ -212,6 +212,7 @@ static int check_for_privs(void){
+ static void init_libproc(void) __attribute__((constructor));
+ static void init_libproc(void){
+ have_privs = check_for_privs();
++ init_Linux_version(); // make sure we have version before continuing...
+ // ought to count CPUs in /proc/stat instead of relying
+ // on glibc, which foolishly tries to parse /proc/cpuinfo
+ //
+Index: procps-3.2.8/proc/version.c
+===================================================================
+--- procps-3.2.8.orig/proc/version.c
++++ procps-3.2.8/proc/version.c
+@@ -33,8 +33,7 @@ void display_version(void) {
+
+ int linux_version_code;
+
+-static void init_Linux_version(void) __attribute__((constructor));
+-static void init_Linux_version(void) {
++void init_Linux_version(void) {
+ int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 2 */
+ FILE *fp;
+ char buf[256];
+Index: procps-3.2.8/proc/version.h
+===================================================================
+--- procps-3.2.8.orig/proc/version.h
++++ procps-3.2.8/proc/version.h
+@@ -14,6 +14,7 @@
+
+ EXTERN_C_BEGIN
+
++extern void init_Linux_version(void); /* initialize linux version */
+ extern void display_version(void); /* display suite version */
+ extern const char procps_version[]; /* global buf for suite version */
+