* fix environment corruption for inferiors

git-svn-id: trunk@14153 -
This commit is contained in:
pierre 2009-11-12 12:28:21 +00:00
parent ce5d4ee65d
commit 152fa714e1

View File

@ -37,9 +37,14 @@ var
__get_exit_frame_monitor_ptr : pointer; cvar; external;
__do_exit_code_ptr : pointer; cvar; external;
}
var
_environ : pointer; cvar; external;
procedure _DYNAMIC;cdecl;external 'c' name '_DYNAMIC'; { should be weak }
procedure __Argv;cdecl;external 'c' name '__Argv';
procedure environ;cdecl;external 'c' name 'environ';
//procedure environ;cdecl;external 'c' name 'environ';
//procedure __get_exit_frame_monitor_ptr;cdecl;external 'c' name '__get_exit_frame_monitor_ptr';
//procedure __do_exit_code_ptr;cdecl;external 'c' name '__do_exit_code_ptr';
@ -77,11 +82,12 @@ asm
.Label2:
mov 0x8(%ebp),%eax
mov %eax,argc
mov environ,%edx
mov _environ,%edx
test %edx,%edx
jne .Label3
lea 0x10(%ebp,%eax,4),%edx
.Label3:
movl %edx,_environ
movl %edx,envp
and $0xfffffff0,%esp
push %edx