1 Compiling TeX binaries on Solaris
3 (The document describes the procedures used on Sparc Solaris binaries, but the same
4 rules should apply to i386 and x86_64 as well.)
6 Solaris 9 has been out of official support for a while and making software compile
7 on that platform is challenging, so it hardly make any sense to try to support it.
9 Solaris 10 reaches end of support in January 2021.
10 http://en.wikipedia.org/wiki/Solaris_(operating_system)#Version_history
11 an TeX Live binaries try to stay compatible with that OS version.
13 Every once in a while a new Update is shipped:
25 and the problem is that binaries compiled on an updated system might not run on an older one.
27 You can check the libc version with
28 > pvs -no /usr/lib/libc.so
30 > pvs -d /lib/libc.so.1 | grep SUNW
43 Building wget on the latest version of Solaris 10 will make the binary
44 useless on older Updates of Solaris 10 as it would depend on SUNW_1.22.7.
46 One option to build wget in a "compatible way" would be to build it on
47 Solaris 9 with "cc". The other hack is the usage of map files.
49 To make it work on older systems the following hack was used (thanks to the OpenCSW community):
50 https://buildfarm.opencsw.org/source/xref/opencsw/csw/mgar/pkg/wget/trunk/files/map.wget
53 libc.so - SUNW_1.22.5 SUNWprivate_1.1 $ADDVERS=SUNW_1.22.5;
55 export LD_OPTIONS="-M $PWD/mapfile"
57 And the following configuration was used to get rid of dependencies (which
58 are not installed on Solaris by default):
60 > ./configure --enable-ipv6 --disable-iri --disable-nls \
61 --disable-ntlm --disable-pcre --without-libiconv-prefix \
62 --without-libintl-prefix --without-libuuid --without-libpsl \
63 --without-ssl --without-zlib
65 The binary was built with gcc 4.9.2.
67 > pvs Master/tlpkg/installer/wget/wget.sparc-solaris
68 libsocket.so.1 (SUNW_1.4);
69 libnsl.so.1 (SUNW_1.7);
70 librt.so.1 (SUNW_1.2);
71 libc.so.1 (SUNW_1.22.5, SUNWprivate_1.1);
73 > ./Master/tlpkg/installer/wget/wget.sparc-solaris --version
74 GNU Wget 1.16.3 built on solaris2.10.
75 +digest -https +ipv6 -iri +large-file -nls -ntlm +opie -psl -ssl
80 The version 5.2.1 of xz would likewise depend on SUNW_1.22.6 by default, so
81 we used the same hack with a map file to make it work on slightly older
84 > export LD_OPTIONS="-M $PWD/mapfile"
85 > ./configure --disable-nls --disable-shared
87 > pvs Master/tlpkg/installer/xz/xz.sparc-solaris
88 librt.so.1 (SUNW_1.2);
89 libpthread.so.1 (SUNW_1.2);
90 libc.so.1 (SUNW_1.22);
91 > pvs Master/tlpkg/installer/xz/xzdec.sparc-solaris
92 libc.so.1 (SUNW_1.22);
95 In case that binaries should run on even older systems, users should report
96 problems and we can target even older systems by patching the mapfile.