Quick summary: libiberty gets confused building apps on libio. I just
got a call to run into work, but I wanted to post this now in case the
answer is obvious to everyone but me. I'll look at it more tonight.
There is no mention of sys_errlist in stdio.h on a stdio build,
however stdio.h contains the following on a libio build:
/* These variables normally should not be used directly. The `strerror'
function provides all the needed functionality. */
#ifdef __USE_BSD
extern int sys_nerr; extern
__const char *__const sys_errlist[];
#endif #ifdef
__USE_GNU
extern int _sys_nerr; extern
__const char *__const _sys_errlist[];
#endif
libiberty gets confused by this. For some reason __USE_BSD appears to
be defined in the source, but not at configure time:
configure:2767: checking for sys_errlist
configure:2779: gcc -o conftest -g -O2 conftest.c -ldl 1>&5
/tmp/ccmx0suq.o: In function `main':
/disk1/build/binutils-2.11.92.0.12.3/build-tree/binutils-2.11.92.0.12.3/builddir-single/libiberty/configure:2775:
undefined reference to `sys_errlist'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2772 "configure"
#include "confdefs.h"
int *p;
int main() {
extern int sys_errlist; p = &sys_errlist;
; return 0; }
gcc -c -DHAVE_CONFIG_H -O2 -I. -I../../libiberty/../include -W -Wall -Wtraditional
-pedantic -fpic ../../libiberty/strerror.c -o pic/strerror.o; \
else true; fi
../../libiberty/strerror.c:465: warning: static declaration for `sys_nerr' follows
non-static
../../libiberty/strerror.c:466: conflicting types for `sys_errlist'
/include/stdio.h:552: previous declaration of `sys_errlist'
make[2]: *** [strerror.o] Error 1
--
`Patience' said Slartibartfast again. `Great things are afoot'.
`That's what you said last time we met' said Arthur.
`They were,' said Slartibartfast.
`Yes, that's true,' admitted Arthur.
_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd