Re: how does ld.so call ELF's entry?

Sofiane Akermoun <[email protected]> Sun, 7 Apr 2013 05:13:37 +0200
Newsgroups org.kernel.vger.linux-assembly
Message-ID <CAN0_x-+5CYN5L4pPCVd_V095canJJuc6D10cv9scTvyndPv2LQ@mail.gmail.com>
Hello,


The interpreter is specified during linking process and the program
header of your binary is filled with good values.
Then when the operating system load your binary, he finds next the
interpreter to use.
The linker ld sets the good values by default but you can overwrite it
or specify other values if you want.
The steps are:
1)The operating system loads your binary
2)The program loader system execute the Interpreter specifiy in the binary
3)The interpreter gather all the dynamic libraries needed in memory
4)The Control is passed to the entry point of your program

The entry point is specified in your code source as a "global". And
could be find in your object file by the linker.
In theory there are some defaults tag to specify entry point, like
"..start" for nasm, but you can also passed yours to the linker (ld
-e).

regards,

Sofiane Akermoun
[email protected]

2013/4/7 ishare <[email protected]>:
>
>   For an ELF ,which needs a interpreter , how is it  been called by the interpreter ?
>
>   As I know the interpreter is loaded first and do something essential ,then call the main routine of ELF .
>   How is this procedure implemented ?
>
>   Thanks!
> --
> To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Sofiane AKERMOUN
[email protected]