• Hirokazu Takata's avatar
    [PATCH] m32r: employ new kernel API/ABI · 681569ac
    Hirokazu Takata authored
    We, Linux/M32R project members, decided to change the kernel API/ABI.  This
    modification is not small, but if we don't change it now, perhaps we have
    no chance to change them hereafter.
    
    * Why change the m32r kernel API/ABI?
    - The m32r port has many old-style syscall interfaces,
      because we made m32r port refering to the other traditional archs.
      Some old syscalls are no longer used or can be safely removed
      by upgrading the GNU C library.
    - To make the m32r kernel more secure, it is preferable to prevent
      stack region from being executed. (e.g. stack overflow)
    
    * API/ABI changes
    - include/asm-m32r/unistd.h: Upgrade to the new kernel API.
    - arch/m32r/entry.S: Minimum update to the new ABI.
    - Don't use UID16 syscalls.
    - To make stack noexecutable:
      1) Don't use trampoline for signal handlers for kernel space (cf. sparc64):
        sys_signal: remove.
        sys_sigaction, sys_rt_sigaction: use glibc's restorer.
      2) Don't generate trampoline code by GCC in userspace:
        Support non-executable stack by the m32r gcc.
        --> done (for gcc-3.4.3/gcc-4.0)
    
    * New userland
    - This modification does *not* keep backward compatibility.
      So we have been prepared new userland, based on the new API/ABI.
      Already, more than 200 new Debian deb binary packages are available
      on the Linux/M32R site:
      http://debian.linux-m32r.org/dists/04_ordovician/ (for this new ABI)
    Signed-off-by: default avatarNIIBE Yutaka <gniibe@fsij.org>
    Signed-off-by: default avatarHirokazu Takata <takata@linux-m32r.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    681569ac
entry.S 25.8 KB