K 10 svn:author V 3 dim K 8 svn:date V 27 2021-12-22T10:10:57.627729Z K 7 svn:log V 1151 Reapply r230021, r276851 and a few other commits to compiler-rt Reapply r230021 (by ed): Add a workaround to prevent endless recursion in compiler-rt. SPARC and MIPS CPUs don't have special instructions to count leading/trailing zeroes. The compiler-rt library provides fallback rountines for these. The 64-bit routines, __clzdi2 and __ctzdi2, are implemented as simple wrappers around the compiler built-in __builtin_clz(), assuming these will expand to either 32-bit CPU instructions or calls to __clzsi2 and __ctzsi2. Unfortunately, our GCC 4.2 probably thinks that because the operand is stored in a 64-bit register, it might just be a better idea to invoke its 64-bit equivalent, simply resulting into endless recursion. Fix this by defining __builtin_clz and __builtin_ctz to __clzsi2 and __ctzsi2 explicitly. Reapply r276851: Update compiler-rt to trunk r224034. This brings a number of new builtins, and also the various sanitizers. Support for these will be added in a later commit. (cherry picked from commit 71daeec70a15871cfc0071321cd1e819399aa911) Git Hash: 9ba62b3b05d56268c1437995317a95af46689a07 Git Author: dim@FreeBSD.org END