DEEPAK BHATIA wrote:
> Hi,
> 
> 1. The boot.s file in rtld/i386 jumps to the a.out file as shown in the code 
> below
> jmp  *%eax // transfer control to a.out
> 
> 2. The _rtboot.s in i386/crt jumps to dynamic linker ld.so.1 which is shown 
> below
> jmp  *%eax  // transfer control to ld.so.1
> 
> I have two questions
> 1. Does a.out means old Assembler Output format executable file or any 
> executable with elf file format?

a.out means "dynamic executable" as ld(1) calls out:

      In  all cases, the output of ld is left in a.out by default.

> 2. In case we make the executable as statically linked does _rtboot.s goes to 
> dynamic linker or not ?

The _rtboot.s code in libc is *only* used if libc.so.1 is defined to be the
interpretor for a dynamic executable.  Typically the interpretor is a version
of ld.so.1, like:

oxpoly 405. elfdump -i /usr/bin/cat

Interpreter Section:  .interp
         /usr/lib/ld.so.1

The ability to use libc.so.1 as an interpretor, is an old intel ABI requirement.
We (Solaris) don't create executables to use this interpretor.

Static executables (if you can create one) don't call upon any interpretor -
the kernel would load the executable and jump directly to its entry point
(ehdr:e_entry).  Static means "no interpretor".

-- 
Rod

Reply via email to