It looks like GNU make version 3.80 (but apparently not 3.81) adds
leading whitespace to the result of the checker-shell execution. This
strips them off explicitly.
Also, don't bother symlinking the output file to /dev/null. It's likely
as expensive as just writing the temp-file, and we need to remove it
anyway afterwards.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
# Usage: option = $(call checker-shell,$(CC)...-o $$OUT,option-ok,otherwise)
# Exit code chooses option. $$OUT is safe location for needless output.
define checker-shell
+ $(strip
$(shell set -e; \
DIR=$(KBUILD_EXTMOD); \
cd $${DIR:-$(objtree)}; \
OUT=$$PWD/.$$$$.null; \
- \
- ln -s /dev/null $$OUT; \
if $(1) >/dev/null 2>&1; \
then echo "$(2)"; \
else echo "$(3)"; \
fi; \
- rm -f $$OUT)
+ rm -f $$OUT))
endef
# as-option