bison and m4 with uclibs linuxthreads (new): error: field '_sp' has incomplete type

Michael Deutschmann michael at talamasca.ocis.net
Tue Mar 30 11:11:44 UTC 2010


On Tue, 30 Mar 2010, Natanael Copa wrote:
> and with m4-1.4.14 i get this:
> 
> In file included from pipe.c:48:
> ./spawn.h:112: error: field '_sp' has incomplete type
> make[3]: *** [pipe.o] Error 1

This sounds like a problem I've had on my own system, which is 
threadless.  So linuxthreads has nothing to do with it.

My local patch to m4, supressing the bug, is appended.  The comment next
to the conditional I've spiked makes it clear what is going on.
Apparently, glibc's headers expose the full definition of "struct
sched_param" in cases not required by the standard, and gnulib attempts to
optimize based on this. uClibc does not share glibc's behavior in this one
case, but since it defines __GLIBC__, gnulib sees no need for caution.

---- Michael Deutschmann <michael at talamasca.ocis.net>

diff -durpN m4-1.4.14/lib/spawn.in.h m4-1.4.14-ucfix/lib/spawn.in.h
--- m4-1.4.14/lib/spawn.in.h	2010-01-28 05:04:07.000000000 -0800
+++ m4-1.4.14-ucfix/lib/spawn.in.h	2010-02-27 23:10:41.000000000 -0800
@@ -31,7 +31,7 @@
 
 /* Get definitions of 'struct sched_param' and 'sigset_t'.
    But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if 1
 # include <sched.h>
 # include <signal.h>
 #endif


More information about the uClibc mailing list