Le 25/03/20 à 10:54, Sebastiaan Couwenberg a écrit :
Control: tags -1 upstream wontfix
Control: severity -1 normal
On 3/25/20 10:39 AM, Laurent Bigonville wrote:
I see that the configure is autodetecting at buildtime whether several
CPU optimisations (SSE, SSE3, AVX) should be enabled or not.
I feel this is not OK as building the package on different hardware
would result in different binaries being generated.
AFAICS, the code is detecting at runtime if the CPU is supporting these
features, so I think that it's fine to force enable these 3 on i386 and
amd64 and not rely on autodetection in the configure (and force disable
them on the other architectures).
On x32 port, the package FTBFS due to an issue related to this.
Since the runtime detection is used, this doesn't seem like much of a
problem. With x32 not being a release architecture, even less so.
We could add `--with-sse=no --with-ssse3=no --with-avx=no` but there
doesn't seem to be real need for that.
That's not my point.
If tomorrow somebody rebuilds the package on a machine with a CPU that
doesn't support SSE3 or AVX, the package will be functionally different
as the SSE3 or AVX codepaths will not be compiled in the binaries.
This makes the package not reproducible as it make the built binaries
depend on external factors
As I said, IMVHO, you should pass "--with-sse=yes --with-ssse3=yes
--with-avx=yes" on at least i386 and amd64 (and x32 probably as well
if/when the code is fixed)