void-packages/srcpkgs/procps/patches/proc_version_constructor.patch

37 lines
1.2 KiB
Diff

Description: Call libproc constructors in strict order
Having one constructor depend on another means if the order is reversed
you get a different result. Patched based on idea by Tom Evans.
Bug-Debian: http://bugs.debian.org/460331
Author: Craig Small <csmall@debian.org>
--- a/proc/sysinfo.c
+++ b/proc/sysinfo.c
@@ -213,6 +213,7 @@
static void init_libproc(void) __attribute__((constructor));
static void init_libproc(void){
have_privs = check_for_privs();
+ init_Linux_version(); /* Must be called before we check code */
// ought to count CPUs in /proc/stat instead of relying
// on glibc, which foolishly tries to parse /proc/cpuinfo
//
--- a/proc/version.c
+++ b/proc/version.c
@@ -33,8 +33,7 @@
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() < 3 */
FILE *fp;
char buf[256];
--- a/proc/version.h
+++ b/proc/version.h
@@ -14,6 +14,7 @@
EXTERN_C_BEGIN
+void init_Linux_version(void); /* Get Linux version */
extern void display_version(void); /* display suite version */
extern const char procps_version[]; /* global buf for suite version */