> Date: Wed, 1 Jun 2016 07:44:23 +0200 > From: Landry Breuil <lan...@rhaalovely.net> > > > (I don't really understand how things are working in Firefox on > > other OS, there are two different versions of sqlite in their > > tree...even in the one firefox tarball).. > > Nss is considered a third-party library in firefox, and thus has to be > self-contained. We dont build the copy of sqlite bundled in nss bundled > in firefox since we build against systemwide nss...
The 46.0.1 firefox binary tarball I just downloaded has libsoftkn3.so linked against libmozsqlite3.so, i.e. the bundled libsqlite3. However, Firefox 46.0 as installed on a OpenSuSE Linux system has a libsoftkn3.so that is linked against libsqlite3.so, i.e. the system libsqlite3. The libxul.so in /usr/lib64/firefox on that system does use libmozsqlite3.so though. On that OpenSUSE system, the same thing happens as on OpenBSD. Both libsqlite3.so and libmozsqlite3.so get loaded. And on that system the sizes of sqlite3_version don't match, just as on OpenBSD. It seems the linux dynamic linker simply doesn't warn about this. I vaguely remmeber that the they only warn if the symbol is bigger in the 2nd library that gets loaded. But since libmozsqlite3.so gets loaded first and has the longest version string ("3.10.2" vs. "3.8.6") the warning doesn't trigger. In the end we're just witnessing a broken software development process on the side of Mozilla. Perhaps landry can point this out to them. But they'll probably not see this as a serious problem. As long as the sqlite devlopers don't break the ABI, they'll get away with this. We probably just have to live with this. As soon as the system libsqlite3.so gets updated to 3.xx.y, the warning will disappear again. In that sense sthen@'s update to 3.10.2 will "fix" the problem. Given the current Mozilla development process, I don't think it makes sense to move back to using the system libsqlite3.so for Mozilla. It seems the days of libsqlite3.so in base are numbered. Perhaps at that point you can revisit the decision to use the bundled libmozsqlite3.so.