InglêsFrancêsEspanhol

Ad


favicon do OnWorks

dpkg-buildflags - Online na nuvem

Execute dpkg-buildflags no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando dpkg-buildflags que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


dpkg-buildflags - retorna sinalizadores de construção para usar durante a construção do pacote

SINOPSE


dpkg-buildflags [opção...] [comando]

DESCRIÇÃO


dpkg-buildflags é uma ferramenta para recuperar sinalizadores de compilação para usar durante a construção do Debian
pacotes. Os sinalizadores padrão são definidos pelo fornecedor, mas podem ser estendidos / substituídos
em várias formas:

1. em todo o sistema com /etc/dpkg/buildflags.conf;

2. para o usuário atual com $ XDG_CONFIG_HOME / dpkg / buildflags.conf onde
$ XDG_CONFIG_HOME o padrão é $ HOME / .config;

3. temporariamente pelo usuário com variáveis ​​de ambiente (ver seção MEIO AMBIENTE);

4. dinamicamente pelo mantenedor do pacote com variáveis ​​de ambiente definidas via
debian / rules (ver seção MEIO AMBIENTE).

Os arquivos de configuração podem conter dois tipos de diretivas:

SET bandeira valor
Substitua a bandeira nomeada bandeira ter o valor valor.

FAIXA bandeira valor
Retire a bandeira nomeada bandeira todos os sinalizadores de construção listados em valor.

ACRESCENTAR bandeira valor
Estende a bandeira nomeada bandeira anexando as opções fornecidas em valor. Um espaço é
prefixado ao valor acrescentado se o valor atual do sinalizador não estiver vazio.

PREENCHER bandeira valor
Estende a bandeira nomeada bandeira adicionando as opções fornecidas em valor. Um espaço é
anexado ao valor prefixado se o valor atual do sinalizador não estiver vazio.

Os arquivos de configuração podem conter comentários nas linhas que começam com um hash (#). Vazio
linhas também são ignoradas.

COMANDOS


--jogar fora Imprima na saída padrão todos os sinalizadores de compilação e seus valores. Imprime uma bandeira
por linha separada de seu valor por um sinal de igual (“bandeira=valor”). Isto é o
ação padrão.

--Lista Imprima a lista de sinalizadores suportados pelo fornecedor atual (um por linha). Veja o
SUPORTADOS BANDEIRAS seção para obter mais informações sobre eles.

--status
Exiba qualquer informação que possa ser útil para explicar o comportamento de
dpkg-buildflags (desde dpkg 1.16.5): variáveis ​​de ambiente relevantes, atuais
fornecedor, estado de todos os sinalizadores de recursos. Também imprima os sinalizadores do compilador resultantes com
sua origem.

Este deve ser executado a partir de debian / rules, para que o log de construção mantenha um claro
rastreamento dos sinalizadores de construção usados. Isso pode ser útil para diagnosticar problemas relacionados a
Eles.

--export =formato
Imprimir em comandos de saída padrão que podem ser usados ​​para exportar toda a compilação
sinalizadores para alguma ferramenta específica. Se o formato valor não é dado, sh é assumido.
Apenas sinalizadores de compilação começando com um caractere maiúsculo são incluídos, outros
são considerados inadequados para o ambiente. Formatos suportados:

sh Comandos shell para definir e exportar todos os sinalizadores de compilação no
ambiente. Os valores da bandeira são cotados para que a saída esteja pronta para
avaliação por uma concha.

cmdline
Argumentos a serem passados ​​para a linha de comando de um programa de construção para usar todos os
sinalizadores de compilação (desde dpkg 1.17.0). Os valores das sinalizações são apresentados em shell
sintaxe.

configurar
Este é um alias legado para cmdline.

fazer Faça diretivas para definir e exportar todos os sinalizadores de compilação no
ambiente. A saída pode ser escrita em um fragmento makefile e avaliada
usando um incluir Directiva.

--pegue bandeira
Imprima o valor do sinalizador na saída padrão. Sai com 0 se a bandeira for conhecida
caso contrário, sai com 1.

--origem bandeira
Imprime a origem do valor que é retornado por --pegue. Sai com 0 se o sinalizador
é conhecido de outra forma sai com 1. A origem pode ser um dos seguintes valores:

fornecedor o sinalizador original definido pelo fornecedor é devolvido;

. o sinalizador é definido / modificado por uma configuração de todo o sistema;

usuário o sinalizador é definido / modificado por uma configuração específica do usuário;

env o sinalizador é definido / modificado por uma configuração específica do ambiente.

--query-features área
Imprima os recursos habilitados para uma determinada área (desde o dpkg 1.16.2). O único
áreas atualmente reconhecidas no Debian e derivados são qa, reproduzível, higienizar
e endurecimento, Veja o RECURSO ÁREAS seção para mais detalhes. Sai com 0 se o
a área é conhecida, caso contrário, sai com 1.

A saída está no formato RFC822, com uma seção por recurso. Por exemplo:

Característica: torta
Ativado: não

Recurso: protetor de pilha
Habilitado: sim

--Socorro Mostra a mensagem de uso e sai.

--versão
Mostre a versão e saia.

SUPORTADOS BANDEIRAS


FLAGAS Opções para o compilador C. O valor padrão definido pelo fornecedor inclui -g e os votos de
nível de otimização padrão (-O2 normalmente, ou -O0 se o DEB_BUILD_OPTIONS
variável de ambiente define não opte).

CPPFLAGS
Opções para o pré-processador C. Valor padrão: vazio.

CXXBANDEIRAS
Opções para o compilador C ++. Igual a FLAGAS.

OBJCFLAGS
Opções para o compilador Objective C. Igual a FLAGAS.

OBJCXXBANDEIRAS
Opções para o compilador Objective C ++. Igual a CXXBANDEIRAS.

GCJFLAGS
Opções para o compilador GNU Java (gcj). Um subconjunto de FLAGAS.

BANDEIRAS Opções para o compilador Fortran 77. Um subconjunto de FLAGAS.

FCLAGS
Opções para o compilador Fortran 9x. Igual a BANDEIRAS.

LDFLAGS
Opções passadas para o compilador ao vincular executáveis ​​ou objetos compartilhados (se o
linker é chamado diretamente, então -Wl e , deve ser retirado dessas opções).
Valor padrão: vazio.

Novos sinalizadores podem ser adicionados no futuro se houver necessidade (por exemplo, para apoiar outros
línguas).

RECURSO ÁREAS


Cada recurso de área pode ser habilitado e desabilitado no DEB_BUILD_OPTIONS e
DEB_BUILD_MAINT_OPTIONS valor da área da variável de ambiente com o '+'E'-'modificador.
Por exemplo, para habilitar o endurecimento Recurso "torta" e desabilitar o recurso "fortificar" você
pode fazer isso em debian / rules:

exportar DEB_BUILD_MAINT_OPTIONS = endurecimento = + torta, -fortificar

O recurso especial todos os (válido em qualquer área) pode ser usado para ativar ou desativar todas as áreas
recursos ao mesmo tempo. Assim, desativando tudo no endurecimento área e habilitando
apenas “formatar” e “fortalecer” podem ser alcançados com:

exportar DEB_BUILD_MAINT_OPTIONS = endurecimento = -todos, + formato, + fortificar

qa
Várias opções de tempo de compilação (detalhadas abaixo) podem ser usadas para ajudar a detectar problemas no
código-fonte ou sistema de construção.

erro Esta configuração (desativada por padrão) adiciona qualquer opção de aviso que detecta de forma confiável
código-fonte problemático. Os avisos são fatais.

canário Esta configuração (desabilitada por padrão) adiciona opções de canário fictícios aos sinalizadores de construção, então
que os logs de construção podem ser verificados para saber como os sinalizadores de construção se propagam e para permitir
encontrar qualquer omissão das configurações normais do sinalizador de construção. O único atualmente suportado
bandeiras são CPPFLAGS, FLAGAS, OBJCFLAGS, CXXBANDEIRAS e OBJCXXBANDEIRAS com bandeiras definidas para
-D__DEB_CANARY_bandeira_ID aleatório__ e LDFLAGS definido para -Wl, -z, deb-canary-ID aleatório.

higienizar
Várias opções de tempo de compilação (detalhadas abaixo) podem ser usadas para ajudar a higienizar um
binário contra corrupções de memória, vazamentos de memória, uso após corrida de dados livre, threading e
bugs de comportamento indefinido.

endereço
Esta configuração (desativada por padrão) adiciona -fsanitize = endereço para LDFLAGS e
-fsanitize = endereço -fno-omitir-frame-ponteiro para FLAGAS e CXXBANDEIRAS.

fio Esta configuração (desativada por padrão) adiciona -fsanitize = thread para FLAGAS, CXXBANDEIRAS e
LDFLAGS.

vazar Esta configuração (desativada por padrão) adiciona -fsanitize = vazamento para LDFLAGS. Fica
automaticamente desativado se o endereço ou de fio recursos são ativados, como
eles implicam isso.

indefinido
Esta configuração (desativada por padrão) adiciona -fsanitize = undefined para FLAGAS, CXXBANDEIRAS
e LDFLAGS.

endurecimento
Várias opções de tempo de compilação (detalhadas abaixo) podem ser usadas para ajudar a proteger um resultado
binário contra ataques de corrupção de memória ou fornecer mensagens de aviso adicionais durante
compilação. Exceto conforme observado abaixo, eles são ativados por padrão para arquiteturas que
apoiá-los.

formato Esta configuração (habilitada por padrão) adiciona -Wformato -Werror = format-security para FLAGAS,
CXXBANDEIRAS, OBJCFLAGS e OBJCXXBANDEIRAS. Isso irá alertar sobre o formato de string impróprio
usa, e irá falhar quando as funções de formato são usadas de uma forma que representa possível
problemas de segurança. No momento, isso avisa sobre chamadas para printf e scanf funções
onde a string de formato não é uma string literal e não há argumentos de formato,
como em printf (foo); em vez de printf ("% s", fo); Isso pode ser uma brecha de segurança se o
string de formato veio de uma entrada não confiável e contém '% n'.

fortalecer
Esta configuração (habilitada por padrão) adiciona -D_FORTIFY_SOURCE = 2 para CPPFLAGS. Durante o código
geração, o compilador sabe uma grande quantidade de informações sobre os tamanhos do buffer (onde
possível), e tenta substituir chamadas de função de buffer de comprimento ilimitado inseguro
com os de comprimento limitado. Isso é especialmente útil para códigos antigos e complicados.
Além disso, as strings de formato na memória gravável que contêm '% n' são bloqueadas. Se
um aplicativo depende de tal string de formato, precisará ser contornado.

Observe que para esta opção ter algum efeito, a fonte também deve ser compilada com
-O1 ou mais alto. Se a variável de ambiente DEB_BUILD_OPTIONS contém não opte, Em seguida
fortalecer o suporte será desabilitado devido a novos avisos emitidos pela glibc 2.16
e depois.

protetor de pilha
Esta configuração (habilitada por padrão se stackprotectorstrong não estiver em uso) adiciona
-fstack-protetor --param = ssp-buffer-size = 4 para FLAGAS, CXXBANDEIRAS, OBJCFLAGS,
OBJCXXBANDEIRAS, GCJFLAGS, BANDEIRAS e FCLAGS. Isso adiciona verificações de segurança contra a pilha
sobrescreve. Isso transforma muitos ataques de injeção de código em potencial para abortar
situações. Na melhor das hipóteses, isso transforma vulnerabilidades de injeção de código em negação
de serviço ou em não problemas (dependendo do aplicativo).

Este recurso requer vinculação com a glibc (ou outro provedor de
__stack_chk_fail), então precisa ser desativado ao construir com -nostdlib or
-freestanding ou similar.

protetor de pilha forte
Esta configuração (habilitada por padrão) adiciona -fstack-protetor-forte para FLAGAS,
CXXBANDEIRAS, OBJCFLAGS, OBJCXXBANDEIRAS, GCJFLAGS, BANDEIRAS e FCLAGS. Este é um mais forte
variante de protetor de pilha, mas sem penalidades de desempenho significativas.

Desativando protetor de pilha também desativará esta configuração.

Este recurso tem os mesmos requisitos que protetor de pilha, e além disso também
requer gcc 4.9 e posterior.

relro Esta configuração (habilitada por padrão) adiciona -Wl, -z, relro para LDFLAGS. Durante o programa
carregar, várias seções de memória ELF precisam ser gravadas pelo vinculador. Isto sinaliza
o carregador para transformar essas seções somente leitura antes de passar o controle para o
programa. Mais notavelmente, isso evita ataques de substituição do GOT. Se esta opção for
Desativado, ligar agora também será desativado.

ligar agora
Esta configuração (desativada por padrão) adiciona -Wl, -z, agora para LDFLAGS. Durante o carregamento do programa,
todos os símbolos dinâmicos são resolvidos, permitindo que todo o PLT seja marcado como lido-
apenas (devido a relro acima de). A opção não pode ser ativada se relro não é
ativado.

torta Esta configuração (desativada por padrão) adiciona -fPIE para FLAGAS, CXXBANDEIRAS, OBJCFLAGS,
OBJCXXBANDEIRAS, GCJFLAGS, BANDEIRAS e FCLAGS e -fPIE -torta para LDFLAGS. Posição
Executáveis ​​independentes são necessários para aproveitar as vantagens do Layout do Espaço de Endereço
Randomização, suportada por algumas versões do kernel. Embora ASLR já possa ser
aplicadas para áreas de dados na pilha e heap (brk e mmap), as áreas de código devem
ser compilado como independente da posição. Bibliotecas compartilhadas já fazem isso (-fPIC), então
eles ganham ASLR automaticamente, mas as regiões binárias de texto precisam ser construídas PIE para ganhar
ASLR. Quando isso acontece, os ataques ROP (Programação Orientada ao Retorno) são muito mais difíceis
uma vez que não há locais estáticos para saltar durante uma corrupção de memória
ataque.

Isso não é compatível com -fPIC portanto, deve-se ter cuidado ao construir
objetos.

Além disso, como o PIE é implementado por meio de um registro geral, algumas arquiteturas
(mais notavelmente i386) pode ver perdas de desempenho de até 15% no segmento de texto muito
cargas de trabalho pesadas de aplicativos; a maioria das cargas de trabalho vê menos de 1%. Arquiteturas com
registros mais gerais (por exemplo, amd64) não vêem uma penalidade de pior caso como alta.

reproduzível
As opções de tempo de compilação detalhadas abaixo podem ser usadas para ajudar a melhorar a reprodutibilidade da compilação
ou fornecer mensagens de aviso adicionais durante a compilação. Exceto conforme observado abaixo, estes
são ativados por padrão para arquiteturas que os suportam.

Eterno
Esta configuração (habilitada por padrão) adiciona -Hora para CPPFLAGS. Isso vai causar
avisos quando o __TEMPO__, __ENCONTRO__ e __TIMESTAMP__ macros são usadas.

MEIO AMBIENTE


Existem 2 conjuntos de variáveis ​​de ambiente fazendo as mesmas operações, o primeiro
(DEB_bandeira_op) nunca deve ser usado em debian / rules. Destina-se a qualquer usuário que deseja
para reconstruir o pacote de origem com diferentes sinalizadores de construção. O segundo set
(DEB_bandeira_MANINT_op) só deve ser usado em debian / rules pelos mantenedores do pacote para mudar
os sinalizadores de construção resultantes.

DEB_bandeira_DEFINIR
DEB_bandeira_MAINT_SET
Esta variável pode ser usada para forçar o valor retornado para o dado bandeira.

DEB_bandeira_FAIXA
DEB_bandeira_MAINT_STRIP
Esta variável pode ser usada para fornecer uma lista separada por espaços de opções que serão
retirado do conjunto de bandeiras devolvido para o dado bandeira.

DEB_bandeira_ACRESCENTAR
DEB_bandeira_MAINT_APPEND
Esta variável pode ser usada para acrescentar opções suplementares ao valor retornado para
o dado bandeira.

DEB_bandeira_PREPEND
DEB_bandeira_MAINT_PREPEND
Esta variável pode ser usada para acrescentar opções suplementares ao valor retornado
para o dado bandeira.

DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
Essas variáveis ​​podem ser usadas por um usuário ou mantenedor para desabilitar / habilitar várias áreas
recursos que afetam os sinalizadores de construção. o DEB_BUILD_MAINT_OPTIONS substituições de variáveis
qualquer configuração no DEB_BUILD_OPTIONS áreas de recurso. Veja o RECURSO ÁREAS seção
para obter detalhes.

Use dpkg-buildflags online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad