You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2023/08/27 21:46:45 UTC

[nuttx] branch master updated: binfmt/elf: Fix the minor style issue

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new cb8df39207 binfmt/elf: Fix the minor style issue
cb8df39207 is described below

commit cb8df392074314a326996a8c4d1e2a18bd0f5bc3
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Mon Jul 3 00:11:02 2023 +0800

    binfmt/elf: Fix the minor style issue
    
    and remove the unused macros and unnecessary cast
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 binfmt/binfmt_execmodule.c         |  4 ++--
 binfmt/binfmt_globals.c            |  2 +-
 binfmt/binfmt_unloadmodule.c       | 10 ++++----
 binfmt/builtin.c                   |  2 +-
 binfmt/elf.c                       | 22 ++++++++---------
 binfmt/libelf/libelf.h             |  7 +-----
 binfmt/libelf/libelf_addrenv.c     | 30 +++++++++++------------
 binfmt/libelf/libelf_ctors.c       |  7 +++---
 binfmt/libelf/libelf_dtors.c       |  7 +++---
 binfmt/libelf/libelf_init.c        |  2 +-
 binfmt/libelf/libelf_iobuffer.c    |  4 ++--
 binfmt/libelf/libelf_load.c        | 47 ++++++++++++++++--------------------
 binfmt/libelf/libelf_read.c        | 30 ++++++++++++-----------
 binfmt/libelf/libelf_sections.c    | 22 +++++++----------
 binfmt/libelf/libelf_symbols.c     | 13 ++++------
 binfmt/libelf/libelf_uninit.c      | 12 +++++-----
 binfmt/libelf/libelf_unload.c      |  6 ++---
 binfmt/libelf/libelf_verify.c      |  2 +-
 binfmt/libnxflat/libnxflat.h       | 22 ++++++++++++-----
 binfmt/libnxflat/libnxflat_init.c  |  2 ++
 binfmt/nxflat.c                    |  2 +-
 include/nuttx/binfmt/binfmt.h      |  8 +++----
 include/nuttx/binfmt/elf.h         | 15 ++----------
 include/nuttx/binfmt/nxflat.h      | 15 ------------
 include/nuttx/lib/modlib.h         |  6 ++---
 libs/libc/dlfcn/lib_dlclose.c      |  8 +++++--
 libs/libc/dlfcn/lib_dlerror.c      |  2 +-
 libs/libc/dlfcn/lib_dlopen.c       | 29 ++++++++++------------
 libs/libc/dlfcn/lib_dlsymtab.c     |  1 -
 libs/libc/modlib/Make.defs         |  3 +--
 libs/libc/modlib/modlib.h          |  5 ----
 libs/libc/modlib/modlib_bind.c     | 49 +++++++++++++++++++-------------------
 libs/libc/modlib/modlib_depend.c   |  4 ++--
 libs/libc/modlib/modlib_init.c     |  3 +--
 libs/libc/modlib/modlib_iobuffer.c |  2 +-
 libs/libc/modlib/modlib_load.c     | 33 ++++++++++---------------
 libs/libc/modlib/modlib_loadhdrs.c | 12 +++++-----
 libs/libc/modlib/modlib_read.c     | 30 ++++++++++++-----------
 libs/libc/modlib/modlib_registry.c |  1 -
 libs/libc/modlib/modlib_sections.c | 20 ++++++----------
 libs/libc/modlib/modlib_symtab.c   |  1 +
 libs/libc/modlib/modlib_uninit.c   | 18 +++++++-------
 libs/libc/modlib/modlib_unload.c   |  2 +-
 libs/libc/modlib/modlib_verify.c   | 12 ++++------
 sched/module/mod_insmod.c          | 11 +++++----
 sched/module/mod_modhandle.c       |  2 +-
 sched/module/mod_procfs.c          | 10 ++++----
 sched/module/mod_rmmod.c           |  6 ++---
 48 files changed, 254 insertions(+), 309 deletions(-)

diff --git a/binfmt/binfmt_execmodule.c b/binfmt/binfmt_execmodule.c
index b660e3eef2..7862615c36 100644
--- a/binfmt/binfmt_execmodule.c
+++ b/binfmt/binfmt_execmodule.c
@@ -88,7 +88,7 @@ static void exec_ctors(FAR void *arg)
 
   for (i = 0; i < binp->nctors; i++)
     {
-      binfo("Calling ctor %d at %p\n", i, (FAR void *)ctor);
+      binfo("Calling ctor %d at %p\n", i, ctor);
 
       (*ctor)();
       ctor++;
@@ -272,7 +272,7 @@ int exec_module(FAR struct binary_s *binp,
 
   if (binp->nctors > 0)
     {
-      nxtask_starthook(tcb, exec_ctors, (FAR void *)binp);
+      nxtask_starthook(tcb, exec_ctors, binp);
     }
 #endif
 
diff --git a/binfmt/binfmt_globals.c b/binfmt/binfmt_globals.c
index 0d80b4c953..5140ff9624 100644
--- a/binfmt/binfmt_globals.c
+++ b/binfmt/binfmt_globals.c
@@ -24,7 +24,7 @@
 
 #include <nuttx/config.h>
 
-#include <nuttx/binfmt/binfmt.h>
+#include "binfmt.h"
 
 #ifndef CONFIG_BINFMT_DISABLE
 
diff --git a/binfmt/binfmt_unloadmodule.c b/binfmt/binfmt_unloadmodule.c
index 0c0be333ed..b3f89a9950 100644
--- a/binfmt/binfmt_unloadmodule.c
+++ b/binfmt/binfmt_unloadmodule.c
@@ -69,7 +69,7 @@ static inline int exec_dtors(FAR struct binary_s *binp)
   /* Instantiate the address environment containing the destructors */
 
 #ifdef CONFIG_ARCH_ADDRENV
-  ret = addrenv_select(&binp->addrenv);
+  ret = addrenv_select(binp->addrenv, &binp->oldenv);
   if (ret < 0)
     {
       berr("ERROR: addrenv_select() failed: %d\n", ret);
@@ -81,7 +81,7 @@ static inline int exec_dtors(FAR struct binary_s *binp)
 
   for (i = 0; i < binp->ndtors; i++)
     {
-      binfo("Calling dtor %d at %p\n", i, (FAR void *)dtor);
+      binfo("Calling dtor %d at %p\n", i, dtor);
 
       (*dtor)();
       dtor++;
@@ -90,7 +90,7 @@ static inline int exec_dtors(FAR struct binary_s *binp)
   /* Restore the address environment */
 
 #ifdef CONFIG_ARCH_ADDRENV
-  return addrenv_restore();
+  return addrenv_restore(binp->oldenv);
 #else
   return OK;
 #endif
@@ -169,12 +169,12 @@ int unload_module(FAR struct binary_s *binp)
 #if defined(CONFIG_ARCH_USE_TEXT_HEAP)
               if (i == 0)
                 {
-                  up_textheap_free((FAR void *)binp->alloc[i]);
+                  up_textheap_free(binp->alloc[i]);
                 }
               else
 #endif
                 {
-                  kumm_free((FAR void *)binp->alloc[i]);
+                  kumm_free(binp->alloc[i]);
                 }
             }
         }
diff --git a/binfmt/builtin.c b/binfmt/builtin.c
index 772068acd3..19a8c3f4bb 100644
--- a/binfmt/builtin.c
+++ b/binfmt/builtin.c
@@ -96,7 +96,7 @@ static int builtin_loadbinary(FAR struct binary_s *binp,
    * the priority.  That is a bug and needs to be fixed.
    */
 
-  builtin         = builtin_for_index(index);
+  builtin = builtin_for_index(index);
   if (builtin == NULL)
     {
       berr("ERROR: %s is not a builtin application\n", filename);
diff --git a/binfmt/elf.c b/binfmt/elf.c
index 81c5fdf845..d78abcff98 100644
--- a/binfmt/elf.c
+++ b/binfmt/elf.c
@@ -47,7 +47,7 @@
  * have to be defined or CONFIG_ELF_DUMPBUFFER does nothing.
  */
 
-#if !defined(CONFIG_DEBUG_INFO) || !defined (CONFIG_DEBUG_BINFMT)
+#if !defined(CONFIG_DEBUG_INFO) || !defined(CONFIG_DEBUG_BINFMT)
 #  undef CONFIG_ELF_DUMPBUFFER
 #endif
 
@@ -300,22 +300,22 @@ static int elf_loadbinary(FAR struct binary_s *binp,
   binp->addrenv = loadinfo.addrenv;
 
 #else
-  binp->alloc[0]  = (FAR void *)loadinfo.textalloc;
-  binp->alloc[1]  = (FAR void *)loadinfo.dataalloc;
-#ifdef CONFIG_BINFMT_CONSTRUCTORS
-  binp->alloc[2]  = loadinfo.ctoralloc;
-  binp->alloc[3]  = loadinfo.dtoralloc;
-#endif
+  binp->alloc[0] = (FAR void *)loadinfo.textalloc;
+  binp->alloc[1] = (FAR void *)loadinfo.dataalloc;
+#  ifdef CONFIG_BINFMT_CONSTRUCTORS
+  binp->alloc[2] = loadinfo.ctoralloc;
+  binp->alloc[3] = loadinfo.dtoralloc;
+#  endif
 #endif
 
 #ifdef CONFIG_BINFMT_CONSTRUCTORS
   /* Save information about constructors and destructors. */
 
-  binp->ctors     = loadinfo.ctors;
-  binp->nctors    = loadinfo.nctors;
+  binp->ctors    = loadinfo.ctors;
+  binp->nctors   = loadinfo.nctors;
 
-  binp->dtors     = loadinfo.dtors;
-  binp->ndtors    = loadinfo.ndtors;
+  binp->dtors    = loadinfo.dtors;
+  binp->ndtors   = loadinfo.ndtors;
 #endif
 
 #ifdef CONFIG_SCHED_USER_IDENTITY
diff --git a/binfmt/libelf/libelf.h b/binfmt/libelf/libelf.h
index d2f7b6607e..a13aa74d6e 100644
--- a/binfmt/libelf/libelf.h
+++ b/binfmt/libelf/libelf.h
@@ -25,11 +25,6 @@
  * Included Files
  ****************************************************************************/
 
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/arch.h>
 #include <nuttx/binfmt/elf.h>
 
 /****************************************************************************
@@ -253,7 +248,7 @@ int elf_loaddtors(FAR struct elf_loadinfo_s *loadinfo);
  *   Allocate memory for the ELF image (textalloc and dataalloc).
  *   If CONFIG_ARCH_ADDRENV=n, textalloc will be allocated using kmm_zalloc()
  *   and dataalloc will be a offset from textalloc.
- *   If CONFIG_ARCH_ADDRENV-y, then textalloc and dataalloc will be allocated
+ *   If CONFIG_ARCH_ADDRENV=y, then textalloc and dataalloc will be allocated
  *   using up_addrenv_create().
  *   In either case, there will be a unique instance of textalloc and
  *   dataalloc (and stack) for each instance of a process.
diff --git a/binfmt/libelf/libelf_addrenv.c b/binfmt/libelf/libelf_addrenv.c
index 8221c20488..32c1709b30 100644
--- a/binfmt/libelf/libelf_addrenv.c
+++ b/binfmt/libelf/libelf_addrenv.c
@@ -40,7 +40,7 @@
  ****************************************************************************/
 
 #define ELF_TEXT_WRE (PROT_READ | PROT_WRITE | PROT_EXEC)
-#define ELF_TEXT_WRD (PROT_READ | PROT_EXEC)
+#define ELF_TEXT_RE  (PROT_READ | PROT_EXEC)
 
 /****************************************************************************
  * Private Constant Data
@@ -144,14 +144,13 @@ errout_with_addrenv:
 
   /* Allocate memory to hold the ELF image */
 
-#if defined(CONFIG_ARCH_USE_TEXT_HEAP)
+#  if defined(CONFIG_ARCH_USE_TEXT_HEAP)
   loadinfo->textalloc = (uintptr_t)
-                         up_textheap_memalign(loadinfo->textalign,
-                                              textsize);
-#else
-  loadinfo->textalloc = (uintptr_t)kumm_memalign(loadinfo->textalign,
-                                                 textsize);
-#endif
+                        up_textheap_memalign(loadinfo->textalign, textsize);
+#  else
+  loadinfo->textalloc = (uintptr_t)
+                        kumm_memalign(loadinfo->textalign, textsize);
+#  endif
 
   if (!loadinfo->textalloc)
     {
@@ -160,8 +159,8 @@ errout_with_addrenv:
 
   if (loadinfo->datasize > 0)
     {
-      loadinfo->dataalloc = (uintptr_t)kumm_memalign(loadinfo->dataalign,
-                                                     datasize);
+      loadinfo->dataalloc = (uintptr_t)
+                            kumm_memalign(loadinfo->dataalign, datasize);
       if (!loadinfo->dataalloc)
         {
           return -ENOMEM;
@@ -236,7 +235,7 @@ int elf_addrenv_restore(FAR struct elf_loadinfo_s *loadinfo)
   /* Remove write access to .text */
 
   ret = up_addrenv_mprot(&loadinfo->addrenv->addrenv, loadinfo->textalloc,
-                         loadinfo->textsize, ELF_TEXT_WRD);
+                         loadinfo->textsize, ELF_TEXT_RE);
   if (ret < 0)
     {
       berr("ERROR: up_addrenv_text_disable_write failed: %d\n", ret);
@@ -261,7 +260,7 @@ int elf_addrenv_restore(FAR struct elf_loadinfo_s *loadinfo)
  *
  * Description:
  *   Release the address environment previously created by
- *   elf_addrenv_alloc().  This function  is called only under certain error
+ *   elf_addrenv_alloc().  This function is called only under certain error
  *   conditions after the module has been loaded but not yet started.
  *   After the module has been started, the address environment will
  *   automatically be freed when the module exits.
@@ -285,18 +284,17 @@ void elf_addrenv_free(FAR struct elf_loadinfo_s *loadinfo)
 
   if (loadinfo->textalloc != 0)
     {
-#if defined(CONFIG_ARCH_USE_TEXT_HEAP)
+#  if defined(CONFIG_ARCH_USE_TEXT_HEAP)
       up_textheap_free((FAR void *)loadinfo->textalloc);
-#else
+#  else
       kumm_free((FAR void *)loadinfo->textalloc);
-#endif
+#  endif
     }
 
   if (loadinfo->dataalloc != 0)
     {
       kumm_free((FAR void *)loadinfo->dataalloc);
     }
-
 #endif
 
   /* Clear out all indications of the allocated address environment */
diff --git a/binfmt/libelf/libelf_ctors.c b/binfmt/libelf/libelf_ctors.c
index 8722df4893..63c294e1e9 100644
--- a/binfmt/libelf/libelf_ctors.c
+++ b/binfmt/libelf/libelf_ctors.c
@@ -113,7 +113,7 @@ int elf_loadctors(FAR struct elf_loadinfo_s *loadinfo)
   ctorsize         = shdr->sh_size;
   loadinfo->nctors = ctorsize / sizeof(binfmt_ctor_t);
 
-  binfo("ctoridx=%d ctorsize=%d sizeof(binfmt_ctor_t)=%d nctors=%d\n",
+  binfo("ctoridx=%d ctorsize=%zd sizeof(binfmt_ctor_t)=%zd nctors=%d\n",
         ctoridx, ctorsize,  sizeof(binfmt_ctor_t), loadinfo->nctors);
 
   /* Check if there are any constructors.  It is not an error if there
@@ -168,9 +168,8 @@ int elf_loadctors(FAR struct elf_loadinfo_s *loadinfo)
                    ((FAR void *)(&loadinfo->ctors)[i]);
 
               binfo("ctor %d: "
-                    "%08" PRIxPTR " + %08" PRIxPTR " = %08" PRIxPTR "\n",
-                    i, *ptr, (uintptr_t)loadinfo->textalloc,
-                    (uintptr_t)(*ptr + loadinfo->textalloc));
+                    "%08" PRIxPTR " + %08" PRIxPTR " = %08" PRIxPTR "\n", i,
+                    *ptr, loadinfo->textalloc, (*ptr + loadinfo->textalloc));
 
               *ptr += loadinfo->textalloc;
             }
diff --git a/binfmt/libelf/libelf_dtors.c b/binfmt/libelf/libelf_dtors.c
index 2f50274099..ac38960624 100644
--- a/binfmt/libelf/libelf_dtors.c
+++ b/binfmt/libelf/libelf_dtors.c
@@ -115,7 +115,7 @@ int elf_loaddtors(FAR struct elf_loadinfo_s *loadinfo)
   loadinfo->ndtors = dtorsize / sizeof(binfmt_dtor_t);
 
   binfo("dtoridx=%d dtorsize=%d sizeof(binfmt_dtor_t)=%d ndtors=%d\n",
-        dtoridx, dtorsize,  sizeof(binfmt_dtor_t), loadinfo->ndtors);
+        dtoridx, dtorsize, sizeof(binfmt_dtor_t), loadinfo->ndtors);
 
   /* Check if there are any destructors.  It is not an error if there
    * are none.
@@ -169,9 +169,8 @@ int elf_loaddtors(FAR struct elf_loadinfo_s *loadinfo)
                   ((FAR void *)(&loadinfo->dtors)[i]);
 
               binfo("dtor %d: "
-                    "%08" PRIxPTR " + %08" PRIxPTR " = %08" PRIxPTR "\n",
-                    i, *ptr, (uintptr_t)loadinfo->textalloc,
-                    (uintptr_t)(*ptr + loadinfo->textalloc));
+                    "%08" PRIxPTR " + %08" PRIxPTR " = %08" PRIxPTR "\n", i,
+                    *ptr, loadinfo->textalloc, (*ptr + loadinfo->textalloc));
 
               *ptr += loadinfo->textalloc;
             }
diff --git a/binfmt/libelf/libelf_init.c b/binfmt/libelf/libelf_init.c
index 95a7a0c91e..adca65e37d 100644
--- a/binfmt/libelf/libelf_init.c
+++ b/binfmt/libelf/libelf_init.c
@@ -45,7 +45,7 @@
  * be defined or CONFIG_ELF_DUMPBUFFER does nothing.
  */
 
-#if !defined(CONFIG_DEBUG_INFO) || !defined (CONFIG_DEBUG_BINFMT)
+#if !defined(CONFIG_DEBUG_INFO) || !defined(CONFIG_DEBUG_BINFMT)
 #  undef CONFIG_ELF_DUMPBUFFER
 #endif
 
diff --git a/binfmt/libelf/libelf_iobuffer.c b/binfmt/libelf/libelf_iobuffer.c
index b8ed7ff32c..b2f0e96aca 100644
--- a/binfmt/libelf/libelf_iobuffer.c
+++ b/binfmt/libelf/libelf_iobuffer.c
@@ -63,7 +63,7 @@
 
 int elf_allocbuffer(FAR struct elf_loadinfo_s *loadinfo)
 {
-  /* Has a buffer been allocated> */
+  /* Has a buffer been allocated? */
 
   if (!loadinfo->iobuffer)
     {
@@ -105,7 +105,7 @@ int elf_reallocbuffer(FAR struct elf_loadinfo_s *loadinfo, size_t increment)
 
   /* And perform the reallocation */
 
-  buffer = kmm_realloc((FAR void *)loadinfo->iobuffer, newsize);
+  buffer = kmm_realloc(loadinfo->iobuffer, newsize);
   if (!buffer)
     {
       berr("Failed to reallocate the I/O buffer\n");
diff --git a/binfmt/libelf/libelf_load.c b/binfmt/libelf/libelf_load.c
index 9e22e07bff..e7f7ebd06b 100644
--- a/binfmt/libelf/libelf_load.c
+++ b/binfmt/libelf/libelf_load.c
@@ -52,7 +52,7 @@
 
 /* _ALIGN_UP: 'a' is assumed to be a power of two */
 
-#define _ALIGN_UP(v, a) (((v) + ((a) - 1)) & ~((a) - 1))
+#define _ALIGN_UP(v, a)  (((v) + ((a) - 1)) & ~((a) - 1))
 
 /****************************************************************************
  * Private Constant Data
@@ -74,17 +74,14 @@
  *
  ****************************************************************************/
 
-static void elf_elfsize(struct elf_loadinfo_s *loadinfo)
+static void elf_elfsize(FAR struct elf_loadinfo_s *loadinfo)
 {
-  size_t textsize;
-  size_t datasize;
+  size_t textsize = 0;
+  size_t datasize = 0;
   int i;
 
   /* Accumulate the size each section into memory that is marked SHF_ALLOC */
 
-  textsize = 0;
-  datasize = 0;
-
   for (i = 0; i < loadinfo->ehdr.e_shnum; i++)
     {
       FAR Elf_Shdr *shdr = &loadinfo->shdr[i];
@@ -141,8 +138,8 @@ static void elf_elfsize(struct elf_loadinfo_s *loadinfo)
 
 static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo)
 {
-  FAR uint8_t *text;
-  FAR uint8_t *data;
+  FAR uint8_t *text = (FAR uint8_t *)loadinfo->textalloc;
+  FAR uint8_t *data = (FAR uint8_t *)loadinfo->dataalloc;
   FAR uint8_t **pptr;
   int ret;
   int i;
@@ -150,8 +147,6 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo)
   /* Read each section into memory that is marked SHF_ALLOC + SHT_NOBITS */
 
   binfo("Loaded sections:\n");
-  text = (FAR uint8_t *)loadinfo->textalloc;
-  data = (FAR uint8_t *)loadinfo->dataalloc;
 
   for (i = 0; i < loadinfo->ehdr.e_shnum; i++)
     {
@@ -267,7 +262,20 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo)
 
 int elf_load(FAR struct elf_loadinfo_s *loadinfo)
 {
-  size_t heapsize;
+  /* Determine the heapsize to allocate.  heapsize is ignored if there is
+   * no address environment because the heap is a shared resource in that
+   * case.  If there is no dynamic stack then heapsize must at least as big
+   * as the fixed stack size since the stack will be allocated from the heap
+   * in that case.
+   */
+
+#if !defined(CONFIG_ARCH_ADDRENV)
+  size_t heapsize = 0;
+#elif defined(CONFIG_ARCH_STACK_DYNAMIC)
+  size_t heapsize = ARCH_HEAP_SIZE;
+#else
+  size_t heapsize = MAX(ARCH_HEAP_SIZE, CONFIG_ELF_STACKSIZE);
+#endif
 #ifdef CONFIG_ELF_EXIDX_SECTNAME
   int exidx;
 #endif
@@ -289,21 +297,6 @@ int elf_load(FAR struct elf_loadinfo_s *loadinfo)
 
   elf_elfsize(loadinfo);
 
-  /* Determine the heapsize to allocate.  heapsize is ignored if there is
-   * no address environment because the heap is a shared resource in that
-   * case.  If there is no dynamic stack then heapsize must at least as big
-   * as the fixed stack size since the stack will be allocated from the heap
-   * in that case.
-   */
-
-#if !defined(CONFIG_ARCH_ADDRENV)
-  heapsize = 0;
-#elif defined(CONFIG_ARCH_STACK_DYNAMIC)
-  heapsize = ARCH_HEAP_SIZE;
-#else
-  heapsize = MAX(ARCH_HEAP_SIZE, CONFIG_ELF_STACKSIZE);
-#endif
-
   /* Allocate (and zero) memory for the ELF file. */
 
   ret = elf_addrenv_alloc(loadinfo, loadinfo->textsize, loadinfo->datasize,
diff --git a/binfmt/libelf/libelf_read.c b/binfmt/libelf/libelf_read.c
index b05cda281e..ef6feea92d 100644
--- a/binfmt/libelf/libelf_read.c
+++ b/binfmt/libelf/libelf_read.c
@@ -25,6 +25,7 @@
 #include <nuttx/config.h>
 
 #include <sys/types.h>
+#include <inttypes.h>
 #include <stdint.h>
 #include <unistd.h>
 #include <string.h>
@@ -52,19 +53,19 @@
  * Name: elf_dumpreaddata
  ****************************************************************************/
 
-#if defined(ELF_DUMP_READDATA)
-static inline void elf_dumpreaddata(FAR char *buffer, int buflen)
+#ifdef ELF_DUMP_READDATA
+static inline void elf_dumpreaddata(FAR char *buffer, size_t buflen)
 {
   FAR uint32_t *buf32 = (FAR uint32_t *)buffer;
-  int i;
-  int j;
+  size_t i;
+  size_t j;
 
   for (i = 0; i < buflen; i += 32)
     {
-      syslog(LOG_DEBUG, "%04x:", i);
+      syslog(LOG_DEBUG, "%04zx:", i);
       for (j = 0; j < 32; j += sizeof(uint32_t))
         {
-          syslog(LOG_DEBUG, "  %08x", *buf32++);
+          syslog(LOG_DEBUG, " %08" PRIx32, *buf32++);
         }
 
       syslog(LOG_DEBUG, "\n");
@@ -97,10 +98,11 @@ static inline void elf_dumpreaddata(FAR char *buffer, int buflen)
 int elf_read(FAR struct elf_loadinfo_s *loadinfo, FAR uint8_t *buffer,
              size_t readsize, off_t offset)
 {
+  size_t  nsize = readsize;
   ssize_t nbytes;      /* Number of bytes read */
   off_t   rpos;        /* Position returned by lseek */
 
-  binfo("Read %ld bytes from offset %ld\n", (long)readsize, (long)offset);
+  binfo("Read %zu bytes from offset %" PRIdOFF "\n", readsize, offset);
 
   /* Loop until all of the requested data has been read. */
 
@@ -111,22 +113,23 @@ int elf_read(FAR struct elf_loadinfo_s *loadinfo, FAR uint8_t *buffer,
       rpos = file_seek(&loadinfo->file, offset, SEEK_SET);
       if (rpos != offset)
         {
-          berr("Failed to seek to position %lu: %d\n",
-               (unsigned long)offset, (int)rpos);
+          berr("Failed to seek to position %" PRIdOFF ": %" PRIdOFF "\n",
+               offset, rpos);
           return rpos;
         }
 
       /* Read the file data at offset into the user buffer */
 
-      nbytes = file_read(&loadinfo->file, buffer, readsize);
+      nbytes = file_read(&loadinfo->file,
+                         buffer + nsize - readsize, readsize);
       if (nbytes < 0)
         {
           /* EINTR just means that we received a signal */
 
           if (nbytes != -EINTR)
             {
-              berr("Read from offset %lu failed: %d\n",
-                   (unsigned long)offset, (int)nbytes);
+              berr("Read from offset %" PRIdOFF " failed: %zd\n",
+                   offset, nbytes);
               return nbytes;
             }
         }
@@ -138,11 +141,10 @@ int elf_read(FAR struct elf_loadinfo_s *loadinfo, FAR uint8_t *buffer,
       else
         {
           readsize -= nbytes;
-          buffer   += nbytes;
           offset   += nbytes;
         }
     }
 
-  elf_dumpreaddata(buffer, readsize);
+  elf_dumpreaddata(buffer, nsize);
   return OK;
 }
diff --git a/binfmt/libelf/libelf_sections.c b/binfmt/libelf/libelf_sections.c
index 50bb79c0b2..279cd02bae 100644
--- a/binfmt/libelf/libelf_sections.c
+++ b/binfmt/libelf/libelf_sections.c
@@ -63,10 +63,8 @@ static inline int elf_sectname(FAR struct elf_loadinfo_s *loadinfo,
                                FAR const Elf_Shdr *shdr)
 {
   FAR Elf_Shdr *shstr;
-  FAR uint8_t *buffer;
   off_t  offset;
-  size_t readlen;
-  size_t bytesread;
+  size_t bytesread = 0;
   int shstrndx;
   int ret;
 
@@ -110,13 +108,13 @@ static inline int elf_sectname(FAR struct elf_loadinfo_s *loadinfo,
 
   /* Loop until we get the entire section name into memory */
 
-  bytesread = 0;
-
   for (; ; )
     {
+      FAR uint8_t *buffer = &loadinfo->iobuffer[bytesread];
+      size_t readlen = loadinfo->buflen - bytesread;
+
       /* Get the number of bytes to read */
 
-      readlen = loadinfo->buflen - bytesread;
       if (offset + readlen > loadinfo->filelen)
         {
           if (loadinfo->filelen <= offset)
@@ -130,7 +128,6 @@ static inline int elf_sectname(FAR struct elf_loadinfo_s *loadinfo,
 
       /* Read that number of bytes into the array */
 
-      buffer = &loadinfo->iobuffer[bytesread];
       ret = elf_read(loadinfo, buffer, readlen, offset + bytesread);
       if (ret < 0)
         {
@@ -210,8 +207,8 @@ int elf_loadshdrs(FAR struct elf_loadinfo_s *loadinfo)
   loadinfo->shdr = (FAR FAR Elf_Shdr *)kmm_malloc(shdrsize);
   if (!loadinfo->shdr)
     {
-      berr("Failed to allocate the section header table. Size: %ld\n",
-           (long)shdrsize);
+      berr("Failed to allocate the section header table. Size: %zu\n",
+           shdrsize);
       return -ENOMEM;
     }
 
@@ -246,8 +243,6 @@ int elf_loadshdrs(FAR struct elf_loadinfo_s *loadinfo)
 int elf_findsection(FAR struct elf_loadinfo_s *loadinfo,
                     FAR const char *sectname)
 {
-  FAR const Elf_Shdr *shdr;
-  int ret;
   int i;
 
   /* Search through the shdr[] array in loadinfo for a section named
@@ -256,10 +251,11 @@ int elf_findsection(FAR struct elf_loadinfo_s *loadinfo,
 
   for (i = 0; i < loadinfo->ehdr.e_shnum; i++)
     {
+      FAR const Elf_Shdr *shdr = &loadinfo->shdr[i];
+
       /* Get the name of this section */
 
-      shdr = &loadinfo->shdr[i];
-      ret  = elf_sectname(loadinfo, shdr);
+      int ret = elf_sectname(loadinfo, shdr);
       if (ret < 0)
         {
           berr("elf_sectname failed: %d\n", ret);
diff --git a/binfmt/libelf/libelf_symbols.c b/binfmt/libelf/libelf_symbols.c
index 8c3557ab9d..cfdd41d15e 100644
--- a/binfmt/libelf/libelf_symbols.c
+++ b/binfmt/libelf/libelf_symbols.c
@@ -66,10 +66,8 @@
 static int elf_symname(FAR struct elf_loadinfo_s *loadinfo,
                        FAR const Elf_Sym *sym)
 {
-  FAR uint8_t *buffer;
   off_t  offset;
-  size_t readlen;
-  size_t bytesread;
+  size_t bytesread = 0;
   int ret;
 
   /* Get the file offset to the string that is the name of the symbol.  The
@@ -97,13 +95,13 @@ static int elf_symname(FAR struct elf_loadinfo_s *loadinfo,
 
   /* Loop until we get the entire symbol name into memory */
 
-  bytesread = 0;
-
   for (; ; )
     {
+      FAR uint8_t *buffer = &loadinfo->iobuffer[bytesread];
+      size_t readlen = loadinfo->buflen - bytesread;
+
       /* Get the number of bytes to read */
 
-      readlen = loadinfo->buflen - bytesread;
       if (offset + readlen > loadinfo->filelen)
         {
           if (loadinfo->filelen <= offset)
@@ -117,7 +115,6 @@ static int elf_symname(FAR struct elf_loadinfo_s *loadinfo,
 
       /* Read that number of bytes into the array */
 
-      buffer = &loadinfo->iobuffer[bytesread];
       ret = elf_read(loadinfo, buffer, readlen, offset + bytesread);
       if (ret < 0)
         {
@@ -320,7 +317,7 @@ int elf_symvalue(FAR struct elf_loadinfo_s *loadinfo, FAR Elf_Sym *sym,
               (uintptr_t)symbol->sym_value,
               (uintptr_t)(sym->st_value + (uintptr_t)symbol->sym_value));
 
-        sym->st_value += ((uintptr_t)symbol->sym_value);
+        sym->st_value += (uintptr_t)symbol->sym_value;
       }
       break;
 
diff --git a/binfmt/libelf/libelf_uninit.c b/binfmt/libelf/libelf_uninit.c
index 54ebee6a34..5c2754696f 100644
--- a/binfmt/libelf/libelf_uninit.c
+++ b/binfmt/libelf/libelf_uninit.c
@@ -90,21 +90,21 @@ int elf_uninit(struct elf_loadinfo_s *loadinfo)
  *
  ****************************************************************************/
 
-int elf_freebuffers(struct elf_loadinfo_s *loadinfo)
+int elf_freebuffers(FAR struct elf_loadinfo_s *loadinfo)
 {
   /* Release all working allocations  */
 
   if (loadinfo->shdr)
     {
-      kmm_free((FAR void *)loadinfo->shdr);
-      loadinfo->shdr      = NULL;
+      kmm_free(loadinfo->shdr);
+      loadinfo->shdr = NULL;
     }
 
   if (loadinfo->iobuffer)
     {
-      kmm_free((FAR void *)loadinfo->iobuffer);
-      loadinfo->iobuffer  = NULL;
-      loadinfo->buflen    = 0;
+      kmm_free(loadinfo->iobuffer);
+      loadinfo->iobuffer = NULL;
+      loadinfo->buflen   = 0;
     }
 
   return OK;
diff --git a/binfmt/libelf/libelf_unload.c b/binfmt/libelf/libelf_unload.c
index 85688424ad..79476b2b4c 100644
--- a/binfmt/libelf/libelf_unload.c
+++ b/binfmt/libelf/libelf_unload.c
@@ -62,7 +62,7 @@
  *
  ****************************************************************************/
 
-int elf_unload(struct elf_loadinfo_s *loadinfo)
+int elf_unload(FAR struct elf_loadinfo_s *loadinfo)
 {
   /* Free all working buffers */
 
@@ -75,7 +75,7 @@ int elf_unload(struct elf_loadinfo_s *loadinfo)
   /* Release memory used to hold static constructors and destructors */
 
 #ifdef CONFIG_BINFMT_CONSTRUCTORS
-#ifndef CONFIG_ARCH_ADDRENV
+#  ifndef CONFIG_ARCH_ADDRENV
   if (loadinfo->ctoralloc != 0)
     {
       kumm_free(loadinfo->ctoralloc);
@@ -85,7 +85,7 @@ int elf_unload(struct elf_loadinfo_s *loadinfo)
     {
       kumm_free(loadinfo->dtoralloc);
     }
-#endif
+#  endif
 
   loadinfo->ctoralloc = NULL;
   loadinfo->ctors     = NULL;
diff --git a/binfmt/libelf/libelf_verify.c b/binfmt/libelf/libelf_verify.c
index be32ddaefd..08eb74b21c 100644
--- a/binfmt/libelf/libelf_verify.c
+++ b/binfmt/libelf/libelf_verify.c
@@ -86,7 +86,7 @@ int elf_verifyheader(FAR const Elf_Ehdr *ehdr)
 
   /* Verify that this is a relocatable file */
 
-  if ((ehdr->e_type != ET_REL) && (ehdr->e_type != ET_EXEC))
+  if (ehdr->e_type != ET_REL && ehdr->e_type != ET_EXEC)
     {
       berr("Not a relocatable or executable file: e_type=%d\n",
            ehdr->e_type);
diff --git a/binfmt/libnxflat/libnxflat.h b/binfmt/libnxflat/libnxflat.h
index fe3a414683..4ff27e6262 100644
--- a/binfmt/libnxflat/libnxflat.h
+++ b/binfmt/libnxflat/libnxflat.h
@@ -25,11 +25,6 @@
  * Included Files
  ****************************************************************************/
 
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/arch.h>
 #include <nuttx/binfmt/nxflat.h>
 
 /****************************************************************************
@@ -37,9 +32,24 @@
  ****************************************************************************/
 
 /****************************************************************************
- * Public Types
+ * Public Function Definitions
  ****************************************************************************/
 
+/****************************************************************************
+ * Name: nxflat_verifyheader
+ *
+ * Description:
+ *   Given the header from a possible NXFLAT executable, verify that it is
+ *   an NXFLAT executable.
+ *
+ * Returned Value:
+ *   0 (OK) is returned on success and a negated errno is returned on
+ *   failure.
+ *
+ ****************************************************************************/
+
+int nxflat_verifyheader(FAR const struct nxflat_hdr_s *header);
+
 /****************************************************************************
  * Name: nxflat_addrenv_alloc
  *
diff --git a/binfmt/libnxflat/libnxflat_init.c b/binfmt/libnxflat/libnxflat_init.c
index 09816e1128..febb6c633b 100644
--- a/binfmt/libnxflat/libnxflat_init.c
+++ b/binfmt/libnxflat/libnxflat_init.c
@@ -36,6 +36,8 @@
 #include <nuttx/fs/fs.h>
 #include <nuttx/binfmt/nxflat.h>
 
+#include "libnxflat.h"
+
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
diff --git a/binfmt/nxflat.c b/binfmt/nxflat.c
index c3783f06b9..b1ec250e63 100644
--- a/binfmt/nxflat.c
+++ b/binfmt/nxflat.c
@@ -48,7 +48,7 @@
  * have to be defined or CONFIG_NXFLAT_DUMPBUFFER does nothing.
  */
 
-#if !defined(CONFIG_DEBUG_INFO) || !defined (CONFIG_DEBUG_BINFMT)
+#if !defined(CONFIG_DEBUG_INFO) || !defined(CONFIG_DEBUG_BINFMT)
 #  undef CONFIG_NXFLAT_DUMPBUFFER
 #endif
 
diff --git a/include/nuttx/binfmt/binfmt.h b/include/nuttx/binfmt/binfmt.h
index 1c90c60fe1..f15c88f8dd 100644
--- a/include/nuttx/binfmt/binfmt.h
+++ b/include/nuttx/binfmt/binfmt.h
@@ -28,10 +28,8 @@
 #include <nuttx/config.h>
 
 #include <spawn.h>
-
 #include <sys/types.h>
 
-#include <nuttx/arch.h>
 #include <nuttx/sched.h>
 #include <nuttx/streams.h>
 
@@ -47,8 +45,8 @@
 
 /* The type of one C++ constructor or destructor */
 
-typedef FAR void (*binfmt_ctor_t)(void);
-typedef FAR void (*binfmt_dtor_t)(void);
+typedef CODE void (*binfmt_ctor_t)(void);
+typedef CODE void (*binfmt_dtor_t)(void);
 
 /* This describes the file to be loaded.
  *
@@ -141,7 +139,7 @@ struct binfmt_s
 
   CODE int (*unload)(FAR struct binary_s *bin);
 
-  /* Unload module callback */
+  /* Coredump callback */
 
   CODE int (*coredump)(FAR struct memory_region_s *regions,
                        FAR struct lib_outstream_s *stream,
diff --git a/include/nuttx/binfmt/elf.h b/include/nuttx/binfmt/elf.h
index 14d9e12339..80f7749756 100644
--- a/include/nuttx/binfmt/elf.h
+++ b/include/nuttx/binfmt/elf.h
@@ -56,17 +56,6 @@
 #  define CONFIG_ELF_BUFFERINCR 32
 #endif
 
-/* Allocation array size and indices */
-
-#define LIBELF_ELF_ALLOC     0
-#ifdef CONFIG_BINFMT_CONSTRUCTORS
-#  define LIBELF_CTORS_ALLOC 1
-#  define LIBELF_CTPRS_ALLOC 2
-#  define LIBELF_NALLOC      3
-#else
-#  define LIBELF_NALLOC      1
-#endif
-
 /****************************************************************************
  * Public Types
  ****************************************************************************/
@@ -82,7 +71,7 @@ struct elf_loadinfo_s
    *
    * If CONFIG_ARCH_ADDRENV=n, elfalloc will be allocated using kmm_malloc()
    * (or kmm_zalloc()).
-   * If CONFIG_ARCH_ADDRENV-y, then elfalloc will be allocated using
+   * If CONFIG_ARCH_ADDRENV=y, then elfalloc will be allocated using
    * up_addrenv_create().  In either case, there will be a unique instance
    * of elfalloc (and stack) for each instance of a process.
    *
@@ -235,7 +224,7 @@ int elf_bind(FAR struct elf_loadinfo_s *loadinfo,
  *
  ****************************************************************************/
 
-int elf_unload(struct elf_loadinfo_s *loadinfo);
+int elf_unload(FAR struct elf_loadinfo_s *loadinfo);
 
 /****************************************************************************
  * Name: elf_coredump
diff --git a/include/nuttx/binfmt/nxflat.h b/include/nuttx/binfmt/nxflat.h
index e51a4f1ce1..2a7a04fdac 100644
--- a/include/nuttx/binfmt/nxflat.h
+++ b/include/nuttx/binfmt/nxflat.h
@@ -112,21 +112,6 @@ extern "C"
 #define EXTERN extern
 #endif
 
-/****************************************************************************
- * Name: nxflat_verifyheader
- *
- * Description:
- *   Given the header from a possible NXFLAT executable, verify that it is
- *   an NXFLAT executable.
- *
- * Returned Value:
- *   0 (OK) is returned on success and a negated errno is returned on
- *   failure.
- *
- ****************************************************************************/
-
-int nxflat_verifyheader(const struct nxflat_hdr_s *header);
-
 /****************************************************************************
  * Name: nxflat_init
  *
diff --git a/include/nuttx/lib/modlib.h b/include/nuttx/lib/modlib.h
index 60384e40e8..48144a115f 100644
--- a/include/nuttx/lib/modlib.h
+++ b/include/nuttx/lib/modlib.h
@@ -52,11 +52,11 @@
 #  define CONFIG_MODLIB_BUFFERINCR 32
 #endif
 
-/* CONFIG_DEBUG_INFO, and CONFIG_DEBUG_BINFMT have to be defined or
+/* CONFIG_DEBUG_INFO, and CONFIG_LIBC_MODLIB have to be defined or
  * CONFIG_MODLIB_DUMPBUFFER does nothing.
  */
 
-#if !defined(CONFIG_DEBUG_INFO) || !defined (CONFIG_DEBUG_BINFMT)
+#if !defined(CONFIG_DEBUG_INFO) || !defined(CONFIG_LIBC_MODLIB)
 #  undef CONFIG_MODLIB_DUMPBUFFER
 #endif
 
@@ -77,7 +77,7 @@
 
 #if defined(CONFIG_BUILD_FLAT) || defined(__KERNEL__)
 #  define HAVE_MODLIB_NAMES
-#  define MODLIB_NAMEMAX 16
+#  define MODLIB_NAMEMAX NAME_MAX
 #endif
 
 /****************************************************************************
diff --git a/libs/libc/dlfcn/lib_dlclose.c b/libs/libc/dlfcn/lib_dlclose.c
index 28d139aa2c..873f838d0a 100644
--- a/libs/libc/dlfcn/lib_dlclose.c
+++ b/libs/libc/dlfcn/lib_dlclose.c
@@ -129,7 +129,11 @@ static inline int dlremove(FAR void *handle)
     {
       /* Free the module memory */
 
-      lib_free((FAR void *)modp->textalloc);
+#if defined(CONFIG_ARCH_USE_TEXT_HEAP)
+      up_textheap_free(modp->textalloc);
+#else
+      lib_free(modp->textalloc);
+#endif
 
       /* Nullify so that the memory cannot be freed again */
 
@@ -143,7 +147,7 @@ static inline int dlremove(FAR void *handle)
     {
       /* Free the module memory */
 
-      lib_free((FAR void *)modp->dataalloc);
+      lib_free(modp->dataalloc);
 
       /* Nullify so that the memory cannot be freed again */
 
diff --git a/libs/libc/dlfcn/lib_dlerror.c b/libs/libc/dlfcn/lib_dlerror.c
index a57582525b..342d18fe98 100644
--- a/libs/libc/dlfcn/lib_dlerror.c
+++ b/libs/libc/dlfcn/lib_dlerror.c
@@ -55,5 +55,5 @@
 
 FAR char *dlerror(void)
 {
-  return (FAR char *)strerror(get_errno());
+  return strerror(get_errno());
 }
diff --git a/libs/libc/dlfcn/lib_dlopen.c b/libs/libc/dlfcn/lib_dlopen.c
index d38c9f3054..96bae367b4 100644
--- a/libs/libc/dlfcn/lib_dlopen.c
+++ b/libs/libc/dlfcn/lib_dlopen.c
@@ -32,6 +32,7 @@
 #include <debug.h>
 #include <errno.h>
 #include <unistd.h>
+#include <sys/param.h>
 
 #include <nuttx/envpath.h>
 #include <nuttx/module.h>
@@ -49,7 +50,7 @@
  ****************************************************************************/
 
 #ifdef CONFIG_BUILD_PROTECTED
-#if defined(CONFIG_DEBUG_INFO) && defined(CONFIG_DEBUG_BINFMT)
+#  if defined(CONFIG_DEBUG_INFO) && defined(CONFIG_DEBUG_BINFMT)
 static void dldump_loadinfo(FAR struct mod_loadinfo_s *loadinfo)
 {
   int i;
@@ -118,18 +119,16 @@ static void dldump_loadinfo(FAR struct mod_loadinfo_s *loadinfo)
         }
     }
 }
-#else
-#  define dldump_loadinfo(i)
-#endif
+#  else
+#    define dldump_loadinfo(i)
+#  endif
 #endif
 
 /****************************************************************************
  * Name: dldump_initializer
  ****************************************************************************/
 
-#ifdef CONFIG_BUILD_PROTECTED
-#ifdef CONFIG_MODLIB_DUMPBUFFER
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MODLIB_DUMPBUFFER)
 static void dldump_initializer(mod_initializer_t initializer,
                                FAR struct mod_loadinfo_s *loadinfo)
 {
@@ -139,7 +138,6 @@ static void dldump_initializer(mod_initializer_t initializer,
 #else
 #  define dldump_initializer(b,l)
 #endif
-#endif
 
 /****************************************************************************
  * Public Functions
@@ -204,14 +202,13 @@ static inline FAR void *dlinsert(FAR const char *filename)
   /* Allocate a module registry entry to hold the module data */
 
   modp = (FAR struct module_s *)lib_zalloc(sizeof(struct module_s));
-  if (ret != 0)
+  if (modp == NULL)
     {
+      ret = -ENOMEM;
       binfo("Failed to initialize for load of ELF program: %d\n", ret);
       goto errout_with_loadinfo;
     }
 
-  memset(modp, 0, sizeof(*modp));
-
   /* Load the program binary */
 
   ret = modlib_load(&loadinfo);
@@ -233,11 +230,11 @@ static inline FAR void *dlinsert(FAR const char *filename)
 
   /* Save the load information */
 
-  modp->textalloc       = (FAR void *)loadinfo.textalloc;
-  modp->dataalloc       = (FAR void *)loadinfo.datastart;
+  modp->textalloc = (FAR void *)loadinfo.textalloc;
+  modp->dataalloc = (FAR void *)loadinfo.datastart;
 #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE)
-  modp->textsize    = loadinfo.textsize;
-  modp->datasize    = loadinfo.datasize;
+  modp->textsize  = loadinfo.textsize;
+  modp->datasize  = loadinfo.datasize;
 #endif
 
   /* Get the module initializer entry point */
@@ -290,7 +287,7 @@ static inline FAR void *dlinsert(FAR const char *filename)
 
   modlib_uninitialize(&loadinfo);
   modlib_registry_unlock();
-  return (FAR void *)modp;
+  return modp;
 
 errout_with_load:
   modlib_unload(&loadinfo);
diff --git a/libs/libc/dlfcn/lib_dlsymtab.c b/libs/libc/dlfcn/lib_dlsymtab.c
index 6190bbcb23..9b1a2df064 100644
--- a/libs/libc/dlfcn/lib_dlsymtab.c
+++ b/libs/libc/dlfcn/lib_dlsymtab.c
@@ -27,7 +27,6 @@
 #include <dlfcn.h>
 #include <errno.h>
 
-#include <nuttx/module.h>
 #include <nuttx/lib/modlib.h>
 
 /****************************************************************************
diff --git a/libs/libc/modlib/Make.defs b/libs/libc/modlib/Make.defs
index 24ff58209b..f9cd0a3e33 100644
--- a/libs/libc/modlib/Make.defs
+++ b/libs/libc/modlib/Make.defs
@@ -23,10 +23,9 @@ ifeq ($(CONFIG_LIBC_MODLIB),y)
 # Add the nuttx/lib/modlib.h files to the build
 
 CSRCS += modlib_bind.c modlib_depend.c modlib_init.c modlib_iobuffer.c
-CSRCS += modlib_load.c modlib_loadhdrs.c
+CSRCS += modlib_load.c modlib_loadhdrs.c modlib_verify.c
 CSRCS += modlib_read.c modlib_registry.c modlib_sections.c
 CSRCS += modlib_symbols.c modlib_symtab.c modlib_uninit.c modlib_unload.c
-CSRCS += modlib_verify.c 
 
 # Add the modlib directory to the build
 
diff --git a/libs/libc/modlib/modlib.h b/libs/libc/modlib/modlib.h
index 92e8a1ecd6..9b436744ef 100644
--- a/libs/libc/modlib/modlib.h
+++ b/libs/libc/modlib/modlib.h
@@ -25,11 +25,6 @@
  * Included Files
  ****************************************************************************/
 
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-
-#include <nuttx/arch.h>
 #include <nuttx/lib/modlib.h>
 
 /****************************************************************************
diff --git a/libs/libc/modlib/modlib_bind.c b/libs/libc/modlib/modlib_bind.c
index 540ce8714a..cdda32a902 100644
--- a/libs/libc/modlib/modlib_bind.c
+++ b/libs/libc/modlib/modlib_bind.c
@@ -593,26 +593,26 @@ static int modlib_relocatedyn(FAR struct module_s *modp,
       switch (dyn[i].d_tag)
         {
           case DT_REL :
-              reldata.reloff[I_REL] = dyn[i].d_un.d_val;
-              break;
+            reldata.reloff[I_REL] = dyn[i].d_un.d_val;
+            break;
           case DT_RELSZ :
-              reldata.relsz[I_REL] = dyn[i].d_un.d_val;
-              break;
+            reldata.relsz[I_REL] = dyn[i].d_un.d_val;
+            break;
           case DT_RELENT :
-              reldata.relentsz = dyn[i].d_un.d_val;
-              break;
+            reldata.relentsz = dyn[i].d_un.d_val;
+            break;
           case DT_SYMTAB :
-              reldata.symoff = dyn[i].d_un.d_val;
-              break;
+            reldata.symoff = dyn[i].d_un.d_val;
+            break;
           case DT_STRTAB :
-              reldata.stroff = dyn[i].d_un.d_val;
-              break;
+            reldata.stroff = dyn[i].d_un.d_val;
+            break;
           case DT_JMPREL :
-              reldata.reloff[I_PLT] = dyn[i].d_un.d_val;
-              break;
+            reldata.reloff[I_PLT] = dyn[i].d_un.d_val;
+            break;
           case DT_PLTRELSZ :
-              reldata.relsz[I_PLT] = dyn[i].d_un.d_val;
-              break;
+            reldata.relsz[I_PLT] = dyn[i].d_un.d_val;
+            break;
         }
     }
 
@@ -626,7 +626,7 @@ static int modlib_relocatedyn(FAR struct module_s *modp,
       return -ENOMEM;
     }
 
-  ret = modlib_read(loadinfo, (uint8_t *) sym, symhdr->sh_size,
+  ret = modlib_read(loadinfo, (FAR uint8_t *)sym, symhdr->sh_size,
                     symhdr->sh_offset);
   if (ret < 0)
     {
@@ -666,7 +666,7 @@ static int modlib_relocatedyn(FAR struct module_s *modp,
                   relsize = reldata.relsz[idx_rel];
                 }
 
-              ret = modlib_read(loadinfo, (FAR uint8_t *) rels,
+              ret = modlib_read(loadinfo, (FAR uint8_t *)rels,
                                 relsize,
                                 reldata.reloff[idx_rel] +
                                 i * sizeof(Elf_Rel));
@@ -717,7 +717,7 @@ static int modlib_relocatedyn(FAR struct module_s *modp,
                       }
 
                     addr = rel->r_offset + loadinfo->textalloc;
-                    *(uintptr_t *)addr = (uintptr_t)ep;
+                    *(FAR uintptr_t *)addr = (uintptr_t)ep;
                 }
             }
           else
@@ -726,10 +726,11 @@ static int modlib_relocatedyn(FAR struct module_s *modp,
 
               addr = rel->r_offset - loadinfo->datasec + loadinfo->datastart;
 
-              if ((*(uint32_t *) addr) < loadinfo->datasec)
-                  dynsym.st_value = *(uint32_t *) addr + loadinfo->textalloc;
+              if ((*(FAR uint32_t *)addr) < loadinfo->datasec)
+                  dynsym.st_value = *(FAR uint32_t *)addr +
+                                    loadinfo->textalloc;
               else
-                  dynsym.st_value = *(uint32_t *) addr -
+                  dynsym.st_value = *(FAR uint32_t *)addr -
                                     loadinfo->datasec + loadinfo->datastart;
               ret = up_relocate(rel, &dynsym, addr);
             }
@@ -872,11 +873,11 @@ int modlib_bind(FAR struct module_s *modp,
           switch (loadinfo->shdr[i].sh_type)
             {
               case SHT_REL :
-                  ret = modlib_relocate(modp, loadinfo, i);
-                  break;
+                ret = modlib_relocate(modp, loadinfo, i);
+                break;
               case SHT_RELA :
-                  ret = modlib_relocateadd(modp, loadinfo, i);
-                  break;
+                ret = modlib_relocateadd(modp, loadinfo, i);
+                break;
             }
         }
 
diff --git a/libs/libc/modlib/modlib_depend.c b/libs/libc/modlib/modlib_depend.c
index 4fb5e18b4f..eaa453d007 100644
--- a/libs/libc/modlib/modlib_depend.c
+++ b/libs/libc/modlib/modlib_depend.c
@@ -56,7 +56,7 @@ int modlib_depend(FAR struct module_s *importer,
                   FAR struct module_s *exporter)
 {
 #if CONFIG_MODLIB_MAXDEPEND > 0
-  int freendx;
+  int freendx = -1;
   int i;
 
   DEBUGASSERT(importer != NULL && exporter != NULL);
@@ -71,7 +71,7 @@ int modlib_depend(FAR struct module_s *importer,
    * is small.  Otherwise, a more dynamic data structure would be in order.
    */
 
-  for (i = 0, freendx = -1; i < CONFIG_MODLIB_MAXDEPEND; i++)
+  for (i = 0; i < CONFIG_MODLIB_MAXDEPEND; i++)
     {
       FAR const struct module_s *modp;
 
diff --git a/libs/libc/modlib/modlib_init.c b/libs/libc/modlib/modlib_init.c
index e8cd643bea..dcbc3db813 100644
--- a/libs/libc/modlib/modlib_init.c
+++ b/libs/libc/modlib/modlib_init.c
@@ -45,7 +45,7 @@
  * have to be defined or CONFIG_MODLIB_DUMPBUFFER does nothing.
  */
 
-#if !defined(CONFIG_DEBUG_INFO) || !defined (CONFIG_MODLIB_DUMPBUFFER)
+#if !defined(CONFIG_DEBUG_INFO) || !defined(CONFIG_MODLIB_DUMPBUFFER)
 #  undef CONFIG_MODLIB_DUMPBUFFER
 #endif
 
@@ -127,7 +127,6 @@ int modlib_initialize(FAR const char *filename,
   /* Clear the load info structure */
 
   memset(loadinfo, 0, sizeof(struct mod_loadinfo_s));
-  loadinfo->filfd = -1;
 
   /* Open the binary file for reading (only) */
 
diff --git a/libs/libc/modlib/modlib_iobuffer.c b/libs/libc/modlib/modlib_iobuffer.c
index 947c3c9da5..1c99e9c9ae 100644
--- a/libs/libc/modlib/modlib_iobuffer.c
+++ b/libs/libc/modlib/modlib_iobuffer.c
@@ -95,7 +95,7 @@ int modlib_reallocbuffer(FAR struct mod_loadinfo_s *loadinfo,
 
   /* And perform the reallocation */
 
-  buffer = lib_realloc((FAR void *)loadinfo->iobuffer, newsize);
+  buffer = lib_realloc(loadinfo->iobuffer, newsize);
   if (!buffer)
     {
       berr("ERROR: Failed to reallocate the I/O buffer\n");
diff --git a/libs/libc/modlib/modlib_load.c b/libs/libc/modlib/modlib_load.c
index 11ba615f0f..a2e70d80ee 100644
--- a/libs/libc/modlib/modlib_load.c
+++ b/libs/libc/modlib/modlib_load.c
@@ -50,7 +50,7 @@
 
 /* _ALIGN_UP: 'a' is assumed to be a power of two */
 
-#define _ALIGN_UP(v, a) (((v) + ((a) - 1)) & ~((a) - 1))
+#define _ALIGN_UP(v, a)  (((v) + ((a) - 1)) & ~((a) - 1))
 
 /****************************************************************************
  * Private Functions
@@ -68,17 +68,14 @@
  *
  ****************************************************************************/
 
-static void modlib_elfsize(struct mod_loadinfo_s *loadinfo)
+static void modlib_elfsize(FAR struct mod_loadinfo_s *loadinfo)
 {
-  size_t textsize;
-  size_t datasize;
+  size_t textsize = 0;
+  size_t datasize = 0;
   int i;
 
   /* Accumulate the size each section into memory that is marked SHF_ALLOC */
 
-  textsize = 0;
-  datasize = 0;
-
   if (loadinfo->ehdr.e_phnum > 0)
     {
       for (i = 0; i < loadinfo->ehdr.e_phnum; i++)
@@ -91,14 +88,14 @@ static void modlib_elfsize(struct mod_loadinfo_s *loadinfo)
               if (phdr->p_flags & PF_X)
                 {
                   textsize += phdr->p_memsz;
-                  textaddr = (void *) phdr->p_vaddr;
+                  textaddr = (FAR void *)phdr->p_vaddr;
                 }
               else
                 {
                   datasize += phdr->p_memsz;
                   loadinfo->datasec = phdr->p_vaddr;
                   loadinfo->segpad  = phdr->p_vaddr -
-                                      ((uintptr_t) textaddr + textsize);
+                                      ((uintptr_t)textaddr + textsize);
                 }
             }
         }
@@ -162,19 +159,16 @@ static void modlib_elfsize(struct mod_loadinfo_s *loadinfo)
 
 static inline int modlib_loadfile(FAR struct mod_loadinfo_s *loadinfo)
 {
-  FAR uint8_t *text;
-  FAR uint8_t *data;
+  FAR uint8_t *text = (FAR uint8_t *)loadinfo->textalloc;
+  FAR uint8_t *data = (FAR uint8_t *)loadinfo->datastart;
   FAR uint8_t **pptr;
   int ret;
   int i;
 
   /* Read each PT_LOAD area into memory */
 
-  binfo("Loading sections - text: %p.%x data: %p.%x\n",
-        (void *)loadinfo->textalloc, (int) loadinfo->textsize,
-        (void *)loadinfo->datastart, (int) loadinfo->datasize);
-  text = (FAR uint8_t *)loadinfo->textalloc;
-  data = (FAR uint8_t *)loadinfo->datastart;
+  binfo("Loading sections - text: %p.%zx data: %p.%zx\n",
+        text, loadinfo->textsize, data, loadinfo->datasize);
 
   if (loadinfo->ehdr.e_phnum > 0)
     {
@@ -191,11 +185,10 @@ static inline int modlib_loadfile(FAR struct mod_loadinfo_s *loadinfo)
                 }
               else
                 {
-                  int bsssize = phdr->p_memsz - phdr->p_filesz;
+                  size_t bsssize = phdr->p_memsz - phdr->p_filesz;
                   ret = modlib_read(loadinfo, data, phdr->p_filesz,
                                     phdr->p_offset);
-                  memset((FAR void *)((uintptr_t) data + phdr->p_filesz), 0,
-                         bsssize);
+                  memset(data + phdr->p_filesz, 0, bsssize);
                 }
 
               if (ret < 0)
@@ -235,7 +228,7 @@ static inline int modlib_loadfile(FAR struct mod_loadinfo_s *loadinfo)
             }
 
           *pptr = (FAR uint8_t *)_ALIGN_UP((uintptr_t)*pptr,
-                                           shdr->sh_addralign);
+                                          shdr->sh_addralign);
 
           /* SHT_NOBITS indicates that there is no data in the file for the
            * section.
diff --git a/libs/libc/modlib/modlib_loadhdrs.c b/libs/libc/modlib/modlib_loadhdrs.c
index d1776f8446..67ca77dd08 100644
--- a/libs/libc/modlib/modlib_loadhdrs.c
+++ b/libs/libc/modlib/modlib_loadhdrs.c
@@ -85,8 +85,8 @@ int modlib_loadhdrs(FAR struct mod_loadinfo_s *loadinfo)
   loadinfo->shdr = (FAR Elf_Shdr *)lib_malloc(shdrsize);
   if (!loadinfo->shdr)
     {
-      berr("ERROR: Failed to allocate the section header table. Size: %ld\n",
-           (long)shdrsize);
+      berr("ERROR: Failed to allocate the section header table. Size: %zu\n",
+           shdrsize);
       return -ENOMEM;
     }
 
@@ -116,9 +116,9 @@ int modlib_loadhdrs(FAR struct mod_loadinfo_s *loadinfo)
       loadinfo->phdr = (FAR Elf_Phdr *)lib_malloc(phdrsize);
       if (!loadinfo->phdr)
         {
-          lib_free((FAR void *)loadinfo->shdr);
+          lib_free(loadinfo->shdr);
           berr("ERROR: Failed to allocate the program header table."
-               "Size: %ld\n", (long)phdrsize);
+               "Size: %zu\n", phdrsize);
           return -ENOMEM;
         }
 
@@ -129,8 +129,8 @@ int modlib_loadhdrs(FAR struct mod_loadinfo_s *loadinfo)
       if (ret < 0)
         {
           berr("ERROR: Failed to read program header table: %d\n", ret);
-          lib_free((FAR void *)loadinfo->phdr);
-          lib_free((FAR void *)loadinfo->shdr);
+          lib_free(loadinfo->phdr);
+          lib_free(loadinfo->shdr);
         }
     }
   else
diff --git a/libs/libc/modlib/modlib_read.c b/libs/libc/modlib/modlib_read.c
index 0084c4866d..87e7d087a2 100644
--- a/libs/libc/modlib/modlib_read.c
+++ b/libs/libc/modlib/modlib_read.c
@@ -25,6 +25,7 @@
 #include <nuttx/config.h>
 
 #include <sys/types.h>
+#include <inttypes.h>
 #include <stdint.h>
 #include <unistd.h>
 #include <string.h>
@@ -48,19 +49,19 @@
  * Name: modlib_dumpreaddata
  ****************************************************************************/
 
-#if defined(ELF_DUMP_READDATA)
-static inline void modlib_dumpreaddata(FAR char *buffer, int buflen)
+#ifdef ELF_DUMP_READDATA
+static inline void modlib_dumpreaddata(FAR char *buffer, size_t buflen)
 {
   FAR uint32_t *buf32 = (FAR uint32_t *)buffer;
-  int i;
-  int j;
+  size_t i;
+  size_t j;
 
   for (i = 0; i < buflen; i += 32)
     {
-      syslog(LOG_DEBUG, "%04x:", i);
+      syslog(LOG_DEBUG, "%04zx:", i);
       for (j = 0; j < 32; j += sizeof(uint32_t))
         {
-          syslog(LOG_DEBUG, "  %08x", *buf32++);
+          syslog(LOG_DEBUG, " %08" PRIx32, *buf32++);
         }
 
       syslog(LOG_DEBUG, "\n");
@@ -90,10 +91,11 @@ static inline void modlib_dumpreaddata(FAR char *buffer, int buflen)
 int modlib_read(FAR struct mod_loadinfo_s *loadinfo, FAR uint8_t *buffer,
                 size_t readsize, off_t offset)
 {
+  size_t  nsize = readsize;
   ssize_t nbytes;      /* Number of bytes read */
   off_t   rpos;        /* Position returned by lseek */
 
-  binfo("Read %ld bytes from offset %ld\n", (long)readsize, (long)offset);
+  binfo("Read %zu bytes from offset %" PRIdOFF "\n", readsize, offset);
 
   /* Loop until all of the requested data has been read. */
 
@@ -105,14 +107,15 @@ int modlib_read(FAR struct mod_loadinfo_s *loadinfo, FAR uint8_t *buffer,
       if (rpos != offset)
         {
           int errval = _NX_GETERRNO(rpos);
-          berr("ERROR: Failed to seek to position %lu: %d\n",
-               (unsigned long)offset, errval);
+          berr("ERROR: Failed to seek to position %" PRIdOFF ": %d\n",
+               offset, errval);
           return -errval;
         }
 
       /* Read the file data at offset into the user buffer */
 
-      nbytes = _NX_READ(loadinfo->filfd, buffer, readsize);
+      nbytes = _NX_READ(loadinfo->filfd,
+                        buffer + nsize - readsize, readsize);
       if (nbytes < 0)
         {
           int errval = _NX_GETERRNO(nbytes);
@@ -121,8 +124,8 @@ int modlib_read(FAR struct mod_loadinfo_s *loadinfo, FAR uint8_t *buffer,
 
           if (errval != EINTR)
             {
-              berr("ERROR: Read from offset %lu failed: %d\n",
-                   (unsigned long)offset, errval);
+              berr("ERROR: Read from offset %" PRIdOFF " failed: %d\n",
+                   offset, errval);
               return -errval;
             }
         }
@@ -134,11 +137,10 @@ int modlib_read(FAR struct mod_loadinfo_s *loadinfo, FAR uint8_t *buffer,
       else
         {
           readsize -= nbytes;
-          buffer   += nbytes;
           offset   += nbytes;
         }
     }
 
-  modlib_dumpreaddata(buffer, readsize);
+  modlib_dumpreaddata(buffer, nsize);
   return OK;
 }
diff --git a/libs/libc/modlib/modlib_registry.c b/libs/libc/modlib/modlib_registry.c
index 6194de11c5..1453ec9899 100644
--- a/libs/libc/modlib/modlib_registry.c
+++ b/libs/libc/modlib/modlib_registry.c
@@ -45,7 +45,6 @@
  ****************************************************************************/
 
 static rmutex_t g_modlock = NXRMUTEX_INITIALIZER;
-
 static FAR struct module_s *g_mod_registry;
 
 /****************************************************************************
diff --git a/libs/libc/modlib/modlib_sections.c b/libs/libc/modlib/modlib_sections.c
index 6b95d7c87c..917f6b4958 100644
--- a/libs/libc/modlib/modlib_sections.c
+++ b/libs/libc/modlib/modlib_sections.c
@@ -29,8 +29,6 @@
 #include <errno.h>
 #include <debug.h>
 
-#include <nuttx/lib/modlib.h>
-
 #include "libc.h"
 #include "modlib/modlib.h"
 
@@ -54,10 +52,8 @@ static inline int modlib_sectname(FAR struct mod_loadinfo_s *loadinfo,
                                   FAR const Elf_Shdr *shdr)
 {
   FAR Elf_Shdr *shstr;
-  FAR uint8_t *buffer;
   off_t  offset;
-  size_t readlen;
-  size_t bytesread;
+  size_t bytesread = 0;
   int shstrndx;
   int ret;
 
@@ -101,13 +97,13 @@ static inline int modlib_sectname(FAR struct mod_loadinfo_s *loadinfo,
 
   /* Loop until we get the entire section name into memory */
 
-  bytesread = 0;
-
   for (; ; )
     {
+      FAR uint8_t *buffer = &loadinfo->iobuffer[bytesread];
+      size_t readlen = loadinfo->buflen - bytesread;
+
       /* Get the number of bytes to read */
 
-      readlen = loadinfo->buflen - bytesread;
       if (offset + readlen > loadinfo->filelen)
         {
           if (loadinfo->filelen <= offset)
@@ -121,7 +117,6 @@ static inline int modlib_sectname(FAR struct mod_loadinfo_s *loadinfo,
 
       /* Read that number of bytes into the array */
 
-      buffer = &loadinfo->iobuffer[bytesread];
       ret = modlib_read(loadinfo, buffer, readlen, offset);
       if (ret < 0)
         {
@@ -178,8 +173,6 @@ static inline int modlib_sectname(FAR struct mod_loadinfo_s *loadinfo,
 int modlib_findsection(FAR struct mod_loadinfo_s *loadinfo,
                        FAR const char *sectname)
 {
-  FAR const Elf_Shdr *shdr;
-  int ret;
   int i;
 
   /* Search through the shdr[] array in loadinfo for a section named
@@ -188,10 +181,11 @@ int modlib_findsection(FAR struct mod_loadinfo_s *loadinfo,
 
   for (i = 0; i < loadinfo->ehdr.e_shnum; i++)
     {
+      FAR const Elf_Shdr *shdr = &loadinfo->shdr[i];
+
       /* Get the name of this section */
 
-      shdr = &loadinfo->shdr[i];
-      ret  = modlib_sectname(loadinfo, shdr);
+      int ret = modlib_sectname(loadinfo, shdr);
       if (ret < 0)
         {
           berr("ERROR: modlib_sectname failed: %d\n", ret);
diff --git a/libs/libc/modlib/modlib_symtab.c b/libs/libc/modlib/modlib_symtab.c
index 203c4e5d9b..fbf8bbcec4 100644
--- a/libs/libc/modlib/modlib_symtab.c
+++ b/libs/libc/modlib/modlib_symtab.c
@@ -28,6 +28,7 @@
 
 #include <nuttx/symtab.h>
 #include <nuttx/lib/modlib.h>
+#include <nuttx/symtab.h>
 
 /****************************************************************************
  * Pre-processor Definitions
diff --git a/libs/libc/modlib/modlib_uninit.c b/libs/libc/modlib/modlib_uninit.c
index 2902696d6c..06d18f8b3e 100644
--- a/libs/libc/modlib/modlib_uninit.c
+++ b/libs/libc/modlib/modlib_uninit.c
@@ -50,7 +50,7 @@
  *
  ****************************************************************************/
 
-int modlib_uninitialize(struct mod_loadinfo_s *loadinfo)
+int modlib_uninitialize(FAR struct mod_loadinfo_s *loadinfo)
 {
   /* Free all working buffers */
 
@@ -78,27 +78,27 @@ int modlib_uninitialize(struct mod_loadinfo_s *loadinfo)
  *
  ****************************************************************************/
 
-int modlib_freebuffers(struct mod_loadinfo_s *loadinfo)
+int modlib_freebuffers(FAR struct mod_loadinfo_s *loadinfo)
 {
   /* Release all working allocations  */
 
   if (loadinfo->shdr != NULL)
     {
-      lib_free((FAR void *)loadinfo->shdr);
-      loadinfo->shdr      = NULL;
+      lib_free(loadinfo->shdr);
+      loadinfo->shdr = NULL;
     }
 
   if (loadinfo->phdr != NULL)
     {
-      lib_free((FAR void *)loadinfo->phdr);
-      loadinfo->phdr      = NULL;
+      lib_free(loadinfo->phdr);
+      loadinfo->phdr = NULL;
     }
 
   if (loadinfo->iobuffer != NULL)
     {
-      lib_free((FAR void *)loadinfo->iobuffer);
-      loadinfo->iobuffer  = NULL;
-      loadinfo->buflen    = 0;
+      lib_free(loadinfo->iobuffer);
+      loadinfo->iobuffer = NULL;
+      loadinfo->buflen   = 0;
     }
 
   return OK;
diff --git a/libs/libc/modlib/modlib_unload.c b/libs/libc/modlib/modlib_unload.c
index 3ac6026dd0..03c59c6571 100644
--- a/libs/libc/modlib/modlib_unload.c
+++ b/libs/libc/modlib/modlib_unload.c
@@ -50,7 +50,7 @@
  *
  ****************************************************************************/
 
-int modlib_unload(struct mod_loadinfo_s *loadinfo)
+int modlib_unload(FAR struct mod_loadinfo_s *loadinfo)
 {
   /* Free all working buffers */
 
diff --git a/libs/libc/modlib/modlib_verify.c b/libs/libc/modlib/modlib_verify.c
index 29e77a958b..d1aea6b1fa 100644
--- a/libs/libc/modlib/modlib_verify.c
+++ b/libs/libc/modlib/modlib_verify.c
@@ -29,7 +29,8 @@
 #include <errno.h>
 
 #include <nuttx/elf.h>
-#include <nuttx/lib/modlib.h>
+
+#include "modlib/modlib.h"
 
 /****************************************************************************
  * Private Constant Data
@@ -78,13 +79,10 @@ int modlib_verifyheader(FAR const Elf_Ehdr *ehdr)
 
   /* Verify that this is a relocatable file */
 
-  if (ehdr->e_type != ET_REL)
+  if (ehdr->e_type != ET_REL && ehdr->e_type != ET_DYN)
     {
-      if (ehdr->e_type != ET_DYN)
-        {
-          berr("ERROR: Not a relocatable file: e_type=%d\n", ehdr->e_type);
-          return -EINVAL;
-        }
+      berr("ERROR: Not a relocatable file: e_type=%d\n", ehdr->e_type);
+      return -EINVAL;
     }
 
   /* Verify that this file works with the currently configured architecture */
diff --git a/sched/module/mod_insmod.c b/sched/module/mod_insmod.c
index 7faff98b96..c32c6b6561 100644
--- a/sched/module/mod_insmod.c
+++ b/sched/module/mod_insmod.c
@@ -188,6 +188,7 @@ FAR void *insmod(FAR const char *filename, FAR const char *modname)
   if (modp == NULL)
     {
       berr("Failed to allocate struct module_s\n");
+      ret = -ENOMEM;
       goto errout_with_loadinfo;
     }
 
@@ -218,11 +219,11 @@ FAR void *insmod(FAR const char *filename, FAR const char *modname)
 
   /* Save the load information */
 
-  modp->textalloc   = (FAR void *)loadinfo.textalloc;
-  modp->dataalloc   = (FAR void *)loadinfo.datastart;
+  modp->textalloc = (FAR void *)loadinfo.textalloc;
+  modp->dataalloc = (FAR void *)loadinfo.datastart;
 #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE)
-  modp->textsize    = loadinfo.textsize;
-  modp->datasize    = loadinfo.datasize;
+  modp->textsize  = loadinfo.textsize;
+  modp->datasize  = loadinfo.datasize;
 #endif
 
   /* Get the module initializer entry point */
@@ -249,7 +250,7 @@ FAR void *insmod(FAR const char *filename, FAR const char *modname)
 
   modlib_uninitialize(&loadinfo);
   modlib_registry_unlock();
-  return (FAR void *)modp;
+  return modp;
 
 errout_with_load:
   modlib_unload(&loadinfo);
diff --git a/sched/module/mod_modhandle.c b/sched/module/mod_modhandle.c
index 67426b30fc..623bc20838 100644
--- a/sched/module/mod_modhandle.c
+++ b/sched/module/mod_modhandle.c
@@ -76,7 +76,7 @@ FAR void *modhandle(FAR const char *name)
     }
 
   modlib_registry_unlock();
-  return (FAR void *)modp;
+  return modp;
 }
 
 #endif /* CONFIG_MODULE */
diff --git a/sched/module/mod_procfs.c b/sched/module/mod_procfs.c
index 299af8e40d..2a89e6302f 100644
--- a/sched/module/mod_procfs.c
+++ b/sched/module/mod_procfs.c
@@ -148,7 +148,7 @@ static int modprocfs_callback(FAR struct module_s *modp, FAR void *arg)
   priv->buffer    += copysize;
   priv->remaining -= copysize;
 
-  return (priv->totalsize >= priv->buflen) ? 1 : 0;
+  return priv->totalsize >= priv->buflen;
 }
 
 /****************************************************************************
@@ -188,7 +188,7 @@ static int modprocfs_open(FAR struct file *filep, FAR const char *relpath,
    * filep->f_priv.
    */
 
-  filep->f_priv = (FAR void *)priv;
+  filep->f_priv = priv;
   return OK;
 }
 
@@ -222,7 +222,7 @@ static ssize_t modprocfs_read(FAR struct file *filep, FAR char *buffer,
   FAR struct modprocfs_file_s *priv;
   int ret;
 
-  finfo("buffer=%p buflen=%lu\n", buffer, (unsigned long)buflen);
+  finfo("buffer=%p buflen=%zu\n", buffer, buflen);
 
   /* Recover our private data from the struct file instance */
 
@@ -283,7 +283,7 @@ static int modprocfs_dup(FAR const struct file *oldp, FAR struct file *newp)
 
   /* Save the new attributes in the new file structure */
 
-  newp->f_priv = (FAR void *)newpriv;
+  newp->f_priv = newpriv;
   return OK;
 }
 
@@ -297,7 +297,7 @@ static int modprocfs_dup(FAR const struct file *oldp, FAR struct file *newp)
 static int modprocfs_stat(FAR const char *relpath, FAR struct stat *buf)
 {
   memset(buf, 0, sizeof(struct stat));
-  buf->st_mode    = S_IFREG | S_IROTH | S_IRGRP | S_IRUSR;
+  buf->st_mode = S_IFREG | S_IROTH | S_IRGRP | S_IRUSR;
   return OK;
 }
 
diff --git a/sched/module/mod_rmmod.c b/sched/module/mod_rmmod.c
index 490beaf4e6..2dccf3840e 100644
--- a/sched/module/mod_rmmod.c
+++ b/sched/module/mod_rmmod.c
@@ -121,11 +121,11 @@ int rmmod(FAR void *handle)
        */
 
 #if defined(CONFIG_ARCH_USE_TEXT_HEAP)
-      up_textheap_free((FAR void *)modp->textalloc);
+      up_textheap_free(modp->textalloc);
 #else
-      kmm_free((FAR void *)modp->textalloc);
+      kmm_free(modp->textalloc);
 #endif
-      kmm_free((FAR void *)modp->dataalloc);
+      kmm_free(modp->dataalloc);
       modp->textalloc = NULL;
       modp->dataalloc = NULL;
 #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MODULE)