From: bors Date: Thu, 14 Jul 2016 02:32:17 +0000 (-0700) Subject: Auto merge of #34776 - cuviper:solaris-readdir, r=alexcrichton X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=935bd763674ea3e5b79928bed08016291cc52901;p=rust.git Auto merge of #34776 - cuviper:solaris-readdir, r=alexcrichton std: fix `readdir` errors for solaris A `NULL` from `readdir` could be the end of stream or an error. The only way to know is to check `errno`, so it must be set to a known value first, like a 0 that POSIX will never use. This currently only matters for solaris targets, as the other unix platforms are using `readdir_r` with a direct error return indication. However, this is getting deprecated (#34668) so they should all eventually switch to `readdir`. This PR adds `set_errno`, uses it to clear the value before calling `readdir`, then checks it again after to see the reason for a `NULL`. A few other small fixes are included just to get solaris compiling at all. I couldn't get cross-compilation completely going, so I don't have a good way to test this beyond a smoke-test cargo build of std. I'd appreciate input from someone more familiar with solaris -- cc @nbaksalyar? --- 935bd763674ea3e5b79928bed08016291cc52901