#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
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
#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
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