Skip to content

Remove support for non-POSIX getpwnam_r()

Simon McVittie requested to merge smcv/dbus:non-posix-getwpnam-r into master

Solaris 2.3 and 2.4 took their getpwnam_r() signature from draft 6 of the POSIX threads standard. Since Solaris 2.5 (1995), defining _POSIX_PTHREAD_SEMANTICS opts-in to the non-draft version of getpwnam_r(), and since Solaris 11.4 (2018), the non-draft version is the default.

We already use AC_USE_SYSTEM_EXTENSIONS, which defines _POSIX_PTHREAD_SEMANTICS, among other useful macros.

Thanks to Alan Coopersmith for assistance with Solaris history.

While working on !1 (merged) I noticed that dbus still supports a non-POSIX version of the POSIX getpwnam_r(), which differs by returning a struct passwd * rather than having it as an "out" parameter. Our implementation blindly assumes that the non-POSIX version always succeeds (and always returns non-NULL?), which seems obviously wrong.

Rebased to not require !10 (merged).

Edited by Simon McVittie

Merge request reports