setarch - Modifier l’architecture signalée dans un nouvel environnement de programme et définir les attributs de personnalité
setarch [arch] [options] [program [argument...]]
setarch --list|-h|-V
arch [options] [programme [argument...]]
setarch modifie les domaines d’exécution et les attributs de personnalité de processus.
Les domaines d’exécution n’affectent actuellement que la sortie de uname\ -m. Par exemple, sur un système AMD 64, l’exécution de setarch i386 programme aura pour conséquence que programme verra i686 au lieu de x86_64 comme type de machine. setarch peut être aussi utilisé pour régler diverses options de personnalité. Le programme par défaut est /bin/sh.
Depuis la version 2.33, l’argument arch de ligne de commande est facultatif et setarch peut être utilisé pour modifier les attributs de personnalité (ADDR_LIMIT_*, SHORT_INODE, etc) sans modification du domaine d’exécution.
--list
Afficher les architectures connues par setarch. La faculté de setarch à définir une de ces architectures dépend en réalité du noyau utilisé.
--show[=personality]
Show the currently active personality and flags. If the personality argument is provided, it is shown instead of the current one. personality is a hexadecimal number with values was described in sys/personality.h.
--uname-2.6
Forcer le programme à voir un numéro de version du noyau qui commence par 2.6. Activation de UNAME26.
-v, --verbose
Sortie détaillée.
-3, --3gb
Indiquer que programme ne doit utiliser qu’un maximum de 3 Go d’espace d’adressage. Prise en charge sur x86. Activation de ADDR_LIMIT_3GB.
--4gb
Cette option ne produit aucun effet. Elle est conservée pour des raisons de rétrocompatibilité et pourrait être supprimée dans une prochaine publication.
-B, --32bit
Limitation de l’espace d’adressage à 32 bits pour l’émulation du matériel. Prise en charge sur ARM et Alpha. Activation de ADDR_LIMIT_32BIT.
-F, --fdpic-funcptrs
Traiter les pointeurs de fonction en espace utilisateur vers des gestionnaires de signal comme des pointeurs vers des descripteurs d’adresse. Cette option n’a aucun effet sur les architectures ne gérant pas les binaires FDPIC ELF. Dans les noyaux de version 4.14, la prise en charge est limitée aux architectures de processeur ARM, Blackfin, Fujitsu FR-V et SuperH.
-I, --short-inode
Attribut obsolète d’émulation de bogue. Activation de SHORT_INODE.
-L, --addr-compat-layout
Fourniture de la disposition d’espace d’adressage virtuel historique. Utiliser quand le binaire de programme n’a pas d’en-tête PT_GNU_STACK ELF. Activation de ADDR_COMPAT_LAYOUT.
-R, --addr-no-randomize
Désactiver l’ajout d’aléa pour l’espace d’adressage virtuel. Activation de ADDR_NO_RANDOMIZE.
-S, --whole-seconds
Attribut obsolète d’émulation de bogue. Activation de WHOLE_SECONDS.
-T, --sticky-timeouts
Cette option fait que les appels système
select(2),
pselect(2) et
ppoll(2) préservent la valeur de temporisation au lieu de la modifier pour refléter la durée sans attente lors d’une interruption par un gestionnaire de signal. À utiliser quand
programme dépend de ce comportement. Pour plus de détails, consulter la description de la temporisation dans la page de manuel de
select(2). Activation de
STICKY_TIMEOUTS.
-X, --read-implies-exec
If this is set then
mmap(2) 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(2) 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.
-h, --help
Afficher l’aide-mémoire puis quitter.
-V, --version
Afficher le numéro de version et quitter.
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
Elliot Lee <sopwith@redhat.com>, Jindrich Novy <jnovy@redhat.com>, Karel Zak <kzak@redhat.com>
Pour signaler un bogue, utilisez le gestionnaire de bogues sur <https://github.com/util-linux/util-linux/issues>.
La commande setarch fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.