mescc: Mes C Library: Support make: Support main with envp.
* lib/linux/x86-mes-gcc/crt1.c (_start): Also push envp. * lib/linux/x86-mes/crt1.c (_start): Also push envp. * lib/linux/x86_64-mes-gcc/crt1.c (_start): Also mov environment,%rdx.
This commit is contained in:
parent
8b9d51e4a4
commit
2fe2e556e8
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char **environ = 0;
|
char **environ = 0;
|
||||||
int main (int argc, char *argv[]);
|
int main (int argc, char *argv[], char *envp[]);
|
||||||
|
|
||||||
void
|
void
|
||||||
_start ()
|
_start ()
|
||||||
|
@ -32,6 +32,7 @@ _start ()
|
||||||
"shl $2,%%eax\n\t"
|
"shl $2,%%eax\n\t"
|
||||||
"add %%ebp,%%eax\n\t"
|
"add %%ebp,%%eax\n\t"
|
||||||
"mov %%eax,%0\n\t"
|
"mov %%eax,%0\n\t"
|
||||||
|
"push %%eax\n\t"
|
||||||
: "=r" (environ)
|
: "=r" (environ)
|
||||||
: //no inputs ""
|
: //no inputs ""
|
||||||
);
|
);
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char **environ = 0;
|
char **environ = 0;
|
||||||
int main (int argc, char *argv[]);
|
int main (int argc, char *argv[], char *envp[]);
|
||||||
|
|
||||||
int
|
int
|
||||||
_start ()
|
_start ()
|
||||||
|
@ -33,6 +33,7 @@ _start ()
|
||||||
asm ("shl____$i8,%eax !0x02");
|
asm ("shl____$i8,%eax !0x02");
|
||||||
asm ("add____%ebp,%eax");
|
asm ("add____%ebp,%eax");
|
||||||
asm ("mov____%eax,0x32 &environ");
|
asm ("mov____%eax,0x32 &environ");
|
||||||
|
asm ("push___%eax");
|
||||||
|
|
||||||
asm ("mov____%ebp,%eax");
|
asm ("mov____%ebp,%eax");
|
||||||
asm ("add____$i8,%eax !8");
|
asm ("add____$i8,%eax !8");
|
||||||
|
|
|
@ -35,6 +35,7 @@ _start ()
|
||||||
"shl $3,%%rax\n\t"
|
"shl $3,%%rax\n\t"
|
||||||
"add %%rbp,%%rax\n\t"
|
"add %%rbp,%%rax\n\t"
|
||||||
"mov %%rax,%0\n\t"
|
"mov %%rax,%0\n\t"
|
||||||
|
"mov %%rax,%%rdx\n\t"
|
||||||
: "=r" (environ)
|
: "=r" (environ)
|
||||||
: //no inputs ""
|
: //no inputs ""
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue