Re: Scons Implicity Dependency not found issue

Hua Yanghao <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <CAPTzt1C=HJ-uTk2VvcUJjMv_A6xJFmJTvX_2hRh81_P_+qSHaQ@mail.gmail.com>
I finally reproduced this issue, however this --taskmastertrace=trace.log
the compilation passes instead of failing. Thoughts?

hua@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@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@huyangha-mobl:~/git/usw-abc $

On Tue, Oct 16, 2018 at 11:10 PM Hua Yanghao <[email protected]> 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 <[email protected]>
> 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 <[email protected]> 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 <[email protected]>
>>> 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 <[email protected]>
>>>> 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 <[email protected]>
>>>>> 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 <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> no it is static file.
>>>>>>>
>>>>>>> On Tue 16. Oct 2018 at 17:08, Bill Deegan <[email protected]>
>>>>>>> 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 <[email protected]>
>>>>>>>> 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 <
>>>>>>>>> [email protected]> 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 <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>> >>
>>>>>>>>> >> By the way, is scons scanner scans C file headers recursively?
>>>>>>>>> Thanks.
>>>>>>>>> >> On Tue, Oct 16, 2018 at 12:40 PM Hua Yanghao <
>>>>>>>>> [email protected]> 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
>>>>>>>>> >> [email protected]
>>>>>>>>> >> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>> >
>>>>>>>>> > _______________________________________________
>>>>>>>>> > Scons-users mailing list
>>>>>>>>> > [email protected]
>>>>>>>>> > https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>> _______________________________________________
>>>>>>>>> Scons-users mailing list
>>>>>>>>> [email protected]
>>>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Scons-users mailing list
>>>>>>>> [email protected]
>>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Scons-users mailing list
>>>>>>> [email protected]
>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Scons-users mailing list
>>>>>> [email protected]
>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>
>>>>> _______________________________________________
>>>>> Scons-users mailing list
>>>>> [email protected]
>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>
>>>> _______________________________________________
>>>> Scons-users mailing list
>>>> [email protected]
>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>
>>> _______________________________________________
>>> Scons-users mailing list
>>> [email protected]
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>> _______________________________________________
>> Scons-users mailing list
>> [email protected]
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.