On Wed, Aug 13, 2014 at 02:37:11AM +0100, Andy Lutomirski wrote: > On Tue, Aug 12, 2014 at 6:33 PM, <j...@joshtriplett.org> wrote: > > On Tue, Aug 12, 2014 at 05:08:53PM -0700, John Stultz wrote: > >> A more aggressive version of the previous proposal is what I’m calling the > >> “New Virtual-Architecture” approach, basically extending the versioning > >> control from the linker down into the kernel as well. It would be adding a > >> new “virtual-architecture” to the kernel, not entirely unlike how x32 is > >> supported on x86_64 systems. We would create entirely new ABI and > >> architecture name in the kernel (think something like “armllt” or > >> “i386llt”). We would preserve compatibility for legacy applications via > >> personalities, similar mechanism as the compat_ interface used to support > >> 32bit applications on 64bit kernels. In this case, we wouldn’t introduce > >> new 64 bit syscalls in the kernel, as the existing interfaces would just be > >> typed correctly for our new virtual architecture, but we would have > >> duplicate syscall interfaces via the compat interfaces. The extra > >> complexity would also be that we would have to support new 32bit compat > >> environment on 64bit systems. Userspace would be completely rebuilt to > >> support the new -llt architecture, and compatibility for legacy > >> applications would be done via the same multiarch packaging as is done now > >> for running 32bit applications on 64bit systems. > > > > I wonder: could we make this new architecture effectively use the > > signatures of the 64-bit syscalls (similar to x32), just with a 32-bit > > calling convention? > > Doesn't x32 do the reverse? It invokes *compat* syscalls using a > 64-bit calling convention.
Not entirely. It uses 64-bit syscalls primarily with compat only when sharing structures containing pointers. We are working on something similar for arm64 (called the ILP32 ABI). -- Catalin -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/