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 b789bbf..f2485a7 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
@@ -195,6 +195,12 @@
           throw new InvalidConfigurationException(e);
         }
       } else {
+        if (!cppOptions.enableFdoProfileAbsolutePath) {
+          throw new InvalidConfigurationException(
+              "Please use --fdo_profile instead of an absolute path set with --fdo_optimize. Using"
+                  + " absolute paths may be temporary reenabled with"
+                  + " --enable_fdo_profile_absolute_path");
+        }
         fdoPath = PathFragment.create(cppOptions.getFdoOptimize());
         if (!fdoPath.isAbsolute()) {
           throw new InvalidConfigurationException(
@@ -213,6 +219,12 @@
 
     PathFragment csFdoAbsolutePath = null;
     if (cppOptions.csFdoAbsolutePathForBuild != null) {
+      if (!cppOptions.enableFdoProfileAbsolutePath) {
+        throw new InvalidConfigurationException(
+            "Please use --cs_fdo_optimize instead of an absolute path set with"
+                + " --cs_fdo_absolute_path.Using absolute paths may be temporary reenabled with"
+                + " --enable_fdo_profile_absolute_path");
+      }
       csFdoAbsolutePath = PathFragment.create(cppOptions.csFdoAbsolutePathForBuild);
       if (!csFdoAbsolutePath.isAbsolute()) {
         throw new InvalidConfigurationException(
@@ -229,6 +241,12 @@
 
     PathFragment propellerOptimizeAbsoluteCCProfile = null;
     if (cppOptions.propellerOptimizeAbsoluteCCProfile != null) {
+      if (!cppOptions.enablePropellerOptimizeAbsolutePath) {
+        throw new InvalidConfigurationException(
+            "Please use --propeller_optimize instead of an absolute path set with"
+                + " --propeller_optimize_absolute_cc_profile.Using absolute paths may be temporary"
+                + " reenabled with --enable_fdo_profile_absolute_path");
+      }
       propellerOptimizeAbsoluteCCProfile =
           PathFragment.create(cppOptions.propellerOptimizeAbsoluteCCProfile);
       if (!propellerOptimizeAbsoluteCCProfile.isAbsolute()) {
@@ -246,6 +264,12 @@
 
     PathFragment propellerOptimizeAbsoluteLdProfile = null;
     if (cppOptions.propellerOptimizeAbsoluteLdProfile != null) {
+      if (!cppOptions.enablePropellerOptimizeAbsolutePath) {
+        throw new InvalidConfigurationException(
+            "Please use --propeller_optimize instead of an absolute path set with"
+                + " --propeller_optimize_absolute_ld_profile. Using absolute paths may be temporary"
+                + " reenabled with --enable_fdo_profile_absolute_path");
+      }
       propellerOptimizeAbsoluteLdProfile =
           PathFragment.create(cppOptions.propellerOptimizeAbsoluteLdProfile);
       if (!propellerOptimizeAbsoluteLdProfile.isAbsolute()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index aa45372..8b9b65f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -460,11 +460,28 @@
   public Label csFdoProfileLabel;
 
   @Option(
+      name = "enable_remaining_fdo_absolute_paths",
+      defaultValue = "true",
+      documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
+      help = "If set, any use of absolute paths for FDO will raise an error.")
+  public boolean enableFdoProfileAbsolutePath;
+
+  @Option(
+      name = "enable_propeller_optimize_absolute_paths",
+      defaultValue = "true",
+      documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
+      help = "If set, any use of absolute paths for propeller optimize will raise an error.")
+  public boolean enablePropellerOptimizeAbsolutePath;
+
+  @Option(
       name = "propeller_optimize_absolute_cc_profile",
       defaultValue = "null",
       documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
       effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
-      help = "Absolute path name of cc_profile file for Propeller Optimized builds.")
+      help = "Absolute path name of cc_profile file for Propeller Optimized builds.",
+      deprecationWarning = "Deprecated. Use --propeller_optimize instead.")
   public String propellerOptimizeAbsoluteCCProfile;
 
   @Option(
@@ -472,7 +489,8 @@
       defaultValue = "null",
       documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
       effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
-      help = "Absolute path name of ld_profile file for Propeller Optimized builds.")
+      help = "Absolute path name of ld_profile file for Propeller Optimized builds.",
+      deprecationWarning = "Deprecated. Use --propeller_optimize instead.")
   public String propellerOptimizeAbsoluteLdProfile;
 
   @Option(
