-
Notifications
You must be signed in to change notification settings - Fork 551
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
C compilers bottoming out in scripts may not cache correctly #235
Comments
Oh, this sucks. :-( gcc has a
clang's implementation of this seems to be more useful:
gcc's
With the toolchains in question, do you get useful output from that? If so we could fix sccache to use this as a cache input somehow, at the cost of an additional gcc invocation per compile (but presumably these |
Ah unfortunately for whatever reason the shell scripts for the musl compilers that collided in rust-lang/rust#48647 both don't work with
they do, however, have unique
Yeah that sounds totally plausible to me, and that way if someone wants to skip the extra invocation you could just switch it with a native executable (or something similar) |
Fun variant on this: on macOS, the
The last modified time on (For some additional color... I discovered this because my Firefox builds are done with ASAN. On macOS, ASAN has a symbol with a version in it, presumably to prevent incompatibility between the compiler-emitted ASAN bits and the runtime library. The result is that if you try to use the new linker with an old object file, you get an error as a result. This is not a part of upstream ASAN AFAIK.) |
Random though after having hit a similar problem again, how about hashing the output of |
This is sort of similar to #87 except for C compilers. First discovered here we had a situation that looked like:
mips-openwrt-linux-gcc
andmipsel-openwrt-linux-gcc
, were used$0
to figure out where to go (and is why the shell script operated differently in the two locations)sccache
theexecutable_digest
part of the hash key was then the same for both compilersAs a consequence this meant that the mips object files (built first) were used for the mipsel compiler, causing our issues!
I'm not really sure what the best way to solve this would be :(
The text was updated successfully, but these errors were encountered: