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 --- 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 */