[Mesa-dev] [PATCH] gallium/util: Define ffsll on OpenBSD.
jsg at jsg.id.au
Wed Feb 25 17:37:35 PST 2015
On Mon, Feb 09, 2015 at 07:22:35PM +0000, Jose Fonseca wrote:
> On 09/02/15 16:59, Jon TURNEY wrote:
> >On 06/02/2015 19:58, Matt Turner wrote:
> >>On Fri, Feb 6, 2015 at 3:38 AM, Jonathan Gray <jsg at jsg.id.au> wrote:
> >>>OpenBSD has ffs in libc but does not have ffsll so use the compiler
> >>>builtin. PIPE_OS_BSD isn't suitable here as FreeBSD has ffsll in libc.
> >>>Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
> >>> src/gallium/auxiliary/util/u_math.h | 2 ++
> >>> 1 file changed, 2 insertions(+)
> >>>diff --git a/src/gallium/auxiliary/util/u_math.h
> >>>index 5db5b66..ec282f3 100644
> >>>--- a/src/gallium/auxiliary/util/u_math.h
> >>>+++ b/src/gallium/auxiliary/util/u_math.h
> >>>@@ -531,6 +531,8 @@ unsigned ffs( unsigned u )
> >>> #elif defined(__MINGW32__) || defined(PIPE_OS_ANDROID)
> >>> #define ffs __builtin_ffs
> >>> #define ffsll __builtin_ffsll
> >>>+#elif defined(__OpenBSD__)
> >>>+#define ffsll __builtin_ffsll
> >>> #endif
> >>Autoconf checks for presence of a bunch of builtins. Please use those
> >>instead (in this case, HAVE___BUILTIN_FFSLL).
> >Yes, please.
> >This has just been 'fixed' for MinGW, now for OpenBSD, and also needs
> >fixing for Cygwin.
> >Attached is a patch which attempts to do this using autoconf checks.
> The issue is that this will break scons builds unless these checks are
> replicated there. And SCons implementation of configure checks are not
> great to be honest -- they either are cached (but in such way were multiple
> builds from same source tree pick up wrong values) or they need to be
> re-checked on every build (wasting time for incremental builds).
> This is why, within reason, I personally like to avoid configure checks when
> So for now I'd prefer to leave MinGW 'fixed' as you put it.
> But fell free to fix the other platforms as you propose.
If it isn't going to be configure checks could someone merge the
original patch in this thread?
More information about the mesa-dev