================================================================================ RPL/2 (R) ================================================================================ -------------------------------------------------------------------------------- WARNING : LESSTIF IS BROKEN AND CORRUPTS HEAP. PLEASE, DO NOT USE LESSTIF INSTEAD REGULAR MOTIF LIBRARIES! I SHALL NOT ACCEPT ANY BUG REPORT FROM USERS THAT HAVE BUILD RPL/2 WITH LESSTIF LIBRAIRIES SINCE OPENMOTIF IS AVAILABLE. DO NOT USE 'make install-strip' THAT BREAKS RPL/2. -------------------------------------------------------------------------------- RPL/2 signifies Reverse Polish Lisp/2. This language is obvious derivated from the first RPL written by Hewlett-Packard for its 28S calculator. Thus, this language is a half-compiled high level language which can perform symbolic and scientific computations. * RPL/2 requires : - nawk or gawk; - gmake; - libtool 1.5 or newer. To build RPL/2 on Mac OSX, you should have to add libtool m4 path in tools/file-*/configure.ac and tools/file-*/Makefile.am; - gcc-4.4 or newer; - g++-4.4 or newer; - gfortran-4.4 or newer. RPL/2 build process invoques automake and autoconf. * OpenSSL issue : OpenSSL does not use any configure script. If build process aborts on error related to OpenSSL, you shall try to build OpenSSL before running 'make'. On some system, OpenSSL configure script is unable to set compiler flags. * RPL/2 cross compilation : To cross-compile RPL/2, you have to build in a first time a native RPL/2 on build host. Installation is not required. In a second time, you have to configure RPL/2 for target host in another directory like : ../rpl/configure --host=arm-unknown-linux-gnueabi --enable-full-static --with-sysroot=/home/bertrand/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --without-mysql --without-postgresql --without-x --with-rpltools=/home/bertrand/cvs/rpl/build --with-openssl-arch=linux-generic32 Of course, you have to configure OpenSSL with --with-openssl-arch. * RPL/2 is known to run on : - Linux (kernel 2.6.26 and beyond). Test distribution is Debian. - Solaris 8 and beyond. It can be built out of the box on Solaris in a 32bits userland. For a 64bits executable, you have to modify some generated makefiles or specify some options. See 64bits on Solaris. - FreeBSD 7.x. I have installed a FreeBSD 7.0, upgraded to 7.2 and RPL/2 ran without any trouble. RPL/2 does not run on early FreeBSD 8.0 because sig_info_t struct is not filled. This bug is now fixed. Someone has reported that FreeBSD 7.2 did not filled this struct too... - NetBSD 5.0 and beyond. - OpenBSD 4.8 and beyond. - Windows with Cygwin (>= 1.7.5). - OS/2 and eComStation with EMX (>= 0.9d). You probably have to recreate configure script and makefiles with aclocal, autoconf and automake. ======================================================================== WARNING : eCS DEFINES TMP VARIABLE THAT OVERWRITES PATHS IN FOPEN() SYSTEM CALL. /TMP/xxx IS REPLACED BY /%TMP%/xxx. THIS BUG ONLY OCCURS WHEN RPL/2 IS CALLED FROM OS/2 OR 4OS2 SHELL. WORKAROUND : DEFINE RPL_TMP_PATH WITH A DRIVE LETTER LIKE SET RPL_TMP_PATH=C:/tmp OR CALL RPL/2 FROM A BOURNE SHELL. ======================================================================== - Mac OS X. * RPL/2 should run on : - AIX - HP-UX (10.20 and beyond), but not tested for a long time. - NetBSD 4.0 and beyond with restriction due to sigpending bug. Any information about RPL/2 on these last operating systems are welcome. * RPL/2 is not supported on : - OpenVMS (work in progress) on Alpha and Integrity due to some bugs in GNV. RPL/2 never works on OpenVMS VAX because GNV is too old on this architecture. - Hurd because sig_info_t is not filled. * RPL/2 shall never be supported on : - Windows (all versions) without Cygwin. - Mac OS preX. Tools directory contains some libraries that are normally provided by all Posix systems. These libraries are built during build process and RPL/2 is statically linked with them because I have seen that on several systems, some Posix libraries have strange 'features'... On all systems, you must install GNU make and you should install gcc/g++/gfortran (minimal release : 4.2.0). It is possible to build RPL/2 with some other compilers (for example cc and f95 from SunStudio, or cc and f95 from Digital^WCompaq^WHP) but I do not test all potential combinaisons. * 64 bits on Solaris (are you sure that you need 64bits wide RPL/2 ?) You have to configure RPL/2 with some user defined variables. CFLAGS="$CFLAGS -m64" CXXFLAGS="$CXXFLAGS -m64" FCFLAGS="$FCFLAGS -m64" \ FFLAGS="$FFLAGS -m64" LDFLAGS="$LDFLAGS -m64" ./configure (options) If you want to use mysql or postgresql support, you should obtain 64bits binary executables, libraries and daemons. PostgreSQL 8.3.5 does not compile on Solaris 10 in 64bits mode with gcc/GNU ld (due to a strange bug, ld tries to build a 32bits wide library with 64bits objects even if -m64 is specified on command line...). I have not tried mysql. If you want to use rplc, you have to use GNU ld, not Solaris ld, due to another bug that avoid symbol exportation. You have to check that rpl is linked with libmtmalloc and not with libmalloc from libc because there is another bug in Solaris' libc : free() can enter in a deadlock (internal locked mutex). Of course, all 64bits libraries have to be accessible by LD_LIBRARY_PATH. tchaikovski:[/usr/shared-apps/bin] > file rpl rpl: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped Very easy^Wnice, isn't it ? * OS/2 and eComstation GSL configure script is broken. You have to replace $(SHELL) $(top_buildir)/libtool by sh $(top_buildir)/libtool in each Makefile. By default, makefile's try to use ash.exe that is broken. J. Bertrand