zoukankan      html  css  js  c++  java
  • gcc -frandom-seed

    -frandom-seed=string
         This option provides a seed that GCC uses when it would otherwise
         use random numbers. It is used to generate certain symbol names
         that have to be different in every compiled file.  It is also used
         to place unique stamps in coverage data files and the object files
         that produce them. You can use the -frandom-seed option to produce
         reproducibly identical object files.
    
         The string should be different for every file you compile.
    

    http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Debugging-Options.html#Debugging-Options

     相同源码、相同编译器的两次编译结果并不是binary identical的,这是因为编译器的部分功能依赖于随机输入(比如生成一些唯一的symbol,一个例子是C++中anonymous namespace在编译的时候要生成一个随机的symbol)

    I have been looking at how to make binary reproducible builds in our 
    project using gcc. It turns out that gcc gives functions in anonymous 
    namespaces symbol names that are part randomized. If I compile our 
    project with -frandom-seed=<some value> the random part of the symbol 
    name will be the same each compile. The man page of gcc tells me that I 
    need to use a different value for -frandom-seed for each file I compile. 

    当然还有一个原因可能是源码本身有hack,比如__DATE__...

  • 相关阅读:
    BZOJ3000 斯特林公式
    组合数学一些结论
    CSP2019-JS 游记(总结)
    Atcoder AGC1~10 problem list
    ioi2015hw
    NOI2017解题报告
    HNOI2021游记
    4月做题记录
    WC2021题解
    P4592 [TJOI2018]异或
  • 原文地址:https://www.cnblogs.com/qsort/p/3202650.html
Copyright © 2011-2022 走看看