This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: [PATCH] Facilitate deterministic pe executables between linker invocations


On Thu, Oct 10, 2013 at 10:40 AM, Cory Fields <cory@coryfields.com> wrote:
> On Thu, Oct 10, 2013 at 10:10 AM, nick clifton <nickc@redhat.com> wrote:
>> Hi Cory,
>>
>> [Sorry for the delay in replying]
>>
>
> No problem, thanks for getting to it.
>
>>
>>> Only a tiny change is needed to avoid the random result. An
>>> (entirely arbitrary) value of 1 is hard-coded rather than using the
>>> current
>>> timestamp.
>>>
>>> Is there a historical reason for the non-deterministic behavior?
>>
>>
>> Yes. :-)
>>
>> Oh, you want to know the reason ?  I believe that this is because
>> non-deterministic behaviour was not considered to be important, and that
>> having a timestamped executable was thought to be a helpful feature. (For
>> example the timestamp could be used like a build-id to identify a specific
>> release of a binary to a customer).
>>
>
> Yea, that's about what I expected to hear :\
>
>>
>>
>>> If so, would
>>> it be reasonable to add an option similar to enable-deterministic-archives
>>> to
>>> disable it?
>>
>>
>> Yes it would.
>
> Great, then I'm happy to do the work. A few quick questions:
>
> - Are there other viable targets you can think of beyond PE executables?
> - What do you think about making this a runtime ld option as well?
> e.g. -D to match ar's. It'd be a shame to be at the mercy of my distro
> for this.
> - Is it worth considering a generic "attempt deterministic behavior"
> configure option that would bring behavior like this and ar's under
> one roof? I'm assuming not since there are presumably cases where
> someone might want one but not the other, just throwing it out there.
>
> Regards,
> Cory
>
>>
>> Cheers
>>   Nick
>>
>>

I've taken another look, and it looks like a pe-specific emulation
flag makes the most sense. I'll hook that up and send it along unless
you have a different suggestion.

Regards,
Cory


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