BEZEICHNUNG¶
setarch - ändert die vom System gemeldete Architektur
und/oder setzt neue Personalisierungs-Schalter.
ÜBERSICHT¶
setarch [Architektur] [Optionen] [Programm
[Argument...]]
setarch --list|-h|-V
arch [Optionen] [Programm [Argument...]]
BESCHREIBUNG¶
setarch verändert Ausführungsdomänen
und Personalitätsschalter von Prozessen.
Die Ausführungsdomänen beeinflussen derzeit nur die
Ausgabe von uname -m. Beispielsweise sorgt der Aufruf von setarch
i386 Programm auf einem AMD64-System dafür, dass das
Programm den Rechnertyp als i686 sieht (oder eine andere relevante
Architektur) anstelle von x86_64. Es ermöglicht
außerdem das Setzen verschiedener Personalisierungsoptionen. Das
vorgegebene Programm ist /bin/sh.
Seit Version 2.33 ist das Befehlszeilenargument Architektur
optional und setarch kann zur Veränderung der
Personalitätsschalter (ADDR_LIMIT_*, SHORT_INODE, usw.) ohne
Änderung der Ausführungsdomäne verwendet werden.
OPTIONEN¶
--list
listet die Architekturen auf, die setarch kennt.
Ob allerdings setarch tatsächlich eine bestimmte dieser
Architekturen setzen kann, ist von dem laufenden Kernel abhängig.
--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
sorgt dafür, dass das Programm einen Kernel
mit einer Versionsnummer sieht, die mit 2.6 beginnt. Schaltet UNAME26
ein.
-v, --verbose
aktiviert den ausführlichen Modus.
-3, --3gb
gibt an, dass das Programm einen maximalen
Adressraum von 3 GB belegen soll. Unterstützt auf x86. Schaltet
ADDR_LIMIT_3GB ein.
--4gb
Diese Option hat keinen Effekt. Sie wird nur aus
Gründen der Abwärtskompatibilität unterstützt und
kann in zukünftigen Veröffentlichungen entfernt werden.
-B, --32bit
begrenzt den Adressraum auf 32 Bit, um Hardware zu
emulieren. Unterstützt auf ARM und Alpha. Schaltet
ADDR_LIMIT_32BIT ein.
-F, --fdpic-funcptrs
behandelt Funktionszeiger des Anwendungsraums auf
Signal-Handler als Zeiger auf Adressdeskriptoren. Diese Option hat auf
Architekturen, die keine FDPIC-ELF-Programme unterstützen,
keinen Effekt. In Kernel v4.14 ist die Unterstützung auf die
CPU-Architekturen ARM, Blackfin, Fujitsu FR-V und SuperH
beschränkt.
-I, --short-inode
Veralteter Fehleremulationsschalter. Schaltet
SHORT_INODE ein.
-L, --addr-compat-layout
stellt das alte Layout des virtuellen Adressraums bereit.
Verwenden Sie dies, falls das Programm nicht über den
PT_GNU_STACK-ELF-Header verfügt. Schaltet
ADDR_COMPAT_LAYOUT ein.
-R, --addr-no-randomize
deaktiviert die Randomisierung des virtuellen
Adressraums. Schaltet ADDR_NO_RANDOMIZE ein.
-S, --whole-seconds
Veralteter Fehleremulationsschalter. Schaltet
WHOLE_SECONDS ein.
-T, --sticky-timeouts
Dies führt dazu, dass die Systemaufrufe
select(2),
pselect(2) und
ppoll(2) den Wert der
Zeitüberschreitung beibehalten, anstatt ihn so zu verändern,
dass er die Zeit wiedergibt, die während einer Unterbrechung durch
einen Signal-Handler nicht geschlafen wurde. Verwenden Sie dies, wenn das
Programm von diesem Verhalten abhängt. Für weitere
Details siehe die Zeitüberschreitungsbeschreibung in der Handbuchseite
select(2). Schaltet
STICKY_TIMEOUTS ein.
-X, --read-implies-exec
Falls dies gesetzt ist, wird
mmap(2)
PROT_READ auch das Bit
PROT_EXEC hinzufügen - wie dies
von alten x86-Programmen erwartet wird. Beachten Sie, dass der ELF-Lader
dieses Bit automatisch setzen wird, wenn es ein altes Programm antrifft.
Schaltet
READ_IMPLIES_EXEC ein.
-Z, --mmap-page-zero
SVr4-Fehleremulation, die
mmap(2) auf Seite Null
als nur lesbar setzen wird. Verwenden Sie dies, wenn das
Programm von
diesem Verhalten abhängt und der Quellcode nicht zum Korrigieren
verfügbar ist. Schaltet
MMAP_PAGE_ZERO ein.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
-V, --version
zeigt Versionsinformationen an und beendet das
Programm.
BEISPIEL¶
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
AUTOREN¶
Elliot Lee <sopwith@redhat.com>, Jindrich Novy
<jnovy@redhat.com>, Karel Zak <kzak@redhat.com>