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

Reply via email to