OpenBSD has the same getcwd() bug. It was uncovered by raising current_path_length
to 4099 in test_posix.
Here is a new patch that enables the changed posix_getcwd() function
on Solaris and OpenBSD only. I've tested the patch on Linux, OpenSolaris,
OpenBSD and FreeBSD.
So far, there are three categories of behavior if PATH_MAX is exceeded:
1) Solaris, OpenBSD: buggy, getcwd() keeps returning NULL/ERANGE.
2) Linux: getcwd() returns NULL/ENAMETOOLONG.
3) FreeBSD: getcwd() returns SUCCESS/0.
So FreeBSD is one of the systems that benefits from principally
unlimited path lengths (though I doubt it is used much).
I think the changes in the unit test handle all categories well,
and perhaps they will uncover more problem systems.