Fix glob processing on BSD systems. #40318
On Linux systems, glob automatically ignores the errors ENOENT and ENOTDIR because they are expected during glob expansion. But BSD systems do not ignore these, resulting in glob failing when globs expand to invalid paths. This is fixed by adding a custom error handler that ignores only these two errors and removing the GLOB_ERR flag as it makes glob fail even if the error handler ignores the error and is unnecessary as the error handler will make glob fail on all other errors anyway.