In sdcc from current trunk, build fails for me sporadically (about once for every 10 times i try to compile) when using make -j 18.
As far as I can see the build fails in the m6800 part of uCsim. I suspect some race condition in the build system.
I have attached the output from make -j18 &> buildfaillog
Philipp
Dear Philipp,
[r12444] solved this for me, but I still investigate.
Daniel
I noticed it in the callingconvention branch (since I want to build that one about 500 times per night for some experiments).
The current [r12448] callingconvention branch has all the changes from [r12447] noasm2 branch, which in turn has all the changes from trunk [r12446]. So trunk would still have the same problem (though I'm not building trunk often enough to have encountered the problem since).
Philipp, which is the way you call the configure script?
I think [r12444] breaks builds that are outside of the source tree, which is causing all the snapshot builds to fail. But this is also how I normally build locally too. In my case "sdcc-main2" is my source directory and "sdcc-build2" is my build directory:
Here the "make -C ../../../../sdcc-main2/sim/ucsim/m6800.src all" fails because that directory has no Makefile, only Makefile.in
It builds okay if I edit packages.mk to disable m68hc12
Fix is in [r12456].
I still see sporadic build failures, still in the m6800 part, even though the error message looks a little different now. Output from
I attached.
I suspect that these lines fromt eh above file
Are close to the underlying issue: Apparentlythe time sm6800 is to be linked whatever is supposed to contain cl_m6800::cl_m6800(cl_sim*) is not there yet.
P.S.:
Also, I see these two lines
twice in the log output, which seems odd to me. Does the build infrastructure build the same files twice, possibly even attempting to do so at the same time?
Last edit: Philipp Klaus Krause 2021-06-13
I can no longer reproduce this issue in current trunk.