Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use glibc instead of uClibc in universal installer builds for Linux #459

Closed
hugbug opened this issue Oct 23, 2017 · 0 comments

Comments

Projects
None yet
1 participant
@hugbug
Copy link
Member

commented Oct 23, 2017

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:

  • build new toolchains based on glibc for x86_64, i686, armhf and armel;
  • update nzbget build script to work correctly with both glibc and uClibc;
  • do more benchmarks;
  • real life testing with glibc builds.

@hugbug hugbug added the meta label Oct 23, 2017

@hugbug hugbug added this to the v20 milestone Oct 23, 2017

@hugbug hugbug referenced this issue Oct 23, 2017

Closed

Speed optimisations in downloader #448

8 of 8 tasks complete

hugbug added a commit that referenced this issue Oct 26, 2017

#459: use glibc instead of uClibc
in universal installer builds for Linux

@hugbug hugbug closed this Oct 27, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.