Always set --no-canonical-prefixes if we can

-no-canonical-prefixes should be enough in all cases except very
old compilers. For those, we keep using -fno-canonical-system-headers

Closes #7316.

PiperOrigin-RevId: 234574545
diff --git a/tools/cpp/unix_cc_configure.bzl b/tools/cpp/unix_cc_configure.bzl
index 588e33b..38db2fc 100644
--- a/tools/cpp/unix_cc_configure.bzl
+++ b/tools/cpp/unix_cc_configure.bzl
@@ -202,20 +202,21 @@
     # If the compiler sometimes rewrites paths in the .d files without symlinks
     # (ie when they're shorter), it confuses Bazel's logic for verifying all
     # #included header files are listed as inputs to the action.
+    # We also rely on symlinks not being resolved for remote builds.
 
-    # The '-fno-canonical-system-headers' should be enough, but clang does not
-    # support it, so we also try '-no-canonical-prefixes' if first option does
-    # not work.
+    # The '-no-canonical-prefixes' flag is enough in most cases.
+    # In case this flag is not supported (older gcc versions), we try to add
+    # '-fno-canonical-system-headers' instead.
     opt = _add_compiler_option_if_supported(
         repository_ctx,
         cc,
-        "-fno-canonical-system-headers",
+        "-no-canonical-prefixes",
     )
     if len(opt) == 0:
         return _add_compiler_option_if_supported(
             repository_ctx,
             cc,
-            "-no-canonical-prefixes",
+            "-fno-canonical-system-headers",
         )
     return opt