"extern int errno" is just a really bad idea. diff -Naur mysql-5.1.32.orig/include/my_sys.h mysql-5.1.32/include/my_sys.h --- mysql-5.1.32.orig/include/my_sys.h 2009-02-13 19:52:19.000000000 -0500 +++ mysql-5.1.32/include/my_sys.h 2009-03-04 18:08:40.000000000 -0500 @@ -199,13 +199,8 @@ #define my_afree(PTR) my_free(PTR,MYF(MY_WME)) #endif /* HAVE_ALLOCA */ -#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 *home_dir; /* Home directory for user */ extern const char *my_progname; /* program-name (printed in errors) */ extern char NEAR curr_dir[]; /* Current directory for user */