* [Buildroot] Build error from time to time @ 2014-02-11 15:23 Sagaert Johan 2014-02-12 7:10 ` Arnout Vandecappelle 0 siblings, 1 reply; 4+ messages in thread From: Sagaert Johan @ 2014-02-11 15:23 UTC (permalink / raw) To: buildroot Hi Sometimes I get this error, if I then run make again after removing the nettle-2.7.1 build directory It rebuilds nettle and the build ends without errors. Could this be caused by the ccache ? (I had run make clean before I started the new build.) ic -MT ecc-modq.o -MD -MP -MF ecc-modq.o.d -fpic -c ecc-modq.c \ && true /home/buildroot12git/output/host/usr/bin/ccache /home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -Wno-pointer-sign -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -fpic -MT ecc-generic-redc.o -MD -MP -MF ecc-generic-redc.o.d -fpic -c ecc-generic-redc.c \ && true /usr/bin/make eccdata make[3]: Entering directory `/home/buildroot12git/output/build/nettle-2.7.1' Makefile:595: ecc-generic-modq.o.d: No such file or directory /home/buildroot12git/output/host/usr/bin/ccache /home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -Wno-pointer-sign -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wpointer-arith -Wbad-function-cast -Wnested-externs -fpic -MT ecc-size.o -MD -MP -MF ecc-size.o.d -fpic -c ecc-size.c \ && true make[3]: *** No rule to make target `ecc-generic-modq.o.d'. Stop. make[3]: Leaving directory `/home/buildroot12git/output/build/nettle-2.7.1' make[2]: *** [eccdata.stamp] Error 2 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/home/buildroot12git/output/build/nettle-2.7.1' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/buildroot12git/output/build/nettle-2.7.1' make: *** [/home/buildroot12git/output/build/nettle-2.7.1/.stamp_built] Error 2 Regards Sagaert Johan ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] Build error from time to time 2014-02-11 15:23 [Buildroot] Build error from time to time Sagaert Johan @ 2014-02-12 7:10 ` Arnout Vandecappelle 2014-02-12 15:30 ` Danomi Manchego 0 siblings, 1 reply; 4+ messages in thread From: Arnout Vandecappelle @ 2014-02-12 7:10 UTC (permalink / raw) To: buildroot On 11/02/14 16:23, Sagaert Johan wrote: > > Hi > > Sometimes I get this error, if I then run make again after removing the nettle-2.7.1 build directory > It rebuilds nettle and the build ends without errors. > Could this be caused by the ccache ? > > (I had run make clean before I started the new build.) > > > ic -MT ecc-modq.o -MD -MP -MF ecc-modq.o.d -fpic -c ecc-modq.c \ > && true > /home/buildroot12git/output/host/usr/bin/ccache /home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -I. > -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE > -D_FILE_OFFSET_BITS=64 -pipe -Os -Wno-pointer-sign -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes > -Wpointer-arith -Wbad-function-cast -Wnested-externs -fpic -MT ecc-generic-redc.o -MD -MP -MF ecc-generic-redc.o.d -fpic -c > ecc-generic-redc.c \ > && true > /usr/bin/make eccdata > make[3]: Entering directory `/home/buildroot12git/output/build/nettle-2.7.1' > Makefile:595: ecc-generic-modq.o.d: No such file or directory Took me a while to find it, but it looks like a parallel build issue in nettle combined with ccache. In the configure step, all the *.d files are created as empty files. These files are included unconditionally in the Makefile, so you get an error if they don't exist. Unfortunately, ccache does an unlink() just before creating the new file, so there is a tiny window of time where the file doesn't exist. It looks like you have a filesystem where this window is relatively large (NFS?), which is why you see the problem and others don't. This is a tough nut to crack fundamentally. * You could say that nettle's behaviour of including empty dependency files is bad. To overcome that, a - can be added in front of the include. * You can say the behaviour of ccache is bad. The unlink could be removed there, except in the case of CCACHE_HARDLINK because it is not possible to create a hardlink to an existing file. Any suggestions on how to proceed? Regards, Arnout > /home/buildroot12git/output/host/usr/bin/ccache /home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -I. > -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE > -D_FILE_OFFSET_BITS=64 -pipe -Os -Wno-pointer-sign -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes > -Wpointer-arith -Wbad-function-cast -Wnested-externs -fpic -MT ecc-size.o -MD -MP -MF ecc-size.o.d -fpic -c ecc-size.c \ > && true > make[3]: *** No rule to make target `ecc-generic-modq.o.d'. Stop. > make[3]: Leaving directory `/home/buildroot12git/output/build/nettle-2.7.1' > make[2]: *** [eccdata.stamp] Error 2 > make[2]: *** Waiting for unfinished jobs.... > make[2]: Leaving directory `/home/buildroot12git/output/build/nettle-2.7.1' > make[1]: *** [all] Error 2 > make[1]: Leaving directory `/home/buildroot12git/output/build/nettle-2.7.1' > make: *** [/home/buildroot12git/output/build/nettle-2.7.1/.stamp_built] Error 2 > > Regards > Sagaert Johan > > > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot > -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] Build error from time to time 2014-02-12 7:10 ` Arnout Vandecappelle @ 2014-02-12 15:30 ` Danomi Manchego 2014-02-12 16:49 ` Arnout Vandecappelle 0 siblings, 1 reply; 4+ messages in thread From: Danomi Manchego @ 2014-02-12 15:30 UTC (permalink / raw) To: buildroot On Wed, Feb 12, 2014 at 2:10 AM, Arnout Vandecappelle <arnout@mind.be> wrote: > On 11/02/14 16:23, Sagaert Johan wrote: > Took me a while to find it, but it looks like a parallel build issue in > nettle combined with ccache. In the configure step, all the *.d files are > created as empty files. These files are included unconditionally in the > Makefile, so you get an error if they don't exist. Unfortunately, ccache > does an unlink() just before creating the new file, so there is a tiny > window of time where the file doesn't exist. It looks like you have a > filesystem where this window is relatively large (NFS?), which is why you > see the problem and others don't. > > This is a tough nut to crack fundamentally. > > * You could say that nettle's behaviour of including empty dependency > files is bad. To overcome that, a - can be added in front of the include. > > * You can say the behaviour of ccache is bad. The unlink could be removed > there, except in the case of CCACHE_HARDLINK because it is not possible > to create a hardlink to an existing file. > > Any suggestions on how to proceed? Would forcing non-parallel build (MAKE1) get around this issue? Danomi - ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] Build error from time to time 2014-02-12 15:30 ` Danomi Manchego @ 2014-02-12 16:49 ` Arnout Vandecappelle 0 siblings, 0 replies; 4+ messages in thread From: Arnout Vandecappelle @ 2014-02-12 16:49 UTC (permalink / raw) To: buildroot On 12/02/14 16:30, Danomi Manchego wrote: > On Wed, Feb 12, 2014 at 2:10 AM, Arnout Vandecappelle <arnout@mind.be> wrote: >> On 11/02/14 16:23, Sagaert Johan wrote: >> Took me a while to find it, but it looks like a parallel build issue in >> nettle combined with ccache. In the configure step, all the *.d files are >> created as empty files. These files are included unconditionally in the >> Makefile, so you get an error if they don't exist. Unfortunately, ccache >> does an unlink() just before creating the new file, so there is a tiny >> window of time where the file doesn't exist. It looks like you have a >> filesystem where this window is relatively large (NFS?), which is why you >> see the problem and others don't. >> >> This is a tough nut to crack fundamentally. >> >> * You could say that nettle's behaviour of including empty dependency >> files is bad. To overcome that, a - can be added in front of the include. >> >> * You can say the behaviour of ccache is bad. The unlink could be removed >> there, except in the case of CCACHE_HARDLINK because it is not possible >> to create a hardlink to an existing file. >> >> Any suggestions on how to proceed? > > Would forcing non-parallel build (MAKE1) get around this issue? Yes, but that would be a pity since nettle is fairly large. Regards, Arnout > Danomi - > -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-02-12 16:49 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-11 15:23 [Buildroot] Build error from time to time Sagaert Johan 2014-02-12 7:10 ` Arnout Vandecappelle 2014-02-12 15:30 ` Danomi Manchego 2014-02-12 16:49 ` Arnout Vandecappelle
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox