lkml.org 
[lkml]   [2012]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] [RFC] cross-arch: don't corrupt personality flags upon exec()
Date
On Wednesday 15 August 2012, Andrew Morton wrote:
> Extra marks will be awarded if you can work out whether to use
> PER_LINUX_32BIT ;)

I'll try this:

PER_LINUX_32BIT is defined as (PER_LINUX | ADDR_LIMIT_32BIT).

The ADDR_LIMIT_32BIT flag is used in exactly two places in the kernel:

1. On alpha, it limits the available address space to 32 bits, in order to
run certain legacy applications (Netscape) that are not 64 bit safe and were
compiled with an interesting 32 bit user space mode with 64 bit syscalls.

2. on ARM, it is used to /not/ limit the user address space to 26 bits.
For all practical purposes, one must set the ADDR_LIMIT_32BIT flag to
run modern applications now.

The avr32, microblaze architectures always set PER_LINUX_32BIT because they
copied from ARM, but the flag has no effect there.

On tile, the PER_LINUX_32BIT is always set for 32 bit compat tasks in a 64 bit
kernel, which is harmless but wrong anyway. Also this, tile never calls
set_personality, which is also harmless because it just means that exec_domain
switching on tile is broken, but the only non-bogus exec_domain besides the
default one is an experimental support for Acorn RISC OS binaries that was
last updated in 2002 for for linux-2.5.49.

Arnd


\
 
 \ /
  Last update: 2012-08-22 22:01    [W:0.988 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site