diff mbox

[U-Boot] help on using buildman

Message ID 546E4C82.2010305@freescale.com
State RFC
Delegated to: Simon Glass
Headers show

Commit Message

York Sun Nov. 20, 2014, 8:18 p.m. UTC
On 11/20/2014 12:10 PM, Simon Glass wrote:
> Hi York,
>>
>> I think the key is to configure it, not build it. With the failure case, it
>> doesn't build. I am thinking to find the equivalent to "make ARCH=power ...".
>> How to dump that?
> 
> Add a 'print' line to make() in builder.py:
> 
>         cmd = [self.gnu_make] + list(args)
>         print cmd
>         result = command.RunPipe([cmd], capture=True, capture_stderr=True,
>                 cwd=cwd, raise_on_error=False, **kwargs)
>         return result
> 

Thanks. Adding the "print cmd" makes the issue disappeared. Removing it, the
issue comes back. Add it back, it is gone again. I removed the working directory
each time before building it. See the commands below

$ !407
./tools/buildman/buildman -b working_upstream_qoriq --count=1 --keep-outputs
--force-build --force-reconfig MPC832XEMDS_HOST_66 -ve
No section: 'make-flags'
boards.cfg is up to date. Nothing to do.
Building 1 commit for 1 boards (1 thread, 24 jobs per thread)
Cloning repo for thread 0
    0    0    0 /1      (starting) ['make', 'mrproper', 'O=build', '-j', '24']
['make', 'O=build', '-j', '24', 'MPC832XEMDS_HOST_66_defconfig']
['make', 'O=build', '-j', '24']
01: arm: ls102xa: Select ge2_clk125 for eTSEC clock muxing
    1    0    0 /1      MPC832XEMDS_HOST_66
-bash-3.2$ git diff
-bash-3.2$ git checkout tools/buildman/builder.py
-bash-3.2$ rm -rf ../working_upstream_qoriq/
-bash-3.2$ ./tools/buildman/buildman -b working_upstream_qoriq --count=1
--keep-outputs --force-build --force-reconfig MPC832XEMDS_HOST_66 -ve
No section: 'make-flags'
boards.cfg is up to date. Nothing to do.
Building 1 commit for 1 boards (1 thread, 24 jobs per thread)
Cloning repo for thread 0
01: arm: ls102xa: Select ge2_clk125 for eTSEC clock muxing
   powerpc: +   MPC832XEMDS_HOST_66
+make[1]: *** No rule to make target `../arch//cpu/u-boot.lds', needed by
`u-boot.lds'.  Stop.
+make: *** [sub-make] Error 2
    0    0    1 /1      MPC832XEMDS_HOST_66
-bash-3.2$ vi tools/buildman/builder.py
-bash-3.2$ rm -rf ../working_upstream_qoriq/-bash-3.2$ ./tools/buildman/buildman
-b working_upstream_qoriq --count=1 --keep-outputs --force-build
--force-reconfig MPC832XEMDS_HOST_66 -ve
No section: 'make-flags'
boards.cfg is up to date. Nothing to do.
Building 1 commit for 1 boards (1 thread, 24 jobs per thread)
Cloning repo for thread 0
    0    0    0 /1      (starting) ['make', 'mrproper', 'O=build', '-j', '24']
['make', 'O=build', '-j', '24', 'MPC832XEMDS_HOST_66_defconfig']
['make', 'O=build', '-j', '24']
01: arm: ls102xa: Select ge2_clk125 for eTSEC clock muxing
    1    0    0 /1      MPC832XEMDS_HOST_66
-bash-3.2$

I don't see ARCH defined anywhere.

York

Comments

York Sun Nov. 20, 2014, 9:04 p.m. UTC | #1
On 11/20/2014 12:18 PM, York Sun wrote:
> 
> I don't see ARCH defined anywhere.
> 

Simon,

I think ARCH is defined in Kconfig as SYS_ARCH. Is it possible buildman runs
out-of-order?

York
York Sun Nov. 20, 2014, 9:33 p.m. UTC | #2
On 11/20/2014 01:04 PM, York Sun wrote:
> On 11/20/2014 12:18 PM, York Sun wrote:
>>
>> I don't see ARCH defined anywhere.
>>
> 
> Simon,
> 
> I think ARCH is defined in Kconfig as SYS_ARCH. Is it possible buildman runs
> out-of-order?
> 

There is something. When the server is under heavy load, this error doesn't
show. When the server is mostly idling, the error comes. Any suggestion to debug it?

York
York Sun Nov. 20, 2014, 9:34 p.m. UTC | #3
On 11/20/2014 01:33 PM, York Sun wrote:
> On 11/20/2014 01:04 PM, York Sun wrote:
>> On 11/20/2014 12:18 PM, York Sun wrote:
>>>
>>> I don't see ARCH defined anywhere.
>>>
>>
>> Simon,
>>
>> I think ARCH is defined in Kconfig as SYS_ARCH. Is it possible buildman runs
>> out-of-order?
>>
> 
> There is something. When the server is under heavy load, this error doesn't
> show. When the server is mostly idling, the error comes. Any suggestion to debug it?

Scratch that. It is not consistent.

York
Simon Glass Nov. 20, 2014, 9:46 p.m. UTC | #4
Hi York,

On 20 November 2014 21:34, York Sun <yorksun@freescale.com> wrote:
> On 11/20/2014 01:33 PM, York Sun wrote:
>> On 11/20/2014 01:04 PM, York Sun wrote:
>>> On 11/20/2014 12:18 PM, York Sun wrote:
>>>>
>>>> I don't see ARCH defined anywhere.
>>>>
>>>
>>> Simon,
>>>
>>> I think ARCH is defined in Kconfig as SYS_ARCH. Is it possible buildman runs
>>> out-of-order?
>>>
>>
>> There is something. When the server is under heavy load, this error doesn't
>> show. When the server is mostly idling, the error comes. Any suggestion to debug it?
>
> Scratch that. It is not consistent.

It's a mystery to me. I haven't seen this problem in much usage and
can only suggest digging in to figure it out.

Regards,
Simon
York Sun Nov. 20, 2014, 10:25 p.m. UTC | #5
On 11/20/2014 01:46 PM, Simon Glass wrote:
> Hi York,
> 
> On 20 November 2014 21:34, York Sun <yorksun@freescale.com> wrote:
>> On 11/20/2014 01:33 PM, York Sun wrote:
>>> On 11/20/2014 01:04 PM, York Sun wrote:
>>>> On 11/20/2014 12:18 PM, York Sun wrote:
>>>>>
>>>>> I don't see ARCH defined anywhere.
>>>>>
>>>>
>>>> Simon,
>>>>
>>>> I think ARCH is defined in Kconfig as SYS_ARCH. Is it possible buildman runs
>>>> out-of-order?
>>>>
>>>
>>> There is something. When the server is under heavy load, this error doesn't
>>> show. When the server is mostly idling, the error comes. Any suggestion to debug it?
>>
>> Scratch that. It is not consistent.
> 
> It's a mystery to me. I haven't seen this problem in much usage and
> can only suggest digging in to figure it out.
> 

Found something but not the root cause yet. For the failure run, it runs in
Makefile, passed include/config/uboot.release, but not anything under
"prepare3:". For the success run, it continues to run.


-bash-3.2$ more log
make[1]: Entering directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-
pull/working_upstream_qoriq/.bm-work/00/build'
  GEN     ./Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
  CHK     include/config.h
  UPD     include/config.h
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
make[1]: Leaving directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-p
ull/working_upstream_qoriq/.bm-work/00/build'
make[1]: Entering directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-
pull/working_upstream_qoriq/.bm-work/00/build'
echo "York debug here"
York debug here
  CHK     include/config/uboot.release
  CHK     include/generated/timestamp_autogenerated.h
  GEN     ./Makefile
  UPD     include/generated/timestamp_autogenerated.h
  UPD     include/config/uboot.release
echo "Done uboot.release"
Done uboot.release

(note, for the success run, the log would have "Using .. as source for U-Boot" here)

make[1]: Leaving directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-p
ull/working_upstream_qoriq/.bm-work/00/build'

Not sure if this is still buildman related, but only visible when running with
buildman.

York
York Sun Nov. 20, 2014, 11:35 p.m. UTC | #6
On 11/20/2014 02:25 PM, York Sun wrote:
> Not sure if this is still buildman related, but only visible when running with
> buildman.

Simon,

It seems related to out-of-tree building.

For the failure case, the dependency "include/config/uboot.release" completes
but not continue to run. It seems to be related to out of tree building. When I
use buildman, it use out-of-tree building by default. I can reproduce the issue
by using make directly with O=<path>. I don't understand how out-of-tree
building would inconsistently fail.


-bash-3.2$
CROSS_COMPILE=/opt/fsl-networking/QorIQ-SDK-V1.4/sysroots/x86_64-fsl_networking_sdk-linux/usr/bin/ppce500mc-fsl_networking-linux/powerpc-fsl_networking-linux-
make -j24 O=../working_upstream_qoriq/ mrproper MPC832XEMDS_HOST_66_defconfig all
make[1]: Entering directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/working_upstream_qoriq'
  CLEAN   tools
  CLEAN   tools/lib tools/common
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   u-boot.lds
  CLEAN   include/config include/generated
  CLEAN   .config include/autoconf.mk include/autoconf.mk.dep include/config.h
  HOSTCC  scripts/basic/fixdep
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:
In function ‘get_symbol_str’:
/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:551:
warning: ‘jump’ may be used uninitialized in this function
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
  GEN     ./Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
  CHK     include/config.h
  UPD     include/config.h
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
  CHK     include/config/uboot.release
  GEN     ./Makefile
  CHK     include/generated/timestamp_autogenerated.h
make[2]: *** No rule to make target
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/arch//cpu/u-boot.lds',
needed by `u-boot.lds'.  Stop.
make[2]: *** Waiting for unfinished jobs....
  UPD     include/generated/timestamp_autogenerated.h
  UPD     include/config/uboot.release
make[1]: *** [__build_one_by_one] Error 2
make[1]: Leaving directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/working_upstream_qoriq'
make: *** [sub-make] Error 2



For the passed case, the log is

-bash-3.2$
CROSS_COMPILE=/opt/fsl-networking/QorIQ-SDK-V1.4/sysroots/x86_64-fsl_networking_sdk-linux/usr/bin/ppce500mc-fsl_networking-linux/powerpc-fsl_networking-linux-
make -j24 O=../working_upstream_qoriq/ mrproper MPC832XEMDS_HOST_66_defconfig all
make[1]: Entering directory
`/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/working_upstream_qoriq'
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   include/config include/generated
  CLEAN   .config include/autoconf.mk include/autoconf.mk.dep include/config.h
  HOSTCC  scripts/basic/fixdep
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:
In function ‘get_symbol_str’:
/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:551:
warning: ‘jump’ may be used uninitialized in this function
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
  GEN     ./Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
  CHK     include/config.h
  UPD     include/config.h
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
  CHK     include/config/uboot.release
  CHK     include/generated/timestamp_autogenerated.h
  GEN     ./Makefile
  UPD     include/generated/timestamp_autogenerated.h
  UPD     include/config/uboot.release
  Using
/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace as
source for U-Boot
  CHK     include/generated/version_autogenerated.h
  UPD     include/generated/version_autogenerated.h
  CC      lib/asm-offsets.s
  GEN     include/generated/generic-asm-offsets.h
  LDS     u-boot.lds
  HOSTCC  tools/envcrc.o
  WRAP    tools/lib/crc32.c
  WRAP    tools/common/env_embedded.c
  WRAP    tools/lib/sha1.c
  HOSTCC  tools/gen_eth_addr
  HOSTCC  tools/img2srec
  HOSTCC  tools/mkenvimage.o
  HOSTCC  tools/os_support.o
(and keep going)

York
Simon Glass Nov. 21, 2014, 4:14 a.m. UTC | #7
+Masahiro who may have some ideas

Hi York,

On 21 November 2014 00:35, York Sun <yorksun@freescale.com> wrote:
> On 11/20/2014 02:25 PM, York Sun wrote:
>> Not sure if this is still buildman related, but only visible when running with
>> buildman.
>
> Simon,
>
> It seems related to out-of-tree building.
>
> For the failure case, the dependency "include/config/uboot.release" completes
> but not continue to run. It seems to be related to out of tree building. When I
> use buildman, it use out-of-tree building by default. I can reproduce the issue
> by using make directly with O=<path>. I don't understand how out-of-tree
> building would inconsistently fail.
>
>
> -bash-3.2$
> CROSS_COMPILE=/opt/fsl-networking/QorIQ-SDK-V1.4/sysroots/x86_64-fsl_networking_sdk-linux/usr/bin/ppce500mc-fsl_networking-linux/powerpc-fsl_networking-linux-
> make -j24 O=../working_upstream_qoriq/ mrproper MPC832XEMDS_HOST_66_defconfig all
> make[1]: Entering directory
> `/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/working_upstream_qoriq'
>   CLEAN   tools
>   CLEAN   tools/lib tools/common
>   CLEAN   scripts/basic
>   CLEAN   scripts/kconfig
>   CLEAN   u-boot.lds
>   CLEAN   include/config include/generated
>   CLEAN   .config include/autoconf.mk include/autoconf.mk.dep include/config.h
>   HOSTCC  scripts/basic/fixdep
>   GEN     ./Makefile
>   HOSTCC  scripts/kconfig/conf.o
>   SHIPPED scripts/kconfig/zconf.tab.c
>   SHIPPED scripts/kconfig/zconf.lex.c
>   SHIPPED scripts/kconfig/zconf.hash.c
>   HOSTCC  scripts/kconfig/zconf.tab.o
> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:
> In function ‘get_symbol_str’:
> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:551:
> warning: ‘jump’ may be used uninitialized in this function
>   HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
>   GEN     ./Makefile
> scripts/kconfig/conf --silentoldconfig Kconfig
>   CHK     include/config.h
>   UPD     include/config.h
>   GEN     include/autoconf.mk
>   GEN     include/autoconf.mk.dep
>   CHK     include/config/uboot.release
>   GEN     ./Makefile
>   CHK     include/generated/timestamp_autogenerated.h
> make[2]: *** No rule to make target
> `/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/arch//cpu/u-boot.lds',
> needed by `u-boot.lds'.  Stop.
> make[2]: *** Waiting for unfinished jobs....
>   UPD     include/generated/timestamp_autogenerated.h
>   UPD     include/config/uboot.release
> make[1]: *** [__build_one_by_one] Error 2
> make[1]: Leaving directory
> `/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/working_upstream_qoriq'
> make: *** [sub-make] Error 2
>
>
>
> For the passed case, the log is
>
> -bash-3.2$
> CROSS_COMPILE=/opt/fsl-networking/QorIQ-SDK-V1.4/sysroots/x86_64-fsl_networking_sdk-linux/usr/bin/ppce500mc-fsl_networking-linux/powerpc-fsl_networking-linux-
> make -j24 O=../working_upstream_qoriq/ mrproper MPC832XEMDS_HOST_66_defconfig all
> make[1]: Entering directory
> `/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/working_upstream_qoriq'
>   CLEAN   scripts/basic
>   CLEAN   scripts/kconfig
>   CLEAN   include/config include/generated
>   CLEAN   .config include/autoconf.mk include/autoconf.mk.dep include/config.h
>   HOSTCC  scripts/basic/fixdep
>   GEN     ./Makefile
>   HOSTCC  scripts/kconfig/conf.o
>   SHIPPED scripts/kconfig/zconf.tab.c
>   SHIPPED scripts/kconfig/zconf.lex.c
>   SHIPPED scripts/kconfig/zconf.hash.c
>   HOSTCC  scripts/kconfig/zconf.tab.o
> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:
> In function ‘get_symbol_str’:
> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:551:
> warning: ‘jump’ may be used uninitialized in this function
>   HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
>   GEN     ./Makefile
> scripts/kconfig/conf --silentoldconfig Kconfig
>   CHK     include/config.h
>   UPD     include/config.h
>   GEN     include/autoconf.mk
>   GEN     include/autoconf.mk.dep
>   CHK     include/config/uboot.release
>   CHK     include/generated/timestamp_autogenerated.h
>   GEN     ./Makefile
>   UPD     include/generated/timestamp_autogenerated.h
>   UPD     include/config/uboot.release
>   Using
> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace as
> source for U-Boot
>   CHK     include/generated/version_autogenerated.h
>   UPD     include/generated/version_autogenerated.h
>   CC      lib/asm-offsets.s
>   GEN     include/generated/generic-asm-offsets.h
>   LDS     u-boot.lds
>   HOSTCC  tools/envcrc.o
>   WRAP    tools/lib/crc32.c
>   WRAP    tools/common/env_embedded.c
>   WRAP    tools/lib/sha1.c
>   HOSTCC  tools/gen_eth_addr
>   HOSTCC  tools/img2srec
>   HOSTCC  tools/mkenvimage.o
>   HOSTCC  tools/os_support.o
> (and keep going)

This may be unrelated to buildman, but to check you can use the -i
flag to enable an in-tree build.

Regards,
Simon
Masahiro Yamada Nov. 21, 2014, 4:42 a.m. UTC | #8
Hi York, Simon,




On Fri, 21 Nov 2014 05:14:02 +0100
Simon Glass <sjg@chromium.org> wrote:

> +Masahiro who may have some ideas
> 
> Hi York,
> 
> On 21 November 2014 00:35, York Sun <yorksun@freescale.com> wrote:
> > On 11/20/2014 02:25 PM, York Sun wrote:
> >> Not sure if this is still buildman related, but only visible when running with
> >> buildman.
> >
> > Simon,
> >
> > It seems related to out-of-tree building.
> >
> > For the failure case, the dependency "include/config/uboot.release" completes
> > but not continue to run. It seems to be related to out of tree building. When I
> > use buildman, it use out-of-tree building by default. I can reproduce the issue
> > by using make directly with O=<path>. I don't understand how out-of-tree
> > building would inconsistently fail.
> >
> >
> > -bash-3.2$
> > CROSS_COMPILE=/opt/fsl-networking/QorIQ-SDK-V1.4/sysroots/x86_64-fsl_networking_sdk-linux/usr/bin/ppce500mc-fsl_networking-linux/powerpc-fsl_networking-linux-
> > make -j24 O=../working_upstream_qoriq/ mrproper MPC832XEMDS_HOST_66_defconfig all


Please do not run "mrproper" with "*_defconfig" and "all".


Doing "_defconfig" and "all" at one time is supported,
but you must "clean" or "mrproper" separately.
This is the upstream limitation.  Linux Kernel does not support it either.


Without -j* option,  "make mrproper  *_defconfig  all" works, of course,
because they are run one by one in the given order.

With -j* option, it would not work because
the build system removes some files while it compiles other objects.

I guess this is the root cause of the inconsistent fails you have seen.



Best Regards
Masahiro Yamada
Masahiro Yamada Nov. 21, 2014, 4:53 a.m. UTC | #9
Hi York, Simon,




On Fri, 21 Nov 2014 13:42:05 +0900
Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:

> > Hi York,
> > 
> > On 21 November 2014 00:35, York Sun <yorksun@freescale.com> wrote:
> > > On 11/20/2014 02:25 PM, York Sun wrote:
> > >> Not sure if this is still buildman related, but only visible when running with
> > >> buildman.
> > >
> > > Simon,
> > >
> > > It seems related to out-of-tree building.
> > >
> > > For the failure case, the dependency "include/config/uboot.release" completes
> > > but not continue to run. It seems to be related to out of tree building. When I
> > > use buildman, it use out-of-tree building by default. I can reproduce the issue
> > > by using make directly with O=<path>. I don't understand how out-of-tree
> > > building would inconsistently fail.
> > >
> > >
> > > -bash-3.2$
> > > CROSS_COMPILE=/opt/fsl-networking/QorIQ-SDK-V1.4/sysroots/x86_64-fsl_networking_sdk-linux/usr/bin/ppce500mc-fsl_networking-linux/powerpc-fsl_networking-linux-
> > > make -j24 O=../working_upstream_qoriq/ mrproper MPC832XEMDS_HOST_66_defconfig all
> 
> 
> Please do not run "mrproper" with "*_defconfig" and "all".
> 
> 
> Doing "_defconfig" and "all" at one time is supported,
> but you must "clean" or "mrproper" separately.
> This is the upstream limitation.  Linux Kernel does not support it either.
> 
> 
> Without -j* option,  "make mrproper  *_defconfig  all" works, of course,
> because they are run one by one in the given order.
> 
> With -j* option, it would not work because
> the build system removes some files while it compiles other objects.
> 
> I guess this is the root cause of the inconsistent fails you have seen.



Sorry, this was my misunderstanding.


"make mrproper *_defconfig all" works.  Then, it is still a mystery...


Best Regards
Masahiro Yamada
York Sun Nov. 21, 2014, 4:55 a.m. UTC | #10
Thanks for the hint. I should point out buildman does the three steps separately, and only apply -j to the last step. But I still see the failure.

York
Masahiro Yamada Nov. 21, 2014, 6 a.m. UTC | #11
Hi York,


I have not been able to reproduce this issue on my box,
but the cause surely resides on Kbuild itself.
It is not related to buildman at all.


> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:
> In function 組et_symbol_str・
> /local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/scripts/kconfig/menu.c:551:
> warning: 阻ump・may be used uninitialized in this function
>   HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
>   GEN     ./Makefile
> scripts/kconfig/conf --silentoldconfig Kconfig
>   CHK     include/config.h
>   UPD     include/config.h
>   GEN     include/autoconf.mk
>   GEN     include/autoconf.mk.dep
>   CHK     include/config/uboot.release
>   GEN     ./Makefile
>   CHK     include/generated/timestamp_autogenerated.h
> make[2]: *** No rule to make target
> `/local/jenkins/jobs/york-scm-test-upstream-before-requesting-pull/workspace/arch//cpu/u-boot.lds',
> needed by `u-boot.lds'.  Stop.


According to this fail log,  "ARCH" has not been defined yet when LDSCRIPT is evaluated.


# If there is no specified link script, we look in a number of places for it
ifndef LDSCRIPT
	ifeq ($(wildcard $(LDSCRIPT)),)
		LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds
	endif
	ifeq ($(wildcard $(LDSCRIPT)),)
		LDSCRIPT := $(srctree)/$(CPUDIR)/u-boot.lds
	endif
	ifeq ($(wildcard $(LDSCRIPT)),)
		LDSCRIPT := $(srctree)/arch/$(ARCH)/cpu/u-boot.lds
	endif
endif



I am not sure the real cause but it looks like the following code does not
work on *some* situation.


autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \
		-path ./include/config/auto.conf -newer $(KCONFIG_CONFIG)))
ifneq ($(autoconf_is_current),)
include $(srctree)/config.mk
endif



Now I have realized that it is the problem I am responsible to fix,
but it might not be easy enough to change LDSCRIPT stuff.

So, my question is, how much time can you give me to fix it?
Can you bare with it one month or so?




Best Regards
Masahiro Yamada
York Sun Nov. 21, 2014, 6:47 a.m. UTC | #12
Masahiro,

Sorry for repeatly sending this email. My previous reply was rejected by the mailing list due to some weird base64 encoding.

I tend to agree with you since I could reproduce it using make.
I want to share some of my debug. There is a label in Makefile, prepare3. When it runs correctly, the code under that label runs after the dependency "include/config/uboot.release". I can inject some echo to see the progress. However, for the failed run (no change of code or command, just repeatedly run), nothing runs after the dependency "
include/config/uboot.release". The host is Ubuntu 12.04 x86_64. I am not sure if the inconsistency is cause by Kbuild.

York
York Sun Nov. 21, 2014, 5:14 p.m. UTC | #13
On 11/20/2014 10:47 PM, York Sun wrote:
> Masahiro,
> 
> Sorry for repeatly sending this email. My previous reply was rejected by the mailing list due to some weird base64 encoding.
> 
> I tend to agree with you since I could reproduce it using make.
> I want to share some of my debug. There is a label in Makefile, prepare3. When it runs correctly, the code under that label runs after the dependency "include/config/uboot.release". I can inject some echo to see the progress. However, for the failed run (no change of code or command, just repeatedly run), nothing runs after the dependency "
> include/config/uboot.release". The host is Ubuntu 12.04 x86_64. I am not sure if the inconsistency is cause by Kbuild.
> 

Sorry, I was mistaken about the host OS. It is CentOS 5.11, if that makes any
difference.

York
York Sun Nov. 21, 2014, 5:22 p.m. UTC | #14
On 11/20/2014 08:14 PM, Simon Glass wrote:
>> (and keep going)
> 
> This may be unrelated to buildman, but to check you can use the -i
> flag to enable an in-tree build.
> 

Thanks for the tip, but it didn't help. I repeatedly run 10 times. 3 out of 10
failed. FWIW, MAKEALL fails the same way. Is there anything funny about CentOS 5.11?

York
diff mbox

Patch

diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 8155c16..0411959 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -324,6 +324,7 @@  class Builder:
             kwargs: Arguments to pass to command.RunPipe()
         """
         cmd = [self.gnu_make] + list(args)
+       print cmd
         result = command.RunPipe([cmd], capture=True, capture_stderr=True,
                 cwd=cwd, raise_on_error=False, **kwargs)
         return result
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index a9cf68a..d9526e6 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -197,7 +197,7 @@  class BuilderThread(threading.Thread):
                         src_dir = os.getcwd()
                     else:
                         args.append('O=build')
-                args.append('-s')
+#                args.append('-s')
                 if self.builder.num_jobs is not None:
                     args.extend(['-j', str(self.builder.num_jobs)])
                 config_args = ['%s_defconfig' % brd.target]