freebsd-src/lib
Robert Clausecker ee8b0c436d lib/libc/string: replace ffs/fls implementations with clang builtins
Most architectures we support (except for riscv64) have instructions
to compute these functions very quickly.  Replace old code with the
ffs and clz builtin functions, allowing clang to generate good code
for all architectures.

As a consequence, toss out arm and i386 ffs() implementations.

Sponsored by:	FreeBSD Foundation
Approved by:	mhorne
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D40730
2023-07-03 22:18:27 +02:00
..
atf Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
clang Merge llvm-project release/16.x llvmorg-16.0.6-0-g7cbf1a259152 2023-06-22 20:22:59 +02:00
csu csu: Add the prologue and epilogue to the _init and _fini on x86_64 2023-07-01 10:52:10 +03:00
flua spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
geom gpart(8): Improve manual page syntax 2023-06-01 20:43:04 -06:00
googletest googletest: remove unused auto_ptr warning suppression 2022-11-30 19:34:52 -05:00
lib9p Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
lib80211
libalias Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libarchive libarchive: Avoid a build failure with OpenSSL 3.0 2023-06-23 18:53:36 -04:00
libauditd Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libbe spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libbearssl Fix DIRDEPS_BUILD for libgcc_eh 2023-04-14 16:56:30 -07:00
libbegemot libbegemot: Disable -Wuse-after-free. 2022-10-03 16:10:43 -07:00
libblacklist
libblocksruntime
libbluetooth spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libbsddialog Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libbsdstat spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libbsm
libbsnmp pkgbase: Put the mibs and defs in the bnsmp package 2021-06-19 17:50:03 +02:00
libbz2
libc lib/libc/string: replace ffs/fls implementations with clang builtins 2023-07-03 22:18:27 +02:00
libc++ Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41 2023-06-22 20:20:56 +02:00
libc++experimental Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41 2023-06-22 20:20:56 +02:00
libc_nonshared spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libcalendar spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libcam gpart(8): Improve manual page syntax 2023-06-01 20:43:04 -06:00
libcapsicum
libcasper cap_net.3: fix typo 2023-06-21 11:26:34 -04:00
libcbor libcbor: update to 0.10.2 2023-04-21 16:10:03 -04:00
libclang_rt Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41 2023-06-22 20:20:56 +02:00
libcom_err pkgbase: Create a FreeBSD-kerberos package 2021-09-07 10:23:14 +02:00
libcompat
libcompiler_rt Remove a few more references to riscv64sf. 2023-04-20 11:00:46 -07:00
libcrypt spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libcuse cuse(3): Make some clarifications in the manual page. 2022-07-20 10:41:11 +02:00
libcxxrt Sort SRCS in libcxxrt's Makefile, and use += to list sources 2022-01-22 21:08:55 +01:00
libdevctl libdevctl: Add devctl_getpath 2022-03-01 08:06:41 -07:00
libdevdctl libdevdctl: update deprecated deprecation warning comment 2022-12-04 10:17:37 -05:00
libdevinfo spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libdevstat
libdl Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libdpv Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libdwarf Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libedit Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libefivar libefivar: Use a void cast in unimplemented stubs. 2023-06-27 10:19:31 -07:00
libelf libelf: Link gelf_getchdr.3 to the build 2021-11-29 13:57:24 -05:00
libelftc pkgbase: Create a FreeBSD-elftoolchain package 2023-02-08 08:49:12 +01:00
libevent1
libexecinfo
libexpat Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libfetch libfetch: remove all old OpenSSL support 2023-06-24 01:45:02 -07:00
libfido2 libfido2: specify OpenSSL 1.1 API 2023-05-09 09:46:09 -04:00
libfigpar
libgcc_eh Fix DIRDEPS_BUILD for libgcc_eh 2023-04-14 16:56:30 -07:00
libgcc_s libcompiler_rt/libgcc_s: Remove MIPS build glue. 2023-03-29 15:05:42 -07:00
libgeom spdx: The BSD-3-Clause-FreeBSD identifier never was, drop -FreeBSD 2023-05-12 10:44:04 -06:00
libgpio
libgssapi libgssapi: Remove a set but unused variable. 2023-06-20 09:29:00 -07:00
libiconv_modules Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libifconfig libifconfig: fix carp key configuration 2023-04-30 20:11:54 +02:00
libipsec libipsec: ansify 2023-04-03 22:48:48 +03:00
libipt
libiscsiutil spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libjail spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libkiconv spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libkvm libkvm: Remove set but unused variable from ppc64mmu_hpt_init. 2023-06-20 09:28:59 -07:00
libldns ldns: Silence -Wstrict-prototypes warnings. 2023-05-25 07:11:38 -07:00
liblua lua: Update to 5.4.4 2023-02-08 10:33:26 -07:00
liblutok Explicitly set CXXSTD to c++11 for old C++ code using std::auto_ptr<>. 2022-12-04 16:25:21 -08:00
liblzma MFV: xz 5.4.3. 2023-05-12 15:49:34 -07:00
libmagic file: upgrade to 5.43. 2022-09-24 19:16:39 -07:00
libmd libmd: ansify 2023-03-16 19:02:56 +00:00
libmemstat spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libmilter libmilter: Silence -Wdeprecated-non-prototype warnings. 2023-04-19 10:52:51 -07:00
libmixer Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libmp spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libmt mt(3): Fix a typo in the manual page 2022-04-06 18:41:08 +02:00
libnetbsd spdx: The BSD-2-Clause-NetBSD identifier is obsolete, drop -NetBSD 2023-05-12 10:44:04 -06:00
libnetgraph ng_atmllc: remove 2023-03-09 18:04:21 +00:00
libnetmap spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libnv spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libomp Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41 2023-06-22 20:20:56 +02:00
libopenbsd
libopencsd Include Embedded Trace Extensions (ETE) source code to the OpenCSD build. 2023-03-27 17:10:26 +01:00
libpam pam_krb5: Fix spoofing vulnerability 2023-06-20 22:19:47 -07:00
libpathconv Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libpcap libpcap: Update PACKAGE_VERSION definition to 1.10.4 2023-05-29 15:41:01 -03:00
libpe
libpfctl pfctl: Add missing state parameters in DIOCGETSTATESV2 2023-05-30 14:28:57 +02:00
libpjdlog spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libpmc pmc: clean up remaining Pentium man page references 2023-06-24 16:30:00 -03:00
libpmcstat pmc: Rework PROCEXEC event to support PIEs 2023-05-31 00:20:36 +01:00
libproc spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libprocstat spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libradius libradius: specify OpenSSL 1.1 APIs 2023-05-25 13:15:45 -04:00
libregex spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
librpcsec_gss spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
librpcsvc pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
librss librss: Remove rss_socket_set_rss_bucket() 2023-02-28 15:57:11 -05:00
librt spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
librtld_db spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libsbuf
libsdp spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libsecureboot libsecureboot: avoid set but not used errors 2023-06-29 23:52:17 -07:00
libsm sendmail: Silence -Wdeprecated-non-prototype warnings. 2023-04-18 11:19:48 -07:00
libsmb Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libsmdb libsmdb: Silence -Wstrict-prototype warnings. 2023-04-24 08:53:49 -07:00
libsmutil Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libsqlite3
libssp Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libssp_nonshared Fix DIRDEPS_BUILD for libgcc_eh 2023-04-14 16:56:30 -07:00
libstats Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libstdbuf libstdbuf: Add proper SEE ALSO section. 2023-06-29 16:23:45 +00:00
libstdthreads spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libsysdecode libsysdecode: Decode linux_clone syscall flags 2023-05-26 19:32:20 +03:00
libtacplus libtacplus: Allow additional AV pairs to be configured. 2023-06-13 16:08:08 +00:00
libtelnet libtelnet: specify OpenSSL 1.1 APIs 2023-05-24 14:31:14 -04:00
libthr libpthread: allocate rwlocks and spinlocks in dedicated cachelines 2023-06-27 11:56:44 +00:00
libthread_db spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libucl
libufs spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libugidfw spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libulog spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libunbound libunbound: Request the OpenSSL 1.1 API 2023-05-31 10:05:07 -04:00
libusb spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libusbhid spdx: The BSD-2-Clause-NetBSD identifier is obsolete, drop -NetBSD 2023-05-12 10:44:04 -06:00
libutil login.conf: document how to specify env var values with commas 2023-06-28 15:02:14 -04:00
libveriexec libveriexec: add function to check a label based on a path 2023-04-17 11:47:33 -04:00
libvgl libvgl: Remove set but unused andmask variable from VGLMouseInit. 2023-06-20 09:28:59 -07:00
libvmmapi libvmmapi: Remove some unneeded includes 2023-06-08 15:03:46 -04:00
libwrap pkgbase: Put libwrap in FreeBSD-tcpd package 2022-10-26 19:46:32 +02:00
libxo Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
liby spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libypclnt spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
libz zlib: Silence -Wstrict-prototype warnings. 2023-04-24 08:53:49 -07:00
libzstd cppcheck: explicitly exclude kernel code from userspace checks 2022-05-10 10:20:55 -07:00
msun msun: Correct FreeBSD version in sincos() man page 2023-06-09 22:04:43 +02:00
ncurses ncurses: Silence -Wunused-but-set-variable for various files. 2023-06-27 10:19:32 -07:00
nss_tacplus nss_tacplus: Support setting the login class. 2023-06-13 16:08:32 +00:00
ofed libirdma: Drop clang-specific -ferror-limit. 2022-10-03 16:10:42 -07:00
tests
Makefile Add nss_tacplus, a TACACS+ NSS module. 2023-05-22 10:14:52 +00:00
Makefile.inc