> 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.

Reply via email to