Post #2279981
2026-04-15 06:16 UTC
@pinskia@hachyderm.io @karolherbst@chaos.social yes. It was an accident that the compiler did something specific. People code to that and always have. That's exactly why this is an "unpopular opinion" thread.
There are a lot of situations where it would be significantly useful to be able to tell a newer compiler "I know it isn't the current idea of correct but the old behavior is what's needed."
To try to make this more concrete, I maintain the UEFI "shim" loader for linux. We regularly have to make binaries compile with a Debian style "reproducible" builds across many distros and many versions, and one of the largest problems is the compiler - both syntax / interpretation and optimizations. This is a forward compatibility problem and a significant backwards compatibility problem. In all cases, we'd rather have fewer signed objects than we do, but we can't rebuild something on a newer distro and get the same result on as an older distro, entirely because of compiler changes. The result is we have a lot more objects that need to be revoked in the end. We've done things to mitigate this, but having a compiler where you can ask for specific versions of behavior would significantly reduce the problem space.
Like it said at the top, not a popular take.
Replies (2)
-
@vathpela@infosec.exchange 2026-04-15 06:24
@pinskia@hachyderm.io @karolherbst@chaos.social (I'll note in this case there is no kernel and use after free is legitimately just my problem to solve.)
-
@pinskia@hachyderm.io 2026-04-15 06:24
@vathpela@infosec.exchange @karolherbst@chaos.social Not only it is not a popular take, it is a something that can't be done decently because of test explosion; there is no way to do that testing against every version out there. In your case `"reproducible" builds across many distros and many versions` is never going to happen because slight differences in compiler patches even for the same "version". Plus you have your own test explosion issues.