No longer automatically set _GLIBCXX_DEBUG, _GLIBCXX_DEBUG_PEDANTIC, _GLIBCPP_CONCEPT_CHECKS for debug objc builds.

--
MOS_MIGRATED_REVID=115022288
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
index 3fb34a8..9aa540d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
@@ -171,6 +171,16 @@
             + " and system libraries."
   )
   public boolean prioritizeStaticLibs;
+ 
+  @Option(
+    name = "objc_debug_with_GLIBCXX",
+    defaultValue = "true",
+    category = "undocumented",
+    help =
+      "If set, and compilation mode is set to 'dbg', define GLIBCXX_DEBUG, "
+        + " GLIBCXX_DEBUG_PEDANTIC and GLIBCPP_CONCEPT_CHECKS."
+  )
+  public boolean debugWithGlibcxx;
   
   @VisibleForTesting static final String DEFAULT_MINIMUM_IOS = "7.0";
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index 06ec7a8..a45dc41 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -38,11 +38,15 @@
 @Immutable
 public class ObjcConfiguration extends BuildConfiguration.Fragment {
   @VisibleForTesting
-  static final ImmutableList<String> DBG_COPTS = ImmutableList.of("-O0", "-DDEBUG=1",
-      "-fstack-protector", "-fstack-protector-all", "-D_GLIBCXX_DEBUG_PEDANTIC", "-D_GLIBCXX_DEBUG",
-      "-D_GLIBCPP_CONCEPT_CHECKS");
+  static final ImmutableList<String> DBG_COPTS =
+      ImmutableList.of("-O0", "-DDEBUG=1", "-fstack-protector", "-fstack-protector-all");
 
   @VisibleForTesting
+  static final ImmutableList<String> GLIBCXX_DBG_COPTS =
+      ImmutableList.of(
+          "-D_GLIBCXX_DEBUG", "-D_GLIBCXX_DEBUG_PEDANTIC", "-D_GLIBCPP_CONCEPT_CHECKS");
+  
+  @VisibleForTesting
   static final ImmutableList<String> OPT_COPTS =
       ImmutableList.of(
           "-Os", "-DNDEBUG=1", "-Wno-unused-variable", "-Winit-self", "-Wno-extra");
@@ -64,6 +68,7 @@
   private final String xcodeOverrideWorkspaceRoot;
   private final boolean useAbsolutePathsForActions;
   private final boolean prioritizeStaticLibs;
+  private final boolean debugWithGlibcxx;
 
   ObjcConfiguration(ObjcCommandLineOptions objcOptions, BuildConfiguration.Options options,
       @Nullable BlazeDirectories directories) {
@@ -86,6 +91,7 @@
     this.xcodeOverrideWorkspaceRoot = objcOptions.xcodeOverrideWorkspaceRoot;
     this.useAbsolutePathsForActions = objcOptions.useAbsolutePathsForActions;
     this.prioritizeStaticLibs = objcOptions.prioritizeStaticLibs;
+    this.debugWithGlibcxx = objcOptions.debugWithGlibcxx;
   }
 
   /**
@@ -129,7 +135,14 @@
   public ImmutableList<String> getCoptsForCompilationMode() {
     switch (compilationMode) {
       case DBG:
-        return DBG_COPTS;
+        if (this.debugWithGlibcxx) {
+          return ImmutableList.<String>builder()
+              .addAll(DBG_COPTS)
+              .addAll(GLIBCXX_DBG_COPTS)
+              .build();
+        } else {
+          return DBG_COPTS;
+        }
       case FASTBUILD:
         return fastbuildOptions;
       case OPT: