Export of internal Abseil changes

--
373171b46238585c818cec37af26959f5412f813 by Abseil Team <absl-team@google.com>:

Build with -Wl,-no-undefined.

PiperOrigin-RevId: 381276748

--
da32624792d2948fe83d0ce58794d505799ab5d0 by Benjamin Barenblat <bbaren@google.com>:

s/round/rint/ in exponential_biased

`rint` differs from `round` in that it uses the current FPU rounding
mode. It’s thus potentially faster, since it doesn’t have to save and
restore FPU state. It also is more reflective of developer intent –
most developers expect all FPU operations to use the current rounding
mode, and having exponential_biased follow that rule seems ideal.

PiperOrigin-RevId: 381268264

--
8f860253a4283d2cc8230fe98d7cdf7bcb3e05f1 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 381264180
GitOrigin-RevId: 373171b46238585c818cec37af26959f5412f813
Change-Id: Iefe60b15c80318a7707e0c32159ac004bfa26d72
diff --git a/absl/base/BUILD.bazel b/absl/base/BUILD.bazel
index 16b0e2f..65ff0dd 100644
--- a/absl/base/BUILD.bazel
+++ b/absl/base/BUILD.bazel
@@ -56,7 +56,6 @@
     srcs = ["log_severity.cc"],
     hdrs = ["log_severity.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":config",
@@ -160,7 +159,6 @@
         "internal/low_level_alloc.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = select({
         "//absl:msvc_compiler": [],
         "//absl:clang-cl_compiler": [],
@@ -222,7 +220,6 @@
         "internal/unscaledcycleclock.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = select({
         "//absl:msvc_compiler": [
             "-DEFAULTLIB:advapi32.lib",
@@ -293,7 +290,6 @@
     srcs = ["internal/throw_delegate.cc"],
     hdrs = ["internal/throw_delegate.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     visibility = [
         "//absl:__subpackages__",
@@ -713,7 +709,6 @@
     srcs = ["internal/strerror.cc"],
     hdrs = ["internal/strerror.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     visibility = [
         "//absl:__subpackages__",
diff --git a/absl/base/internal/exponential_biased.cc b/absl/base/internal/exponential_biased.cc
index 1b30c06..05aeea5 100644
--- a/absl/base/internal/exponential_biased.cc
+++ b/absl/base/internal/exponential_biased.cc
@@ -64,7 +64,7 @@
     // Assume huge values are bias neutral, retain bias for next call.
     return std::numeric_limits<int64_t>::max() / 2;
   }
-  double value = std::round(interval);
+  double value = std::rint(interval);
   bias_ = interval - value;
   return value;
 }
diff --git a/absl/base/internal/exponential_biased.h b/absl/base/internal/exponential_biased.h
index 94f79a3..a81f10e 100644
--- a/absl/base/internal/exponential_biased.h
+++ b/absl/base/internal/exponential_biased.h
@@ -66,7 +66,7 @@
 // Adjusting with rounding bias is relatively trivial:
 //
 //    double value = bias_ + exponential_distribution(mean)();
-//    double rounded_value = std::round(value);
+//    double rounded_value = std::rint(value);
 //    bias_ = value - rounded_value;
 //    return rounded_value;
 //
diff --git a/absl/container/BUILD.bazel b/absl/container/BUILD.bazel
index 9651054..f22fdc6 100644
--- a/absl/container/BUILD.bazel
+++ b/absl/container/BUILD.bazel
@@ -505,7 +505,6 @@
     ],
     hdrs = ["internal/hashtablez_sampler.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":have_sse",
diff --git a/absl/flags/BUILD.bazel b/absl/flags/BUILD.bazel
index 940e356..c178b86 100644
--- a/absl/flags/BUILD.bazel
+++ b/absl/flags/BUILD.bazel
@@ -51,7 +51,6 @@
         "internal/program_name.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     visibility = [
         "//absl/flags:__pkg__",
@@ -75,7 +74,6 @@
         "usage_config.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":path_util",
@@ -96,7 +94,6 @@
         "marshalling.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         "//absl/base:config",
@@ -116,7 +113,6 @@
         "internal/commandlineflag.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         "//absl/base:config",
@@ -133,7 +129,6 @@
         "commandlineflag.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":commandlineflag_internal",
@@ -175,7 +170,6 @@
         "reflection.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":commandlineflag",
@@ -200,7 +194,6 @@
         "internal/sequence_lock.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     visibility = ["//absl/base:__subpackages__"],
     deps = [
@@ -251,7 +244,6 @@
         "internal/usage.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     visibility = [
         "//absl/flags:__pkg__",
@@ -281,7 +273,6 @@
         "usage.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":usage_internal",
@@ -300,7 +291,6 @@
         "parse.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":commandlineflag",
diff --git a/absl/hash/BUILD.bazel b/absl/hash/BUILD.bazel
index f5005a0..4b2c220 100644
--- a/absl/hash/BUILD.bazel
+++ b/absl/hash/BUILD.bazel
@@ -34,7 +34,6 @@
     ],
     hdrs = ["hash.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":city",
diff --git a/absl/numeric/BUILD.bazel b/absl/numeric/BUILD.bazel
index a0ef905..ea587bf 100644
--- a/absl/numeric/BUILD.bazel
+++ b/absl/numeric/BUILD.bazel
@@ -62,7 +62,6 @@
     ],
     hdrs = ["int128.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         ":bits",
diff --git a/absl/status/BUILD.bazel b/absl/status/BUILD.bazel
index 4db72c0..189bd73 100644
--- a/absl/status/BUILD.bazel
+++ b/absl/status/BUILD.bazel
@@ -40,7 +40,6 @@
         "status_payload_printer.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     deps = [
         "//absl/base:atomic_hook",
         "//absl/base:config",
@@ -77,7 +76,6 @@
         "statusor.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     deps = [
         ":status",
         "//absl/base:core_headers",
diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel
index a02ee39..1cb5b3e 100644
--- a/absl/strings/BUILD.bazel
+++ b/absl/strings/BUILD.bazel
@@ -66,7 +66,6 @@
         "substitute.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     deps = [
         ":internal",
         "//absl/base",
@@ -97,7 +96,6 @@
         "internal/utf8.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     deps = [
         "//absl/base:config",
         "//absl/base:core_headers",
@@ -280,7 +278,6 @@
         "internal/cord_rep_ring_reader.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     visibility = [
         "//visibility:private",
     ],
@@ -330,7 +327,6 @@
         "cord.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     deps = [
         ":cord_internal",
         ":cordz_functions",
@@ -359,7 +355,6 @@
     srcs = ["internal/cordz_handle.cc"],
     hdrs = ["internal/cordz_handle.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     visibility = [
         "//absl:__subpackages__",
     ],
@@ -376,7 +371,6 @@
     srcs = ["internal/cordz_info.cc"],
     hdrs = ["internal/cordz_info.h"],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     visibility = [
         "//absl:__subpackages__",
     ],
@@ -1001,7 +995,6 @@
         "internal/str_format/parser.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     visibility = ["//visibility:private"],
     deps = [
         ":strings",
diff --git a/absl/synchronization/BUILD.bazel b/absl/synchronization/BUILD.bazel
index 46c4b91..92e2448 100644
--- a/absl/synchronization/BUILD.bazel
+++ b/absl/synchronization/BUILD.bazel
@@ -36,7 +36,6 @@
         "internal/graphcycles.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     visibility = [
         "//absl:__subpackages__",
@@ -88,7 +87,6 @@
         "notification.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = select({
         "//absl:msvc_compiler": [],
         "//absl:clang-cl_compiler": [],
diff --git a/absl/time/BUILD.bazel b/absl/time/BUILD.bazel
index 4700616..3e25ca2 100644
--- a/absl/time/BUILD.bazel
+++ b/absl/time/BUILD.bazel
@@ -43,7 +43,6 @@
         "time.h",
     ],
     copts = ABSL_DEFAULT_COPTS,
-    features = ["-no_undefined"],
     linkopts = ABSL_DEFAULT_LINKOPTS,
     deps = [
         "//absl/base",
diff --git a/absl/time/internal/cctz/BUILD.bazel b/absl/time/internal/cctz/BUILD.bazel
index 35747e5..45a9529 100644
--- a/absl/time/internal/cctz/BUILD.bazel
+++ b/absl/time/internal/cctz/BUILD.bazel
@@ -45,7 +45,6 @@
     hdrs = [
         "include/cctz/civil_time.h",
     ],
-    features = ["-no_undefined"],
     textual_hdrs = ["include/cctz/civil_time_detail.h"],
     visibility = ["//visibility:public"],
     deps = ["//absl/base:config"],
@@ -75,7 +74,6 @@
         "include/cctz/time_zone.h",
         "include/cctz/zone_info_source.h",
     ],
-    features = ["-no_undefined"],
     linkopts = select({
         ":osx": [
             "-framework Foundation",