IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

dpkg-buildflags - Online nel cloud

Esegui dpkg-buildflags nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando dpkg-buildflags che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


dpkg-buildflags - restituisce i flag di compilazione da utilizzare durante la compilazione del pacchetto

SINOSSI


dpkg-buildflags [opzione...] [command]

DESCRIZIONE


dpkg-buildflags è uno strumento per recuperare i flag di compilazione da usare durante la compilazione di Debian
Pacchetti. I flag predefiniti sono definiti dal fornitore ma possono essere estesi/sostituiti
in diversi modi:

1. a livello di sistema con /etc/dpkg/buildflags.conf;

2. per l'utente corrente con $XDG_CONFIG_HOME/dpkg/buildflags.conf where
$XDG_CONFIG_HOME il valore predefinito è $HOME/.config;

3. temporaneamente dall'utente con variabili d'ambiente (vedi sezione AMBIENTE);

4. dinamicamente dal manutentore del pacchetto con le variabili di ambiente impostate tramite
debian/regole (vedi sezione AMBIENTE).

I file di configurazione possono contenere due tipi di direttive:

SET bandiera APPREZZIAMO
Sostituisci la bandiera denominata bandiera avere il valore APPREZZIAMO.

STRIP bandiera APPREZZIAMO
Striscia dalla bandiera denominata bandiera tutti i flag di build elencati in APPREZZIAMO.

AGGIUNGERE bandiera APPREZZIAMO
Estendere la bandiera denominata bandiera aggiungendo le opzioni fornite in APPREZZIAMO. Uno spazio è
anteposto al valore aggiunto se il valore corrente del flag non è vuoto.

PREPEND bandiera APPREZZIAMO
Estendere la bandiera denominata bandiera anteponendo le opzioni fornite in APPREZZIAMO. Uno spazio è
aggiunto al valore anteposto se il valore corrente del flag non è vuoto.

I file di configurazione possono contenere commenti su righe che iniziano con un cancelletto (#). Vuoto
anche le righe vengono ignorate.

COMANDI


--scarico Stampa sull'output standard tutti i flag di compilazione e i loro valori. Stampa una bandiera
per riga separato dal suo valore da un segno di uguale ("bandiera=APPREZZIAMO"). Questo è il
azione predefinita.

--elenco Stampa l'elenco dei flag supportati dal fornitore corrente (uno per riga). Vedi il
SUPPORTATI FLAGS sezione per maggiori informazioni su di essi.

--stato
Visualizza tutte le informazioni che possono essere utili per spiegare il comportamento di
dpkg-buildflags (da dpkg 1.16.5): variabili d'ambiente rilevanti, correnti
fornitore, stato di tutti i flag di funzionalità. Stampa anche i flag risultanti del compilatore con
la loro origine.

Questo è destinato a essere eseguito da debian/regole, in modo che il registro di build rimanga chiaro
traccia dei flag di build utilizzati. Questo può essere utile per diagnosticare problemi relativi a
Loro.

--esportazione=formato
Comandi di stampa su standard output che possono essere utilizzati per esportare tutta la compilation
flag per qualche strumento particolare. Se la formato il valore non è dato, sh è assunto.
Sono inclusi solo i flag di compilazione che iniziano con un carattere maiuscolo, altri
si presume che non siano adatti all'ambiente. Formati supportati:

sh Comandi della shell per impostare ed esportare tutti i flag di compilazione nel
ambiente. I valori dei flag sono quotati in modo che l'output sia pronto per
valutazione da una shell.

cmdline
Argomenti da passare alla riga di comando di un programma di compilazione per utilizzare tutti i
flag di compilazione (a partire da dpkg 1.17.0). I valori dei flag sono citati in shell
sintassi.

configure
Questo è un alias legacy per cmdline.

make Crea direttive per impostare ed esportare tutti i flag di compilazione nel
ambiente. L'output può essere scritto su un frammento di makefile e valutato
utilizzando un includere Direttiva.

--ottenere bandiera
Stampa il valore del flag sullo standard output. Esce con 0 se il flag è noto
altrimenti esce con 1.

--origine bandiera
Stampa l'origine del valore restituito da --ottenere. Esce con 0 se il flag
è noto altrimenti esce con 1. L'origine può essere uno dei seguenti valori:

venditore viene restituito il flag originale impostato dal venditore;

sistema il flag è impostato/modificato da una configurazione a livello di sistema;

Utente il flag viene impostato/modificato da una configurazione specifica dell'utente;

ENV il flag viene impostato/modificato da una configurazione specifica dell'ambiente.

--query-caratteristiche area
Stampa le funzionalità abilitate per una determinata area (da dpkg 1.16.2). Il solo
le aree attualmente riconosciute su Debian e derivati ​​sono qa, riproducibile, sanitizzare
ed tempra, Vedere la FEATURE LE ZONE sezione per maggiori dettagli. Esce con 0 se il
l'area è nota altrimenti esce con 1.

L'output è in formato RFC822, con una sezione per caratteristica. Per esempio:

Caratteristica: torta
Abilitato: no

Caratteristica: stackprotector
Abilitato: sì

--Aiuto Mostra il messaggio di utilizzo ed esci.

--versione
Mostra la versione ed esci.

SUPPORTATI FLAGS


FLAG Opzioni per il compilatore C. Il valore predefinito impostato dal fornitore include -g e la
livello di ottimizzazione predefinito (-O2 di solito, o -O0 se l' DEB_BUILD_OPTIONS
la variabile d'ambiente definisce noopt).

CPPFLAG
Opzioni per il preprocessore C. Valore predefinito: vuoto.

CXXFLAG
Opzioni per il compilatore C++. Uguale a FLAG.

OGGETTI
Opzioni per il compilatore Objective C. Uguale a FLAG.

OBJCXX FLAGS
Opzioni per il compilatore Objective C++. Uguale a CXXFLAG.

GCJFLAGS
Opzioni per il compilatore GNU Java (gcj). Un sottoinsieme di FLAG.

FLAGS Opzioni per il compilatore Fortran 77. Un sottoinsieme di FLAG.

BANDIERE FC
Opzioni per il compilatore Fortran 9x. Uguale a FLAGS.

LDFLAG
Opzioni passate al compilatore quando si collegano eseguibili o oggetti condivisi (se il
linker viene chiamato direttamente, quindi -Wl ed , devono essere eliminati da queste opzioni).
Valore predefinito: vuoto.

Nuovi flag potrebbero essere aggiunti in futuro se necessario (ad esempio per supportare altri
le lingue).

FEATURE LE ZONE


Ogni funzione dell'area può essere abilitata e disabilitata nel DEB_BUILD_OPTIONS ed
DEB_BUILD_MAINT_OPTIONS valore dell'area della variabile d'ambiente con il '+' e '-' modificatore.
Ad esempio, per abilitare il tempra funzione "torta" e disabilita la funzione "fortifica" tu
può farlo in debian/regole:

export DEB_BUILD_MAINT_OPTIONS=indurimento=+torta,-fortifica

La particolarità contro tutti i (valido in qualsiasi area) può essere utilizzato per abilitare o disabilitare tutte le aree
caratteristiche allo stesso tempo. Quindi disabilitando tutto nel tempra zona e abilitazione
solo “format” e “fortifica” possono essere realizzati con:

esporta DEB_BUILD_MAINT_OPTIONS=indurimento=-tutto,+formato,+fortifica

qa
Diverse opzioni in fase di compilazione (dettagliate di seguito) possono essere utilizzate per aiutare a rilevare problemi nel
codice sorgente o sistema di compilazione.

insetto Questa impostazione (disabilitata per impostazione predefinita) aggiunge qualsiasi opzione di avviso che rileva in modo affidabile
codice sorgente problematico. Gli avvertimenti sono fatali.

canarino Questa impostazione (disabilitata per impostazione predefinita) aggiunge opzioni canary fittizie ai flag di compilazione, quindi
che i log di build possono essere controllati per come si propagano i flag di build e per consentire
trovando qualsiasi omissione delle normali impostazioni dei flag di build. L'unico attualmente supportato
le bandiere sono CPPFLAG, FLAG, OGGETTI, CXXFLAG ed OBJCXX FLAGS con le bandiere impostate su
-D__DEB_CANARY_bandiera_ID casuale__e LDFLAG impostato -Wl,-z,deb-canarino-ID casuale.

sanitizzare
Diverse opzioni in fase di compilazione (dettagliate di seguito) possono essere utilizzate per aiutare a disinfettare un risultato
binario contro danneggiamenti della memoria, perdite di memoria, uso dopo libero, corse di dati di threading e
bug di comportamento indefinito.

indirizzo
Questa impostazione (disabilitata per impostazione predefinita) aggiunge -fsanitize=indirizzo a LDFLAG ed
-fsanitize=indirizzo -fno-omit-frame-pointer a FLAG ed CXXFLAG.

filo Questa impostazione (disabilitata per impostazione predefinita) aggiunge -fsanitize=filo a FLAG, CXXFLAG ed
LDFLAG.

perdita Questa impostazione (disabilitata per impostazione predefinita) aggiunge -fsanitize=perdita a LDFLAG. si ottiene
disabilitato automaticamente se uno dei due indirizzo oppure filo le funzioni sono abilitate, come
lo implicano.

indefinito
Questa impostazione (disabilitata per impostazione predefinita) aggiunge -fsanitize=non definito a FLAG, CXXFLAG
ed LDFLAG.

tempra
Diverse opzioni in fase di compilazione (dettagliate di seguito) possono essere utilizzate per aiutare a rafforzare un risultato
binario contro gli attacchi di corruzione della memoria o fornire messaggi di avviso aggiuntivi durante
compilazione. Ad eccezione di quanto indicato di seguito, questi sono abilitati per impostazione predefinita per le architetture che
supportarli.

formato Questa impostazione (abilitata per impostazione predefinita) aggiunge -Formato W -Errore=formato-sicurezza a FLAG,
CXXFLAG, OGGETTI ed OBJCXX FLAGS. Questo avviserà di una stringa di formato errata
utilizza e fallirà quando le funzioni di formato vengono utilizzate in un modo che rappresenti possibile
problemi di sicurezza. Al momento, questo avverte delle chiamate a printf ed scanf funzioni
dove la stringa di formato non è una stringa letterale e non ci sono argomenti di formato,
come in printf(pippo); invece di printf("%s", pippo); Questo potrebbe essere un buco di sicurezza se il
la stringa di formato proviene da un input non attendibile e contiene '%n'.

fortificare
Questa impostazione (abilitata per impostazione predefinita) aggiunge -D_FORTIFY_SOURCE=2 a CPPFLAG. Durante il codice
generazione il compilatore conosce molte informazioni sulle dimensioni del buffer (dove
possibile) e tenta di sostituire chiamate di funzione buffer di lunghezza illimitata non sicure
con quelli a lunghezza limitata. Ciò è particolarmente utile per il codice vecchio e rude.
Inoltre, le stringhe di formato nella memoria scrivibile che contengono '%n' vengono bloccate. Se
un'applicazione dipende da tale stringa di formato, sarà necessario aggirarla.

Nota che affinché questa opzione abbia effetto, anche il sorgente deve essere compilato con
-O1 o più alto. Se la variabile d'ambiente DEB_BUILD_OPTIONS contiene noopt, poi
fortificare il supporto sarà disabilitato, a causa di nuovi avvisi emessi da glibc 2.16
e più tardi.

stackprotector
Questa impostazione (abilitata per impostazione predefinita se stackprotectorstrong non è in uso) aggiunge
-fstack-protettore --param=dimensione-buffer-ssp=4 a FLAG, CXXFLAG, OGGETTI,
OBJCXX FLAGS, GCJFLAGS, FLAGS ed BANDIERE FC. Questo aggiunge controlli di sicurezza contro lo stack
sovrascrive. Questo rende molti potenziali attacchi di iniezione di codice in interruzione
situazioni. Nel migliore dei casi questo trasforma le vulnerabilità di iniezione di codice in negazione
di servizio o in non problemi (a seconda dell'applicazione).

Questa funzione richiede il collegamento con glibc (o un altro fornitore di
__stack_chk_fail), quindi deve essere disabilitato quando si costruisce con -nostdlib or
-autoportante o simili.

stackprotectorforte
Questa impostazione (abilitata per impostazione predefinita) aggiunge -fstack-protettore-forte a FLAG,
CXXFLAG, OGGETTI, OBJCXX FLAGS, GCJFLAGS, FLAGS ed BANDIERE FC. Questo è un più forte
variante di stackprotector, ma senza significative penalizzazioni prestazionali.

Disattivazione stackprotector disabiliterà anche questa impostazione.

Questa funzione ha gli stessi requisiti di stackprotector, e inoltre anche
richiede gcc 4.9 e versioni successive.

relro Questa impostazione (abilitata per impostazione predefinita) aggiunge -Wl,-z,relro a LDFLAG. Durante il programma
load, il linker deve scrivere diverse sezioni di memoria ELF. Questo flag
il caricatore per trasformare queste sezioni in sola lettura prima di passare il controllo al
programma. In particolare, questo impedisce gli attacchi di sovrascrittura GOT. Se questa opzione è
Disabilitato, lega ora diventerà anche disabile.

lega ora
Questa impostazione (disabilitata per impostazione predefinita) aggiunge -Wl,-z, adesso a LDFLAG. Durante il caricamento del programma,
tutti i simboli dinamici vengono risolti, consentendo di contrassegnare l'intero PLT come lettura-
solo (a causa di relro sopra). L'opzione non può essere abilitata se relro non è
abilitato.

torta Questa impostazione (disabilitata per impostazione predefinita) aggiunge -fPIE a FLAG, CXXFLAG, OGGETTI,
OBJCXX FLAGS, GCJFLAGS, FLAGS ed BANDIERE FCe -fPIE -torta a LDFLAG. Posizione
Sono necessari eseguibili indipendenti per sfruttare il layout dello spazio degli indirizzi
Randomizzazione, supportata da alcune versioni del kernel. Mentre ASLR può già essere
applicato per le aree dati nello stack e nell'heap (brk e mmap), le aree di codice devono
essere compilato come indipendente dalla posizione. Le librerie condivise lo fanno già (-fPIC), quindi
guadagnano ASLR automaticamente, ma le regioni .text binarie devono essere costruite PIE per guadagnare
ASLR. Quando ciò accade, gli attacchi ROP (Return Oriented Programming) sono molto più difficili
poiché non ci sono posizioni statiche da cui rimbalzare durante un danneggiamento della memoria
attacco.

Questo non è compatibile con -fPIC quindi bisogna fare attenzione quando si costruisce condiviso
oggetti.

Inoltre, poiché PIE è implementato tramite un registro generale, alcune architetture
(in particolare i386) può vedere perdite di prestazioni fino al 15% in molto testo-segmento-
carichi di lavoro delle applicazioni pesanti; la maggior parte dei carichi di lavoro vede meno dell'1%. Architetture con
i registri più generali (ad es. amd64) non vedono una penalità così alta nel caso peggiore.

riproducibile
Le opzioni di compilazione descritte di seguito possono essere utilizzate per aiutare a migliorare la riproducibilità della build
o fornire ulteriori messaggi di avviso durante la compilazione. Ad eccezione di quanto indicato di seguito, questi
sono abilitati di default per le architetture che li supportano.

senza tempo
Questa impostazione (abilitata per impostazione predefinita) aggiunge -Wdata-ora a CPPFLAG. Questo causerà
avvisi quando il __VOLTA__, __DATA__ ed __TIMESTAMP__ vengono utilizzate le macro.

AMBIENTE


Ci sono 2 set di variabili d'ambiente che fanno le stesse operazioni, la prima
(DEB_bandiera_op) non dovrebbe mai essere usato all'interno debian/regole. È pensato per qualsiasi utente che voglia
per ricostruire il pacchetto sorgente con diversi flag di compilazione. Il secondo set
(DEB_bandiera_MANUTENZIONE_op) deve essere utilizzato solo in debian/regole dai manutentori dei pacchetti per cambiare
i flag di build risultanti.

DEB_bandiera_IMPOSTATO
DEB_bandiera_MAINT_SET
Questa variabile può essere utilizzata per forzare il valore restituito per il dato bandiera.

DEB_bandiera_STRISCIA
DEB_bandiera_STRIP_MAINT
Questa variabile può essere utilizzata per fornire un elenco separato da spazi di opzioni che saranno
rimosso dall'insieme di flag restituiti per il dato bandiera.

DEB_bandiera_AGGIUNGERE
DEB_bandiera_MAINT_APPEND
Questa variabile può essere utilizzata per aggiungere opzioni supplementari al valore restituito per
il dato bandiera.

DEB_bandiera_PRENDI
DEB_bandiera_MAINT_PREPEND
Questa variabile può essere utilizzata per anteporre opzioni supplementari al valore restituito
per il dato bandiera.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Queste variabili possono essere utilizzate da un utente o manutentore per disabilitare/abilitare varie aree
funzionalità che influiscono sui flag di compilazione. Il DEB_BUILD_MAINT_OPTIONS sostituzioni variabili
qualsiasi impostazione in DEB_BUILD_OPTIONS aree caratteristiche. Vedi il FEATURE LE ZONE pagina
per i dettagli.

Usa dpkg-buildflags online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad