glibc コンパイルオプションの表示

glibc コンパイルオプションの表示

Linuxのインストール時にGNU C標準ライブラリ(glibc)をコンパイルするために使用されるコンパイラ/リンカオプションが何であるかを知りたいです。特に、他のコンピュータのソースからglibcをコンパイルするときにlibc.aをアーカイブしたのと同じ結果を得たいのですが(同じバージョンの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ファイルと出力でgccで使用しました-O2-g

既存の質問、見たが役に立たなかった。

現在、Ubuntu 15.04を使用していますが、Debian以外のシステムでも使用する必要があります。また、Ubuntu 14.04のelibcでも動作するはずです。


最終的な目標は、さまざまなシステムで使用されるすべてのバージョンのglibcを再現(コンパイル)し(多くのシステムがあることを知っています)、そのバージョンでIDA PRO FLIRT署名を生成することです。したがって、全体的に少なくとも同じバイナリ出力libc.a(署名付きファイル)が必要です。続きを読む FLIRT 署名ここ

これらの署名の問題は、異なるコンパイラバージョンと各コンパイラオプションがライブラリアーカイブの出力を変更し、分析されたバイナリに部分的にのみ適用される異なる署名につながる可能性があることです。

私はこれについて非常に新しいものなので、どんな助けでも大歓迎です。私が重要なことを言及することを忘れていないことを願っています。

ベストアンサー1

あなたのパッケージと一致するsrc.debパッケージで再構築するために必要なものをすべて見つけなければなりません.deb。よりapt-src(8)

おすすめ記事