Add random_seed feature args and feature

Copybara Import from https://github.com/bazelbuild/rules_cc/pull/340

BEGIN_PUBLIC
Add random_seed feature args and feature (#340)

Closes #340
END_PUBLIC

COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_cc/pull/340 from keith:ks/add-random_seed-feature-args-and-feature 3374cb498e983ae36ce64b50dc43acf986814bc0
PiperOrigin-RevId: 726098531
Change-Id: I5851bd89b7ce8df1d3a21f64f0e6960320145b02
diff --git a/cc/toolchains/args/BUILD b/cc/toolchains/args/BUILD
index 0884ba8..e51d12f 100644
--- a/cc/toolchains/args/BUILD
+++ b/cc/toolchains/args/BUILD
@@ -21,6 +21,7 @@
         "//cc/toolchains/args/libraries_to_link:feature",
         "//cc/toolchains/args/linker_param_file:feature",
         "//cc/toolchains/args/preprocessor_defines:feature",
+        "//cc/toolchains/args/random_seed:feature",
         "//cc/toolchains/args/runtime_library_search_directories:feature",
         "//cc/toolchains/args/shared_flag:feature",
         "//cc/toolchains/args/strip_debug_symbols:feature",
diff --git a/cc/toolchains/args/random_seed/BUILD b/cc/toolchains/args/random_seed/BUILD
new file mode 100644
index 0000000..97f56a3
--- /dev/null
+++ b/cc/toolchains/args/random_seed/BUILD
@@ -0,0 +1,18 @@
+load("//cc/toolchains:args.bzl", "cc_args")
+load("//cc/toolchains:feature.bzl", "cc_feature")
+
+package(default_visibility = ["//visibility:public"])
+
+cc_feature(
+    name = "feature",
+    args = [":random_seed"],
+    overrides = "//cc/toolchains/features/legacy:random_seed",
+)
+
+cc_args(
+    name = "random_seed",
+    actions = ["//cc/toolchains/actions:compile_actions"],
+    args = ["-frandom-seed={output_file}"],
+    format = {"output_file": "//cc/toolchains/variables:output_file"},
+    requires_not_none = "//cc/toolchains/variables:output_file",
+)
diff --git a/cc/toolchains/features/legacy/BUILD b/cc/toolchains/features/legacy/BUILD
index af68df4..7ad511f 100644
--- a/cc/toolchains/features/legacy/BUILD
+++ b/cc/toolchains/features/legacy/BUILD
@@ -236,6 +236,12 @@
     overridable = True,
 )
 
+cc_external_feature(
+    name = "random_seed",
+    feature_name = "random_seed",
+    overridable = True,
+)
+
 cc_feature_set(
     name = "all_legacy_builtin_features",
     all_of = [
@@ -263,6 +269,7 @@
         ":libraries_to_link",
         ":force_pic_flags",
         ":user_link_flags",
+        ":random_seed",
         ":legacy_link_flags",
         ":static_libgcc",
         ":fission_support",