mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 10:58:49 +08:00
Fix some compilation errors in ELF logic that were introduced in a recent commit
This commit is contained in:
parent
021c3be415
commit
1708a133f5
2 changed files with 20 additions and 18 deletions
12
binfmt/elf.c
12
binfmt/elf.c
|
@ -112,8 +112,10 @@ static void elf_dumploadinfo(FAR struct elf_loadinfo_s *loadinfo)
|
|||
int i;
|
||||
|
||||
bdbg("LOAD_INFO:\n");
|
||||
bdbg(" elfalloc: %08lx\n", (long)loadinfo->elfalloc);
|
||||
bdbg(" elfsize: %ld\n", (long)loadinfo->elfsize);
|
||||
bdbg(" textalloc: %08lx\n", (long)loadinfo->textalloc);
|
||||
bdbg(" dataalloc: %08lx\n", (long)loadinfo->dataalloc);
|
||||
bdbg(" textsize: %ld\n", (long)loadinfo->textsize);
|
||||
bdbg(" datasize: %ld\n", (long)loadinfo->datasize);
|
||||
bdbg(" filelen: %ld\n", (long)loadinfo->filelen);
|
||||
#ifdef CONFIG_BINFMT_CONSTRUCTORS
|
||||
bdbg(" ctoralloc: %08lx\n", (long)loadinfo->ctoralloc);
|
||||
|
@ -215,7 +217,7 @@ static int elf_loadbinary(struct binary_s *binp)
|
|||
|
||||
/* Return the load information */
|
||||
|
||||
binp->entrypt = (main_t)(loadinfo.elfalloc + loadinfo.ehdr.e_entry);
|
||||
binp->entrypt = (main_t)(loadinfo.textalloc + loadinfo.ehdr.e_entry);
|
||||
binp->stacksize = CONFIG_ELF_STACKSIZE;
|
||||
|
||||
/* Add the ELF allocation to the alloc[] only if there is no address
|
||||
|
@ -229,11 +231,11 @@ static int elf_loadbinary(struct binary_s *binp)
|
|||
#ifdef CONFIG_ARCH_ADDRENV
|
||||
# warning "REVISIT"
|
||||
#else
|
||||
binp->alloc[0] = (FAR void *)loadinfo.elfalloc;
|
||||
binp->alloc[0] = (FAR void *)loadinfo.textalloc;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BINFMT_CONSTRUCTORS
|
||||
/* Save information about constructors. NOTE: desctructors are not
|
||||
/* Save information about constructors. NOTE: destructors are not
|
||||
* yet supported.
|
||||
*/
|
||||
|
||||
|
|
|
@ -177,25 +177,25 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo)
|
|||
continue;
|
||||
}
|
||||
|
||||
/* SHF_WRITE indicates that the section address space is write-
|
||||
* able
|
||||
*/
|
||||
|
||||
if ((shdr->sh_flags & SHF_WRITE) != 0)
|
||||
{
|
||||
pptr = &data;
|
||||
}
|
||||
else
|
||||
{
|
||||
pptr = &text;
|
||||
}
|
||||
|
||||
/* SHT_NOBITS indicates that there is no data in the file for the
|
||||
* section.
|
||||
*/
|
||||
|
||||
if (shdr->sh_type != SHT_NOBITS)
|
||||
{
|
||||
/* SHF_WRITE indicates that the section address space is write-
|
||||
* able
|
||||
*/
|
||||
|
||||
if ((shdr->sh_flags & SHF_WRITE) != 0)
|
||||
{
|
||||
pptr = &data;
|
||||
}
|
||||
else
|
||||
{
|
||||
pptr = &text;
|
||||
}
|
||||
|
||||
/* If CONFIG_ARCH_ADDRENV=y, then 'text' lies in a virtual address
|
||||
* space that may not be in place now. elf_addrenv_select() will
|
||||
* temporarily instantiate that address space.
|
||||
|
|
Loading…
Reference in a new issue