1. Modules are registered to linkset '_openpam_static_modules' in trunk/include/security/openpam.h: ... DATA_SET(_openpam_static_modules, _pam_module) ... 2. Modules are searched for in linkset 'openpam_static_modules' (without leading underscore) in trunk/lib/libpam/openpam_static.c ... SET_DECLARE(openpam_static_modules, pam_module_t); ... SET_FOREACH(module, openpam_static_modules) { This makes static libpam unusable. The fix is trivial: linkset reference have to be consistent. I'd have removed the leading underscore from DATA_SET()'s first parameter. Have already reported this upstream.
Well, it really affects anyone who is trying to use static libpam. But I seem to be the only person to use it this way.