> The symbol _xstat is an internal symbol for private use by glibc. You
> shouldn't have used that symbol in your program. Use stat instead,
> and recompile the offending program. And please use the glibc-bug
> script to report problems with glibc. This mailing list isn't
> reguarly read by glibc developers.
Although I lost the original message, I think I remember the concern
was with some application that the user had no source to, and so was
uncapable of recompiling. In that context, I have to questions:
- How did it come about that the application uses _xstat? That
function is not documented, and I can't see why anybody
intentionally invokes that in application code. Saying "you should
not have used it" seems like the wrong response, since it seems that
it was not actively used.
I still can't understand how the symbol got into the exectuble, but
I have a theory: Some (static) library was compiled for libc5, and
the C source used stat. As a result, this expanded to _xstat in the
object code of the library. The library continues to work with glibc
2, so the application developer continues to use it. While this is
still a mistake on part of whoever provided the library, this is not
as bad as "you fool shouldn't have used _xstat in the first
place". Please comment.
- Now that the symbol is used, is there a mechanism to run
applications relying on it? I would think that a proper LD_PRELOAD
object could help, delegating from _xstat to __xstat. If such a
library is provided, it would help people using glibc. People could
then wrap the applications with a shell script setting LD_PRELOAD.
Regards,
Martin