[packages] procps: the recently added "HZ fix" introduces constructor priorities which GCC < 4.0 does not support, protect those with a gcc version check

git-svn-id: svn://svn.openwrt.org/openwrt/packages@24828 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2010-12-26 00:53:40 +00:00
parent 0dad492bd5
commit 016c0374b9

View File

@ -1,22 +1,30 @@
--- a/proc/sysinfo.c
+++ b/proc/sysinfo.c
@@ -209,7 +209,7 @@ static int check_for_privs(void){
@@ -209,7 +209,12 @@ static int check_for_privs(void){
return !!rc;
}
-static void init_libproc(void) __attribute__((constructor));
+#if __GNUC__ < 4
static void init_libproc(void) __attribute__((constructor));
+#else
+static void init_libproc(void) __attribute__((constructor(200)));
+#endif
+
static void init_libproc(void){
have_privs = check_for_privs();
// ought to count CPUs in /proc/stat instead of relying
--- a/proc/version.c
+++ b/proc/version.c
@@ -33,7 +33,7 @@ void display_version(void) {
@@ -33,7 +33,12 @@ void display_version(void) {
int linux_version_code;
-static void init_Linux_version(void) __attribute__((constructor));
+#if __GNUC__ < 4
static void init_Linux_version(void) __attribute__((constructor));
+#else
+static void init_Linux_version(void) __attribute__((constructor(100)));
+#endif
+
static void init_Linux_version(void) {
static struct utsname uts;
int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */