No binary slavery

Added by Igor Pashev about 8 years ago

After a year of binary slavery, Dyson now going to get all required illumos bits compiled from source.

C library with some other accompanying libraries (libsocket, libnsl and others) now built from illumos source and uploaded to Dyson APT repository.

With sources we are free to do what we need ;-)

The version is "2.10-xx", where "2" is for 2012 year, "10" - for October; thus the sources are at the state of 2012-10-01.

List of illumos issues fixed in Dyson libc package

  • 72 _tx_error needs to preserve the errno value
  • 2252 gettext should search in several directories
  • 2404 mmap.s inconsistency
  • 3243 Add shadow support to getent(1)
  • 3244 utmpd.c: 'ret_val' may be used uninitialized
  • 3253 tsol headers mess

Runtime linker changes

  • All libraries are under /lib/x86_64-illumos/. 32-bit libraries - under /lib32.
  • /usr/bin/crle is a wrapper executing real crle (/usr/lib/x86_64-illumos/crle or /usr/lib32/crle) depending on options. Default is "native", e. i. /usr/lib/<multiarch>/crle. Options -64/-32 will cause 64-bit or 32-bit version to be executed.
  • Default library search path is /lib/<multiarch>:/usr/lib/<multiarch>:/usr/lib for "native" arch, and /lib32:/usr/lib32 for 32-bit objects.
  • Runtime linker itself is /lib/x86_64-illumos/ (64-bit) and /lib32/ (32-bit). Compatibility links are maintained of course.

So, by default no configuration is required for runtime linker.

Library rename

illumos runtime linker rely on illumos ELF library and illumos AVL tree library. Since there are too many ELF and AVL libraries around, illumos' ones have been renamed to libsunelf and libsunavl. This will break some tools, but Dyson is not in production yet ;-).