mesa: 599cbe5508ccb246fe06b64116c84ce976165fed (master 10.6.0-devel) NetBSD build error CC state_tracker/st_atom_array.lo 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[4]: *** [state_tracker/st_atom_array.lo] Error 1
Introduced in 10.5.0-devel by this commit. 50433ea526942dbeac75cc415becadea157e5d33 is the first bad commit commit 50433ea526942dbeac75cc415becadea157e5d33 Author: Marek Olšák <marek.olsak@amd.com> 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 <glenn.kennard@gmail.com> Reviewed-by: Brian Paul <brianp@vmware.com> :040000 040000 4eb1909ac455e690d7de4dbea87cb21b8678ed4b a1d1419d9af472fc2b366764bf8b2a772d11849d M src bisect run success
Hi Vinson, Is that with gcc? Which compiler version? I'll attach a patch proposal for you to try...
Created attachment 113670 [details] [review] proposed patch 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 <vlee@freedesktop.org>
We now have: #ifdef HAVE___BUILTIN_FFSLL #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; else return 0; } #else extern int ffsll(long long int val); #endif So I'm assuming this was fixed long ago and closing.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.