I am working on a toolchain that lives outside of the system path. All the tools (gcc, ccache, cmake, valgrind etc) live in /some/random/path, with their own gcc/gcc-3.4.6 or ccache/ccache-2.4 directories under that. Within those directories, the packages binary install is under a directory like ccache-2.4-bin So the full path to g++ in this case is /some/random/path/gcc/gcc-4.4.1/gcc-4.4.1-bin/bin/g++ The build system (ant) then builds the tools with a controlled environment (e.g. by setting up PATH, LD_LIBRARY_PATH etc.). This approach works fine fro the tools built with autoconf/automake and the tools that are binary distributions (e.g. java jdk), and works fine with boost as long as I'm not trying to be clever. In /some/random/path/ccache/ccache-2.4/ccache-2.4-bin/bin I created symlinks to ccache names gcc and g++. I then set the PATH to run the boost build to be /some/random/path/ccache/ccache-2.4/ccache-2.4-bin/bin:/some/random/path /gcc/gcc-4.4.1/gcc-4.4.1-bin/bin:{rest of the system path} As stated, this approach works for all the other tools, but causes the boost build to diverge as described below and I don't understand why. I also tried adding symlinks named cpp and c++ but the behaviour described below didn't change... Thanks for your help, Tom -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Roland Bock Sent: 05 October 2009 18:13 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Use of ccache with Boost Dalton, Tom wrote:
Further to my questions from last week:
I've tried both methods - first I tried changing the toolset to make the gcc toolset use "ccache g++" as the compiler executable. I had some problems with that, so I tried the symlink approach suggested by Roland. This is also failing, with some seemingly very subtle bug that I can't
suss out.
The build progresses a little way, until it gets to libs/program_options/src/cmdline.cpp
When g++ isn't a symlink to ccache, I get the following output as shown by the attachment build.log.1.fragment. When I have gcc & g++ symlinks in the ccache bin dir pointing to ccache (the PATH is ccache/bin:real_gcc/bin), the output is like the second attachment and the file fails.
Hmm? What symlinks do you have in the ccache folder? I only required symlinks in /usr/local/bin, as described here http://ccache.samba.org/ccache-man.html I am using 4.2.4 and boost compiles with no problems at all. In daily life, I am using CMake, like Mathieu, but direct calls to g++ or compilation with configure&make never failed on me. Regards, Roland
The build logs diverge from that point onwards as more and more stuff either fails, or is skipped due to previous failures.
There are 2 issues that I can see from those logs. Firstly the line numbering on the .hpp includes is one-out on the ccache-enabled build. Does this mean the preprocessor is behaving strangely? Secondly, on line 15 of the failing fragment file, it looks like part of the output is cut off (at the end of the line, it gets "boost::_bi::list2<boost::_bi::v0.000008 sec system; 0.000164 sec
user".
Can anyone help me? I don't know what would cause either of these issues.
Tom
PS Using gcc 4.4.1, ccache 2.4 and tried boost 1.39.0 and 1.40.0, with
the same results.
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Dalton, Tom Sent: 29 September 2009 16:20 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Use of ccache with Boost
Daniel and Roland,
Thanks guys, that gives me some good avenues to explore.
Tom
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Daniel James Sent: 29 September 2009 16:07 To: boost-users@lists.boost.org Subject: Re: [Boost-users] Use of ccache with Boost
2009/9/29 Dalton, Tom <tom.dalton@eds.com>:
I'm using Boost on Linux however for various reasons I need to rebuild
parts of it occasionally. For other C/C++-based tools that are built with autoconf/automake, I've started to use ccache (http://ccache.samba.org/) to speed up recompilation. This is done simply by setting the CC / CXX environment variables to "ccache gcc" /
"ccache g++" respectively. I have had a look through the Jam documentation but I can't see an easy way to achieve the same thing when building the Boost distribution. The closest I came was a bit on
the trac that simply said I can add a new toolset, but had no real instructions as to how.
Create a file called 'user-config.jam' in your home directory, containing something like:
using gcc : : ccache g++ ;
Or possibly with the version number:
using gcc : 4.4 : ccache g++-4.4 ;
For more information see:
http://www.boost.org/doc/libs/1_40_0/doc/html/bbv2/advanced.html#bbv2. ad vanced.configuration
Daniel _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
---------------------------------------------------------------------- --
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users