Os sinalizadores de compilador usados são uma função de
- o arquivo
debian/rules
, - os arquivos de compilação do pacote (já que o autor do upstream também pode especificar flags lá),
- o sistema de compilação usado (
dh
,cdbs
etc.), - as configurações padrão do compilador.
Para ver os sinalizadores usados, é necessário pelo menos compilar o pacote:
debian/rules build
Experimentando coisas como
debian/rules -n
geralmente não vai te levar muito longe; por exemplo, em um pacote dh
-based, ele apenas dirá
dh build
ou algo similar; pedindo dh
para mostrar o que isso faria (com --no-act
) irá produzir
dh_testdir
dh_auto_configure
dh_auto_build
e assim por diante.
Não existe uma maneira infalível e fácil de explicar para determinar os sinalizadores de compilação lendo debian/rules
; Você pode obter alguma idéia procurando por sinalizadores definidos lá e também (quando apropriado) procurando opções para dpkg-buildflags
(como DEB_BUILD_MAINT_OPTIONS
) e executando isso. Para muitos pacotes, a maneira mais fácil de ver quais flags foram usados é examinar os logs de compilação dos pacotes enviados nos arquivos, começando pelo link . Por exemplo, os registros para coreutils
on i386
mostra que os sinalizadores usados foram -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security
para compilação e -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wl,--as-needed -Wl,-z,relro
para vinculação (graças a Faheem Mitha por apontar este último!).