NUME¶
setarch - schimbă arhitectura raportată în
noul mediu de program și/sau stabilește fanioanele de
personalitate
REZUMAT¶
setarch [arhitectura] [opțiuni]
[program [argument...]]
setarch --list|-h|-V
arch [opțiuni] [program
[argument...]]
DESCRIERE¶
setarch modifică domeniile de execuție
și fanioanele de personalitate ale procesului.
Domeniile de execuție afectează în prezent
numai rezultatul uname -m. De exemplu, pe un sistem AMD64, rularea
setarch i386 program va face ca program să
vadă i686 în loc de x86_64 ca tip de
mașină. De asemenea, poate fi utilizat pentru a configura
diverse opțiuni de personalitate. programul implicit este
/bin/sh.
Începând cu versiunea 2.33, argumentul
arhitectura din linia de comandă este opțional, iar
setarch poate fi utilizat pentru a schimba fanioanele de
personalitate (ADDR_LIMIT_*, SHORT_INODE, etc.) fără a
modifica domeniul de execuție.
OPȚIUNI¶
--list
Listează arhitecturile pe care setarch le
cunoaște. Faptul că setarch poate stabili efectiv fiecare
dintre aceste arhitecturi depinde de nucleul care rulează.
--show[=personalitatea]
Afișează personalitatea și
fanioanele active în prezent. Dacă este furnizat argumentul
personalitatea, aceasta este afișată în locul
celei curente. personalitatea este un număr hexazecimal cu
valorile care au fost descrise în sys/personality.h.
--uname-2.6
Determină ca programul să
vadă un număr de versiune de nucleu care începe cu 2.6.
Activează UNAME26.
-v, --verbose
Oferă informații detaliate la
ieșire.
-3, --3gb
Specifică faptul că programul
trebuie să utilizeze maximum 3GB de spațiu de adresare.
Compatibil cu x86. Activează ADDR_LIMIT_3GB.
--4gb
Această opțiune nu are niciun efect. Este
păstrată doar pentru compatibilitate retroactivă
și poate fi eliminată în versiunile viitoare.
-B, --32bit
Limitează spațiul de adrese la 32 de
biți pentru a emula hardware-ul. Compatibil cu ARM și Alpha.
Activează ADDR_LIMIT_32BIT.
-F, --fdpic-funcptrs
Tratează indicatorii de funcție din
spațiul utilizatorului către gestionarii de semnal ca indicatori
către descriptori de adresă. Această opțiune nu
are niciun efect asupra arhitecturilor care nu acceptă binare ELF
FDPIC. În nucleul v4.14, suportul este limitat la arhitecturile
de procesoare ARM, Blackfin, Fujitsu FR-V și SuperH.
-I, --short-inode
Fanion de emulare a erorilor învechit.
Activează SHORT_INODE.
-L, --addr-compat-layout
Furnizează o dispunere a spațiului de
adrese virtuale moștenit. Se utilizează atunci când
programul binar nu are antetul ELF PT_GNU_STACK.
Activează ADDR_COMPAT_LAYOUT.
-R, --addr-no-randomize
Dezactivează generarea aleatorie a
spațiului de adrese virtuale. Activează
ADDR_NO_RANDOMIZE.
-S, --whole-seconds
Fanion de emulare a erorilor învechit.
Activează WHOLE_SECONDS.
-T, --sticky-timeouts
Acest lucru face ca apelurile de sistem
select(2),
pselect(2) și
ppoll(2) să păstreze valoarea
de așteptare, în loc să o modifice pentru a reflecta
perioada de timp nelucrată atunci când este
întreruptă de un gestionar de semnal. Se utilizează
atunci când
program depinde de acest comportament. Pentru mai
multe detalii, consultați descrierea „timeout”
(așteptare) în pagina de manual
select(2).
Activează
STICKY_TIMEOUTS.
-X, --read-implies-exec
Dacă această opțiune este
stabilită, atunci
mmap(2) PROT_READ va adăuga
și bitul
PROT_EXEC - așa cum se așteaptă
binarele x86 tradiționale. Rețineți că
încărcătorul ELF va activa automat acest bit atunci
când întâlnește un binar vechi. Activează
READ_IMPLIES_EXEC.
-Z, --mmap-page-zero
Emulare eroare SVr4 care va stabili pagina zero
mmap(2) ca fiind numai-pentru-citire. Se utilizează atunci
când
program depinde de acest comportament, iar codul
sursă nu este disponibil pentru a fi corectat. Activează
MMAP_PAGE_ZERO.
-h, --help
Afișează acest mesaj de ajutor și
iese.
-V, --version
Afișează informațiile despre
versiune și iese.
EXEMPLU¶
setarch --addr-no-randomize programulmeudetestare
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
AUTORI¶
Elliot Lee <sopwith@redhat.com>, Jindrich Novy
<jnovy@redhat.com>, Karel Zak <kzak@redhat.com>