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