Re: System Call trashing registers

From: Joshua Hudson
Date: Mon Aug 28 2023 - 12:43:09 EST


On Mon, Aug 28, 2023 at 8:06 AM Pavel Machek <pavel@xxxxxx> wrote:
>
> Hi!
>
> > 1) A lot of my old 32-bit programs don't work on x64 linux anymore
> > because int 80h now trashes ecx and edx. This hasn't been a serious
> > problem for me.
> >
>
> I guess you should cc x86 maintainers?
>
> I guess this is a regression? When did it start?
>
> BR,
> Pavel
> --
> People of Russia, stop Putin before his war on Ukraine escalates.

It started when the openat() syscall was added. It got fixed a few times.
I suspect it stayed fixed on an actual x86 kernel but the x86_64 kernel
still exhibits it being broken. But I don't run an x86 kernel anymore for
the obvious reason.

Source code can be found here. The project effectively died with
floppy disks so last release in 2006 is about right.

https://asm.sourceforge.net/asmutils.html

But if I try the couple of tools that still have real value, they just
segfault.

Remaining useful tools: tr, httpd, chmod, mv, ln