|
@@ -97,8 +97,8 @@
|
|
|
|
|
|
int (*_dl_elf_main) (int, char **, char **);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+static void* __rtld_stack_end;
|
|
|
+strong_alias(__rtld_stack_end, __libc_stack_end);
|
|
|
|
|
|
|
|
|
argc argument counter (integer)
|
|
@@ -290,6 +290,11 @@ static void * __attribute_used__ _dl_start(unsigned long args)
|
|
|
free to start using global variables, since these things have all been
|
|
|
fixed up by now. Still no function calls outside of this library ,
|
|
|
since the dynamic resolver is not yet ready. */
|
|
|
+
|
|
|
+ __rtld_stack_end = (void *)args;
|
|
|
+ if (*((long *)__rtld_stack_end) != argc) {
|
|
|
+ SEND_STDERR_DEBUG("__rtld_stack_end doesn't point to argc!");
|
|
|
+ }
|
|
|
_dl_get_ready_to_run(tpnt, load_addr, auxvt, envp, argv);
|
|
|
|
|
|
|