Re: Reproducible builds

wylda at volny.cz wylda at volny.cz
Sun Feb 19 19:27:35 CST 2017


> Od: André Hentschel <nerv at dawncrow.de>

>>>>>> Am 2017-02-19 um 10:00 schrieb wylda at volny.cz:
>>>>>>> Anyway, there are 7 files out of 2750 which _always_ pickup some random
>>>>>>> value and use that consistently. Why are these libraries built
>>>>>>> inconsitently? Is that intentional? An example is attached.
>>>>>
>>>>> Thanks. These "random" value come from:
>>>>>
>>>>>  * olepro_t.res
>>>>>  * std_ole_v2_t.res
>>>>>  * wuapi_tlb_t.res
>>>
>>> When i do:
>>>
>>> export WIDL_TIME_OVERRIDE="0"
>>> rm dlls/olepro32/olepro_t.res
>>> make -k dlls/olepro32
>>> md5sum -b dlls/olepro32/olepro_t.res
>>>
>>> then i always get different MD5 checksum.
>>>
>>> Marcus, could you send me your dlls/olepro32/Makefile please?
>>> What is your distro?
>> 
>> I tried above for both 32bit and 64bit directories, always gives the same md5 in those.
>> 
>> openSUSE Tumbleweed, with currently gcc 6.3.1+r245113, binutils-2.27, flex-2.6.1, bison-3.0.4
>> 
>
>I can reproduce the bug with the instructions above
>Linux Mint 18.1, gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4), binutils 2.26.1, flex 2.6, biso 3.0.4
>the first bad value is at offset 269h
>Which is datatype2 from MSFT_TypeInfoBase
>
>So initializing datatype2 in add_typedef_typeinfo or the following patch fixes the problem for me:
>
>diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
>index 137bb2d..7904e45 100644
>--- a/tools/widl/write_msft.c
>+++ b/tools/widl/write_msft.c
>@@ -798,6 +798,7 @@ static int encode_type(
>     if (!alignment) alignment = &scratch;
>     if (!decoded_size) decoded_size = &scratch;
> 
>+    *decoded_size = 0;
> 
>     switch (vt) {
>     case VT_I1:
>

Thank Stefan / Marcus / Andre. This fixed 6 files. 7th file is libdinput.a, which also has some
random stuff inside.

This was for 32bit chroot. In 64bit chroot these 6 files are also fixed now. libdinput.a differs again.

But 64bit chroot also shows 2 other files:
 * /bin/wmc
 * /lib64/wine/msi.dll.so

These last two differs in Build-id's SHA1 of the .note.gnu.build-id section.

Debian Stretch 9.0 Multiarch:
 * gcc (Debian 6.3.0-6) 6.3.0 20170205
 * binutils 2.27.90.20170124-2
 * flex 2.6.1-1.3
 * bison 3.0.4.dfsg-1

Regards,
W.



More information about the wine-devel mailing list