Thom May wrote:
>Hi,
>trying to build --with-mpm=leader, on a clean checkout from about an hour or
>so ago, the build dies in mpm/experimental/leader/leader.c:
>
>In file included from /home/thom/httpd-clean/include/pcreposix.h:21,
> from /home/thom/httpd-clean/include/httpd.h:85,
> from leader.c:99:
>/usr/include/stdlib.h:485: parse error before `;'
>
>worker, prefork, and threadpool all build fine.
>
>the ouput of
>
>gcc -E I. -I/home/thom/httpd-clean/os/unix
>-I/home/thom/httpd-clean/server/mpm/experimental/leader
>-I/home/thom/httpd-clean/modules/http -I/home/thom/httpd-clean/modules/proxy
>-I/home/thom/httpd-clean/include -I/home/thom/httpd-clean/srclib/apr/include
>-I/home/thom/httpd-clean/srclib/apr-util/include
>-I/home/thom/httpd-clean/modules/dav/main -I/usr/include/xmltok leader.c
>
>is available at http://people.debian.org/~thom/leader-E.out
>
Thanks for the "-E" output. I can't recreate the problem on my Linux
system, but from your preprocessor output I think I see exactly what's
happening. Your copy of <asm/system.h> (used by apr_atomic.h) includes
<linux/init.h>, which includes a #define to turn "__init" into
"__attribute__ ((__section__ (".text.init"))) ". In stdlib.h, there's
a struct containing a field named "__init". That's bad.
The problem only appears in leader/follower because it's the only MPM
that currently uses apr_atomic.h.
I think this is one more reason to stop using <asm/system.h> in apr_atomic.h
--Brian