diff -aur procps-3.2.8.orig/proc/sig.c procps-3.2.8/proc/sig.c --- procps-3.2.8.orig/proc/sig.c 2003-03-19 01:52:39.000000000 +0100 +++ procps-3.2.8/proc/sig.c 2010-06-25 20:39:06.081194787 +0200 @@ -231,7 +231,7 @@ } /* sanity check */ -static int init_signal_list(void) __attribute__((constructor)); +static int init_signal_list(void) __attribute__((constructor(0))); static int init_signal_list(void){ if(number_of_signals != 31){ fprintf(stderr, "WARNING: %d signals -- adjust and recompile.\n", number_of_signals); diff -aur procps-3.2.8.orig/proc/sysinfo.c procps-3.2.8/proc/sysinfo.c --- procps-3.2.8.orig/proc/sysinfo.c 2008-03-24 05:33:43.000000000 +0100 +++ procps-3.2.8/proc/sysinfo.c 2010-06-25 20:41:33.254192147 +0200 @@ -209,7 +209,7 @@ return !!rc; } -static void init_libproc(void) __attribute__((constructor)); +static void init_libproc(void) __attribute__((constructor(2))); static void init_libproc(void){ have_privs = check_for_privs(); // ought to count CPUs in /proc/stat instead of relying diff -aur procps-3.2.8.orig/proc/version.c procps-3.2.8/proc/version.c --- procps-3.2.8.orig/proc/version.c 2003-01-29 02:11:43.000000000 +0100 +++ procps-3.2.8/proc/version.c 2010-06-25 20:39:12.126192267 +0200 @@ -33,7 +33,7 @@ int linux_version_code; -static void init_Linux_version(void) __attribute__((constructor)); +static void init_Linux_version(void) __attribute__((constructor(1))); static void init_Linux_version(void) { static struct utsname uts; int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */