SETARCH(8) System Administration SETARCH(8)
NAME
setarch - change reported architecture in new program environment and set personality flags
SYNOPSIS
setarch arch [options] [program [argument...]]
arch [options] [program [argument...]]
setarch --list|-h|-V
DESCRIPTION
setarch 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.
OPTIONS
--list List the architectures that setarch knows about. Whether setarch can actually set each of these architectures depends on the run-
ning 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 architec-
tures 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_COM-
PAT_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 time-
out description in select(2) manual page. Turns on STICKY_TIMEOUTS.
-X, --read-implies-exec
If this is set then mmap(3) 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(3) 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 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>
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)