linux32

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(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  encoun-
              ters 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 --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)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.