Узнайте варианты компиляции glibc

Я хочу выяснить, какие параметры компилятора / компоновщика были использованы для компиляции стандартной библиотеки GNU C (glibc) при установке Linux. В частности, я хочу получить тот же результат архива libc.a при компиляции glibc из источника на другой машине (такая же версия gcc, make, binutils и т. Д.).

Все, что я мог узнать, это используемая версия gcc:

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. ... 

Но при компиляции glibc из исходного кода без дополнительных параметров я не получаю одинаковых результатов после запуска make. Собственный скомпилированный архив libc.a отличается от предустановленного (размер и двоичный мудрый). Поэтому я думаю, что есть какая-то оптимизация. Возможно, из-за включенной отладочной информации при компиляции из исходного кода.

Телосложение:

 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 ... 

В файле debian / rules и на выходе я обнаружил, что -O2 и -g используется с gcc.

Существует существующий вопрос , на который я смотрел, но не помог мне.

В настоящее время я использую Ubuntu 15.04, но мне это нужно и в других (не debian) системах. Кроме того, он также должен работать с eglibc на Ubuntu 14.04.


Конечная цель – воспроизвести (скомпилировать) каждую версию glibc, используемую в разных системах (я знаю, это много) и сделать из них IDA PRO FLIRT. Итак, в заключение мне нужен такой же двоичный вывод, по крайней мере, для libc.a (это файл, из которого сделаны подписи). Дальнейшее чтение здесь подписи FLIRT.

Проблема с этими сигнатурами заключается в том, что каждая другая версия компилятора и каждый параметр компилятора могут изменять вывод архива библиотеки и приводить к другой Подписи, которая будет частично работать только с анализируемым двоичным кодом.

Я новичок в этом, поэтому каждая помощь приветствуется. Надеюсь, я не забыл упомянуть что-то важное.

Linux и Unix - лучшая ОС в мире.