Fix some compilation errors in ELF logic that were introduced in a recent commit

This commit is contained in:
Gregory Nutt
2014-08-24 12:57:02 -06:00
parent 021c3be415
commit 1708a133f5
2 changed files with 20 additions and 18 deletions
+7 -5
View File
@@ -112,8 +112,10 @@ static void elf_dumploadinfo(FAR struct elf_loadinfo_s *loadinfo)
int i; int i;
bdbg("LOAD_INFO:\n"); bdbg("LOAD_INFO:\n");
bdbg(" elfalloc: %08lx\n", (long)loadinfo->elfalloc); bdbg(" textalloc: %08lx\n", (long)loadinfo->textalloc);
bdbg(" elfsize: %ld\n", (long)loadinfo->elfsize); 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); bdbg(" filelen: %ld\n", (long)loadinfo->filelen);
#ifdef CONFIG_BINFMT_CONSTRUCTORS #ifdef CONFIG_BINFMT_CONSTRUCTORS
bdbg(" ctoralloc: %08lx\n", (long)loadinfo->ctoralloc); bdbg(" ctoralloc: %08lx\n", (long)loadinfo->ctoralloc);
@@ -215,7 +217,7 @@ static int elf_loadbinary(struct binary_s *binp)
/* Return the load information */ /* 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; binp->stacksize = CONFIG_ELF_STACKSIZE;
/* Add the ELF allocation to the alloc[] only if there is no address /* 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 #ifdef CONFIG_ARCH_ADDRENV
# warning "REVISIT" # warning "REVISIT"
#else #else
binp->alloc[0] = (FAR void *)loadinfo.elfalloc; binp->alloc[0] = (FAR void *)loadinfo.textalloc;
#endif #endif
#ifdef CONFIG_BINFMT_CONSTRUCTORS #ifdef CONFIG_BINFMT_CONSTRUCTORS
/* Save information about constructors. NOTE: desctructors are not /* Save information about constructors. NOTE: destructors are not
* yet supported. * yet supported.
*/ */
+13 -13
View File
@@ -177,25 +177,25 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo)
continue; 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 /* SHT_NOBITS indicates that there is no data in the file for the
* section. * section.
*/ */
if (shdr->sh_type != SHT_NOBITS) 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 /* If CONFIG_ARCH_ADDRENV=y, then 'text' lies in a virtual address
* space that may not be in place now. elf_addrenv_select() will * space that may not be in place now. elf_addrenv_select() will
* temporarily instantiate that address space. * temporarily instantiate that address space.