On Wed, Mar 3, 2021 at 11:38 AM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote: > > > But in the meantime, making the plugins depend on the gcc version some > > way is certainly better than not doing so. > > So currently, the plugins already so that. They require the GCC version > to be exact. If there's a mismatch, then it fails the OOT module build. That's not my experience. Yes, the build fails, but it fails not by _rebuilding_, but by failing with an error. IOW, it's a dependency problem. That said, I absolutely think that distros that think that stackleak is an important plugin should seriously have a plan to just move to clang, or push the gcc people to just add the "-ftrivial-auto-var-init" thing (and talk sense to the clang people who think that zero isn't good, and want to force a "pattern", but happily they haven't taken over the world yet). The kernel gcc plugins _will_ go away eventually. They are an unmitigated disaster. They always have been. I'm sorry I ever merged that support. It's not only a maintenance nightmare, it's just a horrible thing and interface in the first place. It's literally BAD TECHNOLOGY. Gcc plugins were badly done. They _should_ have been done twenty years ago as a proper IR (and people very much asked for them), but for political reasons the FSF was very much against any kind of intermediate representation that could be hooked into. It's one of the reasons clang has been so successful - having the whole LLVM IR model has made life _so_ much better for anybody working on any kind of compiler that it's not even funny. Gcc plugins were too little, too late, and are not even remotely a good model technically. LLVM did things right with a well-defined IR front and center, and while I dearly love gcc for a lot of reasons, I absolutely despise how badly gcc handled this all - and I despise how that horrible decision was never about technology, and was always due to bad politics on the part of FSF and rms. End result: gcc plugins are pure garbage, and you should shun them. If you really believe you need compiler plugins, you should look at clang. That really is the only sane technical answer. Linus