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. (From OE-Core rev: a746cf196792d1c0646f5e97e87055e0974d753e) Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
41a15a9af9
commit
9f79f44d32
|
@ -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 */
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require procps.inc
|
||||
|
||||
PR = "r10"
|
||||
PR = "r11"
|
||||
|
||||
SRC_URI += "file://procmodule.patch \
|
||||
file://psmodule.patch \
|
||||
|
@ -8,6 +8,7 @@ SRC_URI += "file://procmodule.patch \
|
|||
file://sysctl.conf \
|
||||
file://procps-3.2.8+gmake-3.82.patch \
|
||||
file://gnu-kbsd-version.patch \
|
||||
file://60_linux_version_init.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "9532714b6846013ca9898984ba4cd7e0"
|
||||
|
|
Loading…
Reference in New Issue