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();