diff --git a/coregrind/m_initimg/initimg-solaris.c b/coregrind/m_initimg/initimg-solaris.c index df913da64..d87207214 100644 --- a/coregrind/m_initimg/initimg-solaris.c +++ b/coregrind/m_initimg/initimg-solaris.c @@ -442,6 +442,7 @@ static Addr setup_client_stack(Addr init_sp, AT_SUN_EXECNAME AT_PHDR (not for elfs with no PT_PHDR, such as ld.so.1) AT_BASE + AT_ENTRY AT_FLAGS AT_PAGESZ AT_SUN_AUXFLAFGS @@ -450,9 +451,9 @@ static Addr setup_client_stack(Addr init_sp, AT_SUN_SYSSTAT_ZONE_ADDR (if supported) AT_NULL - It would be possible to also add AT_PHENT, AT_PHNUM, AT_ENTRY, - AT_SUN_LDDATA, but they don't seem to be so important. */ - auxsize = 9 * sizeof(*auxv); + It would be possible to also add AT_PHENT, AT_PHNUM, AT_SUN_LDDATA, + but they don't seem to be so important. */ + auxsize = 10 * sizeof(*auxv); # if defined(SOLARIS_RESERVE_SYSSTAT_ADDR) auxsize += sizeof(*auxv); # endif @@ -631,6 +632,11 @@ static Addr setup_client_stack(Addr init_sp, auxv->a_un.a_val = info->interp_offset; auxv++; + /* AT_ENTRY */ + auxv->a_type = VKI_AT_ENTRY; + auxv->a_un.a_val = info->entry; + auxv++; + /* AT_FLAGS */ auxv->a_type = VKI_AT_FLAGS; # if defined(VGA_x86) || defined(VGA_amd64) diff --git a/include/vki/vki-solaris.h b/include/vki/vki-solaris.h index babc1f2dd..76e83d461 100644 --- a/include/vki/vki-solaris.h +++ b/include/vki/vki-solaris.h @@ -257,6 +257,7 @@ typedef struct { #define VKI_AT_PAGESZ AT_PAGESZ #define VKI_AT_BASE AT_BASE #define VKI_AT_FLAGS AT_FLAGS +#define VKI_AT_ENTRY AT_ENTRY #define VKI_AT_SUN_PLATFORM AT_SUN_PLATFORM #define VKI_AT_SUN_HWCAP AT_SUN_HWCAP #define VKI_AT_SUN_EXECNAME AT_SUN_EXECNAME