summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorMojca Miklavec <mojca.miklavec@gmail.com>2015-04-13 13:32:16 +0000
committerMojca Miklavec <mojca.miklavec@gmail.com>2015-04-13 13:32:16 +0000
commitf9287ffed265908f8f11ce02d9af8c75506e690f (patch)
tree4471da4e5fe7afaee697d841804f8911cf2d7eda /Build
parent7b49a748c0543393e98ac86f2d941ac738ceca0c (diff)
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
Diffstat (limited to 'Build')
-rw-r--r--Build/source/README.solaris68
1 files changed, 68 insertions, 0 deletions
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.