SETARCH(8) System Administration SETARCH(8)
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
also allows 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 compati-
bility only, and may be removed in future releases.
-B, --32bit
Limit the address space to 32 bits to emulate hardware. Sup-
ported on ARM and Alpha. Turns on ADDR_LIMIT_32BIT.
-F, --fdpic-funcptrs
Treat user-space function pointers to signal handlers as point-
ers to address descriptors. This option has no effect on archi-
tectures that do not support FDPIC ELF binaries. In kernel
v4.14 support is limited to ARM, Blackfin, Fujitsu FR-V, and Su-
perH 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 pro-
gram 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 pre-
serve 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 encoun-
ters 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.
-V, --version
Display version information and exit.
-h, --help
Display help text and exit.
EXAMPLES
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
AUTHOR
Elliot Lee <sopwith@redhat.com>
Jindrich Novy <jnovy@redhat.com>
Karel Zak <kzak@redhat.com>
SEE ALSO
personality(2), select(2)
AVAILABILITY
The setarch command is part of the util-linux package and is available
from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-
linux/>.
util-linux December 2017 SETARCH(8)