Re: git: c6c6e67d83c2 - main - audio/flac: don't disable VSX on powerpc64le

From: Matthias Andree <mandree_at_FreeBSD.org>
Date: Mon, 01 Nov 2021 17:14:43 UTC
Am 01.11.21 um 13:54 schrieb Christian Weisgerber:
> Alexey Dokuchaev:
> 
>> I wonder why SSE was disabled in 101cb31e18d13 during the update to
>> version 1.3.2, as it was never explained:
>> ...
>>  CONFIGURE_ARGS=        --enable-static \
>> -               --enable-sse \
>> +               --disable-sse \
> 
> --enable-sse simply adds "-msse2" to the compiler flags.
> 
> On amd64, this is a nop, since SSE2 is part of the amd64 architecture.
> On i386, it generates code that won't run on older CPUs that don't
> support SSE2.

Yeah - do we care? SSE2 has come of age in most legislations :-)

Perhaps you need to force -mstackrealign (at least on GCC) with -msse2
on i386 and if you really need to support museal CPUs, make SSE an
option and default it to enabled.  Or maybe a -nosse flavor.

I had been considering SSE2 for rawtherapee as well, and as a result, I
have had this in ports/graphics/rawtherapee/Makefile. It used to be an
option into early 2019, but aside from one irrelevant complaint of
someone who was trying to argue me out of LTO with -O3 for rawtherapee's
heavy lifting ^W^W number crunching, no complaints.


graphics/rawtherapee/Makefile excerpt:
--------->8-------------------------------------------------------------
.include <bsd.port.options.mk>

# ...

# x86_64/amd64 includes -msse2 by default
.if ${ARCH} == i386
# and SSE2 has been around since the year 2003 latest
_OPT_FLAGS+=    -msse2
.endif

# workaround for values passed on the stack that cause SIGBUS on SSE2
.if ${ARCH} == i386
_OPT_FLAGS+=    -mstackrealign
.endif

.include <bsd.port.pre.mk>

# ...
---------8<-------------------------------------------------------------