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.

(From OE-Core rev: 8933c2b5cfa59f2289c574e196f945556790c7c1)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt
2018-02-12 10:52:11 -06:00
committed by Richard Purdie
parent 02c4f3a484
commit a1304721b5

View File

@@ -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++)"