{\page \name={Latte build notes}
If you have problems building Latte, or even if you don't, we'd love
to hear about your experience. Please {\a \href=correspond.html let
us know} how it goes.
Building Latte from source requires a C++ compiler and the C++ "STL"
library (which is included with modern C++ compilers).
Latte is known to trigger fatal compiler errors under g++ 2.8.1 on
some platforms. On others, it may be necessary to disable the
optimizer (the -O flag) in order to make the compiler work properly.
The setting of the {\tt CXXFLAGS} environment variable will override
the default compiler flags; set {\tt CXXFLAGS} before running {\tt
configure}.
Line 123 of the file {\tt closure.cxx} in Latte 2.0 causes a compiler
error with gcc 2.95. The line in question is:
{\pre
\" throw Useless(*this, (tangible ? *tangible : loc));\"
}
To solve the problem, change that line to:
{\pre
\" throw Useless(*this, (tangible ? tangible->fileloc() : loc));\"
}
This is fixed in Latte 2.1.
The file {\tt definitions.cxx} appears to trigger a fatal compiler
bug in gcc 2.7.2.2; specifically, in references to {\tt
Latte_List::const_iterator} operations in {\tt DefOp::apply()}.
If during "make check" the test {\tt undefined-x} fails, you probably
need to upgrade to a newer version of the "binutils" package (that
includes the programs {\tt ld}, {\tt as}, and others). This problem
also manifests as a core dump in some situations where Latte should
report an error, such as referring to an undefined variable.
\; The current version of binutils for Linux can be found at {\a
\; \href=ftp://sunsite.unc.edu/pub/Linux/GCC
\; ftp://sunsite.unc.edu/pub/Linux/GCC}.
\; The current version of binutils for other platforms is at {\a
\; \href=ftp://ftp.gnu.org/pub/gnu ftp://ftp.gnu.org/pub/gnu}.
When building an RPM distribution of latte, note that for maximum
portability you should "{\tt make LDFLAGS=-all-static latte-rpm}" to
create a static-linked latte-html. However, this disables
distribution of liblatte.so.
Latte is known to compile and run successfully on these platforms:
{\ul
{\li i686-linux 2.2.5, egcs 2.91.66}
{\li i586-linux 2.0.33, egcs 2.90.27}
{\li i686-linux 2.0.33, egcs 2.90.29}
{\li i686-linux 2.0.35, egcs 2.90.27}
{\li sparc-sunos 5.5.1, gcc 2.7.2 (no {\tt -O})}
{\li sgi-irix 6.2, gcc 2.8.1 (with {\tt -O2 -g})}
{\li ppc-linux 2.0.33, egcs 2.90.25}}
\; The static-link latte-html executable in the Zanshin-packaged RPM is
\; known to run successfully on:
\; {\ul
\; {\li i586-linux 2.0.31, RedHat 4.2}
\; {\li i686-linux 2.0.35, RedHat 5.2}}
Latte passes all tests except error-handling on this platform:
{\ul
{\li sgi-irix 6.2, gcc 2.7.2.x (GNU make, no {\tt -O})}}
}