Você deve encontrar tudo o que precisa para reconstruir no pacote src.deb que corresponda a .deb
package. Olhe para apt-src(8)
.
Eu quero descobrir quais opções de compilador / linker foram usadas para compilar a biblioteca GNU C Standard (glibc) ao instalar o Linux. Em particular, eu quero obter o mesmo resultado do arquivo libc.a ao compilar o glibc a partir do código-fonte em uma máquina diferente (a mesma versão do gcc, make, binutils, etc.).
Tudo o que consegui descobrir foi a versão do gcc usada com:
user@ubuntu:/$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.21-0ubuntu4) stable release version 2.21,
...
Compiled by GNU CC version 4.9.2.
...
Mas ao compilar o glibc a partir do código-fonte sem mais opções, não obtenho os mesmos resultados depois de executar o make. O arquivo libc.a
auto-compilado é diferente do arquivo pré-instalado (tamanho e binário). Então, acho que há alguma otimização acontecendo. Talvez por causa das informações de depuração incluídas quando compiladas da fonte.
Construir:
user@ubuntu:~/glibc$ sudo apt-get source libc6
user@ubuntu:~/glibc/glibc-build$ sudo ../glibc-2.21/configure --prefix=/home/user/glibc/glibc-install/
...
sudo make
...
No arquivo debian / rules e na saída que encontrei, -O2
e -g
são usados com o gcc.
Existe uma pergunta , que eu analisei, mas não me ajude.
Atualmente estou usando o Ubuntu 15.04, mas também preciso de outros sistemas (não Debian). Além disso, também deve funcionar com o eglibc no Ubuntu 14.04.
O objetivo final é reproduzir (compilar) cada versão do glibc usada em diferentes sistemas (eu sei que é muito) e fazer assinaturas do IDA PRO FLIRT. Então, em conclusão eu preciso da mesma saída binária pelo menos para libc.a
(esse é o arquivo de onde as assinaturas são feitas). Mais leituras sobre assinaturas FLIRT aqui .
O Problema com estas Assinaturas é que cada versão diferente do compilador e cada opção do compilador podem alterar a saída do arquivo da Biblioteca e levar a uma Assinatura diferente que funcionará apenas parcialmente no binário analisado.
Eu sou novo nisso, então toda ajuda é bem vinda. Espero não ter esquecido de mencionar algo importante.