diff options
Diffstat (limited to 'libc/arch-x86/bionic/crtbegin_dynamic.S')
-rw-r--r-- | libc/arch-x86/bionic/crtbegin_dynamic.S | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/libc/arch-x86/bionic/crtbegin_dynamic.S b/libc/arch-x86/bionic/crtbegin_dynamic.S index b013641..3b47b18 100644 --- a/libc/arch-x86/bionic/crtbegin_dynamic.S +++ b/libc/arch-x86/bionic/crtbegin_dynamic.S @@ -29,35 +29,25 @@ .type _start, @function .globl _start -# This is the small startup code that is called from -# the dynamic linker to execute an executable once all -# dependent shared libraries have been loaded and -# initialized. +# this is the small startup code that is first run when +# any executable that is statically-linked with Bionic +# runs. # -# It's purpose is to call __libc_init as defined in -# bionic/libc_init_dynamic.c with appropriate +# it's purpose is to call __libc_init with appropriate # arguments, which are: # # - the address of the raw data block setup by the Linux # kernel ELF loader # -# - address of an "onexit" function (not used on any -# platform supported by Bionic) +# - address of an "onexit" function, not used on any +# platform supported by Bionic # # - address of the "main" function of the program. We # can't hard-code it in the adr pseudo instruction # so we use a tiny trampoline that will get relocated # by the dynamic linker before this code runs # -# - address of the constructors table, i.e. a table -# that points to various initialization and -# finalization sections for the program. -# -# NOTE: This code is currently placed in shared libraries -# by the build system, but will be ignored. -# -# On the other hand, the arrays defined below are -# required and will be parsed by the dynamic linker. +# - address of the constructor list # _start: mov %esp, %eax |