Opened 4 years ago

Closed 4 years ago

#13969 closed enhancement (fixed)

Review the thunderbird build

Reported by: ken@… Owned by: Douglas R. Reno
Priority: normal Milestone: 10.1
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

Our thunderbird build is horrendously large and slow. This can be addressed. At http://lists.linuxfromscratch.org/pipermail/blfs-dev/2020-August/03A7570.html I set out my findings from building on one machine.

  1. The main cause of the excessive space and time is that the --disable-debug switch we are using still leaves the debug symbols.
  1. Adding --enable-linker=gold marginally reduces the size of the install, but more importantly it saves more time in the build.
  1. It is unclear exactly what the --disable-debug switch does (the size of the build with it and without it is almost identical), but it appears it should be retained because brief tests without it show the build takes longer.

All three of those are used by gentoo.

  1. Adding CC=gcc CXX=g++ with all of those switches creates a marginally bigger build but seems to build much faster. I am suspicious that this might be normal variation, perhaps caused by random build order in rust. Older versions of firefox used to suffer from that, the current 78.2.0 seems to be consisent to the nearest SBU. Note that although in the past I rejected using gold for firefox because the result with gcc was larger and slower to build, that is not the case with thunderbird.
  1. I have been informed that current thunderbird-78 has built-in support for openpgp, using shipped librnp. The information was ambiguously worded but I think this support is built by default and could be disabled with --disable-openpgp although I question why one would do that. Certainly comm/third_party/rnp/librnp.so is built. At the moment that cannot be linked against system bz2, jsonc or botan (whatever that is) - there is a bug for allowing system versions of those to be used, but probably not in the 78 series.

If we make the build less cumbersome we could add this to the Errata for 10.0 and it might make thunderbird buildable on smaller machines.

Change History (5)

comment:1 by Douglas R. Reno, 4 years ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

Missed ticket that Ken pointed out to me

comment:2 by ken@…, 4 years ago

just a note that I've now run one group of builds on my real 4-core machine - they all took a bit longer in SBU terms. Compared to results I previously reported on the list, removing --disable-debug from the otherwise full set of options while using gcc/g++ was fastest of all. Again, it might be that using --disable-debug is still accepted but does nothing, and this is just normal variation. Maybe build times, at least with gcc, do still vary a lot. The built trees were all slightly larger (newer version of thunderbird), but the installs matched the previous sizes. So, just another data point ;)

comment:3 by Douglas R. Reno, 4 years ago

I'll go the GCC route like you've suggested Ken, but here are my comparisons:

This is done using Thunderbird 78.2.1. Note that my SBU value is equal to 101, and that this is on a Skylake system running 10.0-rc1 (Intel Core i5-6600k @ 3.2GHz, 16GB of RAM, running off HDD)

BOOK AS IS NOW (CLANG, NO NEW OPTIONS):

4233.7 Elasped Time - thunderbird-78.2.1
SBU=41.917
352172 /sources/thunderbird-78.2.1.source.tar.xz size (343.917 MB)
11395404 kilobytes build size (11128.324 MB)
md5sum : 764ab152a8edeea896dcdc2c667e192d  /sources/thunderbird-78.2.1.source.tar.xz
sha1sum: a08e673de7c008e4725b4157f25b44482e0be54e  /sources/thunderbird-78.2.1.source.tar.xz
173M    usr/

BOOK WITH CLANG AND NEW OPTIONS:

3253.8 Elasped Time - thunderbird-78.2.1
SBU=32.215
352172 /sources/thunderbird-78.2.1.source.tar.xz size (343.917 MB)
5263840 kilobytes build size (5140.468 MB)
md5sum : 764ab152a8edeea896dcdc2c667e192d  /sources/thunderbird-78.2.1.source.tar.xz
sha1sum: a08e673de7c008e4725b4157f25b44482e0be54e  /sources/thunderbird-78.2.1.source.tar.xz
171M    usr/

BOOK WITH GCC AND NO NEW OPTIONS:

5420.2 Elasped Time - thunderbird-78.2.1
SBU=53.665
352172 /sources/thunderbird-78.2.1.source.tar.xz size (343.917 MB)
12054692 kilobytes build size (11772.160 MB)
md5sum : 764ab152a8edeea896dcdc2c667e192d  /sources/thunderbird-78.2.1.source.tar.xz
sha1sum: a08e673de7c008e4725b4157f25b44482e0be54e  /sources/thunderbird-78.2.1.source.tar.xz
177M    usr/

BOOK WITH GCC AND NEW OPTIONS:

3257.2 Elasped Time - thunderbird-78.2.1
SBU=32.249
352172 /sources/thunderbird-78.2.1.source.tar.xz size (343.917 MB)
5348964 kilobytes build size (5223.597 MB)
md5sum : 764ab152a8edeea896dcdc2c667e192d  /sources/thunderbird-78.2.1.source.tar.xz
sha1sum: a08e673de7c008e4725b4157f25b44482e0be54e  /sources/thunderbird-78.2.1.source.tar.xz
177M    usr/

comment:4 by Douglas R. Reno, 4 years ago

I decided to redo the comparisons with thunderbird-78.2.2. Conclusion is still the same, with the new options resulting in much smaller build size (~6GB), and some decrease in build time.

THUNDERBIRD 78.2.2

BOOK AS IS NOW (CLANG, NO NEW OPTIONS):

4307.5 Elasped Time - thunderbird-78.2.2
SBU=42.648
344972 /sources/thunderbird-78.2.2.source.tar.xz size (336.886 MB)
11392236 kilobytes build size (11125.230 MB)
md5sum : d749a52de7b6828eaab74af7ef8834de  /sources/thunderbird-78.2.2.source.tar.xz
sha1sum: 1a6f9c318dbc5d907cf35f43b8cbdc99cfa594d7  /sources/thunderbird-78.2.2.source.tar.xz
173M    install/usr

BOOK WITH CLANG AND NEW OPTIONS:

3062.0 Elasped Time - thunderbird-78.2.2
SBU=30.316
344972 /sources/thunderbird-78.2.2.source.tar.xz size (336.886 MB)
5262880 kilobytes build size (5139.531 MB)
md5sum : d749a52de7b6828eaab74af7ef8834de  /sources/thunderbird-78.2.2.source.tar.xz
sha1sum: 1a6f9c318dbc5d907cf35f43b8cbdc99cfa594d7  /sources/thunderbird-78.2.2.source.tar.xz
171M    install/usr

BOOK WITH GCC AND NO NEW OPTIONS:

5766.7 Elasped Time - thunderbird-78.2.2
SBU=57.096
344972 /sources/thunderbird-78.2.2.source.tar.xz size (336.886 MB)
12055564 kilobytes build size (11773.011 MB)
md5sum : d749a52de7b6828eaab74af7ef8834de  /sources/thunderbird-78.2.2.source.tar.xz
sha1sum: 1a6f9c318dbc5d907cf35f43b8cbdc99cfa594d7  /sources/thunderbird-78.2.2.source.tar.xz
177M    usr/

BOOK WITH GCC AND NEW OPTIONS:

3229.5 Elasped Time - thunderbird-78.2.2
SBU=31.975
344972 /sources/thunderbird-78.2.2.source.tar.xz size (336.886 MB)
5348260 kilobytes build size (5222.910 MB)
md5sum : d749a52de7b6828eaab74af7ef8834de  /sources/thunderbird-78.2.2.source.tar.xz
sha1sum: 1a6f9c318dbc5d907cf35f43b8cbdc99cfa594d7  /sources/thunderbird-78.2.2.source.tar.xz
177M    usr/

comment:5 by Douglas R. Reno, 4 years ago

Resolution: fixed
Status: assignedclosed

Fixed at r23706

Note: See TracTickets for help on using tickets.