Re: GCC 15 -fzero-init-padding-bits= option and redzone clobber
Linus Torvalds <[email protected]>
| Newsgroups | org.kernel.vger.linux-toolchains |
|---|---|
| Message-ID | <CAHk-=witrc2d5T3Rb33yA63wfv9Ad_D6obdk3gX+NqS_mnRoUg@mail.gmail.com> |
On Sat, 30 Nov 2024 at 14:21, Segher Boessenkool <[email protected]> wrote: > > > I have absolutely no idea what "conversion of the register variable to > a global" would mean, so I cannot parse what this sentence is meant to > mean. That commit was for a clang issue, where clang was unhappy with a local definition of the stack pointer register. gcc didn't care, clang did. So that commit changed it from a local register variable to a global one, and the commit message talked about how gcc doesn't seem to care any more as long as it's there. > Yeah, and I don't see now. If there was a full testcase I could take a > look :-) There was at the time, but that "at the time" was 10 years ago. The gmane links no longer work, and unlike the more modern lore.kernel.org archives, the link itself contains no useful information for me to try to find it. So this is not the kernel one, but a gcc test at the time you replied to: https://gcc.gnu.org/legacy-ml/gcc/2015-07/msg00079.html > > But we technically still support those older gcc versions that require > > the old format (we still support back to gcc-5.1, although IO think > > we're about to make the jump up to 8.1 based on staid enterprise > > distro people finally having left some of the ancient stuff behind). > > Why 8.1? All our "we support this compiler version" tend to be about what distros still have. And "enterprise" in technology means "old and crappy, but some company supports it". So enterprise distros tend to use some god-awful 5+ year old setup, because the companies that pay the big bucks don't like to see version changes. > The problem is still not completely clear to me. Maybe some other GCC > people will do such a promise, but at least I won't. Sorry. So this is why we are sometimes forced to use hacks. You may not like it, but to *us*, the important part is "this works and doesn't generate buggy code", not "this is documented". Guess why we have random unnecessary "asm volatile" things too? Yeah. gcc bugs. They have been fixed, but not in older versions. Linus