CxxStrip output is cached even when cxx.cache_links = false
See original GitHub issueWhen setting the config value cxx.cache_links = false
, CxxLink
rules are not cached. The option does not apply to CxxStrip
rules however, so the stripped binary is still cached. This has caused issues for us as certain changes will result in an app binary being relinked with a new dSYM created, but then the cached stripped binary is fetched and put in the app bundle. This causes symbolication to fail as the dSYM UUID is different from the binary.
The obvious option is to disable caching of CxxStrip
when cache_links = false
too, but I’m wondering if its ever safe to cache stripped binary output, at least on apple platforms. Is it possible that a change that would not affect the rulekeys would still cause a binary to be relinked with a different UUID?
Issue Analytics
- State:
- Created 5 years ago
- Comments:8 (4 by maintainers)
Top GitHub Comments
Thanks for the detailed comment. I had not noticed the UUIDs were being scrubbed, that definitely changes things. I’ll take a closer look at this and update the PR. What is interesting about the issue is that it only occurred for a single architecture of a fat binary, need to think about what could cause that.
You are right when it comes to fixing this bug, but I think it still makes sense to not cache stripped binaries and fat binaries for the same reason that it makes sense to not cache linked binaries in the first place. That can be a separate PR though.
I would like to say that we noticed this straight away, but TBH this could have been happening for years (ever?), we only discovered it recently by accident. We would have to dig through the build archives to know for sure.
I will try and script this to see if I can repro locally.