From f9287ffed265908f8f11ce02d9af8c75506e690f Mon Sep 17 00:00:00 2001 From: Mojca Miklavec Date: Mon, 13 Apr 2015 13:32:16 +0000 Subject: Build/source/README.solaris: preliminary document about building binaries on (Sparc) Solaris git-svn-id: svn://tug.org/texlive/trunk@36832 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/README.solaris | 68 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Build/source/README.solaris (limited to 'Build') diff --git a/Build/source/README.solaris b/Build/source/README.solaris new file mode 100644 index 00000000000..78bde8e7611 --- /dev/null +++ b/Build/source/README.solaris @@ -0,0 +1,68 @@ +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 +an 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); + +In case that binaries should run on even older systems, users should report problems and we can target even older systems by patching the mapfile. -- cgit v1.2.3