Benjamin-Loison/LemnosLife

Make builds reproducible

Opened this issue · 1 comments

For Shortcut that is the simplest program, .o are reproducible on the same machine but the .exe isn't even if we switch to Console application to not have any additional arguments in addition to those necessary for building a binary from the object file.

Even on simplest example:

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

MinGW g++ isn't deterministic (while Linux g++ is deterministic) with:

g++ main.cpp

even with -frandom-seed=0 -Werror=date-time -fno-guess-branch-probability.

However stripping (with strip.exe) brings determinism.

Being able to reproduce without stripping would be nice.

Should deepen Compiler Flags from Project build options.