On Tue, 2018-12-11 at 18:12 +0800, Robert Yang wrote: > On 12/11/18 5:44 PM, [email protected] wrote: > > On Tue, 2018-12-11 at 17:24 +0800, Robert Yang wrote: > > > On 12/10/18 6:29 PM, Richard Purdie wrote: > > No, that isn't correct :( > > > > The problem is that "gcc" can be linked directly to ccache by the > > host > > distro. This means you end up using the host ccache just by calling > > "gcc". This code is still needed if we want to control ccache and > > be > > able to disable it and use ccache-native for determinism. > > I did a test: > > $ ln -s /usr/bin/ccache /folk/lyang1/bin/gcc > I got errors with/without the code: > > $ bitbake -p > bb.BBHandledException > ERROR: Error running gcc --version: > > $ ls -l tmp/hosttools/gcc > tmp/hosttools/gcc -> /folk/lyang1/bin/gcc > > $ ls -l /folk/lyang1/bin/gcc > /folk/lyang1/bin/gcc -> /usr/bin/ccache > > It worked well if I run gcc --version manually: > $ gcc --version > gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609 > Copyright (C) 2015 Free Software Foundation, Inc. > $ echo $? > 0 > > There must be something wrong in such a case. I will fix this later. > > Let's get back to he code: > > srctool = bb.utils.which(path, tool, executable=True) > if "ccache" in srctool: > srctool = bb.utils.which(path, tool, > executable=True, direction=1) > if srctool: > os.symlink(srctool, desttool) > > > * If tool == "gcc", then srctool would be gcc, too. > * If tool == "ccache", then srctool would be ccache, too. > > So I think that the code doesn't help when gcc links to ccache ?
https://www.unix.com/man-page/suse/1/ccache/ When the distros we tested on did this they placed it in something like bin/ccache/ so the code detects the "ccache" element of the path returned by which() (something like /usr/bin/ccache/gcc but I don't remember exactly). Try using /folk/lyang1/ccache/ or /folk/lyang1/bin/ccache/ in your example. Cheers, Richard -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
