Add some missing copts and linkopts in logging and fix the warnings

PiperOrigin-RevId: 493617276
Change-Id: Ia7fb938c7abfba10e5b62f43f3cf71fb99b132f5
diff --git a/absl/log/internal/BUILD.bazel b/absl/log/internal/BUILD.bazel
index 1ad9a9d..0827688 100644
--- a/absl/log/internal/BUILD.bazel
+++ b/absl/log/internal/BUILD.bazel
@@ -344,6 +344,8 @@
     name = "proto",
     srcs = ["proto.cc"],
     hdrs = ["proto.h"],
+    copts = ABSL_DEFAULT_COPTS,
+    linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         "//absl/base",
         "//absl/base:config",
diff --git a/absl/log/internal/proto.cc b/absl/log/internal/proto.cc
index 86c459b..9a2b1a3 100644
--- a/absl/log/internal/proto.cc
+++ b/absl/log/internal/proto.cc
@@ -29,7 +29,7 @@
 namespace {
 void EncodeRawVarint(uint64_t value, size_t size, absl::Span<char> *buf) {
   for (size_t s = 0; s < size; s++) {
-    (*buf)[s] = (value & 0x7f) | (s + 1 == size ? 0 : 0x80);
+    (*buf)[s] = static_cast<char>((value & 0x7f) | (s + 1 == size ? 0 : 0x80));
     value >>= 7;
   }
   buf->remove_prefix(size);
@@ -61,7 +61,7 @@
   }
   EncodeRawVarint(tag_type, tag_type_size, buf);
   for (size_t s = 0; s < sizeof(value); s++) {
-    (*buf)[s] = value & 0xff;
+    (*buf)[s] = static_cast<char>(value & 0xff);
     value >>= 8;
   }
   buf->remove_prefix(sizeof(value));
@@ -77,7 +77,7 @@
   }
   EncodeRawVarint(tag_type, tag_type_size, buf);
   for (size_t s = 0; s < sizeof(value); s++) {
-    (*buf)[s] = value & 0xff;
+    (*buf)[s] = static_cast<char>(value & 0xff);
     value >>= 8;
   }
   buf->remove_prefix(sizeof(value));
@@ -143,8 +143,9 @@
 
 void EncodeMessageLength(absl::Span<char> msg, const absl::Span<char> *buf) {
   if (!msg.data()) return;
-  const uint64_t length_size = msg.size();
-  EncodeRawVarint(buf->data() - msg.data() - length_size, length_size, &msg);
+  const size_t length_size = msg.size();
+  EncodeRawVarint(static_cast<uint64_t>(buf->data() - msg.data()) - length_size,
+                  length_size, &msg);
 }
 
 namespace {