{\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})}} }