Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Oct 2016 18:56:28 -0400
From:      Michael Butler <imb@protected-networks.net>
To:        Joe Marcus Clarke <marcus@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org>
Subject:   Re: wireshark 2.2.x build fail
Message-ID:  <210ac5bd-074e-36fa-46e1-0af29992c751@protected-networks.net>
In-Reply-To: <535e7f14-7591-fccf-380a-4b90d245caeb@freebsd.org>
References:  <bd9affbe-b26d-4042-f1a6-6892ddb2b617@protected-networks.net> <535e7f14-7591-fccf-380a-4b90d245caeb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/16/16 11:36, Joe Marcus Clarke wrote:
>
> Seems like the easy fix would be to incorporate the fix for this bug,
> and then disable SSE4.2 in a CFLAGS override.  The better fix would be
> to have clang do the same as GCC so that the test build would fail on
> those platforms that don't support SSE4.2.

Personally, I feel that this whole approach is wrong. To have CONFIGURE 
set a flag asking for instructions not supported by the host for the 
whole project when only one module has a run-time check for them is 
depending on undefined behavior. This is plainly poor engineering.

It so happens that GCC does the expected thing but there is no guarantee 
that any other compiler can or should.

In CLANG's case, it found an opportunity to use an SSE-4.2 instruction 
in compiling LEMON and assumed it could use it as CONFIGURE told it 
explicitly that it could. "fixing" every compiler out there to be 
GCC-compatible is not an acceptable or desirable work-around.

The option should only be set for the module prepared for and capable of 
handling the absence of the extended instructions,

	Michael





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?210ac5bd-074e-36fa-46e1-0af29992c751>