Don't require 'objcopy' to exist when building on MacOS.

RELNOTES[NEW]: cpp configuration does not require objcopy

--
MOS_MIGRATED_REVID=114253655
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 8f10dd9..5a5e17e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -458,8 +458,8 @@
               if (tool == Tool.DWP) {
                 // When fission is unsupported, don't check for the dwp tool.
                 return supportsFission();
-              } else if (tool == Tool.GCOVTOOL) {
-                // gcov-tool is optional, don't check whether it's present
+              } else if (tool == Tool.GCOVTOOL || tool == Tool.OBJCOPY) {
+                // gcov-tool and objcopy are optional, don't check whether they're present
                 return false;
               } else {
                 return true;
@@ -1856,7 +1856,11 @@
     // Make variables provided by crosstool/gcc compiler suite.
     globalMakeEnvBuilder.put("AR", getArExecutable().getPathString());
     globalMakeEnvBuilder.put("NM", getNmExecutable().getPathString());
-    globalMakeEnvBuilder.put("OBJCOPY", getObjCopyExecutable().getPathString());
+    PathFragment objcopyTool = getObjCopyExecutable();
+    if (objcopyTool != null) {
+      // objcopy is optional in Crosstool
+      globalMakeEnvBuilder.put("OBJCOPY", objcopyTool.getPathString());
+    }
     globalMakeEnvBuilder.put("STRIP", getStripExecutable().getPathString());
 
     PathFragment gcovtool = getGcovToolExecutable();