Browse Source

* fix environment corruption for inferiors

git-svn-id: trunk@14153 -
pierre 15 years ago
parent
commit
152fa714e1
1 changed files with 8 additions and 2 deletions
  1. 8 2
      rtl/solaris/i386/start.inc

+ 8 - 2
rtl/solaris/i386/start.inc

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