File procps-3.2.8-fix-unknown-HZ.dif of Package procps

--- a/proc/sig.c
+++ b/proc/sig.c	2010-10-29 09:15:13.872426803 +0000
@@ -231,7 +231,7 @@ void unix_print_signals(void){
 }
 
 /* sanity check */
-static int init_signal_list(void) __attribute__((constructor));
+static int init_signal_list(void) __attribute__((constructor (103)));
 static int init_signal_list(void){
   if(number_of_signals != 31){
     fprintf(stderr, "WARNING: %d signals -- adjust and recompile.\n", number_of_signals);
--- a/proc/sysinfo.c
+++ b/proc/sysinfo.c	2010-10-29 09:12:17.768426168 +0000
@@ -158,6 +158,14 @@ static void old_Hertz_hack(void){
   unsigned long long jiffies;
   unsigned h;
   char *restrict savelocale;
+  long hz;
+
+#ifdef _SC_CLK_TCK
+  if((hz = sysconf(_SC_CLK_TCK)) > 0){
+    Hertz = hz;
+    return;
+  }
+#endif
 
   savelocale = setlocale(LC_NUMERIC, NULL);
   setlocale(LC_NUMERIC, "C");
@@ -258,7 +266,7 @@ long smp_num_cpus(void)
   return(_smp_num_cpus);
 }
 
-static void init_libproc(void) __attribute__((constructor));
+static void init_libproc(void) __attribute__((constructor (102)));
 static void init_libproc(void){
   have_privs = check_for_privs();
 
--- a/proc/version.c
+++ b/proc/version.c	2010-10-29 09:11:53.192426444 +0000
@@ -33,7 +33,7 @@ void display_version(void) {
 
 int linux_version_code;
 
-static void init_Linux_version(void) __attribute__((constructor));
+static void init_Linux_version(void) __attribute__((constructor (101)));
 static void init_Linux_version(void) {
     static struct utsname uts;
     int x = 0, y = 0, z = 0;	/* cleared in case sscanf() < 3 */
openSUSE Build Service is sponsored by