The following code tdbio.c (gnupg 1.4.7) will not compile if EROFS is not set because the close paren is inside the ifdef. (I have not encountered this as a problem in practice.) if (db_fd == -1 && (errno == EACCES #ifdef EROFS || errno == EROFS) #endif ) {