Date: Thu, 10 Dec 1998 17:40:42 +0900
   From: UCHIYAMA Yasushi <[EMAIL PROTECTED]>

    In libiberty/strerror.c(binutils,gdb), check program which tests
   absense of sys_errlist returns
           "undefined reference to `sys_errlist'"
    So application undefines HAVE_SYS_ERRLIST or defines NEED_sys_errlist,
   and defines application original symbol

           #ifndef HAVE_SYS_ERRLIST

           static int sys_nerr;
           static const char **sys_errlist;

           #else

    But they conflict with stdio.h declarations that

           #ifdef       __USE_BSD
           extern int sys_nerr;
           extern const char *const sys_errlist[];
           #endif

This must be a bug in the autoconf tests.  Why isn't strerror() in
libc used?

One could however argue that the sys_errlist declaration should not be
in stdio.h.

    Although to use of sys_errlist is deprecated, sys_errlist &
   _sys_errlist symbols shuould define again for consistency...

That can never work.  Any program that will use a sys_errlist that is
an alias for _hurd_errlist, that is compiled with a non-buggy version
of gcc will most likely give a segmentation fault.

Mark

Reply via email to