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>
Adapted to Fedora: Jan Görig <jgorig@redhat.com>
--- 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) {
     static struct utsname uts;
     int x = 0, y = 0, z = 0;	/* cleared in case sscanf() < 3 */
     
--- 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 */
 extern const char procps_number_version[];	/* global buf for suite number version */
