[U-Boot] build fail due to dependence error

Dr. Philipp Tomsich philipp.tomsich at theobroma-systems.com
Mon Jul 9 08:36:55 UTC 2018


> On 9 Jul 2018, at 09:18, Patrick DELAUNAY <patrick.delaunay at st.com> wrote:
> 
>> From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Masahiro Yamada
>> Sent: lundi 9 juillet 2018 07:27
>> Subject: Re: [U-Boot] build fail due to dependence error
>> 
>> Hi.
>> 
>> 
>> 2018-07-09 11:39 GMT+09:00 Simon Glass <sjg at chromium.org>:
>>> +Masahiro who might know
>>> 
>>> On 2 July 2018 at 01:23, Dr. Philipp Tomsich
>>> <philipp.tomsich at theobroma-systems.com> wrote:
>>>> Kever,
>>>> 
>>>> Could you check the build artifacts in Jenkins to see whether after
>>>> the ‘make [configname]_defconfig’, the link for asm/arch is correctly
>>>> set up?
>>>> 
>>>> Thanks,
>>>> Philipp.
>>>> 
>>>> On 2 Jul 2018, at 09:54, Kever Yang <kever.yang at rock-chips.com> wrote:
>>>> 
>>>> Hi Simon,
>>>> 
>>>> 
>>>> On 06/30/2018 12:19 PM, Simon Glass wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> On 28 June 2018 at 01:41, Dr. Philipp Tomsich
>>>> <philipp.tomsich at theobroma-systems.com> wrote:
>>>> 
>>>> Kever,
>>>> 
>>>> is the link for ‘asm’ set up correctly?
>>>> 
>>>> Thanks,
>>>> Philipp.
>>>> 
>>>> On 28 Jun 2018, at 10:38, Kever Yang <kever.yang at rock-chips.com> wrote:
>>>> 
>>>> Hi Simon,
>>>> 
>>>>       Do you have any idea about this error?
>>>> 
>>>> 
>>>> CC      lib/asm-offsets.s
>>>> CC      arch/arm/lib/asm-offsets.s
>>>> fixdep: error opening config file:
>>>> arch/arm/include/asm/arch/hardware.h: No such file or directory
>>>> Kbuild:64: recipe for target 'arch/arm/lib/asm-offsets.s' failed
>>>> make[1]: *** [arch/arm/lib/asm-offsets.s] Error 2
>>>> make[1]: *** 正在等待未完成的任务....
>>>> CHK     include/config.h
>>>> Makefile:1340: recipe for target 'prepare0' failed
>>>> 
>>>> Thanks,
>>>> - Kever
>>>> 
>>>> On 06/01/2018 05:59 PM, Kever Yang wrote:
>>>> 
>>>> Hi Guys,
>>>> 
>>>>    I met below error from time to time when build U-Boot project.
>>>> 
>>>> fixdep: error opening config file:
>>>> arch/arm/include/asm/arch/hardware.h: No such file or directory
>>>> 
>>>>   The folder 'arch/arm/include/asm/arch' is a link for
>>>> 'arch/arm/include/asm/arch-rockchip',
>>>> 
>>>> which is dynamic generate by build system, I thinks there should be
>>>> some dependency issue?
>>>> 
>>>>   How to fix this kind of issue?
>>>> 
>>>> I am not sure what is going on there. I don't see this.
>>>> 
>>>> Are you using 'make distclean' or 'make mrproper' on your object tree
>>>> every now and then?
>>>> 
>>>> 
>>>> This is happen sometimes in our Jenkins verify, It will gone when I
>>>> rebase the patch(re-build without any change), we do 'make distclean'
>>>> every time before a new build.
>> 
>> 
>> Hmm, I cannot reproduce this error.
>> 
>> 
>> I have no clue about this.
> 
> Just for information, I have also the same issue sometime in the same context (Jenkins build) for stm32mp1 board.
> 
> The error is : "Missing stm32.h file in the directory include/asm/arch/"
> 
> I try to understood the dependency issue, but I don't found any issue: 
> the needed symbolic link is done just before in the trace of the artifact...
> 
> 2018-03-03-17-00-02] | if [ -d /opt/STM/workspace/workdir/rdk/build-stm32mp1/tmp-glibc/work/stm32mp1-stm32mpvalid-linux-gnueabi/u-boot-basic-stm32mp/2018.01-git-AUTOINC+d741b91b3c.r0/git/arch/arm/mach-stm32mp/include/mach ]; then   \
> [2018-03-03-17-00-02] |        dest=arch/arm/mach-stm32mp/include/mach;                 \
> [2018-03-03-17-00-02] | else                                                                 \
> [2018-03-03-17-00-02] |        dest=arch/arm/include/asm/arch-stm32mp;       \
> [2018-03-03-17-00-02] | fi;                                                                  \
> [2018-03-03-17-00-02] | ln -fsn /opt/STM/workspace/workdir/rdk/build-stm32mp1/tmp-glibc/work/stm32mp1-stm32mpvalid-linux-gnueabi/u-boot-basic-stm32mp/2018.01-git-AUTOINC+d741b91b3c.r0/git/$dest include/asm/arch
> [2018-03-03-17-00-02] | fixdep: error opening config file: include/asm/arch/stm32.h: No such file or directory
> 
> I don't understood why the dependency failed....
> 
> Perhaps it is because in our Jenkins task the parallel compilation is requested with high value... (-J 8)
> and the dependency check is done in parallel of the link creation….

For what it’s worth: I always build with -j8 on my main development system and have
never (my expectation would be that it should have cropped up at least a few times
over the years) encountered this. 

> The  dependancy are :
> ./arch/arm/lib/asm-offsets.c => Kbuild 
> 
> with:
> lib/asm-offsets.s: lib/asm-offsets.c FORCE
> 
> 
> but the link on the directory is requested only by the rules about config.h not for stm32.h (or hardware.h in your case):
> ./scripts/Makefile.autoconf:115:include/config.h: scripts/Makefile.autoconf create_symlink FORCE
> 
> Perhaps add  a simple rule in some makefile can solve the issue....
> 
> For me
> 
> 	include/asm/arch/stm32.h: create_symlink
> 
> or for you :
> 
> 	include/asm/arch/hardware.h: create_symlink
> 
> 
> or it is better to add generic dependancy in ./scripts/Makefile.autoconf ?
> 
> 	include/asm/arch/*.h: create_symlink
> 
> 
>> --
>> Best Regards
>> Masahiro Yamada
> 
> Regards
> 
> Patrick.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot



More information about the U-Boot mailing list