如何用g ++生成确定性二进制输出?

时间:2013-02-01 19:46:58

标签: c++ g++ deterministic

我在一个非常规范的环境中工作,我们需要能够生成相同的二进制输入,每次都可以为构建产品提供相同的源代码。我们目前使用的古老版本的g ++已被修补,不会在生成的二进制文件中写入任何类似日期/时间的内容,这些日期/时间会从构建更改为构建,但我想更新为g ++ 4.7.2。有没有人知道一个补丁,或者有什么建议我需要寻找两个相同的源代码并产生相同的二进制输出?

3 个答案:

答案 0 :(得分:8)

Debian Reproducible builds project尝试逐字节地标准化Debian软件包,最近获得了Linux Foundation grant

虽然这可能不仅仅包括编译,但你应该看看它。

它还向我指出了this article,它为@Employed所说的内容增加了以下几点:

Buildroot有一个BR2_REPRODUCIBLE选项,可以在包级别上提供一些想法,但目前还远未完成。

相关主题:

答案 1 :(得分:6)

我们还依赖于位相同的重建,并使用gcc-4.7.x。

除了设置PWD=/proc/self/cwd和使用-frandom-seed=<input-file-name>之外,还有一些补丁,可以在svn://gcc.gnu.org/svn/gcc/branches/google/gcc-4_7分支中找到。

答案 2 :(得分:0)

使用' DATE '宏会使构建不确定性

相关问题