(This file public domain. Originally written by Mojca Miklavec, 2015.) Compiling TeX binaries on Solaris (The document describes the procedures used on Sparc Solaris binaries, but the same rules should apply to i386 and x86_64 as well.) Solaris 9 has been out of official support for a while and making software compile on that platform is challenging, so it hardly make any sense to try to support it. Solaris 10 reaches end of support in January 2021: http://en.wikipedia.org/wiki/Solaris_(operating_system)#Version_history and TeX Live binaries try to stay compatible with that OS version. Every once in a while a new Update is shipped: U1 2006-01 U2 2006-06 U3 2006-11 U4 2007-08 U5 2008-05 U6 2008-10 U7 2009-05 U8 2009-10 U9 2010-09 U10 2011-08 U11 2013-01 and the problem is that binaries compiled on an updated system might not run on an older one. You can check the libc version with > pvs -no /usr/lib/libc.so > pvs -d /lib/libc.so.1 | grep SUNW SUNW_1.23; SUNW_1.22.7; SUNW_1.22.6; /.../ SUNW_1.1; SUNW_0.9; SUNW_0.8; SUNW_0.7; Building wget ============= Building wget on the latest version of Solaris 10 will make the binary useless on older Updates of Solaris 10 as it would depend on SUNW_1.22.7. One option to build wget in a "compatible way" would be to build it on Solaris 9 with "cc". The other hack is the usage of map files. To make it work on older systems the following hack was used (thanks to the OpenCSW community): https://buildfarm.opencsw.org/source/xref/opencsw/csw/mgar/pkg/wget/trunk/files/map.wget > cat mapfile libc.so - SUNW_1.22.5 SUNWprivate_1.1 $ADDVERS=SUNW_1.22.5; export LD_OPTIONS="-M $PWD/mapfile" And the following configuration was used to get rid of dependencies (which are not installed on Solaris by default): > ./configure --enable-ipv6 --disable-iri --disable-nls \ --disable-ntlm --disable-pcre --without-libiconv-prefix \ --without-libintl-prefix --without-libuuid --without-libpsl \ --without-ssl --without-zlib The binary was built with gcc 4.9.2. > pvs Master/tlpkg/installer/wget/wget.sparc-solaris libsocket.so.1 (SUNW_1.4); libnsl.so.1 (SUNW_1.7); librt.so.1 (SUNW_1.2); libc.so.1 (SUNW_1.22.5, SUNWprivate_1.1); > ./Master/tlpkg/installer/wget/wget.sparc-solaris --version GNU Wget 1.16.3 built on solaris2.10. +digest -https +ipv6 -iri +large-file -nls -ntlm +opie -psl -ssl (That list of configure options is current as of the above version of wget; not all those dependencies are present in earlier versions.) Building xz =========== The xz binaries would likewise depend on SUNW_1.22.6 by default, so we used the same hack with a map file to make it work on slightly older systems. > export LD_OPTIONS="-M $PWD/mapfile" > ./configure --disable-nls --disable-shared > pvs Master/tlpkg/installer/xz/xz.sparc-solaris librt.so.1 (SUNW_1.2); libpthread.so.1 (SUNW_1.2); libc.so.1 (SUNW_1.22); > pvs Master/tlpkg/installer/xz/xzdec.sparc-solaris libc.so.1 (SUNW_1.22); If users need binaries to run on even older systems, we can target what is desired by changing the map file.