Hello guys,
I am sorry for the late response, my health hasn't been very good today.

What I wanted to discuss was in terms of reproducibility of tcc compiler,
We know that we should focus more on reproducible builds, and even more so;
security of reproducible builds can be of great importance. [1] suggest
that we can use a trusted compiler to recompile the source code of a build
twice to see if there is any backdoor in the binary, this helps with
ensuring the reproducibility and security of the build.
in *if(f2==0.0)*
*"f2 * has type long double, tcc eventually stores this 0.0 in memory as a
long double value. The problem is that tcc’s “long double” uses only 10
bytes, but it is stored in 12 bytes, and tcc’s source code does not
initialize the extra 2 bytes. The two excess “junk” bytes end up depending
on the underlying environment, causing variations in the output. In normal
operation these bytes are ignored and thus cause no problems.

To resolve this, the value “0.0” was replaced with the expression (f1-f1),
since f1 is a long double variable known to have a finite value there
(e.g., it is not a NaN). This is semantically the same and eliminated the
problem. A better long-term solution for tcc would be to always set these
“excess” values to constants (such as 0x00)"  [1].

Using (f1-f1) is a workaround for using 0.0. It would not affect the normal
operations but would be useful for reproducibility and DDC test (for
security).

Regards
Ayush

On Thu, Feb 11, 2021 at 4:03 PM Kyryl Melekhin <k.melek...@gmail.com> wrote:

> "Christian Jullien" <eli...@orange.fr> wrote:
>
> > No, I think he probably meant (1F-1F) to get 0.0F value?
>
> Looking at the general context I think it should be
>
> else if (vtop->c.ld == (vtop->c.ld - vtop->c.ld))
>
> instead.
>
> But as for my opinion I also think it's unnecessary and
> should be reverted.
>
>
> _______________________________________________
> Tinycc-devel mailing list
> Tinycc-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to