[PATCH] tools build: Check basic headers for test-compile feature checker

From: Wang Nan
Date: Wed Jan 27 2016 - 06:22:51 EST

An i386 binary can be linked correctly even without correct headers.
Which causes problem. For exmaple:

$ mv /tmp/oxygen_root/usr/include/gnu/stubs-32.h{,.bak}
$ make tools/perf
Auto-detecting system features:
... dwarf: [ on ]
GEN common-cmds.h
CC perf-read-vdso32
In file included from /tmp/oxygen_root/usr/include/features.h:388:0,
from /tmp/oxygen_root/usr/include/stdio.h:27,
from perf-read-vdso.c:1:
/tmp/oxygen_root/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
# include <gnu/stubs-32.h>
compilation terminated.

In this patch we checks not only compiler and linker, but also basic
headers in test-compile test case, make it fail on a platform
lacking correct headers.

Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Li Zefan <lizefan@xxxxxxxxxx>
tools/build/feature/test-compile.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/tools/build/feature/test-compile.c b/tools/build/feature/test-compile.c
index 31dbf45..c54e655 100644
--- a/tools/build/feature/test-compile.c
+++ b/tools/build/feature/test-compile.c
@@ -1,4 +1,6 @@
+#include <stdio.h>
int main(void)
+ printf("Hello World!\n");
return 0;