]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Track ELF frame changes as appearing in Red Hat Limbo (7.3.92).
authorJulian Seward <jseward@acm.org>
Thu, 25 Jul 2002 00:49:51 +0000 (00:49 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 25 Jul 2002 00:49:51 +0000 (00:49 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@525

coregrind/vg_kerneliface.h
coregrind/vg_main.c
vg_kerneliface.h
vg_main.c

index ef6cd6677d24465f99136d304adfbbbd5ed8c2fd..bcc10f55e2c3ef3df177880a964fd604e3cf2029 100644 (file)
@@ -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 <linux/module.h> leads to loads of hassle because then we
    need <asm/atomic.h> sometimes (RedHat 7.3) and that is a
index 95e772c0c12ce548585cde28b51a8969439fb405..5cce13d2e8604380168906a1757ab4d2f8fbebf2 100644 (file)
@@ -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
index ef6cd6677d24465f99136d304adfbbbd5ed8c2fd..bcc10f55e2c3ef3df177880a964fd604e3cf2029 100644 (file)
@@ -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 <linux/module.h> leads to loads of hassle because then we
    need <asm/atomic.h> sometimes (RedHat 7.3) and that is a
index 95e772c0c12ce548585cde28b51a8969439fb405..5cce13d2e8604380168906a1757ab4d2f8fbebf2 100644 (file)
--- 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