diff options
Diffstat (limited to 'mozilla-1725828.patch')
-rw-r--r-- | mozilla-1725828.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mozilla-1725828.patch b/mozilla-1725828.patch new file mode 100644 index 0000000..eed100a --- /dev/null +++ b/mozilla-1725828.patch @@ -0,0 +1,52 @@ +diff --git a/dom/media/gmp/GMPChild.cpp b/dom/media/gmp/GMPChild.cpp +--- a/dom/media/gmp/GMPChild.cpp ++++ b/dom/media/gmp/GMPChild.cpp +@@ -232,8 +232,14 @@ + } + #elif defined(XP_LINUX) + constexpr static const char* whitelist[] = { ++ // NSS libraries used by clearkey. + "libfreeblpriv3.so", + "libsoftokn3.so", ++ // glibc libraries merged into libc.so.6; see bug 1725828 and ++ // the corresponding code in GMPParent.cpp. ++ "libdl.so.2", ++ "libpthread.so.0", ++ "librt.so.1", + }; + + nsTArray<nsCString> libs; +@@ -256,7 +262,7 @@ + } + // End bug 1698718 logging. + +- MOZ_CRASH("Couldn't load lib needed by NSS"); ++ MOZ_CRASH("Couldn't load lib needed by media plugin"); + } + } + } +diff --git a/dom/media/gmp/GMPParent.cpp b/dom/media/gmp/GMPParent.cpp +--- a/dom/media/gmp/GMPParent.cpp ++++ b/dom/media/gmp/GMPParent.cpp +@@ -876,6 +876,20 @@ + return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__); + } + ++#ifdef XP_LINUX ++ // These glibc libraries were merged into libc.so.6 as of glibc ++ // 2.34; they now exist only as stub libraries for compatibility and ++ // newly linked code won't depend on them, so we need to ensure ++ // they're loaded for plugins that may have been linked against a ++ // different version of glibc. (See also bug 1725828.) ++ if (!mDisplayName.EqualsASCII("clearkey")) { ++ if (!mLibs.IsEmpty()) { ++ mLibs.AppendLiteral(", "); ++ } ++ mLibs.AppendLiteral("libdl.so.2, libpthread.so.0, librt.so.1"); ++ } ++#endif ++ + nsCString codecsString = NS_ConvertUTF16toUTF8(m.mX_cdm_codecs); + nsTArray<nsCString> codecs; + SplitAt(",", codecsString, codecs); + |