strace-4.6 failed to build with clang-3.0

Alexander Kolesen a_kolesen at wargaming.net
Sun Jan 15 00:12:50 UTC 2012


Hello.

I've tried to build strace-4.6 with clang-3.0 and got the following
error:

  /usr/bin/clang -DHAVE_CONFIG_H -I.  -I./linux/x86_64 -I./linux -I./linux  -Wall -Wwrite-strings -O2 -pipe -MT strace.o -MD -MP -MF .deps/strace.Tpo -c -o strace.o strace.c
  strace.c:102:8: error: unknown type name 'bool'
  static bool daemonized_tracer = 0;

When the configure script was running, i've got:
  checking for stdbool.h that conforms to C99... no

It happens because configure test for stdbool.h is failing on
clang-3.0. I've attached the patch that fixes the issue.
-------------- next part --------------
--- configure.orig	2012-01-15 02:53:50.320502926 +0300
+++ configure	2012-01-15 02:54:15.430503326 +0300
@@ -5409,6 +5409,16 @@
 	_Bool n[m];
 	char o[sizeof n == m * sizeof n[0] ? 1 : -1];
 	char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+	/* Catch a bug in an HP-UX C compiler.  See
+	   http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+	   http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+	 */
+	_Bool q = true;
+	_Bool *pq = &q;
+
+int
+main ()
+{
 #	if defined __xlc__ || defined __GNUC__
 	 /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
 	    reported by James Lemley on 2005-10-05; see
@@ -5428,16 +5438,6 @@
 	 char digs[] = "0123456789";
 	 int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
 #	endif
-	/* Catch a bug in an HP-UX C compiler.  See
-	   http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-	   http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-	 */
-	_Bool q = true;
-	_Bool *pq = &q;
-
-int
-main ()
-{
 
 	*pq |= q;
 	*pq |= ! q;



More information about the Strace-devel mailing list