When i build qbittorrent i have chosen to include ICU as the dependencies seemed to prefer this (boost and i think libtorrent). I say preferred because we can consider this example when building.
Using Debian Buster I already have libc6-dev installed (iconv-dev) and if i build my partially static build i will get this result for functional qbittorrent-nox binary
Code: Select all
linux-vdso.so.1 (0x00007ffcc855f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd78831e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd788319000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd788195000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd788012000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd787ff8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd787e37000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd7896e5000)
If i now install libicu-dev the dependencies will prefer this when configuring and compiling, with no specific instructions given to do so, and will include links to this in the compiled qbittorrent-nox giving me this outcome instead.
Code: Select all
linux-vdso.so.1 (0x00007ffc2888a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7335992000)
libicui18n.so.63 => /lib/x86_64-linux-gnu/libicui18n.so.63 (0x00007f73356b7000)
libicuuc.so.63 => /lib/x86_64-linux-gnu/libicuuc.so.63 (0x00007f73354e8000)
libicudata.so.63 => /lib/x86_64-linux-gnu/libicudata.so.63 (0x00007f7333af8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7333af3000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f733396f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f73337ea000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f73337d0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f733360f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7336ce2000)
When IO build the fully static built the above issue is relevant as that is when the file size will differ. Either 20Mb (no ICU) or 50Mb (with ICU), Due to the apparent preference of the dependencies to use ICU i would assume the end result is better for this but i am unsure from a technical point of view and need some input.
A considerable difference. So the questions are:
What is the relevance of this to the final compiled binary of ICU?
Is it better to have ICU or does it make little difference to not include get a significantly smaller ting a smaller file size?