]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
i686: Remove _dl_skip_args usage
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 26 May 2022 16:07:00 +0000 (13:07 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 30 May 2022 19:32:57 +0000 (16:32 -0300)
Since ad43cac44a the generic code already shuffles the argv/envp/auxv
on the stack to remove the ld.so own arguments and thus _dl_skip_args
is always 0.  So there is no need to adjust the argc or argv.

Checked on i686-linux-gnu.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
sysdeps/i386/dl-machine.h

index 1f8d734215acb0c63be5a82297e35007368ba609..8779983c8cc2db8452fd38aca924699116c517ee 100644 (file)
@@ -143,17 +143,8 @@ _dl_start_user:\n\
        # Point %ebx at the GOT.\n\
        call 0b\n\
        addl $_GLOBAL_OFFSET_TABLE_, %ebx\n\
-       # See if we were run as a command with the executable file\n\
-       # name as an extra leading argument.\n\
-       movl _dl_skip_args@GOTOFF(%ebx), %eax\n\
-       # Pop the original argument count.\n\
-       popl %edx\n\
-       # Adjust the stack pointer to skip _dl_skip_args words.\n\
-       leal (%esp,%eax,4), %esp\n\
-       # Subtract _dl_skip_args from argc.\n\
-       subl %eax, %edx\n\
-       # Push argc back on the stack.\n\
-       push %edx\n\
+       # Read the original argument count.\n\
+       movl (%esp), %edx\n\
        # The special initializer gets called with the stack just\n\
        # as the application's entry point will see it; it can\n\
        # switch stacks if it moves these contents over.\n\