# linux64(8) - man - phpMan

[SETARCH(8)](https://www.chedong.com/phpMan.php/man/SETARCH/8/markdown)                              System Administration                             [SETARCH(8)](https://www.chedong.com/phpMan.php/man/SETARCH/8/markdown)



## 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)](https://www.chedong.com/phpMan.php/man/select/2/markdown), [**pselect**(2)](https://www.chedong.com/phpMan.php/man/pselect/2/markdown), and [**ppoll**(2)](https://www.chedong.com/phpMan.php/man/ppoll/2/markdown) 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)](https://www.chedong.com/phpMan.php/man/select/2/markdown) manual page. Turns on **STICKY**___**TIMEOUTS**.

### -X --read-implies-exec
           If this is set then [**mmap**(3p)](https://www.chedong.com/phpMan.php/man/mmap/3p/markdown) **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)](https://www.chedong.com/phpMan.php/man/mmap/3p/markdown) 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.

## 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
       Elliot Lee <<sopwith@redhat.com>>, Jindrich Novy <<jnovy@redhat.com>>, Karel Zak
       <<kzak@redhat.com>>

## SEE ALSO
       [**personality**(2)](https://www.chedong.com/phpMan.php/man/personality/2/markdown), [**select**(2)](https://www.chedong.com/phpMan.php/man/select/2/markdown)

## REPORTING BUGS
       For bug reports, use the issue tracker at <https://github.com/karelzak/util-linux/issues>.

## AVAILABILITY
       The **setarch** command is part of the util-linux package which can be downloaded from Linux
       Kernel Archive <<https://www.kernel.org/pub/linux/utils/util-linux/>>.



util-linux 2.37.2                            2021-07-20                                   [SETARCH(8)](https://www.chedong.com/phpMan.php/man/SETARCH/8/markdown)
