mirror of
https://github.com/apache/nuttx.git
synced 2026-05-30 13:27:01 +08:00
Fix some compilation errors in ELF logic that were introduced in a recent commit
This commit is contained in:
+7
-5
@@ -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
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user