Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Use glibc instead of uClibc in universal installer builds for Linux #459
In universal installer builds for Linux we currently use uClibc. That's because it supports static linking required to build binaries with little dependencies.
During performing many benchmarks for improvements in downloader (#448) I did comparisons of binaries from universal installer and natively compiled binaries. Native binaries showed much better speed on all tested systems: x86_64, ARMv7 and ARMv8.
For a test I've built a toolchain based on glibc and the produced binary showed high speed similar to native binary.
Now the hard part. Glibc doesn't really like static linking. For certain features static builds still need glibc at runtime, more precisely the same version of glibc which were used for compiling. In particular hostname lookup function (DNS) do this. That made glibc not suitable to NZBGet in the past.
However after doing some research I've found a way - recent versions of glibc can be compiled with a special option which disables dynamic libraries for name lookup services. In addition to that OpenSSL must be compiled with special options to disable using of certain glibc functions which require dynamic libraries.
In this issue: