|
From: <sv...@va...> - 2009-09-04 12:52:32
|
Author: tom
Date: 2009-09-04 13:52:16 +0100 (Fri, 04 Sep 2009)
New Revision: 10884
Log:
Add support for AT_BASE_PLATFORM in the ELF auxv.
Based on patch from John Reiser.
Modified:
trunk/coregrind/m_initimg/initimg-linux.c
Modified: trunk/coregrind/m_initimg/initimg-linux.c
===================================================================
--- trunk/coregrind/m_initimg/initimg-linux.c 2009-09-03 10:45:03 UTC (rev 10883)
+++ trunk/coregrind/m_initimg/initimg-linux.c 2009-09-04 12:52:16 UTC (rev 10884)
@@ -250,6 +250,10 @@
#define AT_UCACHEBSIZE 21
#endif /* AT_UCACHEBSIZE */
+#ifndef AT_BASE_PLATFORM
+#define AT_BASE_PLATFORM 24
+#endif /* AT_BASE_PLATFORM */
+
#ifndef AT_RANDOM
#define AT_RANDOM 25
#endif /* AT_RANDOM */
@@ -430,7 +434,8 @@
/* now, how big is the auxv? */
auxsize = sizeof(*auxv); /* there's always at least one entry: AT_NULL */
for (cauxv = orig_auxv; cauxv->a_type != AT_NULL; cauxv++) {
- if (cauxv->a_type == AT_PLATFORM)
+ if (cauxv->a_type == AT_PLATFORM ||
+ cauxv->a_type == AT_BASE_PLATFORM)
stringsize += VG_(strlen)(cauxv->u.a_ptr) + 1;
else if (cauxv->a_type == AT_RANDOM)
stringsize += 16;
@@ -638,6 +643,7 @@
break;
case AT_PLATFORM:
+ case AT_BASE_PLATFORM:
/* points to a platform description string */
auxv->u.a_ptr = copy_str(&strtab, orig_auxv->u.a_ptr);
break;
|