-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Use CCache on Travis #24998
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use CCache on Travis #24998
Conversation
staticfloat
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, don’t use override, just add this to the build opts
.travis.yml
Outdated
| export JULIA_TEST_MAXRSS_MB=600; | ||
| TESTSTORUN="all --skip linalg/triangular subarray"; fi # TODO: re enable these if possible without timing out | ||
| - echo "override JULIA_CPU_TARGET=generic;native" >> Make.user | ||
| - echo "override USECCACHE=1" >> Make.user |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't use USECCACHE=1 that option is quite broken.
CC=/usr/lib/ccache/bin/gcc
CXX=/usr/lib/ccache/bin/g++
works better. cc @maleadt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used it here because we're using it on CircleCI. It appears we even work around the -Qunused-arguments thing with Clang in Make.inc. The logic looks sound; what's broken about it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
with USECCACHE, the CC arg becomes ccache gcc, which in the case of cmake is implemented by setting eg. CMAKE_C_COMPILER to ccache and CMAKE_C_COMPILER_ARG1 to gcc. IIRC, this breaks other invocations of the toolchain, eg. with ar. Can't seem to find the relevant bug reports right now, but either way there's a much more robust way to invoke ccache: by using a symlink named eg. gcc pointing to the ccache binary. This avoids aforementioned difficulties in configuring the build.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not witnessed any problems with setting USECCACHE=1 on Linux builds. I do this for all builds on the buildbot, from scratch or otherwise.
[av skip] [bsd skip]
9c0103d to
180a61f
Compare
|
The AppVeyor i686 and Circle x86-64 failures are unrelated. |
USECCACHE is now in BUILDOPTS rather than in an override
[av skip] [bsd skip]
Hopefully with this, the master cache will stop poisoning the cache on release-0.6.