C library¶
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.
Workaround:
$ 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).
Extended attributes¶
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).
See particular recipes.
Filesystem layout¶
/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 /bin
and /usr/bin
are separated. So additional modifications are required for some "low-level" packages like "sed", "ed", all shells, etc.
Debian multiarch¶
x86_64-illumos
for Dyson on x86_64 (64-bit) processorsi386-illumos
for Dyson on x86 (32-bit) processors (this distribution does not exist)
So Dyson on amd64 has directories /lib/x86_64-illumos
and /usr/lib/x86_64-illumos
.
Manpages layout¶
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.
Toolchain¶
Default compiler is GCC 9¶
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 ifuname
returns "SunOS", the linker is the SunOS linker.It is wrong, see for example:
- https://fedorahosted.org/augeas/ticket/289,
- https://bugzilla.gnome.org/show_bug.cgi?id=685626,
- http://bugs.debian.org/689656.
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.
See http://git.osdyson.ru/dh-smf.git