1. 46
  1.  

  2. 11

    What happened to “do not break user space”?

    1. 15

      The mailing list is worth a read.

      1. 3

        It won’t break any recent user space, unless it’s a really really old one. Where you can revert the patch and build your own kernel

        1. 9

          Well. You can always revert the patch and build your own kernel. That’s true for all other proposed and shut-down user space breakages too.

          What is the barrier after which breaking user space becomes acceptable? Until now, I felt like the mantra of the kernel was that no such barrier exists and that user space should never be broken. Now we learn that “never” is a somewhat fluid term even in the kernel

          1. 1

            Because I think the likeliihood that anybody cares about a.out core dumps is basically zero. While the likelihood that we have some odd old binary that is still a.out is slightly above zero.

            From the mailing list you were recommended to read. They believe they are breaking basically zero users.

            considering how even the toolchains cannot create a.out executables in its default configuration

            It’s even more unlikely that anyone using ancient toolchains still capable of generating a.out are also running a mainline kernel. If you’re using an ancient binary… same thing. You probably aren’t using a recent kernel.

        2. 2

          The commit message kind of implies that use space broke itself, and the kernel has been ‘supporting’ something that hasn’t worked for quite a while:

          […] but considering how even the toolchains cannot create a.out executables in its default configuration […]

          1. 3

            Sure. Tools can’t create them any more. But if I still had a binary around from waybackwhen, I could still run it today. Until the kernel removes support that is.

            Don’t get me wrong. I get it. a.out binaries are likely nowhere to be found any more. But some might. And this highlights he absurdity of the claim to never break userspace. At some point, you have to deprecate and remove things or you cannot ever move forward.

            1. 3

              They drop old architectures sometimes - that breaks all of userspace for those platforms…

              1. 3

                And this highlights he absurdity of the claim to never break userspace.

                The mailing list comment from Linus literally says that they won’t do it if anyone actually says ‘hey that will break my workflow’ and that if they do it and it does break someone’s workflow they’ll revert it.

          2. 4

            How would one generate an example a.out file (not the gcc filename, the actual format) in 2019?

            1. 2

              And a thousand beginner C programming tutorials cried out in anguish.

              1. 61

                IIUC, this isn’t referring to the default filename of “a.out”, but an ancient Linux executable file format by that name. To put it in perspective, the transition from a.out to ELF was a recent development when I started playing with Linux in 1996.

                1. 6

                  I believe the 2.1 dev kernel configuration menu way back when said “let’s kill this beast” about a.out support. I was so sure it had been removed already!

                  1. 5

                    Thanks for the clarification!