Bug#995194: libopenal1: i386 baseline violation

bret curtis psi29a at gmail.com
Wed Sep 29 21:41:03 BST 2021


Hello,

On Mon, Sep 27, 2021 at 9:21 PM Nicholas Guriev <nicholas at guriev.su> wrote:

> Package: libopenal1
> Version: 1:1.19.1-2
>
> Dear maintainer,
>
> The library is not usable on the i386 Debian platform which is in fact
> i686 with no MMX nor SSE. This is roughly corresponds to Pentium Pro
> released in late 1995 (it's even older than me 😌️).
>
> https://wiki.debian.org/ArchitectureSpecificsMemo#i386-1
>
> I can see the package was build with -msse2 -mfpmath=sse compiler
> switches. Build scripts in general should not set machine dependent
> flags. Please remove them. Actually, you can utilize SSE on i386
> provided that code consults CPUID at runtime.
>

To be honest, if you're still running on hardware that is older than
yourself then I would have to pragmatically ask if you or anyone actually
runs openal-soft on that particular hardware platform. Keep in mind for
example that you can still run 32-bit on 64-bit x86 hardware, as there is a
practical use-case here.

I would venture that the usefulness of having a 32-bit build that makes use
of SSE2 far outweighs any use-case that sees the use of openal-soft on an
actual Pentium Pro.

I've had a chat with upstream and here is the response:

By default, builds for 32-bit x86 use SSE2 code generation because of
> performance issues with the x87 FPU (denormals, square roots, and
> more). This can be disabled with the ALSOFT_ENABLE_SSE2_CODEGEN=FALSE
> cmake option, which will let it use the compiler default, though it's
> not recommended.


OpenAL Soft does utilize some SSE on 32-bit x86 based on runtime
> detection, but there's also a number of places it doesn't, and making
> SSE variants with runtime selection of all the code that may matter is
> quite a daunting task with its own downsides (since it's more code,
> more maintenance, and more runtime checks or indirect calls, for
> hardware that's quite weak to begin with). So disabling SSE2 codegen
> will allow it to work for pre-SSE2 CPUs, but worsen 32-bit performance
> for SSE2-capable CPUs (x86-64 itself requires SSE2, so the option is
> ignored for 64-bit builds).


So we either use the SSE extensions, or don't even bother shipping i386
openal-soft.

Does anyone actually run or want to run openal-soft on a Pentium Pro?
Thoughts?

Cheers,
Bret


More information about the Pkg-games-devel mailing list