Fix UNIX linker detection (was erroneously disabling ld.gold)

Adds back a compiler test empty .cc file. Seems to be an omission in https://github.com/bazelbuild/bazel/commit/65cda4f219e564ccb190b2992151658dfae9904

The _is_gold_supported check in unix_cc_configure.bzl always fails without this change, since the file it's checking with isn't created. Looks like there may be other effects through _add_option_if_supported, although I only noticed because apparently I have written linker-specific code.

Closes #3484.

PiperOrigin-RevId: 163832465
diff --git a/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/RegExTestCaseFilterTest.java b/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/RegExTestCaseFilterTest.java
new file mode 100644
index 0000000..bef5957
--- /dev/null
+++ b/src/java_tools/junitrunner/javatests/com/google/testing/junit/junit4/runner/RegExTestCaseFilterTest.java
@@ -0,0 +1,127 @@
+// Copyright 2010 The Bazel Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.testing.junit.junit4.runner;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import java.util.regex.Pattern;
+import org.junit.Test;
+import org.junit.runner.Description;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ * Tests for {@link RegExTestCaseFilter}.
+ */
+@RunWith(JUnit4.class)
+public class RegExTestCaseFilterTest {
+
+  @Test
+  public void testIncludesSuites() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("doNotMatch");
+    assertThat(filter.shouldRun(createSuiteDescription("suite"))).isTrue();
+  }
+
+  private Description createSuiteDescription(String name) {
+    Description suite = Description.createSuiteDescription(name);
+    suite.addChild(Description.createTestDescription(Object.class, "child"));
+    return suite;
+  }
+
+  @Test
+  public void testIncludesMatchingTestByFullNameQuotedRegex() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include(
+        Pattern.quote("java.lang.Object#nameToMatch"));
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingTestByFullNameRegex() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("^java.lang.Object#nameToMatch$");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingTestBySimpleClassNameAndMethodName() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("Object#nameToMatch");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingTestWithNullMethodName() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("java.lang.Object$");
+    assertThat(filter.shouldRun(Description.createSuiteDescription(Object.class))).isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingTestWithUnexpectedNameFormat() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include(
+        Pattern.quote("java.lang.Object.hashCode()"));
+    assertThat(filter.shouldRun(Description.createSuiteDescription("java.lang.Object.hashCode()")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingTestByTestMethodName() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("nameToMatch");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testExcludesNonmatchingTest() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("doNotMatch");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isFalse();
+  }
+
+  @Test
+  public void testFilterExcludeNonmatchingTest() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.exclude("nameToMatch");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isFalse();
+  }
+
+  @Test
+  public void testIncludesEmptyString() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingByCaseRegex() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("[Nn]ameToMatch");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingByEscapedRegex() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("java\\.lang\\.Object#nameToMatch");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isTrue();
+  }
+
+  @Test
+  public void testIncludesMatchingByIncorrectCase() {
+    RegExTestCaseFilter filter = RegExTestCaseFilter.include("NAMETOMATCH");
+    assertThat(filter.shouldRun(Description.createTestDescription(Object.class, "nameToMatch")))
+        .isFalse();
+  }
+}
diff --git a/tools/cpp/unix_cc_configure.bzl b/tools/cpp/unix_cc_configure.bzl
index fbbbdf5..14b0780 100644
--- a/tools/cpp/unix_cc_configure.bzl
+++ b/tools/cpp/unix_cc_configure.bzl
@@ -353,6 +353,7 @@
 
 def configure_unix_toolchain(repository_ctx, cpu_value):
   """Configure C++ toolchain on Unix platforms."""
+  repository_ctx.file("tools/cpp/empty.cc", "int main() {}")
   darwin = cpu_value == "darwin"
   cc = find_cc(repository_ctx)
   tool_paths = _get_tool_paths(repository_ctx, darwin,