mesa: 599cbe5508ccb246fe06b64116c84ce976165fed (master 10.6.0-devel)
NetBSD build error
In file included from state_tracker/st_atom_array.c:46:0:
../../src/gallium/auxiliary/util/u_math.h: In function 'u_bit_scan64':
../../src/gallium/auxiliary/util/u_math.h:591:4: error: implicit declaration of function 'ffsll'
gmake: *** [state_tracker/st_atom_array.lo] Error 1
Introduced in 10.5.0-devel by this commit.
50433ea526942dbeac75cc415becadea157e5d33 is the first bad commit
Author: Marek Olšák <firstname.lastname@example.org>
Date: Sat Jan 31 17:15:16 2015 +0100
gallium/util: add u_bit_scan64
Same as u_bit_scan, but for uint64_t.
Reviewed-by: Glenn Kennard <email@example.com>
Reviewed-by: Brian Paul <firstname.lastname@example.org>
:040000 040000 4eb1909ac455e690d7de4dbea87cb21b8678ed4b a1d1419d9af472fc2b366764bf8b2a772d11849d M src
bisect run success
Is that with gcc? Which compiler version?
I'll attach a patch proposal for you to try...
Created attachment 113670 [details] [review]
If you're using gcc, maybe a gcc version check would be better.
This patch also assumes the radeonsi driver isn't used on NetBSD (the only user of u_bit_scan64() at this time.)
$ gcc --version
gcc (NetBSD nb2 20110806) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
attachment 113670 [details] [review] fixes the NetBSD build.
Tested-by: Vinson Lee <email@example.com>
We now have:
#define ffsll __builtin_ffsll
#elif defined(_MSC_VER) && (_M_AMD64 || _M_ARM || _M_IA64)
static inline int
ffsll(long long int i)
unsigned long index;
if (_BitScanForward64(&index, i))
return index + 1;
ffsll(long long int val);
So I'm assuming this was fixed long ago and closing.