From: Jason Wessel <jason.wessel@windriver.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Cc: Zhenfeng.Zhao@windriver.com
Subject: Re: [PATCH 1/1] ncurses: Disable parallel make
Date: Thu, 17 May 2012 07:02:31 -0500 [thread overview]
Message-ID: <4FB4E8D7.2020808@windriver.com> (raw)
In-Reply-To: <4FB45BEF.6070204@windriver.com>
On 05/16/2012 09:01 PM, Xiaofeng Yan wrote:
> On 2012年05月16日 19:02, Saul Wold wrote:
>> On 05/16/2012 01:10 PM, xiaofeng.yan@windriver.com wrote:
>>> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>>>
>>> Ncurses failure non-gplv3 build by race issue. So disable parallel \
>>> make when building this package.
>>>
>> This is not the best approach as you disable PARALLEL_MAKE for both
>> non-gplv3 and gplv3 versions. Further, we want to get rid of [M1]
>> setting as much as possible, so this patch is not helping that.
>>
>> Did you try running on a large many core machine? It might help if you
>> have some other builds going also to stress the machine.
>>
>> Sau!
> Thanks for your reply. The most cores I have are eight. I also set
> PARALLEL_MAKE=j1000 and 10000. I think I need try to find new way for
> fixing bugs.
>
Do you have an error file from a failed build (and ideally the failed build directory)? Having diagnosed many problems like this in the past, it is easiest to look for the failure case and add some sleep statement in the Makefile to get it to trigger every time in the same way.
The two most common problems are:
1) autoconf re-runs due to time stamps or partially patched files
2) a generated file is reported as missing
In the first case it, it will often be some error with a .h missing or some other strange error about a header in the compilation and it is a result of only having a partial file because it is getting regenerated at the time.
In the second case you just find the file's rule in the Makefile and add an if statement in the Make target goal if it is a multi-object rule to look for the problem object and sleep a bit. I have yet to see a case I couldn't reproduce the results by following the strategy of some forcing some extra delay. You probably won't have to go to this length, but there was one time I even wrote a C wrapper around a command to add some sleep controlled by an environment variable to prove config.h was getting removed and regenerated. Example:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *const argv[]) {
char *lookfor;
if (argc >= 2) {
lookfor = getenv("LOOKFORSLEEP");
if (lookfor && strcmp(argv[1], lookfor) == 0) {
if (argc >= 3 && strcmp(argv[2], "config.h") == 0) {
unlink("config.h");
printf("Special sleep on command %s\n", lookfor);
sleep(2);
}
}
}
execv("/bin/sh", argv);
return 0;
}
Best of luck,
Jason.
next prev parent reply other threads:[~2012-05-17 12:12 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-16 10:10 [PATCH 0/1] ncurses: Disable parallel make xiaofeng.yan
2012-05-16 10:10 ` [PATCH 1/1] " xiaofeng.yan
2012-05-16 11:02 ` Saul Wold
2012-05-17 2:01 ` Xiaofeng Yan
2012-05-17 3:07 ` Khem Raj
2012-05-17 12:02 ` Jason Wessel [this message]
2012-05-18 3:25 ` Xiaofeng Yan
2012-05-18 7:33 ` Xiaofeng Yan
2012-05-18 12:14 ` Robert Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FB4E8D7.2020808@windriver.com \
--to=jason.wessel@windriver.com \
--cc=Zhenfeng.Zhao@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox