diff options
author | Kees Cook <keescook@chromium.org> | 2016-06-17 23:11:12 -0700 |
---|---|---|
committer | Kees Cook <keescook@chromium.org> | 2016-08-08 17:49:05 -0700 |
commit | ed58c0e9eefef517aa5a547b78658e2ab4422232 (patch) | |
tree | 678081bd9195ee83fc89ccf06ffd4c551d1d9d44 /scripts/gcc-plugin.sh | |
parent | d26e94149276f8c3d4911aa2c8395ba99b613c8d (diff) | |
download | lwn-ed58c0e9eefef517aa5a547b78658e2ab4422232.tar.gz lwn-ed58c0e9eefef517aa5a547b78658e2ab4422232.zip |
gcc-plugins: abort builds cleanly when not supported
When the compiler doesn't support gcc plugins (either due to missing
headers or too old a version), report the problem and abort the build
instead of emitting a warning and letting the build founder with arcane
compiler errors.
Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'scripts/gcc-plugin.sh')
-rwxr-xr-x | scripts/gcc-plugin.sh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh index fb9207565471..b65224bfb847 100755 --- a/scripts/gcc-plugin.sh +++ b/scripts/gcc-plugin.sh @@ -1,5 +1,12 @@ #!/bin/sh srctree=$(dirname "$0") + +SHOW_ERROR= +if [ "$1" = "--show-error" ] ; then + SHOW_ERROR=1 + shift || true +fi + gccplugins_dir=$($3 -print-file-name=plugin) plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 <<EOF #include "gcc-common.h" @@ -13,6 +20,9 @@ EOF if [ $? -ne 0 ] then + if [ -n "$SHOW_ERROR" ] ; then + echo "${plugincc}" >&2 + fi exit 1 fi @@ -48,4 +58,8 @@ then echo "$2" exit 0 fi + +if [ -n "$SHOW_ERROR" ] ; then + echo "${plugincc}" >&2 +fi exit 1 |