Rtems con-current build using make -j option
mkhoory at eiast.ae
Tue Jun 17 09:04:07 UTC 2014
>From: users [mailto:users-bounces at rtems.org] On Behalf Of Chris Johns
>Sent: Tuesday, June 17, 2014 2:31 PM
>To: users at rtems.org
>Subject: Re: Rtems con-current build using make -j option
>On 17/06/2014 4:46 pm, Mohammed Khoory wrote:
>> I’ve also had issues with concurrent building for the RTEMS source. I
>>eventually gave up and simply built the source without any -j option.
>> From what I understand, the way the build system is designed makes
>>concurrent building impossible, because some makefiles seem to depend on
>>other makefiles finishing first. Please correct me if I'm wrong.
>This is not correct. I always build with -j8 or higher and so not see
>problems. The tests are nested makes and these tend to execute sequentially
>(well appear to).
>What type of host and the operating system ?
I'm on Windows 7 64-bit. MinGW host, with RTEMS 4.10, building for LEON3. IIRC, I had similar issues with RTEMS 4.11 as well.
I've tried to build RTEMS 4.10 with -j4 just now to make sure, since it's been a while. The first time, the build process simply hanged and stopped progressing though and I had to kill one of the make processes, which stopped the build. I think the reason it hanged might be because of a MinGW (i.e. Windows-specific) bug when it comes to spawning several processes. I found this bug report http://sourceforge.net/p/mingw/bugs/1950/ which might be related.
I cleaned and tried to build RTEMS 4.10 with -j4 again, and I got the error I used to get before (I couldn't tell what it was since it was beyond my scrollback). I assumed at the time that this meant that RTEMS wasn't meant to be built concurrently. I cleaned and tried to build with -j4 again just to make sure, but the build was successful. Subsequent trials also seem to have worked so I couldn't reproduce the problem. I guess this error doesn't happen all the time? Either way, at the time it gave me the impression that building concurrently wasn't very reliable (on my system at least).
-j2 and -j3 seems to work for me however the first time I ran them. My system has a total of 4 hardware threads if this makes any difference.
Sorry if I have misled anyone.
More information about the users