diff --git a/procedures/common/cfam_overrides.cpp b/procedures/common/cfam_overrides.cpp
index 13f7659..ea311f5 100644
--- a/procedures/common/cfam_overrides.cpp
+++ b/procedures/common/cfam_overrides.cpp
@@ -27,7 +27,7 @@
 
 void CFAMOverride()
 {
-    int pos = 0;
+    size_t pos = 0;
     cfam_address_t address = 0;
     cfam_data_t data = 0;
     cfam_mask_t mask = 0;
@@ -48,7 +48,7 @@
                 if (!line.empty() && line.at(0) != '#')
                 {
                     mask = 0xFFFFFFFF;
-                    if (sscanf(line.c_str(), "%x %hx %x %x", &pos, &address,
+                    if (sscanf(line.c_str(), "%zu %hx %x %x", &pos, &address,
                                &data, &mask) >= 3)
                     {
                         const auto& target = targets.getTarget(pos);
@@ -74,7 +74,7 @@
     return;
 }
 
-REGISTER_PROCEDURE("CFAMOverride", CFAMOverride);
+REGISTER_PROCEDURE("CFAMOverride", CFAMOverride)
 
 } // namespace p9
 } // namespace openpower
diff --git a/procedures/common/cfam_reset.cpp b/procedures/common/cfam_reset.cpp
index acf3d3d..9a09d18 100644
--- a/procedures/common/cfam_reset.cpp
+++ b/procedures/common/cfam_reset.cpp
@@ -68,7 +68,7 @@
     line.set_value(1);
 }
 
-REGISTER_PROCEDURE("cfamReset", cfamReset);
+REGISTER_PROCEDURE("cfamReset", cfamReset)
 
 } // namespace misc
 } // namespace openpower
diff --git a/procedures/common/collect_sbe_hb_data.cpp b/procedures/common/collect_sbe_hb_data.cpp
index 6cba8ee..d810c02 100644
--- a/procedures/common/collect_sbe_hb_data.cpp
+++ b/procedures/common/collect_sbe_hb_data.cpp
@@ -137,7 +137,7 @@
     }
 }
 
-REGISTER_PROCEDURE("collectSBEHBData", collectSBEHBData);
+REGISTER_PROCEDURE("collectSBEHBData", collectSBEHBData)
 
 } // namespace debug
 } // namespace p9
diff --git a/procedures/common/enter_mpreboot.cpp b/procedures/common/enter_mpreboot.cpp
index 3c6e2e0..48e6ff3 100644
--- a/procedures/common/enter_mpreboot.cpp
+++ b/procedures/common/enter_mpreboot.cpp
@@ -14,11 +14,14 @@
  * limitations under the License.
  */
 
+#include "registration.hpp"
+
 #include <libpdbg.h>
 #include <sys/wait.h>
 #include <unistd.h>
 
 #include <phosphor-logging/log.hpp>
+#include <system_error>
 #include <vector>
 
 namespace openpower
@@ -98,7 +101,7 @@
     }
 }
 
-REGISTER_PROCEDURE("enterMpReboot", enterMpReboot);
+REGISTER_PROCEDURE("enterMpReboot", enterMpReboot)
 
 } // namespace misc
 } // namespace openpower
diff --git a/procedures/openfsi/scan.cpp b/procedures/openfsi/scan.cpp
index e6bdd89..a9583c6 100644
--- a/procedures/openfsi/scan.cpp
+++ b/procedures/openfsi/scan.cpp
@@ -120,7 +120,7 @@
     }
 }
 
-REGISTER_PROCEDURE("scanFSI", scan);
+REGISTER_PROCEDURE("scanFSI", scan)
 
 } // namespace openfsi
 } // namespace openpower
diff --git a/procedures/p9/cleanup_pcie.cpp b/procedures/p9/cleanup_pcie.cpp
index 68b6649..316700d 100644
--- a/procedures/p9/cleanup_pcie.cpp
+++ b/procedures/p9/cleanup_pcie.cpp
@@ -65,7 +65,7 @@
     }
 }
 
-REGISTER_PROCEDURE("cleanupPcie", cleanupPcie);
+REGISTER_PROCEDURE("cleanupPcie", cleanupPcie)
 
 } // namespace p9
 } // namespace openpower
diff --git a/procedures/p9/set_sync_fsi_clock_mode.cpp b/procedures/p9/set_sync_fsi_clock_mode.cpp
index 4ffff9f..864dbb3 100644
--- a/procedures/p9/set_sync_fsi_clock_mode.cpp
+++ b/procedures/p9/set_sync_fsi_clock_mode.cpp
@@ -39,7 +39,7 @@
     writeRegWithMask(master, P9_LL_MODE_REG, 0x00000000, 0x00000001);
 }
 
-REGISTER_PROCEDURE("setSyncFSIClock", setSynchronousFSIClock);
+REGISTER_PROCEDURE("setSyncFSIClock", setSynchronousFSIClock)
 
 } // namespace p9
 } // namespace openpower
diff --git a/procedures/p9/start_host.cpp b/procedures/p9/start_host.cpp
index 2625888..e6279c8 100644
--- a/procedures/p9/start_host.cpp
+++ b/procedures/p9/start_host.cpp
@@ -90,7 +90,7 @@
     writeRegWithMask(master, P9_CBS_CS, 0x80000000, 0x80000000);
 }
 
-REGISTER_PROCEDURE("startHost", startHost);
+REGISTER_PROCEDURE("startHost", startHost)
 
 } // namespace p9
 } // namespace openpower
diff --git a/procedures/p9/start_host_mpreboot.cpp b/procedures/p9/start_host_mpreboot.cpp
index 192f6ca..8c02810 100644
--- a/procedures/p9/start_host_mpreboot.cpp
+++ b/procedures/p9/start_host_mpreboot.cpp
@@ -106,7 +106,7 @@
     }
 }
 
-REGISTER_PROCEDURE("startHostMpReboot", startHostMpReboot);
+REGISTER_PROCEDURE("startHostMpReboot", startHostMpReboot)
 
 } // namespace p9
 } // namespace openpower
diff --git a/procedures/phal/set_SPI_mux.cpp b/procedures/phal/set_SPI_mux.cpp
index 4d40a7d..4300a81 100644
--- a/procedures/phal/set_SPI_mux.cpp
+++ b/procedures/phal/set_SPI_mux.cpp
@@ -42,7 +42,7 @@
     }
 }
 
-REGISTER_PROCEDURE("setSPIMux", setSPIMux);
+REGISTER_PROCEDURE("setSPIMux", setSPIMux)
 
 } // namespace p10
 } // namespace openpower
diff --git a/procedures/phal/start_host.cpp b/procedures/phal/start_host.cpp
index 847e6c7..21d2d62 100644
--- a/procedures/phal/start_host.cpp
+++ b/procedures/phal/start_host.cpp
@@ -196,8 +196,8 @@
     startHost();
 }
 
-REGISTER_PROCEDURE("startHost", startHostNormal);
-REGISTER_PROCEDURE("startHostMpReboot", startHostMpReboot);
+REGISTER_PROCEDURE("startHost", startHostNormal)
+REGISTER_PROCEDURE("startHostMpReboot", startHostMpReboot)
 
 } // namespace phal
 } // namespace openpower
