tools/iio: build race condition
Hi,
I tried to compile the new v4.14 kernel and hit a race condition in the build system of tools/iio. Here is my output (sorry for German strings, I wasn't able to reproduce with LANG=C):
Quoted 14 lines
{master linux} % make O=build_x86/ -j9
tools/iio
make[1]: Verzeichnis „/home/alex/Dokumente/repo/linux/build_x86“ wird betreten
DESCEND iio
mkdir -p/home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio2>&1 || true
ln -sf/home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/events.h/home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iioln -sf/home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/types.h/home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iioCC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o LD /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o LD /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o
Quoted 12 lines
/home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o: file not recognized: File truncated
make[4]: *** [/home/alex/Dokumente/repo/linux/tools/build/Makefile.build:145:/home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o] Fehler 1/home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o: file not recognized: File truncated
make[3]: *** [Makefile:45:/home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o] Fehler 2
make[3]: *** Es wird auf noch nicht beendete Prozesse gewartet....
make[4]: *** [/home/alex/Dokumente/repo/linux/tools/build/Makefile.build:145:/home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o] Fehler 1 make[3]: *** [Makefile:39:/home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o] Fehler 2
LD/home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer-in.o
make[2]: *** [Makefile:62: iio] Fehler 2
make[1]: *** [/home/alex/Dokumente/repo/linux/Makefile:1628:tools/iio] Fehler 2
make[1]: Verzeichnis „/home/alex/Dokumente/repo/linux/build_x86“ wird verlassen
make: *** [Makefile:146: sub-make] Fehler 2
This is my log using LANG=C:
Quoted 21 lines
{master linux} % git describe
v4.14-3-gd893dbcff8e3
{master linux} % rm -fr build_x86/tools/
{master linux} % LANG=C make O=build_x86/ -j9tools/iio
make[1]: Entering directory '/home/alex/Dokumente/repo/linux/build_x86'
DESCEND iio
mkdir -p/home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio2>&1 || true
ln -sf/home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/events.h/home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iioln -sf/home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/types.h/home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iioCC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer.o CC /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o LD /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o LINK /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor LD /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o LD /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer-in.o LINK /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio LINK /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer
Quoted 1 line
make[1]: Leaving directory '
/home/alex/Dokumente/repo/linux/build_x86'
In both cases tools/iio/iio_utils.o is compiled thrice. Depending on the exact timing you might get a truncated file. I suspect the following commit: 18956cf2d78a ("iio: tools: move to tools buildsystem", 2017-07-29) as iio_utils.o is referenced in all 3 tools.
Best regards,
Alexander