diff mbox

[v2,10/15] reproducible: enable fakedate

Message ID 1479460224-6119-11-git-send-email-jezz@sysmic.org
State Superseded
Headers show

Commit Message

Jérôme Pouiller Nov. 18, 2016, 9:10 a.m. UTC
Enable fakedate for whole build process.

This work was sponsored by `BA Robotic Systems'.

Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
---
 toolchain/toolchain/toolchain.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Petazzoni Nov. 18, 2016, 11:49 a.m. UTC | #1
Hello,

On Fri, 18 Nov 2016 10:10:19 +0100, Jérôme Pouiller wrote:

> +ifeq ($(BR2_REPRODUCIBLE),y)
> +TOOLCHAIN_DEPENDENCIES += host-fakedate
> +endif

Unfortunately, this means that fakedate is only installed at the end of
the toolchain build process. So the entire toolchain is built without
fakedate installed.

Is it because we assume that the toolchain build process is safe (i.e
it doesn't call "date") ?

Perhaps it should be added in DEPENDENCIES_HOST_PREREQ instead ?

Best regards,

Thomas
Jérôme Pouiller Nov. 18, 2016, 1:53 p.m. UTC | #2
On 2016-11-18 12:49, Thomas Petazzoni wrote:
> Hello,
> 
> On Fri, 18 Nov 2016 10:10:19 +0100, Jérôme Pouiller wrote:
> 
>> +ifeq ($(BR2_REPRODUCIBLE),y)
>> +TOOLCHAIN_DEPENDENCIES += host-fakedate
>> +endif
> 
> Unfortunately, this means that fakedate is only installed at the end of
> the toolchain build process. So the entire toolchain is built without
> fakedate installed.
> 
> Is it because we assume that the toolchain build process is safe (i.e
> it doesn't call "date") ?

During my tests, fakedate was build before host-gcc-initial. Indeed, I
was lucky (in add, I think toolchain build process is safe).


> Perhaps it should be added in DEPENDENCIES_HOST_PREREQ instead ?

Right.
Arnout Vandecappelle Nov. 19, 2016, 10:22 a.m. UTC | #3
On 18-11-16 14:53, Jérôme Pouiller wrote:
> On 2016-11-18 12:49, Thomas Petazzoni wrote:
>> Hello,
>>
>> On Fri, 18 Nov 2016 10:10:19 +0100, Jérôme Pouiller wrote:
>>
>>> +ifeq ($(BR2_REPRODUCIBLE),y)
>>> +TOOLCHAIN_DEPENDENCIES += host-fakedate
>>> +endif
>>
>> Unfortunately, this means that fakedate is only installed at the end of
>> the toolchain build process. So the entire toolchain is built without
>> fakedate installed.
>>
>> Is it because we assume that the toolchain build process is safe (i.e
>> it doesn't call "date") ?
> 
> During my tests, fakedate was build before host-gcc-initial. Indeed, I
> was lucky (in add, I think toolchain build process is safe).
> 
> 
>> Perhaps it should be added in DEPENDENCIES_HOST_PREREQ instead ?
> 
> Right.

 And that can be done in the top-level BR2_REPRODUCIBLE condition.

 Regards,
 Arnout

>
diff mbox

Patch

diff --git a/toolchain/toolchain/toolchain.mk b/toolchain/toolchain/toolchain.mk
index d317e91..b88dd94 100644
--- a/toolchain/toolchain/toolchain.mk
+++ b/toolchain/toolchain/toolchain.mk
@@ -10,6 +10,10 @@  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
 TOOLCHAIN_DEPENDENCIES += toolchain-external
 endif
 
+ifeq ($(BR2_REPRODUCIBLE),y)
+TOOLCHAIN_DEPENDENCIES += host-fakedate
+endif
+
 TOOLCHAIN_ADD_TOOLCHAIN_DEPENDENCY = NO
 
 # Apply a hack that Rick Felker suggested[1] to avoid conflicts between libc