Bug#954917: Do not rely on autodetection for CPU optimisations (SSE, SSE3, AVX)
Laurent Bigonville
bigon at debian.org
Wed Mar 25 11:27:49 GMT 2020
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.
Hello,
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)
More information about the Pkg-grass-devel
mailing list