From: Julian Seward Date: Thu, 25 Jul 2002 00:49:51 +0000 (+0000) Subject: Track ELF frame changes as appearing in Red Hat Limbo (7.3.92). X-Git-Tag: svn/VALGRIND_1_0_1~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db16040de4abbe4d028e349be126bec10b8310bc;p=thirdparty%2Fvalgrind.git Track ELF frame changes as appearing in Red Hat Limbo (7.3.92). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@525 --- diff --git a/coregrind/vg_kerneliface.h b/coregrind/vg_kerneliface.h index ef6cd6677d..bcc10f55e2 100644 --- a/coregrind/vg_kerneliface.h +++ b/coregrind/vg_kerneliface.h @@ -324,7 +324,9 @@ struct vki_stat { #define VKI_AT_PHNUM 5 /* number of program headers */ #define VKI_AT_PHENT 4 /* size of program header entry */ #define VKI_AT_PHDR 3 /* program headers for program */ - +#define VKI_AT_USER_AUX_SEGMENT 23 /* tell glibc what address segment + 0x3B points to. (Needed for + Red Hat Limbo, 7.3.92) */ /* Including leads to loads of hassle because then we need sometimes (RedHat 7.3) and that is a diff --git a/coregrind/vg_main.c b/coregrind/vg_main.c index 95e772c0c1..5cce13d2e8 100644 --- a/coregrind/vg_main.c +++ b/coregrind/vg_main.c @@ -637,6 +637,16 @@ static void process_cmd_line_options ( void ) VG_(printf)("Looks like you've got a 2.4.X kernel here.\n"); sp -= 2; } else + if (sp[2] == VKI_AT_CLKTCK + && sp[0] == VKI_AT_PAGESZ + && sp[-2] == VKI_AT_HWCAP + && sp[-4] == VKI_AT_USER_AUX_SEGMENT + && sp[-4-1] == 0) { + if (0) + VG_(printf)("Looks like you've got a R-H Limbo 2.4.X " + "kernel here.\n"); + sp -= 4; + } else if (sp[2] == VKI_AT_CLKTCK && sp[0] == VKI_AT_PAGESZ && sp[-2] == VKI_AT_HWCAP diff --git a/vg_kerneliface.h b/vg_kerneliface.h index ef6cd6677d..bcc10f55e2 100644 --- a/vg_kerneliface.h +++ b/vg_kerneliface.h @@ -324,7 +324,9 @@ struct vki_stat { #define VKI_AT_PHNUM 5 /* number of program headers */ #define VKI_AT_PHENT 4 /* size of program header entry */ #define VKI_AT_PHDR 3 /* program headers for program */ - +#define VKI_AT_USER_AUX_SEGMENT 23 /* tell glibc what address segment + 0x3B points to. (Needed for + Red Hat Limbo, 7.3.92) */ /* Including leads to loads of hassle because then we need sometimes (RedHat 7.3) and that is a diff --git a/vg_main.c b/vg_main.c index 95e772c0c1..5cce13d2e8 100644 --- a/vg_main.c +++ b/vg_main.c @@ -637,6 +637,16 @@ static void process_cmd_line_options ( void ) VG_(printf)("Looks like you've got a 2.4.X kernel here.\n"); sp -= 2; } else + if (sp[2] == VKI_AT_CLKTCK + && sp[0] == VKI_AT_PAGESZ + && sp[-2] == VKI_AT_HWCAP + && sp[-4] == VKI_AT_USER_AUX_SEGMENT + && sp[-4-1] == 0) { + if (0) + VG_(printf)("Looks like you've got a R-H Limbo 2.4.X " + "kernel here.\n"); + sp -= 4; + } else if (sp[2] == VKI_AT_CLKTCK && sp[0] == VKI_AT_PAGESZ && sp[-2] == VKI_AT_HWCAP