[OE-core] [PATCH v2 16/17] icecc-toolchain: Disable caret workaround
Joshua Watt
jpewhacker at gmail.com
Mon Feb 12 16:52:11 UTC 2018
Icecream has a behavior that causes it to recompile files locally if gcc
generates any warnings or errors. The reason for this is that GCC tries
to re-read the input file in order to display the offending line with a
caret below it, which doesn't work in the remote chroot.
Default to disabling this this workaround and add
-fno-diagnostics-show-caret to the GCC flags so that errors and warnings
generated by GCC do not show erroneous results. Users can override this
default in the SDK by defining ICECC_CARET_WORKAROUND="1" either before
or after sourcing the SDK environment.
Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
---
.../icecc-toolchain/icecc-toolchain/icecc-env.sh | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh b/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh
index 9c9bb4dc4ea..94760076bfa 100644
--- a/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh
+++ b/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh
@@ -25,7 +25,19 @@ if [ -z "$ICECC_PATH" ]; then
fi
if [ -n "$ICECC_PATH" ]; then
- export ICECC_PATH
+ # Default to disabling the caret workaround. If set to "1", icecc will
+ # locally recompile any files that have warnings, which can adversely
+ # affect performance.
+ #
+ # See: https://github.com/icecc/icecream/issues/190
+ if [ -z "$ICECC_CARET_WORKAROUND" ]; then
+ ICECC_CARET_WORKAROUND="0"
+ fi
+ if [ "$ICECC_CARET_WORKAROUND" != "1" ]; then
+ CFLAGS="$CFLAGS -fno-diagnostics-show-caret"
+ CXXFLAGS="$CXXFLAGS -fno-diagnostics-show-caret"
+ fi
+ export ICECC_PATH ICECC_CARET_WORKAROUND
export ICECC_VERSION="$OECORE_NATIVE_SYSROOT/usr/share/icecream/@TOOLCHAIN_ENV@"
export ICECC="$(which ${CROSS_COMPILE}gcc)"
export ICECXX="$(which ${CROSS_COMPILE}g++)"
--
2.14.3
More information about the Openembedded-core
mailing list