buildtools: fix icc build

There are random build errors in test reports [1]. Build error
is not directly related to DPDK but observed during DPDK build.

When I get similar unexpected build errors in my system, found
out that /dev/null is invalid.

It seems ICC overwrites the /dev/null with "icc -o /dev/null" instead
of sending output to /dev/null. This is not always reproducible, so
hard to say what exactly is triggering the error.

I suspect test-report build errors can be because of the same reason,
and it is good to add a protection for this case.

Instead of sending output to /dev/null save it to the tmp folder and
remove it back when done.

[1]
http://dpdk.org/ml/archives/test-report/2017-November/034053.html
Failure #3

/usr/src/linux-headers-4.4.0-97-generic/include/linux/sysfs.h:517:37:
error: pointer targets in passing argument 2 of ‘kernfs_find_and_get’
differ in signedness [-Werror=pointer-sign]
  return kernfs_find_and_get(parent, name);

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Ferruh Yigit 2017-11-02 00:25:10 +00:00 committed by Thomas Monjalon
parent 0e3ef055be
commit a462a6a9e7

View File

@ -114,9 +114,9 @@ printf "\
" "$include" "$code" > "${temp}" &&
if ${CC} ${CPPFLAGS} ${EXTRA_CPPFLAGS} ${CFLAGS} ${EXTRA_CFLAGS} \
${AUTO_CONFIG_CFLAGS} \
-c -o /dev/null "${temp}" 1>&${out} 2>&${err}
-c -o ${temp}.o "${temp}" 1>&${out} 2>&${err}
then
rm -f "${temp}"
rm -f "${temp}" "${temp}.o"
printf "\
#ifndef %s
#define %s 1
@ -125,7 +125,7 @@ then
" "${macro}" "${macro}" "${macro}" >> "${file}" &&
printf 'Defining %s.\n' "${macro}"
else
rm -f "${temp}"
rm -f "${temp}" "${temp}.o"
printf "\
/* %s is not defined. */