diff --git a/Makefile b/Makefile index 7a058d88e9..73bffc3014 100644 --- a/Makefile +++ b/Makefile @@ -644,7 +644,7 @@ ifneq ($(APPDIR),) fi @$(MAKE) -C "$(TOPDIR)/$(APPDIR)" TOPDIR="$(TOPDIR)" distclean @if [ -r _SAVED_APPS_config ]; then \ - @mv _SAVED_APPS_config "$(TOPDIR)/$(APPDIR)/.config" || \ + mv _SAVED_APPS_config "$(TOPDIR)/$(APPDIR)/.config" || \ { echo "Copy of _SAVED_APPS_config failed" ; exit 1 ; } \ fi endif diff --git a/arch/sim/src/up_elf.c b/arch/sim/src/up_elf.c index c6aabdcef7..ca3b642dcd 100644 --- a/arch/sim/src/up_elf.c +++ b/arch/sim/src/up_elf.c @@ -40,7 +40,9 @@ #include #include +#include #include +#include #include #include @@ -113,7 +115,7 @@ int arch_relocate(FAR const Elf32_Rel *rel, FAR const Elf32_Sym *sym, { FAR uint32_t *ptr = (FAR uint32_t *)addr; - switch (ELF_REL_TYPE(rel->r_info)) + switch (ELF32_R_TYPE(rel->r_info)) { case R_386_32: *ptr += sym->st_value; diff --git a/arch/x86/src/common/up_elf.c b/arch/x86/src/common/up_elf.c index f159c8e518..be166b480c 100644 --- a/arch/x86/src/common/up_elf.c +++ b/arch/x86/src/common/up_elf.c @@ -40,7 +40,9 @@ #include #include +#include #include +#include #include #include @@ -113,7 +115,7 @@ int arch_relocate(FAR const Elf32_Rel *rel, FAR const Elf32_Sym *sym, { FAR uint32_t *ptr = (FAR uint32_t *)addr; - switch (ELF_REL_TYPE(rel->r_info)) + switch (ELF32_R_TYPE(rel->r_info)) { case R_386_32: *ptr += sym->st_value; diff --git a/binfmt/elf.c b/binfmt/elf.c index ba12a22ea4..d9c3d0b9c9 100644 --- a/binfmt/elf.c +++ b/binfmt/elf.c @@ -139,11 +139,11 @@ static void elf_dumploadinfo(FAR struct elf_loadinfo_s *loadinfo) bdbg(" e_shnum: %d\n", loadinfo->ehdr.e_shnum); bdbg(" e_shstrndx: %d\n", loadinfo->ehdr.e_shstrndx); - if (loadinfo->shdr && loadinfo->ehdr.e_shum > 0) + if (loadinfo->shdr && loadinfo->ehdr.e_shnum > 0) { - for (i = 0; i < loadinfo->ehdr.e_shum; i++) + for (i = 0; i < loadinfo->ehdr.e_shnum; i++) { - FAR ELF32_Shdr *shdr = &loadinfo->shdr[i]; + FAR Elf32_Shdr *shdr = &loadinfo->shdr[i]; bdbg("Sections %d:\n", i); bdbg(" sh_name: %08x\n", shdr->sh_name); bdbg(" sh_type: %08x\n", shdr->sh_type); @@ -184,7 +184,7 @@ static int elf_loadbinary(struct binary_s *binp) elf_dumploadinfo(&loadinfo); if (ret != 0) { - bdbg("Failed to initialize for load of NXFLT program: %d\n", ret); + bdbg("Failed to initialize for load of ELF program: %d\n", ret); goto errout; } @@ -194,7 +194,7 @@ static int elf_loadbinary(struct binary_s *binp) elf_dumploadinfo(&loadinfo); if (ret != 0) { - bdbg("Failed to load NXFLT program binary: %d\n", ret); + bdbg("Failed to load ELF program binary: %d\n", ret); goto errout_with_init; } diff --git a/binfmt/libelf/Make.defs b/binfmt/libelf/Make.defs index 9e06537bd6..a70a127f80 100644 --- a/binfmt/libelf/Make.defs +++ b/binfmt/libelf/Make.defs @@ -41,7 +41,7 @@ BINFMT_CSRCS += elf.c # ELF library -BINFMT_CSRCS = libelf_init.c libelf_uninit.c libelf_load.c \ +BINFMT_CSRCS += libelf_init.c libelf_uninit.c libelf_load.c \ libelf_unload.c libelf_verify.c libelf_read.c \ libelf_bind.c libelf_symbols.c diff --git a/binfmt/libelf/libelf_load.c b/binfmt/libelf/libelf_load.c index 758f965483..4a1a561c3c 100644 --- a/binfmt/libelf/libelf_load.c +++ b/binfmt/libelf/libelf_load.c @@ -283,8 +283,8 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo) /* Update sh_addr to point to copy in memory */ + bvdbg("%d. %08x->%08x\n", i, (long)shdr->sh_addr, (long)dest); shdr->sh_addr = (uintptr_t)dest; - bvdbg("%d. 0x%lx %s\n", (long)shdr->sh_addr, loadinfo->secstrings + shdr->sh_name); /* Setup the memory pointer for the next time through the loop */ diff --git a/binfmt/libnxflat/Make.defs b/binfmt/libnxflat/Make.defs index 4462e9a024..4f522e52b2 100644 --- a/binfmt/libnxflat/Make.defs +++ b/binfmt/libnxflat/Make.defs @@ -41,7 +41,7 @@ BINFMT_CSRCS += nxflat.c # NXFLAT library -BINFMT_CSRCS = libnxflat_init.c libnxflat_uninit.c libnxflat_load.c \ +BINFMT_CSRCS += libnxflat_init.c libnxflat_uninit.c libnxflat_load.c \ libnxflat_unload.c libnxflat_verify.c libnxflat_read.c \ libnxflat_bind.c diff --git a/binfmt/nxflat.c b/binfmt/nxflat.c index babc51ff95..8d0ecfdcd9 100644 --- a/binfmt/nxflat.c +++ b/binfmt/nxflat.c @@ -158,7 +158,7 @@ static int nxflat_loadbinary(struct binary_s *binp) nxflat_dumploadinfo(&loadinfo); if (ret != 0) { - bdbg("Failed to initialize for load of NXFLT program: %d\n", ret); + bdbg("Failed to initialize for load of NXFLAT program: %d\n", ret); goto errout; } @@ -168,7 +168,7 @@ static int nxflat_loadbinary(struct binary_s *binp) nxflat_dumploadinfo(&loadinfo); if (ret != 0) { - bdbg("Failed to load NXFLT program binary: %d\n", ret); + bdbg("Failed to load NXFLAT program binary: %d\n", ret); goto errout_with_init; } diff --git a/include/elf.h b/include/elf.h index 1b36701fda..c3fb2732d2 100644 --- a/include/elf.h +++ b/include/elf.h @@ -166,9 +166,9 @@ /* Definitions for Elf32_Sym::st_info */ -#define ELF32_ST_BIND(i) ((i)>>4) -#define ELF32_ST_TYPE(i) ((i)&0xf) -#define ELF32_ST_INFO(b,t) (((b)<<4)+((t)&0xf)) +#define ELF32_ST_BIND(i) ((i) >> 4) +#define ELF32_ST_TYPE(i) ((i) & 0xf) +#define ELF32_ST_INFO(b,t) (((b) << 4) | ((t) & 0xf)) /* Figure 4-16: Symbol Binding, ELF32_ST_BIND */ @@ -190,9 +190,9 @@ /* Definitions for Elf32_Rel*::r_info */ -#define ELF32_R_SYM(i) ((i)>>8) -#define ELF32_R_TYPE(i) ((unsigned char)(i)) -#define ELF32_R_INFO(s,t) (((s)<<8)+(unsigned char)(t)) +#define ELF32_R_SYM(i) ((i) >> 8) +#define ELF32_R_TYPE(i) ((i) & 0xff) +#define ELF32_R_INFO(s,t) (((s)<< 8) | ((t) & 0xff)) /* Figure 5-2: Segment Types, p_type */ diff --git a/tools/mkconfig.c b/tools/mkconfig.c index 2d2fff5c56..3e55f50974 100644 --- a/tools/mkconfig.c +++ b/tools/mkconfig.c @@ -116,7 +116,7 @@ int main(int argc, char **argv, char **envp) printf(" * configured (at present, NXFLAT is the only supported binary.\n"); printf(" * format).\n"); printf(" */\n\n"); - printf("#if !defined(CONFIG_NXFLAT)\n"); + printf("#if !defined(CONFIG_NXFLAT) && !defined(CONFIG_ELF)\n"); printf("# undef CONFIG_BINFMT_DISABLE\n"); printf("# define CONFIG_BINFMT_DISABLE 1\n"); printf("#endif\n\n");