diff options
Diffstat (limited to 'Build/source/doc/README.solaris')
-rw-r--r-- | Build/source/doc/README.solaris | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/Build/source/doc/README.solaris b/Build/source/doc/README.solaris deleted file mode 100644 index 6b13f3feb48..00000000000 --- a/Build/source/doc/README.solaris +++ /dev/null @@ -1,182 +0,0 @@ -(This file public domain. Originally written by Mojca Miklavec, 2015-16.) - -Compiling TeX binaries on Solaris - -Solaris 9 has been out of official support for a while and making -software compile on that platform is challenging, so it hardly makes 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 for 64-bit -=================== - -All binaries have been compiled with gcc-5.5. -The only thing that is needed to build for 64-bit is to define - export CC="/path/to/gcc-5.5 -m64" - export CXX="/path/to/g++-5.5 -m64" - -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 SUNWprivate_1.1 $ADDVERS=SUNW_1.22; - -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 5.2. -The definition '#define _XOPEN_SOURCE 500' has been removed from 'src/sysdep.h' -to avoid compile error due to the fact that GCC 5 switched to -std=99. - -On i386 and x86_64 one has to manually add "-lsocket -lnsl" to the last linker command. -This should be reported upstream. - -> 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, SUNWprivate_1.1); - -> ./Master/tlpkg/installer/wget/wget.sparc-solaris --version - GNU Wget 1.17.1 built on solaris2.10. - +digest -gpgme -https +ipv6 -iri +large-file -metalink -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. - -> cat mapfile -libc.so - SUNW_1.22 SUNWprivate_1.1 $ADDVERS=SUNW_1.22; - -> 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. - -Building asymptote -================== - -Asymptote has been built with the following flags: - -export CC=/opt/csw/bin/gcc-5.5 -export CXX=/opt/csw/bin/g++-5.5 -./configure --prefix=/tmp/asyinst --enable-texlive-build \ - --disable-fftw --disable-offscreen --disable-sigsegv \ - --disable-gl --disable-gsl --disable-readline - -Even though GL, GSL and readline should generally not be disabled, -the resulting binaries would not be portable enough otherwise. - -Because a newer gcc compiler was used we had to link statically against stdlib. -The following patch/hack took care of this: - ---- Makefile.in.orig -+++ Makefile.in -@@ -12,7 +12,7 @@ - GCPPLIB = @GCPPLIB@ - GCLIBS = $(GCPPLIB) $(GCLIB) - LFLAGS = @LDFLAGS@ --LIBS = $(LFLAGS) @PTHREAD_LIBS@ @GLEW@ @LIBS@ $(GCLIBS) -+LIBS = $(LFLAGS) $(GCLIBS) -nodefaultlibs -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic @PTHREAD_LIBS@ @GLEW@ @LIBS@ -lgcc_eh -lgcc -lc -lm - DOSLIBS = $(subst -lncurses, -ltermcap, $(LIBS)) -lgdi32 -lwinmm -s -static - - PERL = perl ------- - -The resulting binary depends on: - -> pvs asy - libnsl.so.1 (SUNW_0.7); - librt.so.1 (SUNW_1.2); - libm.so.2 (SUNW_1.2); - libc.so.1 (SUNW_1.22, SUNWprivate_1.1); -> ldd asy - libnsl.so.1 => /lib/libnsl.so.1 - librt.so.1 => /lib/librt.so.1 - libz.so.1 => /usr/lib/libz.so.1 - libm.so.2 => /lib/libm.so.2 - libc.so.1 => /lib/libc.so.1 - libmp.so.2 => /lib/libmp.so.2 - libmd.so.1 => /lib/libmd.so.1 - libscf.so.1 => /lib/libscf.so.1 - libaio.so.1 => /lib/libaio.so.1 - libdoor.so.1 => /lib/libdoor.so.1 - libuutil.so.1 => /lib/libuutil.so.1 - libgen.so.1 => /lib/libgen.so.1 - -Building texlive -================ - -Additional settings were needed to compile TeX Live with gcc 5.5: - * ./Build --without-iconv - -The '--without-iconv' makes sure to avoid linking against libiconv -which is not available on SunOS by default. - -luajittex seems to be broken on Solaris 10 x86_64 (even if it works -with Solaris 11) and doesn't support Sparc, so it was only compiled -for i386. - |