EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

dpkg-buildflags - Online în cloud

Rulați dpkg-buildflags în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda dpkg-buildflags care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


dpkg-buildflags - returnează steagurile de compilare pentru a fi utilizate în timpul construirii pachetului

REZUMAT


dpkg-buildflags [opțiune...] [comandă]

DESCRIERE


dpkg-buildflags este un instrument pentru a prelua steaguri de compilare pentru a le utiliza în timpul construirii Debian
pachete. Indicatoarele implicite sunt definite de furnizor, dar pot fi extinse/supracrise
în mai multe moduri:

1. la nivelul întregului sistem cu /etc/dpkg/buildflags.conf;

2. pentru utilizatorul actual cu $XDG_CONFIG_HOME/dpkg/buildflags.conf Unde
$XDG_CONFIG_HOME implicit la $HOME/.config;

3. temporar de către utilizator cu variabile de mediu (vezi secțiunea MEDIUL);

4. dinamic de către întreținătorul pachetului cu variabilele de mediu setate prin
debian/rules (vezi secțiunea MEDIUL).

Fișierele de configurare pot conține două tipuri de directive:

SET pavilion valoare
Suprascrieți steagul numit pavilion a avea valoare valoare.

BANDĂ pavilion valoare
Dezlipiți de steagul numit pavilion toate steagurile de compilare enumerate în valoare.

ADĂUGA pavilion valoare
Extinde steagul numit pavilion prin atașarea opțiunilor date în valoare. Un spațiu este
se adaugă la valoarea adăugată dacă valoarea curentă a steagului nu este goală.

Prepend pavilion valoare
Extinde steagul numit pavilion prin antepunerea opțiunilor date în valoare. Un spațiu este
adăugată la valoarea adăugată în cazul în care valoarea curentă a steagului nu este goală.

Fișierele de configurare pot conține comentarii la rândurile care încep cu un hash (#). Gol
liniile sunt de asemenea ignorate.

COMANDE


--descărcare Imprimați la ieșirea standard toate indicatoarele de compilare și valorile acestora. Imprimă un steag
pe linie separată de valoarea sa printr-un semn egal („pavilion=valoare”). Acesta este
acțiune implicită.

--listă Tipăriți lista de steaguri acceptate de furnizorul curent (unul pe linie). Vezi
SPRIJINIT FLAGURI secțiune pentru mai multe informații despre ele.

--stare
Afișați orice informații care pot fi utile pentru a explica comportamentul
dpkg-buildflags (din dpkg 1.16.5): variabile de mediu relevante, curente
furnizor, starea tuturor steaguri de caracteristică. De asemenea, tipăriți steagurile compilatorului rezultate cu
originea lor.

Acesta este destinat să fie rulat de la debian/rules, astfel încât jurnalul de construcție să rămână clar
urma steagurilor de construcție utilizate. Acest lucru poate fi util pentru a diagnostica problemele legate de
Le.

--export=format
Imprimați la comenzi de ieșire standard care pot fi folosite pentru a exporta toată compilația
steaguri pentru un anumit instrument. Dacă format valoarea nu este dată, sh este asumat.
Sunt incluse doar steaguri de compilare care încep cu un caracter majuscul, altele
se presupune că nu sunt potrivite pentru mediu. Formate acceptate:

sh Comenzi Shell pentru a seta și a exporta toate steagurile de compilare din
mediu inconjurator. Valorile flag sunt cotate astfel încât ieșirea este gata pentru
evaluare de către o coajă.

cmdline
Argumente pentru a trece la linia de comandă a unui program de compilare pentru a utiliza toate
steaguri de compilare (de la dpkg 1.17.0). Valorile flag sunt cotate în shell
sintaxă.

configura
Acesta este un alias moștenit pentru cmdline.

face Faceți directive pentru a seta și a exporta toate steagurile de compilare din fișierul
mediu inconjurator. Ieșirea poate fi scrisă într-un fragment makefile și evaluată
folosind un include directivă.

--obține pavilion
Tipăriți valoarea steagului pe ieșirea standard. Iese cu 0 dacă steagul este cunoscut
altfel iese cu 1.

--origine pavilion
Tipăriți originea valorii returnate de --obține. Iese cu 0 dacă steag
este cunoscut altfel iese cu 1. Originea poate fi una dintre următoarele valori:

vânzător se returnează steagul original stabilit de vânzător;

sistem flag-ul este setat/modificat printr-o configurație la nivel de sistem;

utilizator flag-ul este setat/modificat printr-o configurație specifică utilizatorului;

env flag-ul este setat/modificat de o configurație specifică mediului.

--interogare-caracteristici zonă
Imprimați caracteristicile activate pentru o anumită zonă (începând cu dpkg 1.16.2). Singurul
zonele recunoscute în prezent pe Debian și derivatele sunt qa, reproductibil, steriliza
și întărire, vedeți FEATURE DOMENII sectiune pentru mai multe detalii. Iese cu 0 dacă
zona este cunoscută altfel iese cu 1.

Ieșirea este în format RFC822, cu o secțiune per caracteristică. De exemplu:

Caracteristică: plăcintă
Activat: nu

Caracteristică: stackprotector
Activat: da

--Ajutor Afișați mesajul de utilizare și ieșiți.

--versiune
Afișați versiunea și ieșiți.

SPRIJINIT FLAGURI


CFLAGS Opțiuni pentru compilatorul C. Valoarea implicită setată de furnizor include -g si
nivelul de optimizare implicit (-O2 de obicei, sau -O0 dacă DEB_BUILD_OPTIONS
variabila de mediu defineste noopt).

CPPFLAGS
Opțiuni pentru preprocesorul C. Valoare implicită: gol.

CXXFLAGS
Opțiuni pentru compilatorul C++. La fel ca CFLAGS.

OBJCFLAGS
Opțiuni pentru compilatorul Objective C. La fel ca CFLAGS.

OBJCXXFLAGS
Opțiuni pentru compilatorul Objective C++. La fel ca CXXFLAGS.

GCJFLAGS
Opțiuni pentru compilatorul GNU Java (gcj). Un subset de CFLAGS.

FFLAGS Opțiuni pentru compilatorul Fortran 77. Un subset de CFLAGS.

FCFLAGS
Opțiuni pentru compilatorul Fortran 9x. La fel ca FFLAGS.

LDFLAGS
Opțiunile transmise compilatorului atunci când se leagă executabile sau obiecte partajate (dacă
linker este numit direct, atunci -Wl și , trebuie eliminate din aceste opțiuni).
Valoare implicită: gol.

Noi steaguri ar putea fi adăugate în viitor dacă este nevoie (de exemplu, pentru a sprijini alte
limbi).

FEATURE DOMENII


Fiecare caracteristică a zonei poate fi activată și dezactivată în DEB_BUILD_OPTIONS și
DEB_BUILD_MAINT_OPTIONS valoarea ariei variabilei de mediu cu „+"Și"-' modificator.
De exemplu, pentru a activa întărire funcția „plăcintă” și dezactivați funcția de „fortificare”.
poate face asta în debian/rules:

export DEB_BUILD_MAINT_OPTIONS=întărire=+placintă,-fortificare

Caracteristica specială toate (valid în orice zonă) poate fi folosit pentru a activa sau dezactiva toate zonele
caracteristici în același timp. Astfel, dezactivând totul în întărire zonă și abilitare
numai „format” și „fortify” pot fi realizate cu:

export DEB_BUILD_MAINT_OPTIONS=întărire=-toate,+format,+fortificare

qa
Mai multe opțiuni de compilare (detaliate mai jos) pot fi utilizate pentru a ajuta la detectarea problemelor în
cod sursă sau sistem de construcție.

bug Această setare (dezactivată implicit) adaugă orice opțiune de avertizare care detectează în mod fiabil
cod sursă problematic. Avertismentele sunt fatale.

canar Această setare (dezactivată în mod implicit) adaugă opțiuni de tip canary false la steagurile de construcție, deci
că jurnalele de construire pot fi verificate pentru modul în care se propagă steagurile de construcție și pentru a permite
găsirea oricărei omisiuni a setărilor standard de construcție. Singurul suportat în prezent
steagurile sunt CPPFLAGS, CFLAGS, OBJCFLAGS, CXXFLAGS și OBJCXXFLAGS cu steaguri setate la
-D__DEB_CANARY_pavilion_aleator-id__, și LDFLAGS setat la -Wl,-z,deb-canary-aleator-id.

steriliza
Mai multe opțiuni de compilare (detaliate mai jos) pot fi folosite pentru a ajuta la dezinfectarea rezultatului
binar împotriva corupțiilor de memorie, scurgeri de memorie, utilizare după liberă, curse de date de threading și
erori de comportament nedefinite.

adresa
Această setare (dezactivată implicit) adaugă -fsanitize=adresa la LDFLAGS și
-fsanitize=adresa -fno-omite-cadru-pointer la CFLAGS și CXXFLAGS.

fir Această setare (dezactivată implicit) adaugă -fsanitize=thread la CFLAGS, CXXFLAGS și
LDFLAGS.

scăpa Această setare (dezactivată implicit) adaugă -fsanitize=scurgere la LDFLAGS. Devine
dezactivat automat dacă fie adresa sau fir caracteristicile sunt activate, ca
ei o presupun.

nedefinit
Această setare (dezactivată implicit) adaugă -fsanitize=nedefinit la CFLAGS, CXXFLAGS
și LDFLAGS.

întărire
Mai multe opțiuni de compilare (detaliate mai jos) pot fi folosite pentru a ajuta la consolidarea rezultatului
binar împotriva atacurilor de corupție a memoriei sau furnizați mesaje de avertizare suplimentare în timpul
compilare. Cu excepția celor menționate mai jos, acestea sunt activate implicit pentru arhitecturile care
sprijină-i.

format Această setare (activată implicit) adaugă -Wformat -Werror=format-securitate la CFLAGS,
CXXFLAGS, OBJCFLAGS și OBJCXXFLAGS. Acest lucru va avertiza despre șirul de format necorespunzător
folosește și va eșua atunci când funcțiile de format sunt utilizate într-un mod care reprezintă posibil
probleme de securitate. În prezent, acest lucru avertizează despre apelurile către printf și scanf funcții
unde șirul de format nu este un șir literal și nu există argumente de format,
ca în printf(foo); în loc de printf("%s", foo); Aceasta poate fi o gaură de securitate dacă
șirul de format a venit de la o intrare nesigură și conține „%n”.

fortifica
Această setare (activată implicit) adaugă -D_FORTIFY_SOURCE=2 la CPPFLAGS. În timpul codului
generație, compilatorul cunoaște o mulțime de informații despre dimensiunile bufferului (unde
posibil) și încearcă să înlocuiască apelurile nesigure ale funcției buffer de lungime nelimitată
cu cele cu lungime limitată. Acest lucru este util în special pentru codul vechi, crufty.
În plus, șirurile de formatare din memoria inscriptabilă care conțin „%n” sunt blocate. Dacă
o aplicație depinde de un astfel de șir de format, va trebui să fie rezolvată.

Rețineți că pentru ca această opțiune să aibă vreun efect, sursa trebuie să fie și compilată cu
-O1 sau mai sus. Dacă variabila de mediu DEB_BUILD_OPTIONS conține noopt, Apoi
fortifica suportul va fi dezactivat, din cauza noilor avertismente emise de glibc 2.16
Și mai târziu.

stackprotector
Această setare (activată implicit dacă stackprotectorstrong nu este utilizat) se adaugă
-festack-protector --param=ssp-buffer-size=4 la CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FFLAGS și FCFLAGS. Acest lucru adaugă verificări de siguranță împotriva stivei
suprascrie. Acest lucru face ca multe atacuri potențiale de injectare de cod să fie întrerupte
situatii. În cel mai bun caz, acest lucru transformă vulnerabilitățile de injectare a codului în negare
de serviciu sau în non-probleme (în funcție de aplicație).

Această caracteristică necesită conectarea la glibc (sau un alt furnizor de
__stack_chk_fail), deci trebuie dezactivat atunci când construiți cu -nostdlib or
- de sine stătător sau asemănător.

stackprotectorstrong
Această setare (activată implicit) adaugă -fstack-protector-puternic la CFLAGS,
CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS și FCFLAGS. Acesta este un mai puternic
varianta de stackprotector, dar fără penalizări semnificative de performanță.

Dezactivarea stackprotector va dezactiva și această setare.

Această caracteristică are aceleași cerințe ca și stackprotector, și în plus, de asemenea
necesită gcc 4.9 și o versiune ulterioară.

relro Această setare (activată implicit) adaugă -Wl,-z,relro la LDFLAGS. În timpul programului
încărcați, mai multe secțiuni de memorie ELF trebuie să fie scrise de linker. Acest steaguri
încărcătorul să transforme aceste secțiuni numai în citire înainte de a preda controlul către
program. Cel mai important, acest lucru previne atacurile de suprascriere GOT. Dacă această opțiune este
dezactivat, bindnow va deveni de asemenea dezactivat.

bindnow
Această setare (dezactivată implicit) adaugă -Wl,-z,acum la LDFLAGS. În timpul încărcării programului,
toate simbolurile dinamice sunt rezolvate, permițând ca întregul PLT să fie marcat ca citire.
numai (datorită relro de mai sus). Opțiunea nu poate deveni activată dacă relro nu este
activat.

plăcintă Această setare (dezactivată implicit) adaugă -fPIE la CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FFLAGS și FCFLAGS, și -fPIE -plăcintă la LDFLAGS. Poziţie
Sunt necesare executabile independente pentru a profita de Aspectul spațiului de adrese
Randomizare, susținută de unele versiuni de kernel. În timp ce ASLR poate fi deja
aplicat pentru zonele de date din stivă și heap (brk și mmap), zonele de cod trebuie
fi compilat ca independent de poziție. Bibliotecile partajate fac deja acest lucru (-fPIC), deci
acestea câștigă automat ASLR, dar regiunile binare .text trebuie să fie construite PIE pentru a câștiga
ASLR. Când se întâmplă acest lucru, atacurile ROP (Return Oriented Programming) sunt mult mai grele
deoarece nu există locații statice din care să sară în timpul unei corupții de memorie
atac.

Acest lucru nu este compatibil cu -fPIC deci trebuie avut grijă atunci când clădirea este comună
obiecte.

În plus, deoarece PIE este implementat printr-un registru general, unele arhitecturi
(mai ales i386) poate vedea pierderi de performanță de până la 15% în segmentul de text foarte
sarcini mari de lucru pentru aplicații; majoritatea sarcinilor de lucru văd mai puțin de 1%. Arhitecturi cu
registrele mai generale (de exemplu amd64) nu văd o penalizare la fel de mare în cazul cel mai rău.

reproductibil
Opțiunile de compilare detaliate mai jos pot fi utilizate pentru a îmbunătăți reproductibilitatea construcției
sau furnizați mesaje de avertizare suplimentare în timpul compilării. Cu excepția celor menționate mai jos, acestea
sunt activate implicit pentru arhitecturile care le suportă.

nesfârșit
Această setare (activată implicit) adaugă -Wdata-ora la CPPFLAGS. Acest lucru va cauza
avertismente atunci când __TIMP__, __DATA__ și __TIMESTAMP-UL__ sunt folosite macro-uri.

MEDIUL


Există 2 seturi de variabile de mediu care fac aceleași operații, primul
(DEB_pavilion_op) nu ar trebui să fie niciodată folosit în interior debian/rules. Este destinat oricărui utilizator care dorește
pentru a reconstrui pachetul sursă cu diferite steaguri de compilare. Al doilea set
(DEB_pavilion_MAINT_op) trebuie folosit numai în debian/rules de către întreținătorii de pachete să se schimbe
steagurile de construcție rezultate.

DEB_pavilion_A STABILIT
DEB_pavilion_MAINT_SET
Această variabilă poate fi folosită pentru a forța valoarea returnată pentru data dată pavilion.

DEB_pavilion_BANDĂ
DEB_pavilion_MAINT_STRIP
Această variabilă poate fi folosită pentru a oferi o listă de opțiuni, separată de spații, care va fi
dezbrăcat din setul de steaguri returnate pentru dat pavilion.

DEB_pavilion_ADĂUGA
DEB_pavilion_MAINT_APPEND
Această variabilă poate fi folosită pentru a adăuga opțiuni suplimentare la valoarea returnată pentru
cel dat pavilion.

DEB_pavilion_PREPEND
DEB_pavilion_MAINT_PREPEND
Această variabilă poate fi folosită pentru a adăuga opțiuni suplimentare la valoarea returnată
pentru dat pavilion.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Aceste variabile pot fi utilizate de către un utilizator sau întreținător pentru a dezactiva/activa diverse zone
caracteristici care afectează steaguri de construcție. The DEB_BUILD_MAINT_OPTIONS suprascrie variabile
orice setare din DEB_BUILD_OPTIONS zone caracteristice. Vezi FEATURE DOMENII secțiune
pentru detalii.

Utilizați dpkg-buildflags online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad