This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc-4.9.1 generating different code between two successive builds


HI Martin,

Thanks very much for the suggestions as well as all the information
about the qsort issues.

Did you ever publish your changes as a patch, or create a write up
about what was necessary to create a reproducible build? I would be
interested to see what others have done, and potentially anything else
I may have missed.

Thanks
/Cole

On 21 December 2015 at 21:08, Martin Sebor <msebor@gmail.com> wrote:
> On 12/20/2015 11:39 PM, Cole wrote:
>>
>> Hi,
>>
>> I am busy trying to generate a package for gcc that is consistent
>> between two successive builds, and I am now down to the final few
>> files.
>>
>> I am stuck with the file: cilk-abi-cilk-for.o, which is obviously
>> built with -O2, but between two successive builds, the assembly code
>> generated is different. Please refer to [1] for output and details.
>>
>> Would anyone have any suggestions that I might be able to try to get
>> the file to generate the same assembly code?
>
>
> It's been some time since I had to deal with this problem and
> my recollection is somewhat fuzzy and probably inaccurate. IIRC,
> part of it was caused by qsort being unstable (I think that was
> on Solaris). We replaced it with a stable version. Another part
> of it might have been caused by changes in the address space
> layout caused by ASLR (causing differences in hash values used
> by the register allocator or something like that).  We disabled
> ASLR to get around that (and other problems). With that, we had
> fully repeatable builds. This was in the GCC 4.5 time frame.
> With newer versions, there's also LTO that can affect things.
> The -frandom-seed= option exists to make it possible to emit
> identical object files that might otherwise be different.
>
> Martin
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]