diff --git a/tools/versioner/src/SymbolDatabase.cpp b/tools/versioner/src/SymbolDatabase.cpp
index 90c0c9f..bd4b99d 100644
--- a/tools/versioner/src/SymbolDatabase.cpp
+++ b/tools/versioner/src/SymbolDatabase.cpp
@@ -130,7 +130,7 @@
       }
 
       if (result.count(symbol_name) != 0) {
-        if (verbose) {
+        if (strict) {
           printf("duplicated symbol '%s' in '%s'\n", symbol_name.str().c_str(), file.str().c_str());
         }
       }
diff --git a/tools/versioner/src/versioner.cpp b/tools/versioner/src/versioner.cpp
index b46847b..5a5291e 100644
--- a/tools/versioner/src/versioner.cpp
+++ b/tools/versioner/src/versioner.cpp
@@ -57,8 +57,9 @@
 using namespace std::chrono_literals;
 using namespace std::string_literals;
 
-bool add_include;
+bool strict;
 bool verbose;
+bool add_include;
 
 static int getCpuCount();
 static int max_thread_count = getCpuCount();
@@ -389,7 +390,7 @@
       failed = true;
     }
 
-    if (verbose) {
+    if (strict) {
       auto extra_it = extra_availability.find(symbol_name);
       if (extra_it != extra_availability.end()) {
         printf("%s: declaration marked unavailable but symbol available in [%s]\n",
@@ -429,7 +430,7 @@
     fprintf(stderr, "\n");
     fprintf(stderr, "Validation:\n");
     fprintf(stderr, "  -p PATH\tcompare against NDK platform at PATH\n");
-    fprintf(stderr, "  -v\t\tenable verbose warnings\n");
+    fprintf(stderr, "  -s\t\tenable strict warnings\n");
     fprintf(stderr, "\n");
     fprintf(stderr, "Preprocessing:\n");
     fprintf(stderr, "  -o PATH\tpreprocess header files and emit them at PATH\n");
@@ -438,6 +439,7 @@
     fprintf(stderr, "Miscellaneous:\n");
     fprintf(stderr, "  -d\t\tdump function availability\n");
     fprintf(stderr, "  -j THREADS\tmaximum number of threads to use\n");
+    fprintf(stderr, "  -v\t\tenable verbose logging\n");
     fprintf(stderr, "  -h\t\tdisplay this message\n");
     exit(0);
   }
@@ -454,7 +456,7 @@
   bool dump = false;
 
   int c;
-  while ((c = getopt(argc, argv, "a:r:p:vo:fdj:hi")) != -1) {
+  while ((c = getopt(argc, argv, "a:r:p:so:fdj:vhi")) != -1) {
     default_args = false;
     switch (c) {
       case 'a': {
@@ -499,8 +501,8 @@
         break;
       }
 
-      case 'v':
-        verbose = true;
+      case 's':
+        strict = true;
         break;
 
       case 'o':
@@ -527,6 +529,10 @@
         }
         break;
 
+      case 'v':
+        verbose = true;
+        break;
+
       case 'h':
         usage(true);
         break;
diff --git a/tools/versioner/src/versioner.h b/tools/versioner/src/versioner.h
index 97b1509..a5f2c7d 100644
--- a/tools/versioner/src/versioner.h
+++ b/tools/versioner/src/versioner.h
@@ -22,6 +22,7 @@
 #include <unordered_map>
 #include <unordered_set>
 
+extern bool strict;
 extern bool verbose;
 extern bool add_include;
 
