Automated rollback of commit 0365843d2f1cf0d4f0a695608cd3819960580a97.

*** Reason for rollback ***

Breaks a large number of targets, see b/169745163.

*** Original change description ***

Propagate linkstamp information through `objc_library` rules

A previous change (https://github.com/bazelbuild/bazel/commit/3a28c96814e54d8e95f132a82cf501cf137d918e) made
`apple_binary` support the `stamp` attribute in the same way as
`cc_binary` does: Read linkstamp data from its dependencies’ `CcInfo`s
and add linkstamp objects to the final link. However, `objc_library` did
not propagate the linkstamp attributes from C++ dependencies into its
`CcInfo` output, so

    apple_binary(
        name = "binary",
        platform_type = "macos",
        stamp = 1,...

***

ROLLBACK_OF=334173406
PiperOrigin-RevId: 334848655
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java
index bbeaf84..2a8c200 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java
@@ -524,7 +524,7 @@
       return this;
     }
 
-    public Builder addLinkstamps(List<Linkstamp> linkstamps) {
+    Builder addLinkstamps(List<Linkstamp> linkstamps) {
       hasDirectLinkerInput = true;
       linkerInputBuilder.addLinkstamps(linkstamps);
       return this;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
index 85a0753..6396937 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -24,7 +24,6 @@
 import static com.google.devtools.build.lib.rules.objc.ObjcProvider.LIBRARY;
 import static com.google.devtools.build.lib.rules.objc.ObjcProvider.LINKED_BINARY;
 import static com.google.devtools.build.lib.rules.objc.ObjcProvider.LINKOPT;
-import static com.google.devtools.build.lib.rules.objc.ObjcProvider.LINKSTAMP;
 import static com.google.devtools.build.lib.rules.objc.ObjcProvider.MODULE_MAP;
 import static com.google.devtools.build.lib.rules.objc.ObjcProvider.SDK_DYLIB;
 import static com.google.devtools.build.lib.rules.objc.ObjcProvider.SDK_FRAMEWORK;
@@ -403,8 +402,7 @@
                 CC_LIBRARY,
                 NestedSetBuilder.<LibraryToLink>linkOrder()
                     .addTransitive(linkProvider.getLibraries())
-                    .build())
-            .addAll(LINKSTAMP, linkProvider.getLinkstamps());
+                    .build());
       }
 
       if (compilationAttributes.isPresent()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
index 8156d97..af76e31 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
@@ -131,8 +131,7 @@
     CcLinkingContext.Builder ccLinkingContext =
         CcLinkingContext.builder()
             .setOwner(label)
-            .addLibraries(libraries.build().asList())
-            .addLinkstamps(objcProvider.get(ObjcProvider.LINKSTAMP).toList());
+            .addLibraries(ImmutableList.copyOf(libraries.build()));
 
     ImmutableList.Builder<LinkOptions> userLinkFlags = ImmutableList.builder();
     for (SdkFramework sdkFramework : objcProvider.get(ObjcProvider.SDK_FRAMEWORK).toList()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
index 3a21624..3268de5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -255,13 +255,6 @@
   public static final Key<LibraryToLink> CC_LIBRARY =
       new Key<>(LINK_ORDER, "cc_library", LibraryToLink.class);
 
-  /** Linkstamps from cc dependencies. */
-  // This key exists only to facilitate passing linkstamp data from ObjcLibrary's input CcInfos to
-  // its output CcInfo. Other consumers should look at ObjcLibrary's output CcInfo rather than the
-  // data behind this key.
-  static final Key<CcLinkingContext.Linkstamp> LINKSTAMP =
-      new Key<>(STABLE_ORDER, "linkstamp", CcLinkingContext.Linkstamp.class);
-
   /**
    * Linking options from dependencies.
    */
@@ -629,8 +622,6 @@
           CC_LIBRARY,
           // Flag enum is not exposed to Starlark.
           FLAG,
-          // Linkstamp is not exposed to Starlark. See commentary at its definition.
-          LINKSTAMP,
           // CppModuleMap is not exposed to Starlark.
           TOP_LEVEL_MODULE_MAP);
 
@@ -655,7 +646,6 @@
           INCLUDE_SYSTEM,
           IQUOTE,
           LINKOPT,
-          LINKSTAMP,
           LINK_INPUTS,
           SDK_DYLIB,
           SDK_FRAMEWORK,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
index 92b17aa..e5d808f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -54,7 +54,6 @@
 import com.google.devtools.build.lib.rules.cpp.CcCompilationContext;
 import com.google.devtools.build.lib.rules.cpp.CcCompilationHelper;
 import com.google.devtools.build.lib.rules.cpp.CcInfo;
-import com.google.devtools.build.lib.rules.cpp.CcLinkingContext;
 import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
 import com.google.devtools.build.lib.rules.cpp.CppModuleMap;
 import com.google.devtools.build.lib.rules.cpp.CppModuleMapAction;
@@ -2245,32 +2244,4 @@
         .isEqualTo("ObjcCompile");
   }
 
-  protected List<String> linkstampExecPaths(NestedSet<CcLinkingContext.Linkstamp> linkstamps) {
-    return ActionsTestUtil.execPaths(
-        ActionsTestUtil.transform(linkstamps.toList(), CcLinkingContext.Linkstamp::getArtifact));
-  }
-
-  @Test
-  public void testPassesThroughLinkstamps() throws Exception {
-    useConfiguration("--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL);
-
-    scratch.file(
-        "x/BUILD",
-        "objc_library(",
-        "    name = 'foo',",
-        "    deps = [':bar'],",
-        ")",
-        "cc_library(",
-        "    name = 'bar',",
-        "    linkstamp = 'bar.cc',",
-        ")");
-
-    assertThat(
-            linkstampExecPaths(
-                getConfiguredTarget("//x:foo")
-                    .get(CcInfo.PROVIDER)
-                    .getCcLinkingContext()
-                    .getLinkstamps()))
-        .containsExactly("x/bar.cc");
-  }
 }