Re: [PATCH 0/5] remove the last bits of a.out support

From: Dimitri John Ledkov
Date: Fri Nov 24 2023 - 09:37:20 EST


On Fri, 24 Nov 2023 at 06:01, Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote:
>
> Dimitri John Ledkov <dimitri.ledkov@xxxxxxxxxxxxx> writes:
>
> > I was working on how linux-libc-dev headers are shipped in Ubuntu and
> > stumbled upon seemingly unused and useless linux/a.out.h header. It
> > seems like it is an accidental leftover at this point.
>
> How do you see that they are unused?
>
> Are they never exported to userspace?
>
> Are there any userspace programs that care?
>
> Performing a quick debian code search I see chromium, qt6, ruby-rogue, hurd,
> bazel_bootstrap, aboot, cde.
>
> I can imagine all kinds of reasons old code could be using headers for a
> historical format. Some of them are quite legitimate, and some of them
> are quite silly. If it is old code like aboot it may be that it is
> difficult to test any changes. If memory serves you have to flash your
> firmware to change/test aboot.
>
> Because showing userspace does not care about the definitions in a file
> is a completely different problem then showing the kernel does not care
> about the definitions I left them, last time I was working in this area.
> Keeping headers that will never change is not cost to the kernel so it
> doesn't hurt us to be nice to historical userspace.
>
> My quick debian code search suggests that there are pieces of userspace
> that still use linux/a.out.h. Are you seeing something I am not?
> Do all of those pieces of code compile just fine with a.out.h missing?
>

I will recheck the above mentioned things again, but as far as I could
tell up to this point, is that things mostly use a.out.h provided by
glibc.

Separately, I can do this change in a test-rebuild of ubuntu archive
of all packages on amd64,. as that's the only Ubuntu arch that ships
linux/a.out.h.

As far as I can tell, the legacy userspace access to linux/a.out.h can
use glibc's a.out.h instead. But yes, it would be pain, if code
changes are required to things.

> Eric
>
>
> > Dimitri John Ledkov (5):
> > alpha: remove a.out support from tools/objstrip
> > alpha: stop shipping a.out.h uapi headers
> > m68k: stop shipping a.out.h uapi headers

I think above three patches still can be merged in m68k & alpha trees.

> > x86: stop shipping a.out.h uapi headers
> > uapi: remove a.out.h uapi header
> >

And these two need further validation now, based on Eric's input.

> > arch/alpha/boot/tools/objstrip.c | 52 +-----
> > arch/alpha/include/uapi/asm/a.out.h | 92 ----------
> > arch/m68k/include/uapi/asm/a.out.h | 21 ---
> > arch/x86/include/uapi/asm/a.out.h | 21 ---
> > include/uapi/Kbuild | 4 -
> > include/uapi/linux/a.out.h | 251 ----------------------------
> > 6 files changed, 6 insertions(+), 435 deletions(-)
> > delete mode 100644 arch/alpha/include/uapi/asm/a.out.h
> > delete mode 100644 arch/m68k/include/uapi/asm/a.out.h
> > delete mode 100644 arch/x86/include/uapi/asm/a.out.h
> > delete mode 100644 include/uapi/linux/a.out.h



--
okurrr,

Dimitri