Re: compiling packages
"errno" is a macro and cannot be used as a normal variable or member name.
You may run into problems with this in newer glibc versions on linux, too.
Definitely with pthreads.
The 1989 ANSI C standard, and all relevant standards since,
specify "errno" as a reserved word that you cannot use except
for the global "modifiable lvalue" declared in <errno.h>.
In practice, the macros are always written so that "extern int errno;"
still works without complaint. But you cannot use the name "errno"
in local scopes.