Inconsistent libm-err ULP Table Generation for RISC-V
Tom Coldrick
thomas.coldrick@codethink.co.uk
Fri Feb 11 15:00:34 GMT 2022
Hi,
While performing some reproducibility testing of glibc builds, we noticed that
the ULP values for RISC-V in the libm section of libc.info-8 can change between
builds. The root cause of this is that both
sysdeps/riscv/rv32/rvd/libm-test-ulps-name and
sysdeps/riscv/rv64/rvd/libm-test-ulps-name contain "RISC-V", which means they
collide in the generation of the table.
The net result is that the values in the ULP value table could be either the
32-bit variant or the 64-bit variant, with no indication as to which is used.
The determining factor of which is used is an unsorted call to Python's
os.walk(), which gives results in an order dependent upon the filesystem
implementation on which it was called (that is, whatever order readdir() gives.)
This can cause reproducibility issues, as well as meaning that the values in the
manual are unclear on which variant they are for.
I noticed that MIPS has 32- and 64-bit variants in separate columns, should this
be done for RISC-V too?
Thanks,
--
Tom Coldrick https://www.codethink.co.uk
(He/Him)
More information about the Libc-alpha
mailing list