Settle on "no effect", concretify vaguely-described behaviours; both [to be documented]s replaced with documentation (these match my 6.2 checkout, if there were subtleties in the history they got lost). Added the full system names to the PER_s that lacked them; no clue what UW7 is though. Didn't validate or chase down the versions except for PER_RISCOS. Having these be sorted instead of in the original enumeration order is really more trouble than it's worth. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> --- man2/personality.2 | 96 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 28 deletions(-) diff --git a/man2/personality.2 b/man2/personality.2 index caca709b8..598e2cd2f 100644 --- a/man2/personality.2 +++ b/man2/personality.2 @@ -67,10 +67,12 @@ With this flag set, use 0xc0000000 as the offset at which to search a virtual memory chunk on .BR mmap (2); otherwise use 0xffffe000. +Applies to 32-bit x86 processes only. .TP .BR FDPIC_FUNCPTRS " (since Linux 2.6.11)" User-space function pointers to signal handlers point -(on certain architectures) to descriptors. +to descriptors. +Applies only to ARM if BINFMT_ELF_FDPIC and SuperH. .TP .BR MMAP_PAGE_ZERO " (since Linux 2.4.0)" Map page 0 as read-only @@ -85,7 +87,7 @@ for .BR mmap (2). .TP .BR SHORT_INODE " (since Linux 2.4.0)" -No effects(?). +No effect. .TP .BR STICKY_TIMEOUTS " (since Linux 1.2.0)" With this flag set, @@ -99,7 +101,7 @@ interrupted by a signal handler. .BR UNAME26 " (since Linux 3.1)" Have .BR uname (2) -report a 2.6.40+ version number rather than a 3.x version number. +report a 2.6.(40+x) version number rather than a MAJ.x version number. Added as a stopgap measure to support broken applications that could not handle the kernel version-numbering switch from Linux 2.6.x to Linux 3.x. @@ -127,111 +129,149 @@ Implies IRIX 6 64-bit. Implies .BR STICKY_TIMEOUTS ; -otherwise no effects. +otherwise no effect. .TP .BR PER_IRIXN32 " (since Linux 2.2)" IRIX 6 new 32-bit. Implies .BR STICKY_TIMEOUTS ; -otherwise no effects. +otherwise no effect. .TP .BR PER_ISCR4 " (since Linux 1.2.0)" Implies .BR STICKY_TIMEOUTS ; -otherwise no effects. +otherwise no effect. .TP .BR PER_LINUX " (since Linux 1.2.0)" Linux. .TP .BR PER_LINUX32 " (since Linux 2.2)" -[To be documented.] +.BR uname (2) +returns the name of the 32-bit architecture in the +.I machine +field ("i686" instead of "x86_64", &c.). +.IP +Under ia64 (Itanium), processes with this personality don't have the +O_LARGEFILE +.BR open (2) +flag forced. +.IP +Under 64-bit ARM, setting this personality is forbidden if +.BR execve (2)ing +a 32-bit process would also be forbidden +(cf. the allow_mismatched_32bit_el0 kernel parameter and +.IR Documentation/arm64/asymmetric-32bit.rst ). .TP .BR PER_LINUX32_3GB " (since Linux 2.4)" -Implies +.BR PER_LINUX32 ; +implies .BR ADDR_LIMIT_3GB . .TP .BR PER_LINUX_32BIT " (since Linux 2.0)" -Implies +.BR PER_LINUX ; +implies .BR ADDR_LIMIT_32BIT . .TP .BR PER_LINUX_FDPIC " (since Linux 2.6.11)" -Implies +.BR PER_LINUX ; +implies .BR FDPIC_FUNCPTRS . .TP .BR PER_OSF4 " (since Linux 2.4)" OSF/1 v4. -On alpha, +.\" commit 987f20a9dcce3989e48d87cff3952c095c994445 +No effect since Linux 6.1, which removed a.out binary support. +Before, on alpha, .\" Following is from a comment in arch/alpha/kernel/osf_sys.c -clear top 32 bits of iov_len in the user's buffer for +would clear top 32 bits of iov_len in the user's buffer for compatibility with old versions of OSF/1 where iov_len was defined as. .IR int . .TP .BR PER_OSR5 " (since Linux 2.4)" -Implies +Same base personality as +.BR PER_SCOSVR3 , +but implies .B STICKY_TIMEOUTS and -.BR WHOLE_SECONDS ; -otherwise no effects. +.B WHOLE_SECONDS +instead. .TP -.BR PER_RISCOS " (since Linux 2.2)" -[To be documented.] +.BR PER_RISCOS " (since Linux 2.3.7; macro since Linux 2.3.13)" +Acorn RISC OS/Arthur (MIPS). +No effect. +.\" commit 125ec7b4e90cbae4eed5a7ff1ee479cc331dcf3c +Up to Linux v4.0, would set the emulation altroot to +.I /usr/gnemul/riscos +(cf.\& +.BR PER_SUNOS, +below). +Before then, up to Linux 2.6.3, just Arthur emulation. .TP .BR PER_SCOSVR3 " (since Linux 1.2.0)" +SCO UNIX System V Release 3. Implies .BR STICKY_TIMEOUTS , .BR WHOLE_SECONDS , and .BR SHORT_INODE ; -otherwise no effects. +otherwise no effect. .TP .BR PER_SOLARIS " (since Linux 2.4)" +Solaris. Implies .BR STICKY_TIMEOUTS ; -otherwise no effects. +otherwise no effect. .TP .BR PER_SUNOS " (since Linux 2.4.0)" -Implies +Sun OS. +Same as +.BR PER_BSD , +but implies .BR STICKY_TIMEOUTS . -Divert library and dynamic linker searches to +Prior to Linux 2.6.26, +diverted library and dynamic linker searches to .IR /usr/gnemul . -Buggy, largely unmaintained, and almost entirely unused; -support was removed in Linux 2.6.26. +Buggy, largely unmaintained, and almost entirely unused. .TP .BR PER_SVR3 " (since Linux 1.2.0)" +AT&T UNIX System V Release 3. Implies .B STICKY_TIMEOUTS and .BR SHORT_INODE ; -otherwise no effects. +otherwise no effect. .TP .BR PER_SVR4 " (since Linux 1.2.0)" +AT&T UNIX System V Release 4. Implies .B STICKY_TIMEOUTS and .BR MMAP_PAGE_ZERO ; -otherwise no effects. +otherwise no effect. .TP .BR PER_UW7 " (since Linux 2.4)" Implies .B STICKY_TIMEOUTS and .BR MMAP_PAGE_ZERO ; -otherwise no effects. +otherwise no effect. .TP .BR PER_WYSEV386 " (since Linux 1.2.0)" +WYSE UNIX System V/386. Implies .B STICKY_TIMEOUTS and .BR SHORT_INODE ; -otherwise no effects. +otherwise no effect. .TP .BR PER_XENIX " (since Linux 1.2.0)" +XENIX. Implies .B STICKY_TIMEOUTS and .BR SHORT_INODE ; -otherwise no effects. +otherwise no effect. .SH RETURN VALUE On success, the previous .I persona -- 2.30.2
Attachment:
signature.asc
Description: PGP signature