For a while Dyson uses illumos libc, not GNU libc.
More libraries to link¶
Some functions, expected to be in libc, really are in libsocket, libnsl and libresolv. Also Dyson uses GNU libiconv.
$ cat /usr/lib/x86_64-illumos/libc.so INPUT(libc.so.1 AS_NEEDED(-lsocket -lnsl -lresolv -liconv))
Note, that this breaks sunld (illumos link editor). The same trick is used in Debian for libncurses.
Less libraries to link¶
librt, libphtread, libdl are dummy ("filters"). There is not need to link with these libraries, all functions expected to be in these libraries are in libc or ld.so.1 (not worry either).
Parts of POSIX 2008 and some GNU extentions are not supported.
There are specific functions to work with extended attributes of files. These functions involve illumos library libnvpair. Functions known from Linux are provided by libattr (see #59).
/bin is a symbolic link to /usr/bin¶
illumos and Solaris have been using it for a long time. GNU/Linux is going to use it too. But now in Debian
/usr/bin are separated. So additional modifications are required for some "low-level" packages like "sed", "ed", all shells, etc.
x86_64-illumosfor Dyson on x86_64 (64-bit) processors
i386-illumosfor Dyson on x86 (32-bit) processors (this distribution does not exist)
So Dyson on amd64 has directories
Some packages (e. g. "sudo") detect "SunOS" and put manpages in different directories, and
dh_install cannot find some manpages after that. Debian man page layout (aka GNU-style) is prefered.
Default compiler is GCC 5¶
The first version of GCC supporting
x86_64-pc-solaris2.11 hosts is 4.7
GNU linker (ld) from GNU binutils is the default linker¶Some packages fondly expect that if
unamereturns "SunOS", the linker is the SunOS linker.
It is wrong, see for example:
kbuild used to pass the "
-i" to the linker; for sun ld this means "Ignore the LD_LIBRARY_PATH", for GNU ld - "Incremental link".
Init system is SMF¶
Logrotate rules need attention¶
Some rules for logrotate run init-scripts for sysvinit, e. g. Apache and Lighttpd.