1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
//po4a: entry man manual
= setarch(8)
:doctype: manpage
:man manual: System Administration
:man source: util-linux {release-version}
:page-layout: base
:command: setarch
== NAME
setarch - change reported architecture in new program environment and/or set personality flags
== SYNOPSIS
*setarch* [_arch_] [options] [_program_ [_argument_...]]
*setarch* *--list*|*-h*|*-V*
*arch* [options] [_program_ [_argument_...]]
== DESCRIPTION
*setarch* modifies execution domains and process personality flags.
The execution domains currently only affects the output of *uname -m*. For example, on an AMD64 system, running *setarch i386* _program_ will cause _program_ to see i686 instead of _x86_64_ as the machine type. It can also be used to set various personality options. The default _program_ is */bin/sh*.
Since version 2.33 the _arch_ command line argument is optional and *setarch* may be used to change personality flags (ADDR_LIMIT_*, SHORT_INODE, etc) without modification of the execution domain.
== OPTIONS
*--list*::
List the architectures that *setarch* knows about. Whether *setarch* can actually set each of these architectures depends on the running kernel.
*--uname-2.6*::
Causes the _program_ to see a kernel version number beginning with 2.6. Turns on *UNAME26*.
*-v*, *--verbose*::
Be verbose.
*-3*, *--3gb*::
Specifies _program_ should use a maximum of 3GB of address space. Supported on x86. Turns on *ADDR_LIMIT_3GB*.
*--4gb*::
This option has no effect. It is retained for backward compatibility only, and may be removed in future releases.
*-B*, *--32bit*::
Limit the address space to 32 bits to emulate hardware. Supported on ARM and Alpha. Turns on *ADDR_LIMIT_32BIT*.
*-F*, *--fdpic-funcptrs*::
Treat user-space function pointers to signal handlers as pointers to address descriptors. This option has no effect on architectures that do not support *FDPIC* ELF binaries. In kernel v4.14 support is limited to ARM, Blackfin, Fujitsu FR-V, and SuperH CPU architectures.
*-I*, *--short-inode*::
Obsolete bug emulation flag. Turns on *SHORT_INODE*.
*-L*, *--addr-compat-layout*::
Provide legacy virtual address space layout. Use when the _program_ binary does not have *PT_GNU_STACK* ELF header. Turns on *ADDR_COMPAT_LAYOUT*.
*-R*, *--addr-no-randomize*::
Disables randomization of the virtual address space. Turns on *ADDR_NO_RANDOMIZE*.
*-S*, *--whole-seconds*::
Obsolete bug emulation flag. Turns on *WHOLE_SECONDS*.
*-T*, *--sticky-timeouts*::
This makes *select*(2), *pselect*(2), and *ppoll*(2) system calls preserve the timeout value instead of modifying it to reflect the amount of time not slept when interrupted by a signal handler. Use when _program_ depends on this behavior. For more details see the timeout description in *select*(2) manual page. Turns on *STICKY_TIMEOUTS*.
*-X*, *--read-implies-exec*::
If this is set then *mmap*(3p) *PROT_READ* will also add the *PROT_EXEC* bit - as expected by legacy x86 binaries. Notice that the ELF loader will automatically set this bit when it encounters a legacy binary. Turns on *READ_IMPLIES_EXEC*.
*-Z*, *--mmap-page-zero*::
SVr4 bug emulation that will set *mmap*(3p) page zero as read-only. Use when _program_ depends on this behavior, and the source code is not available to be fixed. Turns on *MMAP_PAGE_ZERO*.
include::man-common/help-version.adoc[]
== EXAMPLE
....
setarch --addr-no-randomize mytestprog
setarch ppc32 rpmbuild --target=ppc --rebuild foo.src.rpm
setarch ppc32 -v -vL3 rpmbuild --target=ppc --rebuild bar.src.rpm
setarch ppc32 --32bit rpmbuild --target=ppc --rebuild foo.src.rpm
....
== AUTHORS
mailto:sopwith@redhat.com[Elliot Lee],
mailto:jnovy@redhat.com[Jindrich Novy],
mailto:kzak@redhat.com[Karel Zak]
== SEE ALSO
*personality*(2),
*select*(2)
include::man-common/bugreports.adoc[]
include::man-common/footer.adoc[]
ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]
|