[Scons-users] Scons Implicity Dependency not found issue
Hua Yanghao
huayanghao at gmail.com
Wed Oct 17 16:06:25 EDT 2018
I finally reproduced this issue, however this --taskmastertrace=trace.log
the compilation passes instead of failing. Thoughts?
hua at huyangha-mobl:~/git/usw-abc $ ./run configs/pangu.py
Running : ./tools/scons -Q config=configs/pangu.py
INFO: Processing target usw ... Done.
INFO: usw_config completed in 0.19 seconds.
__CONFIG build/configs/pangu/usw/config/config.h
____SHCC build/configs/pangu/usw/firmware/arch/weak.os
______AR build/configs/pangu/usw/firmware/arch/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/arch/libdefault.o
____SHCC build/configs/pangu/usw/firmware/arch/pangu/lib.os
____SHCC build/configs/pangu/usw/firmware/arch/pangu/main.os
scons: *** [build/configs/pangu/usw/firmware/arch/pangu/test.os] Implicit
dependency `build/configs/pangu/usw/firmware/arch/pangu/include/io.h' not
found, needed by target
`build/configs/pangu/usw/firmware/arch/pangu/test.os'.
hua at huyangha-mobl:~/git/usw-abc $ ./run configs/pangu.py
--taskmastertrace=trace.log
Running : ./tools/scons -Q config=configs/pangu.py
--taskmastertrace=trace.log
INFO: Processing target usw ... Done.
INFO: usw_config completed in 0.21 seconds.
__CONFIG build/configs/pangu/usw/config/config.h
____SHCC build/configs/pangu/usw/firmware/arch/pangu/test.os
____SHCC build/configs/pangu/usw/firmware/boards/weak.os
______AR build/configs/pangu/usw/firmware/boards/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/boards/libdefault.o
____SHCC build/configs/pangu/usw/firmware/boards/pangu/board.os
____SHCC build/configs/pangu/usw/firmware/common/cpu.os
____SHCC build/configs/pangu/usw/firmware/common/weak.os
____SHCC build/configs/pangu/usw/firmware/common/log.os
______AR build/configs/pangu/usw/firmware/common/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/common/libdefault.o
____SHCC build/configs/pangu/usw/firmware/common/main.os
____SHCC build/configs/pangu/usw/firmware/drivers/pcie/dwc_ep.os
______AR build/configs/pangu/usw/firmware/drivers/pcie/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/drivers/pcie/libdefault.o
____SHCC build/configs/pangu/usw/firmware/lib/cmd/cmd.os
____SHCC build/configs/pangu/usw/firmware/lib/cmd/test.os
____SHCC build/configs/pangu/usw/firmware/lib/fio/cmd.os
____SHCC build/configs/pangu/usw/firmware/lib/fio/usw_device.os
____SHCC build/configs/pangu/usw/firmware/lib/fio/linux64_device.os
______AR build/configs/pangu/usw/firmware/lib/fio/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/lib/fio/libdefault.o
____SHCC
build/configs/pangu/usw/firmware/lib/simple_console/simple_console.os
______AR build/configs/pangu/usw/firmware/lib/simple_console/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/lib/simple_console/libdefault.o
____SHCC build/configs/pangu/usw/firmware/lib/simple_pipe/connect.os
____SHCC build/configs/pangu/usw/firmware/lib/simple_pipe/pipe.os
______AR build/configs/pangu/usw/firmware/lib/simple_pipe/libdefault.o
__RANLIB build/configs/pangu/usw/firmware/lib/simple_pipe/libdefault.o
____SHCC build/configs/pangu/usw/firmware/test/console/hello.os
____SHCC build/configs/pangu/usw/firmware/test/console/test.os
____SHCC build/configs/pangu/usw/firmware/test/example/test.os
____SHLD build/configs/pangu/usw/libusw.so
_USWHASH build/configs/pangu/usw/libusw.so
_USWHASH build/configs/pangu/usw/libusw.so --> Changed
hua at huyangha-mobl:~/git/usw-abc $
On Tue, Oct 16, 2018 at 11:10 PM Hua Yanghao <huayanghao at gmail.com> wrote:
> Config.h does not include any other headers. And the problem is it is not
> easily reproducible. However once it happens it is sticky. I will try
> harder tomorrow and get back to you. Thanks.
>
> On Tue 16. Oct 2018 at 23:06, Bill Deegan <bill at baddogconsulting.com>
> wrote:
>
>> Try running with
>>
>> --taskmastertrace=trace.log
>>
>> You'll get a pretty verbose log there, and search for io.h it should show
>> more information about what's happening.
>>
>> Is io.h included via "-include config.h" ?
>>
>> -Bill
>>
>> On Tue, Oct 16, 2018 at 5:01 PM Hua Yanghao <huayanghao at gmail.com> wrote:
>>
>>> Hi Bill,
>>> Sorry I missed that one.
>>>
>>> The full command line when hit the failure:
>>> gcc -o build/configs/pangu/usw/firmware/arch/pangu/test.os -c -g -Wall
>>> -Werror -include config.h -Wno-error=main -Wno-main -Wno-format-security
>>> -Wno-format -std=gnu99 -D_USW_FLAGS_TEST_0 -D_USW_FLAGS_TEST_1
>>> -D_USW_FLAGS_TEST_2 -fPIC -Ibuild/configs/pangu/usw/config
>>> -Ibuild/configs/pangu/usw/firmware/arch/pangu/include
>>> -Ibuild/configs/pangu/usw/firmware/include
>>> -Ibuild/configs/pangu/usw/firmware/arch/include
>>> -Ibuild/configs/pangu/usw/firmware/common/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/cmd/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/simple_pipe/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/fio/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/simple_console/include
>>> -Ibuild/configs/pangu/usw/firmware/test/example/include
>>> -Ibuild/configs/pangu/usw/firmware/test/console/include
>>> -Ibuild/configs/pangu/usw/firmware/boards/include
>>> -Ibuild/configs/pangu/usw/firmware/boards/pangu/include
>>> -Ibuild/configs/pangu/usw/firmware/drivers/pcie/include
>>> -Ibuild/configs/pangu/usw/config
>>> -Ibuild/configs/pangu/usw/firmware/arch/pangu/include
>>> -Ibuild/configs/pangu/usw/firmware/include
>>> -Ibuild/configs/pangu/usw/firmware/arch/include
>>> -Ibuild/configs/pangu/usw/firmware/common/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/cmd/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/simple_pipe/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/fio/include
>>> -Ibuild/configs/pangu/usw/firmware/lib/simple_console/include
>>> -Ibuild/configs/pangu/usw/firmware/test/example/include
>>> -Ibuild/configs/pangu/usw/firmware/test/console/include
>>> -Ibuild/configs/pangu/usw/firmware/boards/include
>>> -Ibuild/configs/pangu/usw/firmware/boards/pangu/include
>>> -Ibuild/configs/pangu/usw/firmware/drivers/pcie/include
>>> build/configs/pangu/usw/firmware/arch/pangu/test.c
>>>
>>> And my CPPPATH seems also matching the command line:
>>> ['/home/hua/git/usw/build/configs/pangu/usw/config',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/arch/pangu/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/arch/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/common/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/cmd/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/simple_pipe/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/fio/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/simple_console/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/test/example/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/test/console/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/boards/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/boards/pangu/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/drivers/pcie/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/config',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/arch/pangu/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/arch/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/common/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/cmd/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/simple_pipe/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/fio/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/lib/simple_console/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/test/example/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/test/console/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/boards/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/boards/pangu/include',
>>> '/home/hua/git/usw/build/configs/pangu/usw/firmware/drivers/pcie/include']
>>>
>>> Note the firmware/include is in both command line and CPPPATH, that's
>>> where my io.h is located.
>>>
>>> Best Regards,
>>> Yanghao
>>>
>>>
>>> On Tue, Oct 16, 2018 at 8:07 PM Bill Deegan <bill at baddogconsulting.com>
>>> wrote:
>>>
>>>> You've still not replied with the compile command line.
>>>> Also what's your CPPPATH?
>>>>
>>>>
>>>> On Tue, Oct 16, 2018 at 1:25 PM Hua Yanghao <huayanghao at gmail.com>
>>>> wrote:
>>>>
>>>>> it is the correct path and io.h is actually duplicated from
>>>>> firmware/include/io.h
>>>>>
>>>>> On Tue 16. Oct 2018 at 17:34, Bill Deegan <bill at baddogconsulting.com>
>>>>> wrote:
>>>>>
>>>>>> Is `build/configs/pangu/usw/firmware/arch/pangu/include/io.h' the
>>>>>> correct path to io.h?
>>>>>> Are you using duplicate=0, or not specifying in you SConscript()?
>>>>>> Are you using chdir somewhere in your SCons logic?
>>>>>>
>>>>>> Also, please paste the compile line for the compile which should find
>>>>>> io.h when it's passing?
>>>>>>
>>>>>> On Tue, Oct 16, 2018 at 11:14 AM Hua Yanghao <huayanghao at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> no it is static file.
>>>>>>>
>>>>>>> On Tue 16. Oct 2018 at 17:08, Bill Deegan <bill at baddogconsulting.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Is io.h a generated file?
>>>>>>>> Paste the compile line for the compile which should find io.h when
>>>>>>>> it's passing?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Oct 16, 2018 at 8:54 AM Hua Yanghao <huayanghao at gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Bill,
>>>>>>>>> Yes io.h is on my CPPPATH. And I am using variant_dir="build" for
>>>>>>>>> SConscript files. So normally all used header files will end up in
>>>>>>>>> the
>>>>>>>>> build folder too. But occasionally scons seems missed it. I am
>>>>>>>>> struggling to reproduce it ...
>>>>>>>>>
>>>>>>>>> BR, Yanghao
>>>>>>>>> On Tue, Oct 16, 2018 at 2:51 PM Bill Deegan <
>>>>>>>>> bill at baddogconsulting.com> wrote:
>>>>>>>>> >
>>>>>>>>> > Yes. Headers are scanned recursively.
>>>>>>>>> > Implicit cache should only be enable by command line flag or
>>>>>>>>> SetOption()
>>>>>>>>> >
>>>>>>>>> > Where is io.h located? is it in your CPPPATH?
>>>>>>>>> >
>>>>>>>>> > On Tue, Oct 16, 2018 at 6:43 AM Hua Yanghao <
>>>>>>>>> huayanghao at gmail.com> wrote:
>>>>>>>>> >>
>>>>>>>>> >> By the way, is scons scanner scans C file headers recursively?
>>>>>>>>> Thanks.
>>>>>>>>> >> On Tue, Oct 16, 2018 at 12:40 PM Hua Yanghao <
>>>>>>>>> huayanghao at gmail.com> wrote:
>>>>>>>>> >> >
>>>>>>>>> >> > scons: ***
>>>>>>>>> [build/configs/pangu/usw/firmware/arch/pangu/test.os]
>>>>>>>>> >> > Implicit dependency
>>>>>>>>> >> > `build/configs/pangu/usw/firmware/arch/pangu/include/io.h'
>>>>>>>>> not found,
>>>>>>>>> >> > needed by target
>>>>>>>>> `build/configs/pangu/usw/firmware/arch/pangu/test.os'
>>>>>>>>> >> >
>>>>>>>>> >> > I recently run into this odd problem, and it is very
>>>>>>>>> difficult to
>>>>>>>>> >> > reproduce. I did not explicitly enable the "implicit_cache"
>>>>>>>>> option
>>>>>>>>> >> > anywhere in my code. If I simply remove the build folder and
>>>>>>>>> then
>>>>>>>>> >> > re-build everything works as normal. the problem happens when
>>>>>>>>> there is
>>>>>>>>> >> > a old build, and then I pulled in some new code where this
>>>>>>>>> "test.c"
>>>>>>>>> >> > has included an additional header io.h and scons seems not
>>>>>>>>> re-scanning
>>>>>>>>> >> > the file by default.
>>>>>>>>> >> >
>>>>>>>>> >> > I am using scons 3.0.1, is the implict_cache by default
>>>>>>>>> enabled there
>>>>>>>>> >> > and I have to disable it manually?
>>>>>>>>> >> >
>>>>>>>>> >> > Thanks,
>>>>>>>>> >> > Yanghao Hua
>>>>>>>>> >> _______________________________________________
>>>>>>>>> >> Scons-users mailing list
>>>>>>>>> >> Scons-users at scons.org
>>>>>>>>> >> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>> >
>>>>>>>>> > _______________________________________________
>>>>>>>>> > Scons-users mailing list
>>>>>>>>> > Scons-users at scons.org
>>>>>>>>> > https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>> _______________________________________________
>>>>>>>>> Scons-users mailing list
>>>>>>>>> Scons-users at scons.org
>>>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Scons-users mailing list
>>>>>>>> Scons-users at scons.org
>>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Scons-users mailing list
>>>>>>> Scons-users at scons.org
>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Scons-users mailing list
>>>>>> Scons-users at scons.org
>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>
>>>>> _______________________________________________
>>>>> Scons-users mailing list
>>>>> Scons-users at scons.org
>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>
>>>> _______________________________________________
>>>> Scons-users mailing list
>>>> Scons-users at scons.org
>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>
>>> _______________________________________________
>>> Scons-users mailing list
>>> Scons-users at scons.org
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20181017/18dc6d93/attachment-0001.html>
More information about the Scons-users
mailing list