758a759,761
> // Patch the ld_bias for dynamic executables.
> updateBias();
>
801,802c804,807
< // Setup the auxilliary vectors. These will already have endian conversion.
< // Auxilliary vectors are loaded only for elf formatted executables.
---
> // Setup the auxiliary vectors. These will already have endian
> // conversion. Auxiliary vectors are loaded only for elf formatted
> // executables; the auxv is responsible for passing information from
> // the OS to the interpreter.
845,846c850,851
< // For statically linked executables, this is the virtual address of the
< // program header tables if they appear in the executable image
---
> // This is the virtual address of the program header tables if they
> // appear in the executable image.
852,856c857,860
< //This is the address of the elf "interpreter", It should be set
< //to 0 for regular executables. It should be something else
< //(not sure what) for dynamic libraries.
< auxv.push_back(auxv_t(M5_AT_BASE, 0));
<
---
> // This is the base address of the ELF interpreter; it should be
> // zero for static executables or contain the base address for
> // dynamic executables.
> auxv.push_back(auxv_t(M5_AT_BASE, getBias()));
1017c1021
< tc->pcState(objFile->entryPoint());
---
> tc->pcState(getStartPC());