The prototype of __errno_location in <errno.h> was parsed as a C++ prototype, so gcc emitted the wrong symbol. That indicates that errno.h doesn't have the proper wrapper for its declarations. Could you please try the latest glibc (2.0.7) and see if the problem is still there? zw