"extern int errno" is just a really bad idea. diff -Naur mysql-5.0.67.orig/include/my_sys.h mysql-5.0.67/include/my_sys.h --- mysql-5.0.67.orig/include/my_sys.h 2008-08-04 08:19:12.000000000 -0400 +++ mysql-5.0.67/include/my_sys.h 2008-08-23 14:39:08.000000000 -0400 @@ -208,13 +208,8 @@ #endif #endif /* MSDOS */ -#ifndef errno /* did we already get it? */ -#ifdef HAVE_ERRNO_AS_DEFINE #include /* errno is a define */ -#else -extern int errno; /* declare errno */ -#endif -#endif /* #ifndef errno */ + extern char NEAR errbuff[NRERRBUFFS][ERRMSGSIZE]; extern char *home_dir; /* Home directory for user */ extern const char *my_progname; /* program-name (printed in errors) */