On 17 November 2017 at 20:46, Matt Turner <matts...@gmail.com> wrote:
> On Fri, Nov 17, 2017 at 12:34 PM, Dylan Baker <dy...@pnwbakers.com> wrote:
>> Quoting Emil Velikov (2017-11-17 03:11:50)
>>> On 16 November 2017 at 22:21, Dylan Baker <dy...@pnwbakers.com> wrote:
>>> > Quoting Emil Velikov (2017-11-16 03:35:17)
>>> >> Hi Dylan,
>>> >>
>>> >> On 16 November 2017 at 01:10, Dylan Baker <dy...@pnwbakers.com> wrote:
>>> >> > This patch checks for an and then enables sse4.1 optimizations if the
>>> >> > host machine will be x86/x86_64.
>>> >> >
>>> >> Hell yeah, SSE is coming to town :-)
>>> >>
>>> >> Will this work if the user disables SSE4.1, say via CFLAGS=-mno-sse4.1
>>> >> meson ...?
>>> >> My meson is still bit rough, so I could not quite grok ^^ by reading
>>> >> through the patch.
>>> >>
>>> >> Thanks
>>> >> Emil
>>> >
>>> > It'll explode horribly. Id didn't see any special handling of that in 
>>> > autotools
>>> > build though either, did I miss something?
>>> >
>>> In autotools it's handled before the normal ld invocation.
>>>
>>> Namely: configure.ac does:
>>>  - construct a program using sse4.1 intrinsicts
>>> Note: return _mm_...() is required otherwise the whole program will be
>>> optimised away
>>>  - the -msse is passed first and then the user flags (-mno-sse and/or
>>> anything else)
>>>  - the user -mno-sse takes precedence, hence the test program fails to build
>>>  - set see_supported=false and don't build the SSE optimised static library
>>>
>>> HTH
>>> Emil
>>
>> That's an interesting question. So arguments passed via CFLAGS and friends 
>> will
>> be passed to tests, but the arguments passed explicitly to those tests are
>> appended, so -msse4.1 will take precedence. I'm also pretty sure there isn't 
>> a
>> way to check the arguments passed via -Dc_args or CFLAGS (they're treated as
>> default arguments, like the c_std in the project() argument). I asked on
>> #mesonbuild, but I haven't gotten an answer yet (Fridays are pretty slow
>> everywhere).
>>
>> I think currently the only way to control this would be to have a meson 
>> option
>> to turn off optimizations, and I really don't like that.
>
> The original bug report of "Mesa doesn't build with -mno-sse4.1" was
> in Gentoo's bugzilla; https://bugs.gentoo.org/503828
>
> There's no compelling reason to support that configuration because
> since the -msseX flags are off by default... in order for the
> -mno-sseX flag to do anything the user must be enabling them somehow
> (likely via -march=...). Using -march=... only to disable particular
> instruction sets seems pretty idiotic.
>
I'm confused - it isn't the user but Mesa's build system which enables
-msseX, right?
Using -msseX is a good thing, but if the binary produced causes bugs
the builder/user has no way to disable it.

Thanks
Emil
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to