linux glibc 编译,linux – 找出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文件和我发现的输出中,-O2和-g与gcc一起使用.

有一个现有的question,我看了,但没有帮助我.

我目前正在使用Ubuntu 15.04,但我也需要在其他(非debian)系统上使用它.此外,它也应该与Ubuntu 14.04上的eglibc一起使用.

最终目标是重现(编译)在不同系统上使用的每个glibc版本(我知道很多)并从中获取IDA PRO FLIRT签名.因此,总的来说,至少对于libc.a我需要相同的二进制输出(这是签名的文件).进一步阅读FLIRT签名here.

这些签名的问题在于,每个不同的编译器版本和每个编译器选项都可以更改库归档的输出,并导致不同的签名,该签名仅部分用于分析的二进制文件.

我是新手,所以欢迎每一个帮助.我希望我不忘记提到一些重要的事情.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值