.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "dpkg-buildflags 1" .TH dpkg-buildflags 1 2024-03-10 1.22.6 "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NOME .IX Header "NOME" dpkg-buildflags \- retorna flags de compila\(,c\(~ao para usar durante a compila\(,c\(~ao de pacotes .SH RESUMO .IX Header "RESUMO" \&\fBdpkg-buildflags\fR [\fIoption\fR...] [\fIcommand\fR] .SH DESCRI\(,C\(~AO .IX Header "DESCRI\(,C\(~AO" \&\fBdpkg-buildflags\fR \('e uma ferramenta para obter flags de compila\(,c\(~ao para usar durante a compila\(,c\(~ao de pacotes Debian. .PP As flags predefinidas s\(~ao definidas pelo fornecedor mas podem ser estendidas/sobrepostas de v\('arias maneiras: .IP 1. 4 de todo o sistema com \fB/etc/dpkg/buildflags.conf\fR; .IP 2. 4 para o utilizador actual com \fR\f(CB$XDG_CONFIG_HOME\fR\fB/dpkg/buildflags.conf\fR onde \fB\fR\f(CB$XDG_CONFIG_HOME\fR\fB\fR usa por predefini\(,c\(~ao \fB\fR\f(CB$HOME\fR\fB/.config\fR; .IP 3. 4 temporariamente pelo utilizador com vari\('aveis de ambiente (veja a sec\(,c\(~ao "AMBIENTE"); .IP 4. 4 dinamicamente pelo maintainer do pacote com vari\('aveis de ambiente definidas via \fBdebian/rules\fR (veja a sec\(,c\(~ao "AMBIENTE"). .PP Os ficheiros de configura\(,c\(~ao podem conter quatro tipos de directivas: .IP "\fBSET\fR \fIflag\fR \fIvalue\fR" 4 .IX Item "SET flag value" Sobrescreve a flag chamada \fIflag\fR para ter o valor \fIvalor\fR. .IP "\fBSTRIP\fR \fIflag\fR \fIvalue\fR" 4 .IX Item "STRIP flag value" Despoja da flag chamada \fIflag\fR todas as flags de compila\(,c\(~ao listadas em \fIvalor\fR. Desde dpkg 1.16.1. .IP "\fBAPPEND\fR \fIflag\fR \fIvalue\fR" 4 .IX Item "APPEND flag value" Estende a flag chamada \fIflag\fR ao acrescentar as op\(,c\(~oes dadas em \fIvalor\fR. \('E usado um espa\(,co a preceder o valor acrescentado se o valor da flag actual n\(~ao estiver vazio. .IP "\fBPREPEND\fR \fIflag\fR \fIvalue\fR" 4 .IX Item "PREPEND flag value" Estende a flag chamada \fIflag\fR ao precede-la com as op\(,c\(~oes dadas em \fIvalor\fR. \('E acrescentado um espa\(,co ao valor precedido se o valor da flag actual n\(~ao estiver vazio. Desde dpkg 1.16.1. .PP Os ficheiros de configura\(,c\(~ao podem conter coment\('arios nas linhas que come\(,cam com um cardinal (#). As linhas vazias tamb\('em s\(~ao ignoradas. .PP Este programa foi introduzido no dpkg 1.15.7. .SH COMANDOS .IX Header "COMANDOS" .IP \fB\-\-dump\fR 4 .IX Item "--dump" Escreve na sa\('ida standard todas as bandeiras de compila\(,c\(~ao e os seus valores. Escreve uma bandeira por linha separada do seu valor por um sinal de igual ("\fIflag\fR=\fIvalue\fR"). Esta \('e a ac\(,c\(~ao predefinida. .IP \fB\-\-list\fR 4 .IX Item "--list" Escreve a lista das flags suportadas pelo fornecedor actual (uma por cada linha). Veja a sec\(,c\(~ao "FLAGS SUPORTADAS" para mais informa\(,c\(~ao sobre elas. .IP \fB\-\-status\fR 4 .IX Item "--status" Mostra qualquer informa\(,c\(~ao que possa ser \('util para explicar o comportamento de \fBdpkg-buildflags\fR (desde dpkg 1.16.5): vari\('aveis de ambiente relevantes, fornecedor actual, estado de todas as bandeiras de funcionalidades. Tamb\('em escreve as bandeira de compila\(,c\(~ao resultantes com as suas origens. .Sp Isto destina-se a ser corrido a partir de \fBdebian/rules\fR, para que os relat\('orios de compila\(,c\(~ao mantenham um rasto claro das bandeiras de compila\(,c\(~ao usadas. Isto pode ser \('util para diagnosticar problemas relacionados com elas. .IP \fB\-\-export=\fR\fIformat\fR 4 .IX Item "--export=format" Escreve na sa\('ida standard comandos que podem ser usados para exportar todas as bandeiras de compila\(,c\(~ao para alguma ferramenta particular. Se o valor \fIformat\fR n\(~ao for fornecido, \('e assumido \fBsh\fR. Apenas s\(~ao inclu\('idas bandeiras que comecem com um caractere mai\('usculo, as outras s\(~ao assumidas como n\(~ao apropriadas para o ambiente. Formatos suportados: .RS 4 .IP \fBsh\fR 4 .IX Item "sh" Comandos de shell para definir e exportar todas as bandeiras de compila\(,c\(~ao no ambiente. Os valores das bandeiras s\(~ao citados para que o resultado esteja pronto para avalia\(,c\(~ao pela shell. .IP \fBcmdline\fR 4 .IX Item "cmdline" Argumentos a passar para a linha de comandos dos programas de compila\(,c\(~ao para se usar todas as bandeiras de compila\(,c\(~ao (desde dpkg 1.17.0). Os valores das bandeiras s\(~ao citados na sintaxe da shell. .IP \fBconfigure\fR 4 .IX Item "configure" Este \('e um nome alternativo antigo para \fBcmdline\fR. .IP \fBmake\fR 4 .IX Item "make" Faz as directivas definir e exportar todas as bandeiras de compila\(,c\(~ao no ambiente. O resultado pode ser escrito para o fragmento do Makefile e avaliado usando uma directiva \fBinclude\fR. .RE .RS 4 .RE .IP "\fB\-\-get\fR \fIflag\fR" 4 .IX Item "--get flag" Escreve o valor da flag na sa\('ida standard. Termina com 0 se a flag for conhecida, caso contr\('ario termina com 1. .IP "\fB\-\-origin\fR \fIflag\fR" 4 .IX Item "--origin flag" Escreve a origem do valor que \('e devolvido por \fB\-\-get\fR. Termina com 0 se a flag for conhecida, caso contr\('ario termina com 1. A origem pode ser um dos seguintes valores: .RS 4 .IP \fBvendor\fR 4 .IX Item "vendor" \('e devolvida a flag origina definida pelo fornecedor; .IP \fBsystem\fR 4 .IX Item "system" a flag \('e definida/modifica por uma configura\(,c\(~ao de todo o sistema; .IP \fBuser\fR 4 .IX Item "user" a flag \('e definida/modifica por uma configura\(,c\(~ao espec\('ifica do utilizador; .IP \fBenv\fR 4 .IX Item "env" a flag \('e definida/modifica por uma configura\(,c\(~ao espec\('ifica do ambiente; .RE .RS 4 .RE .IP \fB\-\-query\fR 4 .IX Item "--query" Escreve qualquer informa\(,c\(~ao que possa ser \('util para explicar o comportamento do programa: fornecedor actual, vari\('aveis de ambiente relevantes, \('areas de funcionalidades, estado de todas as bandeiras de funcionalidades, se uma funcionalidade \('e lidada como uma predefini\(,c\(~ao de compila\(,c\(~ao pelo compilador (desde dpkg 1.21.14), a as bandeiras de compila\(,c\(~ao com as suas origens (desde dpkg 1.19.0). .Sp Por exemplo: .Sp .Vb 3 \& Vendor: Debian \& Environment: \& DEB_CFLAGS_SET=\-O0 \-Wall \& \& Area: qa \& Features: \& bug=no \& canary=no \& Builtins: \& \& Area: hardening \& Features: \& pie=no \& Builtins: \& pie=yes \& \& Area: reproducible \& Features: \& timeless=no \& Builtins: \& \& Flag: CFLAGS \& Value: \-O0 \-Wall \& Origin: env \& \& Flag: CPPFLAGS \& Value: \-D_FORTIFY_SOURCE=2 \& Origin: vendor .Ve .IP "\fB\-\-query\-features\fR \fIarea\fR" 4 .IX Item "--query-features area" Escreve as funcionalidades activadas para uma dada \('area (desde dpkg 1.16.2). Se a funcionalidade \('e lidada (mesmo que apenas em algumas arquitecturas) como predefini\(,c\(~ao de compila\(,c\(~ao pelo compilador, ent\(~ao \('e escrito um campo \fBBuiltin\fR (desde dpkg 1.21.14). Veja a sec\(,c\(~ao "\('AREAS DE CARACTER\('ISTICAS" para mais detalhes. acerca das \('areas actualmente reconhecidas. Termina com 0 se a \('area for conhecida caso contr\('ario termina com 1. .Sp O resultado est\('a em formato RFC822, com uma sec\(,c\(~ao por caracter\('istica. Por exemplo: .Sp .Vb 3 \& Feature: pie \& Enabled: yes \& Builtin: yes \& \& Feature: stackprotector \& Enabled: yes .Ve .IP \fB\-\-help\fR 4 .IX Item "--help" Mostra a mensagem de utiliza\(,c\(~ao e termina. .IP \fB\-\-version\fR 4 .IX Item "--version" Mostra a vers\(~ao e termina. .SH "FLAGS SUPORTADAS" .IX Header "FLAGS SUPORTADAS" .IP \fBASFLAGS\fR 4 .IX Item "ASFLAGS" Op\(,c\(~oes para o assemblador da m\('aquina. Valor predefinido: vazio. Desde dpkg 1.21.0. .IP \fBCFLAGS\fR 4 .IX Item "CFLAGS" Op\(,c\(~oes para o compilador de C da maquina. O valor predefinido regulado pelo fornecedor inclui \fB\-g\fR e o n\('ivel de optimiza\(,c\(~ao predefinido (geralmente \fB\-O2\fR, ou \fB\-O0\fR se a vari\('avel de ambiente \fBDEB_BUILD_OPTIONS\fR definir \fInoopt\fR). .IP \fBCPPFLAGS\fR 4 .IX Item "CPPFLAGS" Op\(,c\(~oes para o pr\('e\-processador de C da m\('aquina. Valor predefinido: vazio. .IP \fBCXXFLAGS\fR 4 .IX Item "CXXFLAGS" Op\(,c\(~oes para o compilador de C++ da m\('aquina. O mesmo que \fBCFLAGS\fR. .IP \fBOBJCFLAGS\fR 4 .IX Item "OBJCFLAGS" Op\(,c\(~oes para o compilador Objective C da m\('aquina. O mesmo que \fBCFLAGS\fR. Desde dpkg 1.17.7. .IP \fBOBJCXXFLAGS\fR 4 .IX Item "OBJCXXFLAGS" Op\(,c\(~oes para o compilador Objective C++ da maquina. O mesmo que \fBCXXFLAGS\fR. Desde dpkg 1.17.7. .IP \fBDFLAGS\fR 4 .IX Item "DFLAGS" Op\(,c\(~oes para o compilador D da maquina (ldc ou gdc). Desde dpkg 1.20.6. .IP \fBFFLAGS\fR 4 .IX Item "FFLAGS" Op\(,c\(~oes para o compilador Fortran 77 da maquina. Um subconjunto de \fBCFLAGS\fR. .IP \fBFCFLAGS\fR 4 .IX Item "FCFLAGS" Op\(,c\(~oes para o compilador Fortran 9x da maquina. O mesmo que \fBFFLAGS\fR. Desde dpkg 1.17.7. .IP \fBLDFLAGS\fR 4 .IX Item "LDFLAGS" Op\(,c\(~oes passadas ao compilador da maquina quando faz link a execut\('aveis ou objetos partilhados (se o vinculador (linker) for chamado directamente, ent\(~ao \fB\-Wl\fR e \fB,\fR t\(^em de ser cortados destas op\(,c\(~oes). Valor predefinido: empty. .IP \fBASFLAGS_FOR_BUILD\fR 4 .IX Item "ASFLAGS_FOR_BUILD" Op\(,c\(~oes para o assemblador de compila\(,c\(~ao. Valor predefinido: vazio. Desde dpkg 1.21.0. .IP \fBCFLAGS_FOR_BUILD\fR 4 .IX Item "CFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador de C de compila\(,c\(~ao. O valor predefinido regulado pelo fornecedor inclui \fB\-g\fR e o n\('ivel de optimiza\(,c\(~ao predefinido (geralmente \fB\-O2\fR, ou \fB\-O0\fR se a vari\('avel de ambiente \fBDEB_BUILD_OPTIONS\fR definir \fInoopt\fR). Desde dpkg 1.22.1. .IP \fBCPPFLAGS_FOR_BUILD\fR 4 .IX Item "CPPFLAGS_FOR_BUILD" Op\(,c\(~oes para o pre-processador C de compila\(,c\(~ao. Valor predefinido: vazio. Desde dpkg 1.21.0. .IP \fBCXXFLAGS_FOR_BUILD\fR 4 .IX Item "CXXFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador C++ de compila\(,c\(~ao. O mesmo que \fBCFLAGS_FOR_BUILD\fR. Desde dpkg 1.22.1. .IP \fBOBJCFLAGS_FOR_BUILD\fR 4 .IX Item "OBJCFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador Objective C de compila\(,c\(~ao. O mesmo que \fBCFLAGS_FOR_BUILD\fR. Desde dpkg 1.22.1. .IP \fBOBJCXXFLAGS_FOR_BUILD\fR 4 .IX Item "OBJCXXFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador Objective C++ de compila\(,c\(~ao. O mesmo que \fBCXXFLAGS_FOR_BUILD\fR. Desde dpkg 1.22.1. .IP \fBDFLAGS_FOR_BUILD\fR 4 .IX Item "DFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador D de compila\(,c\(~ao (ldc ou gdc). Desde dpkg 1.22.1. .IP \fBFFLAGS_FOR_BUILD\fR 4 .IX Item "FFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador Fortran 77 de compila\(,c\(~ao. Um subconjunto de \fBCFLAGS_FOR_BUILD\fR. Desde dpkg 1.22.1. .IP \fBFCFLAGS_FOR_BUILD\fR 4 .IX Item "FCFLAGS_FOR_BUILD" Op\(,c\(~oes para o compilador Fortran 9x de compila\(,c\(~ao. O mesmo que \fBFFLAGS_FOR_BUILD\fR. Desde dpkg 1.22.1. .IP \fBLDFLAGS_FOR_BUILD\fR 4 .IX Item "LDFLAGS_FOR_BUILD" Op\(,c\(~oes passadas ao compilador da compila\(,c\(~ao quando faz link a execut\('aveis ou objetos partilhados (se o vinculador (linker) for chamado directamente, ent\(~ao \fB\-Wl\fR e \fB,\fR t\(^em de ser cortados destas op\(,c\(~oes). Valor predefinido: empty. Desde dpkg 1.22.1. .PP Podem ser adicionadas novas bandeiras no futuro se a necessidade surgir (por exemplo para suportar outras linguagens). .SH "\('AREAS DE CARACTER\('ISTICAS" .IX Header "\('AREAS DE CARACTER\('ISTICAS" As \('areas de caracter\('isticas s\(~ao actualmente especificadas pelo fornecedor. e as descritas em baixo s\(~ao reconhecidas apenas em Debian e derivados. .PP Cada \('area de caracter\('istica pode ser activada e desactivada no valor de \('area das vari\('aveis de ambiente \fBDEB_BUILD_OPTIONS\fR e \fBDEB_BUILD_MAINT_OPTIONS\fR com o modificador \(oq\fB+\fR\(cq e \(oq\fB\-\fR\(cq. Seguido a sintaxe geral destas vari\('aveis (descritas em \fBdpkg\-buildpackage\fR\|(1)), m\('ultiplas \('areas de caracter\('istica podem ser especificadas separadas por espa\(,cos, onde cada uma obt\('em especificadores de caracter\('istica como par\(^ametros obrigat\('orios ap\('os um sinal de igual (\(oq\fB=\fR\(cq). Os especificadores de caracter\('istica s\(~ao separados por v\('irgulas e analisados da esquerda para a direita. onde as defini\(,c\(~oes dentro do mesmo especificador de caracter\('istica sobrep\(~oem as anteriores, mesmo que os especificadores de caracter\('istica estejam divididos entre v\('arias defini\(,c\(~oes de \('area de caracter\('istica separadas por espa\(,cos para a mesma \('area. .PP Por exemplo, para activar a caracter\('istica \fBhardening\fR \(lqpie\(rq e desactivar a caracter\('istica \(lqfortify\(rq voc\(^e pode fazer isto no \fBdebian/rules\fR: .PP .Vb 1 \& export DEB_BUILD_MAINT_OPTIONS = hardening=+pie,\-fortify .Ve .PP A funcionalidade especial \fBall\fR (v\('alida em qualquer \('area) pode ser usada para activar ou desactivar todas as funcionalidades de \('area ao mesmo tempo. Assim desactivar tudo na \('area \fBhardening\fR e activar apenas apenas \(lqformat\(rq e \(lqfortify\(rq pode ser obtido com: .PP .Vb 1 \& export DEB_BUILD_MAINT_OPTIONS = hardening=\-all,+format,+fortify .Ve .PP Podem ser definidas m\('ultiplas \('areas de caracter\('istica: .PP .Vb 1 \& export DEB_BUILD_MAINT_OPTIONS = hardening=+pie abi=+lfs .Ve .PP O comportamento de sobreposi\(,c\(~ao aplica-se tanto \(`a funcionalidade especial \fBall\fR, como a funcionalidades espec\('ificas, as quais devem permitir para composi\(,c\(~ao. Assim para activar \(lqlfs\(rq na \('area \fBabi\fR, e apenas \(lqpie\(rq e \(lqfortify\(rq na \('area \fBhardening\fR, mas \(lqformat\(rq apenas quando CONDITION estiver definida, isto pode ser feito com: .PP .Vb 6 \& export DEB_BUILD_MAINT_OPTIONS = hardening=\-all,+pie,+format abi=+lfs \& … \& DEB_BUILD_MAINT_OPTIONS += hardening=+fortify \& ifdef CONDITION \& DEB_BUILD_MAINT_OPTIONS += hardening=\-format \& endif .Ve .SS abi .IX Subsection "abi" V\('arias op\(,c\(~oes de tempo de compila\(,c\(~ao (detalhado em baixo) podem ser usadas para activar funcionalidades que podem modificar o ABI dum pacote, mas n\(~ao podem estar activas por predefini\(,c\(~ao devido a raz\(~oes de compatibilidade com vers\(~oes anteriores, a menos que sejam coordenadas ou verificadas individualmente. .IP \fBlfs\fR 4 .IX Item "lfs" Esta defini\(,c\(~ao (desde dpkg 1.22.00; desactivada por predefini\(,c\(~ao) activa Suporte Ficheiros Longos em arquitecturas de 32\-bit onde o seu ABI n\(~ao inclui LFS (Large File Support) por predefini\(,c\(~ao, ao adicionar \fB\-D_LARGEFILE_SOURCE \-D_FILE_OFFSET_BITS=64\fR a \fBCPPFLAGS\fR. .Sp Quando esta funcionalidade \('e activa ir\('a sobrepor o valor da mesma funcionalidade na \('area de funcionalidades \fBfuture\fR. .IP \fBtime64\fR 4 .IX Item "time64" This setting (since dpkg 1.22.0; enabled by default except for i386, hurd\-i386 and kfreebsd\-i386 since dpkg 1.22.5) enables 64\-bit time_t support on 32\-bit architectures where their ABI does not include it by default, by adding \fB\-D_TIME_BITS=64\fR to \fBCPPFLAGS\fR. This setting automatically enables the \fBlfs\fR feature from the \fBabi\fR feature area. .Sp Se a defini\(,c\(~ao for explicitamente activada ent\(~ao fica activada em todas as arquitecturas incluindo i386 mas n\(~ao hurd\-i386 nem kfreebsd\-i386 (onde o kernel n\(~ao tem interfaces time64), ignorando a compatibilidade predefinida de vers\(~oes bin\('arias antigas. .Sp \('E tamb\('em activada por predefini\(,c\(~ao pelo gcc nas arquitecturas Debian armel, armhf, hppa, m68k, mips, mipsel, powerpc e sh4, onde desactivar a funcionalidade ir\('a adicionar ent\(~ao \fB\-U_LARGEFILE_SOURCE \-U_FILE_OFFSET_BITS \-U_TIME_BITS\fR a \fBCPPFLAGS\fR. .SS future .IX Subsection "future" V\('arias op\(,c\(~oes de tempo de compila\(,c\(~ao (detalhado em baixo) podem ser usadas para activar funcionalidades que deveria estar activadas por predefini\(,c\(~ao, mas n\(~ao podem estar por raz\(~oes de compatibilidade com vers\(~oes anteriores. .IP \fBlfs\fR 4 .IX Item "lfs" Esta defini\(,c\(~ao (desde dpkg 1.19.0; desactivada por predefini\(,c\(~ao) \('e agora um nome alternativo para a funcionalidade \fBlfs\fR na \('area \fBabi\fR, use esta em vez da anterior. A funcionalidade da \('aria \fBabi\fR sobrep\(~oe esta defini\(,c\(~ao. .SS qa .IX Subsection "qa" V\('arias op\(,c\(~oes de tempo de compila\(,c\(~ao (detalhado em baixo) podem ser usadas para ajudar a detectar no c\('odigo fonte ou no sistema de compila\(,c\(~ao. .IP \fBbug-implicit-func\fR 4 .IX Item "bug-implicit-func" This setting (since dpkg 1.22.3; enabled by default since dpkg 1.22.6) adds \fB\-Werror=implicit\-function\-declaration\fR to \fBCFLAGS\fR. .IP \fBbug\fR 4 .IX Item "bug" Esta defini\(,c\(~ao (desde dpkg 1.17.4; desactivada por predefini\(,c\(~ao) adiciona qualquer op\(,c\(~ao de aviso de detec\(,c\(~ao de fiabilidade problem\('atica no c\('odigo fonte. Os avisos s\(~ao fatais. As \('unicas bandeiras presentemente suportadas s\(~ao \fBCFLAGS\fR e \fBCXXFLAGS\fR com bandeiras definidas para \fB\-Werror=array\-bounds\fR, \fB\-Werror=clobbered\fR, \fB\-Werror=implicit\-function\-declaration\fR e \fB\-Werror=volatile\-register\-var\fR. .Sp Esta caracter\('istica manuseia \fB\-Werror=implicit\-function\-declaration\fR via caracter\('istica \fBbug-implicit-func\fR, se tal n\(~ao foi especificado. .IP \fBcanary\fR 4 .IX Item "canary" Esta defini\(,c\(~ao (desde dpkg 1.17.14; desactivada por predefini\(,c\(~ao) adiciona op\(,c\(~oes canary fantoches \(`as bandeiras de compila\(,c\(~ao, para que os relat\('orios de compila\(,c\(~ao possam ser verificados em como as bandeiras de compila\(,c\(~ao se propagam e para permitir encontrar qualquer omiss\(~ao de defini\(,c\(~oes normais de bandeiras de compila\(,c\(~ao. As \('unicas bandeiras actualmente suportadas s\(~ao \fBCPPFLAGS\fR, \fBCFLAGS\fR, \fBOBJCFLAGS\fR, \fBCXXFLAGS\fR e \fBOBJCXXFLAGS\fR com bandeiras definidas para \fB\-D_\|_DEB_CANARY_\fR\fIflag\fR_\fIrandom-id\fR\fB_\|_\fR, e \fBLDFLAGS\fR definida para \fB\-Wl,\-z,deb\-canary\-\fR\fIrandom-id\fR. .SS optimize .IX Subsection "optimize" V\('arias op\(,c\(~oes de tempo de compila\(,c\(~ao (detalhado em baixo) podem ser usadas para ajudar a optimizar um bin\('ario resultante (desde dpkg 1.21.0). \fBNota\fR: ativador \fBtodas\fR estas op\(,c\(~oes pode resultar em artefactos bin\('arios n\(~ao reproduz\('iveis. .IP \fBlto\fR 4 .IX Item "lto" Esta defini\(,c\(~ao (desde dpkg 1.21.0; desactivada por predefini\(,c\(~ao) activa Link Time Optimization ao adicionar \fB\-flto=auto \-ffat\-lto\-objects\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR, \fBFCFLAGS\fR e \fBLDFLAGS\fR. .SS sanitize .IX Subsection "sanitize" V\('arias op\(,c\(~oes de tempo de compila\(,c\(~ao (detalhado em baixo) podem ser usadas para ajudar a higienizar um bin\('ario resultante contra corrup\(,c\(~oes de mem\('oria, fugas de mem\('oria, utiliza\(,c\(~ao ap\('os livre, segmenta\(,c\(~ao de dados e bugs de comportamento indefinido. \fBNota\fR: estas op\(,c\(~oes \fBn\(~ao\fR devem ser usadas para compila\(,c\(~oes de produ\(,c\(~ao pois elas podem reduzir a confian\(,ca na conformidade do c\('odigo, reduzir a seguran\(,ca ou mesmo a funcionalidade. .IP \fBaddress\fR 4 .IX Item "address" Esta defini\(,c\(~ao (desde dpkg 1.18.0; desactivada por predefini\(,c\(~ao) adiciona \fB\-fsanitize=address\fR a \fBLDFLAGS\fR e \fB\-fsanitize=address \-fno\-omit\-frame\-pointer\fR a \fBCFLAGS\fR e \fBCXXFLAGS\fR. .IP \fBthread\fR 4 .IX Item "thread" Esta defini\(,c\(~ao (desde dpkg 1.18.0; desactivada por predefini\(,c\(~ao) adiciona \fB\-fsanitize=thread\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR e \fBLDFLAGS\fR. .IP \fBleak\fR 4 .IX Item "leak" Esta defini\(,c\(~ao (desde dpkg 1.18.0; desactivada por predefini\(,c\(~ao) adiciona \fB\-fsanitize=leak\fR a \fBLDFLAGS\fR. Fica automaticamente desactivada se as funcionalidades \fBaddress\fR ou \fBthread\fR estiverem activas, pois elas j\('a implicam isto. .IP \fBundefined\fR 4 .IX Item "undefined" Esta defini\(,c\(~ao (desde dpkg 1.18.0; desactivada por predefini\(,c\(~ao) adiciona \fB\-fsanitize=undefined\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR e \fBLDFLAGS\fR. .SS endurecimento .IX Subsection "endurecimento" V\('arias op\(,c\(~oes de tempo de compila\(,c\(~ao (detalhado em baixo) podem ser usadas para ajudar a endurecer um bin\('ario resultante contra ataques de corrup\(,c\(~ao de mem\('oria, ou disponibilizar mensagens de aviso adicionais durante a compila\(,c\(~ao. Excepto como notado em baixo, estas est\(~ao activadas por predefini\(,c\(~ao para as arquitecturas que as suportam. .IP \fBformat\fR 4 .IX Item "format" Esta defini\(,c\(~ao (desde dpkg 1.16.1; activada por predefini\(,c\(~ao) adiciona \fB\-Wformat \-Werror=format\-security\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR e \fBOBJCXXFLAGS\fR. Isto ir\('a avisar sobre uso de strings de formato impr\('oprias, e ir\('a falhar quando fun\(,c\(~oes de formato forem usadas em modo que representem poss\('iveis problemas de seguran\(,ca. Presentemente, isto avisa sobre chamadas a fun\(,c\(~oes \fBprintf\fR e \fBscanf\fR onde a string de formato n\(~ao \('e uma string literal e n\(~ao existem argumentos de formato, como em \fBprintf(foo);\fR em vez de \fBprintf("%s", foo);\fR Isto pode ser um buraco de seguran\(,ca se a string de formato vier de uma entrada n\(~ao confi\('avel e conter \(oq%n\(cq. .IP \fBfortify\fR 4 .IX Item "fortify" Esta defini\(,c\(~ao (desde dpkg 1.16.1; activada por predefini\(,c\(~ao) adiciona \fB\-D_FORTIFY_SOURCE=2\fR a \fBCPPFLAGS\fR. Durante a gera\(,c\(~ao de c\('odigo o compilador sabe muita informa\(,c\(~ao sobre tamanhos de buffer (onde poss\('ivel), e tenta substituir chamadas de fun\(,c\(~ao buffer de comprimento ilimitadas e inseguras por umas limitadas em comprimento. Isto \('e especialmente \('util para c\('odigo antigo, desnecessariamente complicado. Adicionalmente, as strings de formato em mem\('oria grav\('avel que cont\(^em \(oq%n\(cq s\(~ao bloqueadas. Se uma aplica\(,c\(~ao depender de tal string de formato, isso ter\('a que ser contornado. .Sp Note que para esta op\(,c\(~ao ter algum efeito, a fonte tem de tamb\('em ser compilada com \fB\-O1\fR ou superior. Se a vari\('avel de ambiente \fBDEB_BUILD_OPTIONS\fR conter \fInoopt\fR, ent\(~ao o suporte a \fBfortify\fR ser\('a desactivado, devido a novos avisos serem emitidos pelo glibc 2.16 e posterior. .IP \fBstackprotector\fR 4 .IX Item "stackprotector" Esta defini\(,c\(~ao (desde dpkg 1.16.1; activada por predefini\(,c\(~ao se stackprotectorstrong n\(~ao estiver em uso) adiciona \fB\-fstack\-protector\-\-param=ssp\-buffer\-size=4\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR. Isto adiciona verifica\(,c\(~oes de seguran\(,ca contra sobreposi\(,c\(~oes de empilhamento. Isto renderiza muitos potenciais ataques de inje\(,c\(~oes de c\('odigo em situa\(,c\(~oes de abortar. No melhor caso, isto transforma vulnerabilidades de inje\(,c\(~ao de c\('odigo em nega\(,c\(~ao de servi\(,co ou em n\(~ao\-problemas (dependendo da aplica\(,c\(~ao). .Sp Esta funcionalidade requer liga\(,c\(~ao (link) a glibc (ou outro fornecedor de \fB_\|_stack_chk_fail\fR), portanto precisa de ser desactivada quando se compila com \fB\-nostdlib\fR ou \fB\-ffreestanding\fR ou semelhante. .IP \fBstackprotectorstrong\fR 4 .IX Item "stackprotectorstrong" Esta defini\(,c\(~ao (desde dpkg 1.17.11; activada por predefini\(,c\(~ao) adiciona \fB\-fstack\-protector\-strong\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR. Esta \('e uma variante mais forte de \fBstackprotector\fR, mas sem penalidades de performance significativas. .Sp Desactivar \fBstackprotector\fR ir\('a tamb\('em desactivar esta defini\(,c\(~ao. .Sp Esta funcionalidade tem os mesmos requerimentos que \fBstackprotector\fR, e adicionalmente tamb\('em requer gcc 4.9 e posterior. .IP \fBstackclash\fR 4 .IX Item "stackclash" Esta defini\(,c\(~ao (desde dpkg 1.22.00; activada por predefini\(,c\(~ao) adiciona \fB\-fstack\-clash\-protection\fR a \fBamd64\fR, \fBarm64\fR, \fBarmhf\fR e \fBarmel\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR. Isto adiciona c\('odigo para prevenir ataques do estilo stack clash. .IP \fBbranch\fR 4 .IX Item "branch" Esta defini\(,c\(~ao (desde dpkg 1.22.00; activada por predefini\(,c\(~ao) adiciona \fB\-fcf\-protection\fR em \fBamd64\fR e \fB\-mbranch\-protection=standard\fR em \fBarm64\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR. Isto adiciona prote\(,c\(~ao de ramo a chamadas, saltos e retornos indiretos para verificar se estes s\(~ao v\('alidos durante a execu\(,c\(~ao. .IP \fBrelro\fR 4 .IX Item "relro" Esta defini\(,c\(~ao (desde dpkg 1.16.1; activada por predefini\(,c\(~ao) adiciona \fB\-Wl,\-z,relro\fR a \fBLDFLAGS\fR. Durante o carregamento do programa, v\('arias sec\(,c\(~oes de mem\('oria ELF precisam de ser escritas pelo vinculador. Isto sinaliza ao carregador para tornar estas sec\(,c\(~oes s\('o\-leitura antes de entregar o controlo ao programa. Mais notavelmente isto previne ataques de sobrescrita GOT. Se esta op\(,c\(~ao for desactivada, \fBbindnow\fR ir\('a ficar tamb\('em desactivado. .IP \fBbindnow\fR 4 .IX Item "bindnow" Esta defini\(,c\(~ao (desde dpkg 1.16.1; desactivada por predefini\(,c\(~ao) adiciona \fB\-Wl,\-z,now\fR a \fBLDFLAGS\fR. Durante o carregamento do programa, todos os s\('imbolos din\(^amicos s\(~ao resolvidos, permitindo que todo o PLT seja marcado s\('o\-leitura (devido ao \fBrelro\fR em cima). A op\(,c\(~ao pode ser activada se \fBrelro\fR n\(~ao for activado. .IP \fBpie\fR 4 .IX Item "pie" Esta defini\(,c\(~ao (desde dpkg 1.16.1; sem uma predefini\(,c\(~ao global desde dpkg 1.18.23, pois \('e agora activa por predefini\(,c\(~ao pelo gcc nas arquitecturas Debian amd64, arm64, armel, armhf, hurd\-i386, i386, kfreebsd\-amd64, kfreebsd\-i386, mips, mipsel, mips64el, powerpc, ppc64, ppc64el, riscv64, s390x, sparc e sparc64) adiciona as op\(,c\(~oes requeridas para activar ou desactivar PIE via ficheiros de especifica\(,c\(~oes do gcc, Se necess\('ario, dependendo de se o gcc injeta nessa arquitectura as bandeiras por ele pr\('oprio ou n\(~ao. Quando a defini\(,c\(~ao est\('a activa e o gcc injeta as bandeiras, n\(~ao adiciona nada. Quando a defini\(,c\(~ao est\('a activa e o gcc n\(~ao injeta as bandeiras, adiciona \fB\-fPIE\fR (via \fI/usr/share/dpkg/pie\-compiler.specs\fR) a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR, e \fB\-fPIE \-pie\fR (via \fI/usr/share/dpkg/pie\-link.specs\fR) a \fBLDFLAGS\fR. Quando a defini\(,c\(~ao est\('a desactivada e o gcc injeta as bandeiras, adiciona \fB\-fno\-PIE\fR (via \fI/usr/share/dpkg/no\-pie\-compile.specs\fR) a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR, e \fB\-fno\-PIE \-no\-pie\fR (via \fI/usr/share/dpkg/no\-pie\-link.specs\fR) a \fBLDFLAGS\fR. .Sp Position Independent Executable (PIE) \('e necess\('ario para tirar vantagem de Address Space Layout Randomization (ASLR), suportado por algumas vers\(~oes de kernel. Enquanto ASLR j\('a pode ser aplicada para \('areas de dados na stack e heap (brk e mmap), as \('areas de c\('odigo t\(^em de ser compiladas como independente\-de\-posi\(,c\(~ao. As bibliotecas partilhadas j\('a fazem isto (\fB\-fPIC\fR), assim elas ganham ASLR automaticamente, mas as regi\(~oes de texto bin\('arios precisam de ser compiladas como PIE para ganhar ASLR. Quando isto acontece, os ataques ROP (Return Oriented Programming) s\(~ao mais dif\('iceis pois n\(~ao s\(~ao localiza\(,c\(~oes est\('aticas para ressaltar durante um ataque de corrup\(,c\(~ao de mem\('oria. .Sp PIE n\(~ao \('e compat\('ivel com \fB\-fPIC\fR, assim em geral \('e preciso cuidado ao compilar objectos partilhados. Mas porque as bandeiras PIE emitidas s\(~ao injetadas via ficheiros specs de gcc, dever\('a ser sempre seguro defini-las incondicionalmente independentemente do tipo de objecto a ser compilado ou ligado em link. .Sp Bibliotecas est\('aticas pode ser usadas por programas ou outras bibliotecas partilhadas. Dependendo das bandeiras usadas para compilar todos os objectos dentro de uma biblioteca est\('atica, estas bibliotecas ser\(~ao utiliz\('aveis por conjuntos diferentes de objectos: .RS 4 .IP none 4 .IX Item "none" N\(~ao pode ser vinculado a um programa PIE, n\(~ao \('e uma biblioteca partilhada. .IP \fB\-fPIE\fR 4 .IX Item "-fPIE" Pode ser vinculado a qualquer programa, mas n\(~ao a uma biblioteca partilhada (recomendado). .IP \fB\-fPIC\fR 4 .IX Item "-fPIC" Pode ser vinculado a qualquer programa e biblioteca partilhada. .RE .RS 4 .Sp Se existir a necessidade de definir estas bandeiras manualmente, fazendo bypass \(`a inje\(,c\(~ao de spec gcc, h\('a varias coisas a ter em conta. Passar incondicionalmente e explicitamente \fB\-fPIE\fR, \fB\-fpie\fR ou \fB\-pie\fR a um sistema de compila\(,c\(~ao usando libtool \('e seguro pois estas bandeiras ir\(~ao ser despojadas quando se compila bibliotecas partilhadas. Caso contr\('ario em projetos que compilam ambos programas e bibliotecas partilhadas voc\(^e pode precisar de certificar que quando compila as bibliotecas partilhadas, \fB\-fPIC\fR seja sempre passado em \('ultimo (para que sobreponha qualquer \fB\-PIE\fR anterior) \(`as bandeiras de compila\(,c\(~ao tais como \fBCFLAGS\fR, e \fB\-shared\fR \('e passado em \('ultimo (para que sobreponha qualquer \fB\-pie\fR anterior) para ligar em link bandeiras tais como \fBLDFLAGS\fR. \fBNota\fR: Isto n\(~ao deve ser necess\('ario com a maquinaria de specs gcc predefinida. .Sp Adicionalmente, como PIE \('e implementado via registo geral, algumas arquitecturas com falta de registo (mas n\(~ao incluindo mais a i386 desde as optimiza\(,c\(~oes implementadas no gcc >= 5) podem ver perdas de performance at\('e aos 15% em grandes cargas de aplica\(,c\(~oes de segmentos de texto pesados; a maioria das cargas v\(^em menos de 1%. Arquitecturas com registos mais gerais (ex. amd64) n\(~ao v\(^em mais alto que uma penalidade de pior caso. .RE .SS reproducible .IX Subsection "reproducible" As op\(,c\(~oes de tempo de compila\(,c\(~ao detalhadas em baixo podem ser usadas para ajudar a melhorar a reprodutibilidade de compila\(,c\(~ao ou fornecer mensagens de aviso adicionais durante a compila\(,c\(~ao. Excepto como notado em baixo, estas est\(~ao activadas por predefini\(,c\(~ao para as arquitecturas que as suportam. .IP \fBtimeless\fR 4 .IX Item "timeless" Esta defini\(,c\(~ao (desde dpkg 1.17.14; activada por predefini\(,c\(~ao) adiciona \fB\-Wdate\-time\fR a \fBCPPFLAGS\fR. Isto ir\('a causar avisos quando as macros \fB_\|_TIME_\|_\fR, \fB_\|_DATE_\|_\fR e \fB_\|_TIMESTAMP_\|_\fR s\(~ao usadas. .IP \fBfixfilepath\fR 4 .IX Item "fixfilepath" Esta defini\(,c\(~ao (desde dpkg 1.19.1; activada por predefini\(,c\(~ao) adiciona \fB\-ffile\-prefix\-map=\fR\fIBUILDPATH\fR\fB=.\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR quando \fBBUILDPATH\fR est\('a definido para o direct\('orio de n\('ivel de topo do pacote a ser compilado. Isto tem o efeito de remover o caminho de compila\(,c\(~ao de qualquer ficheiro gerado. .Sp Se ambas \fBfixdebugpath\fR e \fBfixfilepath\fR forem definidas, esta op\(,c\(~ao toma preced\(^encia, porque \('e um superconjunto do anterior. .Sp \&\fBNota\fR: Se o processo de compila\(,c\(~ao capturar as bandeiras de compila\(,c\(~ao para os objectos de compila\(,c\(~ao resultantes, isso ir\('a tornar o pacote n\(~ao\-reproduz\('ivel. E ao desactivar esta op\(,c\(~ao poder\('a tornar alguns dos objectos reproduz\('iveis de novo isto ir\('a tamb\('em requerer desactivar \fBfixdebugpath\fR, o que poder\('a tornar quaisquer s\('imbolos de depura\(,c\(~ao gerados n\(~ao\-reproduz\('iveis. A corre\(,c\(~ao ideal \('e parar de capturar bandeiras de compila\(,c\(~ao. .IP \fBfixdebugpath\fR 4 .IX Item "fixdebugpath" Esta defini\(,c\(~ao (desde dpkg 1.18.5; activada por predefini\(,c\(~ao) adiciona \fB\-fdebug\-prefix\-map=\fR\fIBUILDPATH\fR\fB=.\fR a \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR e \fBFCFLAGS\fR quando \fBBUILDPATH\fR est\('a definido para o direct\('orio de n\('ivel de topo do pacote a ser compilado. Isto tem o efeito de remover o caminho de compila\(,c\(~ao de qualquer s\('imbolo de depura\(,c\(~ao gerado. .Sp \&\fBNota\fR: Esta funcionalidade tem propriedades de reprodu\(,c\(~ao semelhantes a \fBfixfilepath\fR. .SH AMBIENTE .IX Header "AMBIENTE" Existem 2 conjuntos de vari\('aveis de ambiente a fazer as mesmas opera\(,c\(~oes, O primeiro (DEB_\fIflag\fR_\fIop\fR) nunca deve ser usada dentro de \fBdebian/rules\fR. Destina-se a qualquer utilizador que queria recompilar o pacote fonte com bandeiras de compila\(,c\(~ao diferentes. O segundo conjunto (DEB_\fIflag\fR_MAINT_\fIop\fR) s\('o deve ser usado em \fBdebian/rules\fR pelos maintainers de pacotes para alterar as bandeiras de compila\(,c\(~ao resultantes. .IP \fBDEB_\fR\fIflag\fR\fB_SET\fR 4 .IX Item "DEB_flag_SET" .PD 0 .IP "\fBDEB_\fR\fIflag\fR\fB_MAINT_SET\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_flag_MAINT_SET (desde dpkg 1.16.1)" .PD Esta vari\('avel pode ser usada para for\(,car o valor retornado para a fornecida. .IP "\fBDEB_\fR\fIflag\fR\fB_STRIP\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_flag_STRIP (desde dpkg 1.16.1)" .PD 0 .IP "\fBDEB_\fR\fIflag\fR\fB_MAINT_STRIP\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_flag_MAINT_STRIP (desde dpkg 1.16.1)" .PD Esta vari\('avel pode ser usada para disponibilizar uma lista separada por espa\(,cos das op\(,c\(~oes que ir\(~ao ser despojadas do conjunto de flags retornado para a \fIflag\fR fornecida. .IP \fBDEB_\fR\fIflag\fR\fB_APPEND\fR 4 .IX Item "DEB_flag_APPEND" .PD 0 .IP "\fBDEB_\fR\fIflag\fR\fB_MAINT_APPEND\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_flag_MAINT_APPEND (desde dpkg 1.16.1)" .PD Esta vari\('avel pode ser usada para acrescentar op\(,c\(~oes suplementares ao valor retornado para a \fIflag\fR fornecida. .IP "\fBDEB_\fR\fIflag\fR\fB_PREPEND\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_flag_PREPEND (desde dpkg 1.16.1)" .PD 0 .IP "\fBDEB_\fR\fIflag\fR\fB_MAINT_PREPEND\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_flag_MAINT_PREPEND (desde dpkg 1.16.1)" .PD Esta vari\('avel pode ser usada para adicionar op\(,c\(~oes suplementares ao inicio do valor retornado para a \fIflag\fR fornecida. .IP \fBDEB_BUILD_OPTIONS\fR 4 .IX Item "DEB_BUILD_OPTIONS" .PD 0 .IP "\fBDEB_BUILD_MAINT_OPTIONS\fR (desde dpkg 1.16.1)" 4 .IX Item "DEB_BUILD_MAINT_OPTIONS (desde dpkg 1.16.1)" .PD Estas vari\('aveis podem ser usadas por um utilizador ou maintainer para desactivar/activar v\('arias funcionalidades de \('area que afectam bandeiras de compila\(,c\(~ao. A vari\('avel \fBDEB_BUILD_MAINT_OPTIONS\fR sobrep\(~oe qualquer defini\(,c\(~ao nas \('areas de funcionalidade de \fBDEB_BUILD_OPTIONS\fR. Veja a sec\(,c\(~ao "\('AREAS DE CARACTER\('ISTICAS" para detalhes. .IP \fBDEB_VENDOR\fR 4 .IX Item "DEB_VENDOR" Esta defini\(,c\(~ao define o fornecedor actual. Se n\(~ao definida, ir\('a descobrir o fornecedor actual ao ler \fB/etc/dpkg/origins/default\fR. .IP \fBDEB_BUILD_PATH\fR 4 .IX Item "DEB_BUILD_PATH" Esta vari\('avel define o caminho de compila\(,c\(~ao (desde dpkg 1.18.8) a usar em funcionalidades como \fBfixdebugpath\fR para que possam ser controladas pelo chamador. Esta vari\('avel \('e actualmente espec\('ifica de Debian e derivados. .IP \fBDPKG_COLORS\fR 4 .IX Item "DPKG_COLORS" Define o modo de cor (desde dpkg 1.18.5). Os valores actualmente aceites s\(~ao: \fBauto\fR (predefinido), \fBalways\fR e \fBnever\fR. .IP \fBDPKG_NLS\fR 4 .IX Item "DPKG_NLS" Se definida, ser\('a usada para decidir se deve activar o Suporte a Linguagem Nativa. Tamb\('em como conhecido como suporte de internacionaliza\(,c\(~ao (ou i18n) (desde dpkg 1.19.0). Os valores aceites s\(~ao \fB0\fR e \fB1\fR (predefini\(,c\(~ao). .SH FICHEIROS .IX Header "FICHEIROS" .SS "Ficheiros de configura\(,c\(~ao" .IX Subsection "Ficheiros de configura\(,c\(~ao" .IP \fB/etc/dpkg/buildflags.conf\fR 4 .IX Item "/etc/dpkg/buildflags.conf" Ficheiro de configura\(,c\(~ao geral do sistema. .ie n .IP "\fR\fB$XDG_CONFIG_HOME\fR\fB/dpkg/buildflags.conf\fR ou" 4 .el .IP "\fR\f(CB$XDG_CONFIG_HOME\fR\fB/dpkg/buildflags.conf\fR ou" 4 .IX Item "$XDG_CONFIG_HOME/dpkg/buildflags.conf ou" .PD 0 .ie n .IP \fR\fB$HOME\fR\fB/.config/dpkg/buildflags.conf\fR 4 .el .IP \fR\f(CB$HOME\fR\fB/.config/dpkg/buildflags.conf\fR 4 .IX Item "$HOME/.config/dpkg/buildflags.conf" .PD Ficheiro de configura\(,c\(~ao do utilizador. .SS "Suporte a empacotamento" .IX Subsection "Suporte a empacotamento" .IP \fB/usr/share/dpkg/buildflags.mk\fR 4 .IX Item "/usr/share/dpkg/buildflags.mk" trecho do Makefile que ir\('a carregar (e opcionalmente exportar) todas as bandeiras suportadas pelo \fBdpkg-buildflags\fR em vari\('aveis (desde dpkg 1.16.1). .SH EXEMPLOS .IX Header "EXEMPLOS" Para passar flags de compila\(,c\(~ao a um comando de compila\(,c\(~ao dentro de um Makefile: .Sp .Vb 1 \& $(MAKE) $(shell dpkg\-buildflags \-\-export=cmdline) \& \& ./configure $(shell dpkg\-buildflags \-\-export=cmdline) .Ve .PP Para definir bandeiras de compila\(,c\(~ao num script de shell ou num fragmento de shell, por ser usado o \fBeval\fR para interpretar o resultado e para exportar as bandeiras no ambiente: .Sp .Vb 1 \& eval "$(dpkg\-buildflags \-\-export=sh)" && make .Ve .PP ou para definir os par\(^ametros posicionais a passar a um comando: .Sp .Vb 2 \& eval "set \-\- $(dpkg\-buildflags \-\-export=cmdline)" \& for dir in a b c; do (cd $dir && ./configure "$@" && make); done .Ve .SS "Utiliza\(,c\(~ao em debian/rules" .IX Subsection "Utiliza\(,c\(~ao em debian/rules" Voc\(^e deve chamar \fBdpkg-buildflags\fR ou incluir \fBbuildflags.mk\fR do ficheiro \fBdebian/rules\fR para obter as bandeiras de compila\(,c\(~ao necess\('arias para passar ao sistema de compila\(,c\(~ao. Note que vers\(~oes antigas do \fBdpkg-buildpackage\fR (antes do dpkg 1.16.1) exportavam estas bandeiras automaticamente. No entanto, voc\(^e n\(~ao deve confiar nisto, pois isto quebra a invoca\(,c\(~ao manual de \fBdebian/rules\fR. .PP Para pacotes com sistemas de compila\(,c\(~ao tipo autoconf, voc\(^e pode passar as op\(,c\(~oes relevantes ao configure ou \fBmake\fR\|(1) diretamente, como mostrado em cima. .PP Para outros sistemas de compila\(,c\(~ao, ou quando precisa de um controle mais afinado acerca de quais bandeiras s\(~ao passadas para onde, voc\(^e pode usar \fB\-\-get\fR. Ou voc\(^e pode incluir \fBbuildflags.mk\fR em vez disto, o que toma conta de chamar \fBdpkg-buildflags\fR e guardar as bandeiras de compila\(,c\(~ao em vari\('aveis do make. .PP Se voc\(^e quiser exportar todas as bandeiras de compila\(,c\(~ao para o ambiente (onde elas pode ser colhidas pelo seu sistema de compila\(,c\(~ao): .Sp .Vb 2 \& DPKG_EXPORT_BUILDFLAGS = 1 \& include /usr/share/dpkg/buildflags.mk .Ve .PP Para algum controle extra sobre o que \('e exportado, voc\(^e pode exportar manualmente as vari\('aveis (pois nenhuma \('e exportada por predefini\(,c\(~ao). .Sp .Vb 2 \& include /usr/share/dpkg/buildflags.mk \& export CPPFLAGS CFLAGS LDFLAGS .Ve .PP E claro que voc\(^e pode passar as bandeiras aos comandos manualmente: .Sp .Vb 3 \& include /usr/share/dpkg/buildflags.mk \& build\-arch: \& $(CC) \-o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .Ve .SH TRADU\(,C\(~AO .IX Header "TRADU\(,C\(~AO" Am\('erico Monteiro .PP Se encontrar algum erro na tradu\(,c\(~ao deste documento, por favor comunique para Am\('erico Monteiro .