Use the traditional prototype for main().
Make other consumers of argv take a fully-const type.

RELNOTES: None.
PiperOrigin-RevId: 278325262
diff --git a/src/main/cpp/blaze.cc b/src/main/cpp/blaze.cc
index f70a489..8942eec 100644
--- a/src/main/cpp/blaze.cc
+++ b/src/main/cpp/blaze.cc
@@ -1299,7 +1299,7 @@
     const string &workspace,
     OptionProcessor &option_processor,
     int argc,
-    const char *argv[]) {
+    const char *const *argv) {
   std::string error;
   std::vector<std::string> args;
   args.insert(args.end(), argv, argv + argc);
@@ -1561,7 +1561,7 @@
   }
 }
 
-int Main(int argc, const char *argv[], WorkspaceLayout *workspace_layout,
+int Main(int argc, const char *const *argv, WorkspaceLayout *workspace_layout,
          OptionProcessor *option_processor, uint64_t start_time) {
   // Logging must be set first to assure no log statements are missed.
   std::unique_ptr<blaze_util::BazelLogHandler> default_handler(
diff --git a/src/main/cpp/blaze.h b/src/main/cpp/blaze.h
index ca70c03..2350fa1 100644
--- a/src/main/cpp/blaze.h
+++ b/src/main/cpp/blaze.h
@@ -27,7 +27,7 @@
 void PrintVersionInfo(const std::string& self_path,
                       const std::string& product_name);
 
-int Main(int argc, const char* argv[], WorkspaceLayout* workspace_layout,
+int Main(int argc, const char *const *argv, WorkspaceLayout* workspace_layout,
          OptionProcessor* option_processor, uint64_t start_time);
 
 }  // namespace blaze
diff --git a/src/main/cpp/main.cc b/src/main/cpp/main.cc
index e7102ec..0ea770a 100644
--- a/src/main/cpp/main.cc
+++ b/src/main/cpp/main.cc
@@ -21,7 +21,7 @@
 #include "src/main/cpp/startup_options.h"
 #include "src/main/cpp/workspace_layout.h"
 
-int main(int argc, const char *argv[]) {
+int main(int argc, char **argv) {
   uint64_t start_time = blaze::GetMillisecondsMonotonic();
   std::unique_ptr<blaze::WorkspaceLayout> workspace_layout(
       new blaze::WorkspaceLayout());