From 763f1397155fc7c12e1f1071a1bc942f91b867c4 Mon Sep 17 00:00:00 2001 From: Lukacs Berki Date: Thu, 7 Jan 2016 09:29:08 +0000 Subject: [PATCH] Add -fno-canonical-system-headers to CROSSTOOL files so that gcc doesn't resolve symlinks in .d files, which would confuse Blaze. Fixes #714. -- MOS_MIGRATED_REVID=111583801 --- .../lib/bazel/rules/android/ndkcrosstools/ArmCrosstools.java | 4 ++++ .../lib/bazel/rules/android/ndkcrosstools/MipsCrosstools.java | 2 ++ .../lib/bazel/rules/android/ndkcrosstools/X86Crosstools.java | 2 ++ tools/cpp/CROSSTOOL | 3 +++ 4 files changed, 11 insertions(+) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ArmCrosstools.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ArmCrosstools.java index 49391d4af9fe2f..43f61c9659036e 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ArmCrosstools.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ArmCrosstools.java @@ -101,6 +101,7 @@ private CToolchain.Builder createAarch64Toolchain() { .addCompilerFlag("-funwind-tables") .addCompilerFlag("-fstack-protector-strong") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-no-canonical-prefixes") @@ -158,6 +159,7 @@ private CToolchain.Builder createAarch64ClangToolchain(String clangVersion) { .addCompilerFlag("-Wno-invalid-command-line-argument") .addCompilerFlag("-Wno-unused-command-line-argument") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-gcc-toolchain") @@ -259,6 +261,7 @@ private CToolchain.Builder createBaseArmeabiToolchain( .addCompilerFlag("-ffunction-sections") .addCompilerFlag("-funwind-tables") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-no-canonical-prefixes"); @@ -394,6 +397,7 @@ private CToolchain.Builder createBaseArmeabiClangToolchain(String clangVersion, .addCompilerFlag("-Wno-invalid-command-line-argument") .addCompilerFlag("-Wno-unused-command-line-argument") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") .addCompilerFlag("-fno-integrated-as") // Linker flags diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/MipsCrosstools.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/MipsCrosstools.java index e133ec33330879..d365bda53e18d6 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/MipsCrosstools.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/MipsCrosstools.java @@ -157,6 +157,7 @@ private CToolchain.Builder createBaseMipsToolchain() { .addCompilerFlag("-frerun-cse-after-loop") .addCompilerFlag("-frename-registers") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-no-canonical-prefixes") @@ -204,6 +205,7 @@ private CToolchain.Builder createBaseMipsClangToolchain( .addCompilerFlag("-Wno-invalid-command-line-argument") .addCompilerFlag("-Wno-unused-command-line-argument") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-gcc-toolchain") diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/X86Crosstools.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/X86Crosstools.java index 96807f3264c69e..fc832835b010e3 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/X86Crosstools.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/X86Crosstools.java @@ -142,6 +142,7 @@ private CToolchain.Builder createBaseX86Toolchain() { .addCompilerFlag("-ffunction-sections") .addCompilerFlag("-funwind-tables") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-no-canonical-prefixes") @@ -191,6 +192,7 @@ private CToolchain.Builder createBaseX86ClangToolchain( .addCompilerFlag("-Wno-invalid-command-line-argument") .addCompilerFlag("-Wno-unused-command-line-argument") .addCompilerFlag("-no-canonical-prefixes") + .addCompilerFlag("-fno-canonical-system-headers") // Linker flags .addLinkerFlag("-gcc-toolchain") diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL index 1a046cce8996e8..b3f1ae0bcd55b2 100644 --- a/tools/cpp/CROSSTOOL +++ b/tools/cpp/CROSSTOOL @@ -110,6 +110,7 @@ toolchain { # Anticipated future default. unfiltered_cxx_flag: "-no-canonical-prefixes" + unfiltered_cxx_flag: "-fno-canonical-system-headers" # Make C++ compilation deterministic. Use linkstamping instead of these # compiler symbols. @@ -220,6 +221,7 @@ toolchain { # Anticipated future default. unfiltered_cxx_flag: "-no-canonical-prefixes" + # Make C++ compilation deterministic. Use linkstamping instead of these # compiler symbols. unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -323,6 +325,7 @@ toolchain { # Anticipated future default. unfiltered_cxx_flag: "-no-canonical-prefixes" + unfiltered_cxx_flag: "-fno-canonical-system-headers" # Make C++ compilation deterministic. Use linkstamping instead of these # compiler symbols.