diff mbox

perf tools: Fix random building error

Message ID 1441087005-107540-1-git-send-email-wangnan0@huawei.com
State Superseded
Headers show

Commit Message

Wang Nan Sept. 1, 2015, 5:56 a.m. UTC
I hit following building error randomly:

  ...
/bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c: No such file or directory
  ...
  LINK     /path/to/kernel/buildperf/plugin_mac80211.so
  LINK     /path/to/kernel/buildperf/plugin_kmem.so
  LINK     /path/to/kernel/buildperf/plugin_xen.so
  LINK     /path/to/kernel/buildperf/plugin_hrtimer.so
In file included from util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0:
util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such file or directory
 #include "inat-tables.c"
                         ^
compilation terminated.
make[4]: *** [/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error 1
make[4]: *** Waiting for unfinished jobs....
  LINK     /path/to/kernel/buildperf/plugin_function.so

This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries to
generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically but
forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder directory.

This patch fixes it by adding $(call rule_mkdir) like other similar rules.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
---
 tools/perf/util/intel-pt-decoder/Build | 1 +
 1 file changed, 1 insertion(+)

Comments

Adrian Hunter Sept. 1, 2015, 6:24 a.m. UTC | #1
On 01/09/15 08:56, Wang Nan wrote:
> I hit following building error randomly:

Random presumably because there is a race to use/create the directory by
different make jobs (i.e. -j option).

> 
>   ...
> /bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c: No such file or directory
>   ...
>   LINK     /path/to/kernel/buildperf/plugin_mac80211.so
>   LINK     /path/to/kernel/buildperf/plugin_kmem.so
>   LINK     /path/to/kernel/buildperf/plugin_xen.so
>   LINK     /path/to/kernel/buildperf/plugin_hrtimer.so
> In file included from util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0:
> util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such file or directory
>  #include "inat-tables.c"
>                          ^
> compilation terminated.
> make[4]: *** [/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
>   LINK     /path/to/kernel/buildperf/plugin_function.so
> 
> This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries to
> generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically but
> forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder directory.
> 
> This patch fixes it by adding $(call rule_mkdir) like other similar rules.
> 
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Adrian Hunter <adrian.hunter@intel.com>

Looks ok to me. Jiri?

> ---
>  tools/perf/util/intel-pt-decoder/Build | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tools/perf/util/intel-pt-decoder/Build b/tools/perf/util/intel-pt-decoder/Build
> index 240730d..2386322 100644
> --- a/tools/perf/util/intel-pt-decoder/Build
> +++ b/tools/perf/util/intel-pt-decoder/Build
> @@ -4,6 +4,7 @@ inat_tables_script = util/intel-pt-decoder/gen-insn-attr-x86.awk
>  inat_tables_maps = util/intel-pt-decoder/x86-opcode-map.txt
>  
>  $(OUTPUT)util/intel-pt-decoder/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
> +	$(call rule_mkdir)
>  	@$(call echo-cmd,gen)$(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@
>  
>  $(OUTPUT)util/intel-pt-decoder/intel-pt-insn-decoder.o: util/intel-pt-decoder/inat.c $(OUTPUT)util/intel-pt-decoder/inat-tables.c
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Wang Nan Sept. 1, 2015, 6:41 a.m. UTC | #2
On 2015/9/1 14:24, Adrian Hunter wrote:
> On 01/09/15 08:56, Wang Nan wrote:
>> I hit following building error randomly:
> Random presumably because there is a race to use/create the directory by
> different make jobs (i.e. -j option).

Yes, I use -j 160 :)

>>    ...
>> /bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c: No such file or directory
>>    ...
>>    LINK     /path/to/kernel/buildperf/plugin_mac80211.so
>>    LINK     /path/to/kernel/buildperf/plugin_kmem.so
>>    LINK     /path/to/kernel/buildperf/plugin_xen.so
>>    LINK     /path/to/kernel/buildperf/plugin_hrtimer.so
>> In file included from util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0:
>> util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such file or directory
>>   #include "inat-tables.c"
>>                           ^
>> compilation terminated.
>> make[4]: *** [/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error 1
>> make[4]: *** Waiting for unfinished jobs....
>>    LINK     /path/to/kernel/buildperf/plugin_function.so
>>
>> This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries to
>> generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically but
>> forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder directory.
>>
>> This patch fixes it by adding $(call rule_mkdir) like other similar rules.
>>
>> Signed-off-by: Wang Nan <wangnan0@huawei.com>
>> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
>> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Looks ok to me. Jiri?
>
>> ---
>>   tools/perf/util/intel-pt-decoder/Build | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/tools/perf/util/intel-pt-decoder/Build b/tools/perf/util/intel-pt-decoder/Build
>> index 240730d..2386322 100644
>> --- a/tools/perf/util/intel-pt-decoder/Build
>> +++ b/tools/perf/util/intel-pt-decoder/Build
>> @@ -4,6 +4,7 @@ inat_tables_script = util/intel-pt-decoder/gen-insn-attr-x86.awk
>>   inat_tables_maps = util/intel-pt-decoder/x86-opcode-map.txt
>>   
>>   $(OUTPUT)util/intel-pt-decoder/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
>> +	$(call rule_mkdir)
>>   	@$(call echo-cmd,gen)$(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@
>>   
>>   $(OUTPUT)util/intel-pt-decoder/intel-pt-insn-decoder.o: util/intel-pt-decoder/inat.c $(OUTPUT)util/intel-pt-decoder/inat-tables.c
>>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Jiri Olsa Sept. 1, 2015, 10:40 a.m. UTC | #3
On Tue, Sep 01, 2015 at 09:24:14AM +0300, Adrian Hunter wrote:
> On 01/09/15 08:56, Wang Nan wrote:
> > I hit following building error randomly:
> 
> Random presumably because there is a race to use/create the directory by
> different make jobs (i.e. -j option).
> 
> > 
> >   ...
> > /bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c: No such file or directory
> >   ...
> >   LINK     /path/to/kernel/buildperf/plugin_mac80211.so
> >   LINK     /path/to/kernel/buildperf/plugin_kmem.so
> >   LINK     /path/to/kernel/buildperf/plugin_xen.so
> >   LINK     /path/to/kernel/buildperf/plugin_hrtimer.so
> > In file included from util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0:
> > util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such file or directory
> >  #include "inat-tables.c"
> >                          ^
> > compilation terminated.
> > make[4]: *** [/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error 1
> > make[4]: *** Waiting for unfinished jobs....
> >   LINK     /path/to/kernel/buildperf/plugin_function.so
> > 
> > This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries to
> > generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically but
> > forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder directory.
> > 
> > This patch fixes it by adding $(call rule_mkdir) like other similar rules.
> > 
> > Signed-off-by: Wang Nan <wangnan0@huawei.com>
> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Cc: Adrian Hunter <adrian.hunter@intel.com>
> 
> Looks ok to me. Jiri?

right, each separate rule needs to have this

Acked-by: Jiri Olsa <jolsa@kernel.org>

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
diff mbox

Patch

diff --git a/tools/perf/util/intel-pt-decoder/Build b/tools/perf/util/intel-pt-decoder/Build
index 240730d..2386322 100644
--- a/tools/perf/util/intel-pt-decoder/Build
+++ b/tools/perf/util/intel-pt-decoder/Build
@@ -4,6 +4,7 @@  inat_tables_script = util/intel-pt-decoder/gen-insn-attr-x86.awk
 inat_tables_maps = util/intel-pt-decoder/x86-opcode-map.txt
 
 $(OUTPUT)util/intel-pt-decoder/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
+	$(call rule_mkdir)
 	@$(call echo-cmd,gen)$(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@
 
 $(OUTPUT)util/intel-pt-decoder/intel-pt-insn-decoder.o: util/intel-pt-decoder/inat.c $(OUTPUT)util/intel-pt-decoder/inat-tables.c