Eric Blake <[EMAIL PROTECTED]> writes: >> /opt/lsb/bin/lsbcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c close-stream.c >> In file included from __fpending.h:25, >> from close-stream.c:27: >> /usr/include/stdio_ext.h:47: error: expected `=', `,', `;', `asm' or >> `__attribute__' before `extern' >> /usr/include/stdio_ext.h: In function `__freading': >> .... > > That sounds fishy that your own system header isn't being parsed > correctly. This may be an LSB bug. Still, it is worth trying to work > around it in gnulib.
Let's see what the bug is first. It could just be an installation messup. What is the output of this command? /opt/lsb/bin/lsbcc -E -DHAVE_CONFIG_H -I. -I.. close-stream.c >> Then I did a "make" >> to see whether the build would succeed. It did not, because regex.h >> uses size_t in typedef statements before it gets a definition from >> <stddef.h>. I fixed that by this simple change: > > That's another bug in LSB. POSIX requires <sys/types.h> to define size_t: Not only does POSIX require this, it's longstanding practice; I've never run into a system where <sys/types.h> didn't define size_t, and regex.h has assumed that <sys/types.h> defines size_t for years without running into a problem. I still suspect an installation error of some sort.