Fix compatibility issues with Illumos.

Thanks to Theo Schlossnagle.
Merge branch 'master' into v2.1
Merge branch 'v2.1' into v2.1-agentzh