sync with TL36978; fixed Copyright year; jump to 0.80.1 (again)
[luatex.git] / source / README.solaris
blob238aa3e287cb0e293751d1504fe792722414732f
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:
14     U1  2006-01
15     U2  2006-06
16     U3  2006-11
17     U4  2007-08
18     U5  2008-05
19     U6  2008-10
20     U7  2009-05
21     U8  2009-10
22     U9  2010-09
23     U10 2011-08
24     U11 2013-01
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
31         SUNW_1.23;
32         SUNW_1.22.7;
33         SUNW_1.22.6;
34         /.../
35         SUNW_1.1;
36         SUNW_0.9;
37         SUNW_0.8;
38         SUNW_0.7;
40 Building wget
41 =============
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
52 > cat mapfile
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 
77 Building xz
78 ===========
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
82 systems.
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.