Module Name: src Committed By: christos Date: Fri Mar 4 17:49:07 UTC 2016
Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: clzdi2.c ctzdi2.c Log Message: Fix infinite recursion caused by gcc lossage. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c:1.1.1.1 Wed Feb 26 17:31:29 2014 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c Fri Mar 4 12:49:06 2016 @@ -16,6 +16,12 @@ /* Returns: the number of leading 0-bits */ +#if !defined(__clang__) && (defined(__sparc64__) || defined(__mips64)) +/* gcc resolves __builtin_clz -> __clzdi2 leading to infinite recursion */ +#define __builtin_clz(a) __clzsi2(a) +extern si_int __clzsi2(si_int); +#endif + /* Precondition: a != 0 */ COMPILER_RT_ABI si_int Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c:1.1.1.1 Wed Feb 26 17:31:29 2014 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c Fri Mar 4 12:49:06 2016 @@ -16,6 +16,12 @@ /* Returns: the number of trailing 0-bits */ +#if !defined(__clang__) && (defined(__sparc64__) || defined(__mips64)) +/* gcc resolves __builtin_ctz -> __ctzdi2 leading to infinite recursion */ +#define __builtin_ctz(a) __ctzsi2(a) +extern si_int __ctzsi2(si_int); +#endif + /* Precondition: a != 0 */ COMPILER_RT_ABI si_int