Resubmitting a patch for firefox that includes all of the symbols required to load gssapi. From moz.log:
784166112[83e29180]: service = inout.deshaw.com 784166112[83e29180]: using negotiate-gss 784166112[83e29180]: entering nsAuthGSSAPI::nsAuthGSSAPI() 784166112[83e29180]: Attempting to load gss functions 784166112[83e29180]: entering nsAuthGSSAPI::Init() 784166112[83e29180]: nsHttpNegotiateAuth::GenerateCredentials() [challenge=Negotiate] 784166112[83e29180]: entering nsAuthGSSAPI::GetNextToken() 784166112[83e29180]: leaving nsAuthGSSAPI::GetNextToken [rv=0] 784166112[83e29180]: Sending a token of length 1730 Notes on the patch: - Remove `&& !lib` from the module load loop because it would stop loading modules the first time dlopen succeeded - Had to replace PR_LoadLibrary with PR_LoadLibraryWithFlags so I could use the PR_LD_GLOBAL option $OpenBSD$ --- extensions/auth/nsAuthGSSAPI.cpp.orig Fri Oct 25 18:27:17 2013 +++ extensions/auth/nsAuthGSSAPI.cpp Thu Nov 21 09:14:15 2013 @@ -120,22 +120,32 @@ gssInit() PR_FreeLibraryName(libName); } #else - + const char *const libNames[] = { - "gss", - "gssapi_krb5", + "asn1", + "crypto", + "roken", + "heimbase", + "com_err", + "krb5", "gssapi" }; - + const char *const verLibNames[] = { - "libgssapi_krb5.so.2", /* MIT - FC, Suse10, Debian */ - "libgssapi.so.4", /* Heimdal - Suse10, MDK */ - "libgssapi.so.1", /* Heimdal - Suse9, CITI - FC, MDK, Suse10*/ - "libgssapi.so" /* OpenBSD */ + "libasn1.so", + "libcrypto.so", + "libroken.so", + "libheimbase.so", + "libcom_err.so", + "libkrb5.so", + "libgssapi.so" }; - for (size_t i = 0; i < ArrayLength(verLibNames) && !lib; ++i) { - lib = PR_LoadLibrary(verLibNames[i]); + PRLibSpec libSpec; + for (size_t i = 0; i < ArrayLength(verLibNames); ++i) { + libSpec.type = PR_LibSpec_Pathname; + libSpec.value.pathname = verLibNames[i]; + lib = PR_LoadLibraryWithFlags(libSpec, PR_LD_GLOBAL); /* The CITI libgssapi library calls exit() during * initialization if it's not correctly configured. Try to