From: Julian Seward Date: Wed, 21 Aug 2002 22:41:35 +0000 (+0000) Subject: Handle startup stacks starting at 0xE0000000. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed333e358e7a5629beb92265d0b3b22b0f9cbbdd;p=thirdparty%2Fvalgrind.git Handle startup stacks starting at 0xE0000000. MERGE TO HEAD git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_1_0_BRANCH@614 --- diff --git a/vg_include.h b/vg_include.h index 1e831c3fac..f97fd4bbaa 100644 --- a/vg_include.h +++ b/vg_include.h @@ -795,12 +795,14 @@ extern Int VG_(longjmpd_on_signal); the initial stack, which we can't move, is allocated here. VG_(scheduler_init) checks this. Andrea Archelangi's 2.4 kernels have been rumoured to start stacks at 0x80000000, so that too is - considered. It seems systems with longer uptimes tend to to use - stacks which start at 0x40000000 sometimes. -*/ + considered. It seems systems with longer uptimes tend to to use + stacks which start at 0x40000000 sometimes. JRS 2002-Aug-21: I + also have reports of stacks starting at 0xE0000000.*/ + #define VG_STARTUP_STACK_BASE_1 (Addr)0xC0000000 #define VG_STARTUP_STACK_BASE_2 (Addr)0x80000000 #define VG_STARTUP_STACK_BASE_3 (Addr)0x40000000 +#define VG_STARTUP_STACK_BASE_4 (Addr)0xE0000000 #define VG_STARTUP_STACK_SMALLERTHAN 0x100000 /* 1024k */ #define VG_STACK_MATCHES_BASE(zzstack, zzbase) \ diff --git a/vg_main.c b/vg_main.c index 2634af27dd..a2e9cb51b0 100644 --- a/vg_main.c +++ b/vg_main.c @@ -608,7 +608,10 @@ static void process_cmd_line_options ( void ) if (VG_STACK_MATCHES_BASE( VG_(esp_at_startup), VG_STARTUP_STACK_BASE_3 )) { sp = (UInt*)VG_STARTUP_STACK_BASE_3; - + } else + if (VG_STACK_MATCHES_BASE( VG_(esp_at_startup), + VG_STARTUP_STACK_BASE_4 )) { + sp = (UInt*)VG_STARTUP_STACK_BASE_4; } else { args_grok_error( "startup %esp is not near any VG_STARTUP_STACK_BASE_*\n "