From 8933c2b5cfa59f2289c574e196f945556790c7c1 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Mon, 12 Feb 2018 10:52:11 -0600 Subject: icecc-toolchain: Disable caret workaround 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 Signed-off-by: Richard Purdie --- .../icecc-toolchain/icecc-toolchain/icecc-env.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'meta') 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 9c9bb4dc4e..94760076bf 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++)" -- cgit 1.2.3-korg