Annotation of rpl/README, revision 1.26

1.1       bertrand    1: ================================================================================
                      2:    RPL/2 (R)
                      3: ================================================================================
                      4: 
                      5: --------------------------------------------------------------------------------
                      6:    WARNING :
                      7: 
                      8:    LESSTIF IS BROKEN AND CORRUPTS HEAP. PLEASE, DO NOT USE LESSTIF INSTEAD
                      9:    REGULAR MOTIF LIBRARIES!
                     10: 
                     11:    I SHALL NOT ACCEPT ANY BUG REPORT FROM USERS THAT HAVE BUILD RPL/2 WITH
                     12:    LESSTIF LIBRAIRIES SINCE OPENMOTIF IS AVAILABLE.
1.7       bertrand   13: 
                     14:    DO NOT USE 'make install-strip' THAT BREAKS RPL/2.
1.1       bertrand   15: --------------------------------------------------------------------------------
                     16: 
                     17:    RPL/2 signifies Reverse Polish Lisp/2. This language is obvious derivated
                     18: from the first RPL written by Hewlett-Packard for its 28S calculator. Thus,
                     19: this language is a half-compiled high level language which can perform
                     20: symbolic and scientific computations.
                     21: 
1.3       bertrand   22: 
1.4       bertrand   23:   * RPL/2 requires :
                     24:    - nawk or gawk;
1.25      bertrand   25:    - gmake;
1.4       bertrand   26:    - libtool 1.5 or newer. To build RPL/2 on Mac OSX, you should have to
                     27:    add libtool m4 path in tools/file-*/configure.ac and
                     28:    tools/file-*/Makefile.am;
1.12      bertrand   29:    - gcc-4.4 or newer;
                     30:    - g++-4.4 or newer;
1.25      bertrand   31:    - gfortran-4.4 or newer.
1.4       bertrand   32: 
                     33:    RPL/2 build process invoques automake and autoconf.
                     34: 
1.3       bertrand   35:   * OpenSSL issue :
                     36: 
                     37:    OpenSSL does not use any configure script. If build process aborts on
                     38: error related to OpenSSL, you shall try to build OpenSSL before running
                     39: 'make'. On some system, OpenSSL configure script is unable to set compiler
                     40: flags.
                     41: 
1.20      bertrand   42:   * RPL/2 cross compilation :
                     43: 
                     44:    To cross-compile RPL/2, you have to build in a first time a native
                     45:    RPL/2 on build host. Installation is not required. In a second time,
                     46:    you have to configure RPL/2 for target host in another directory like :
                     47: 
                     48: ../rpl/configure --host=arm-unknown-linux-gnueabi --enable-full-static
                     49: --with-sysroot=/home/bertrand/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot
1.21      bertrand   50: --without-mysql --without-postgresql --without-x
1.20      bertrand   51: --with-rpltools=/home/bertrand/cvs/rpl/build --with-openssl-arch=linux-generic32
                     52: 
                     53:    Of course, you have to configure OpenSSL with --with-openssl-arch.
                     54: 
1.1       bertrand   55:   * RPL/2 is known to run on :
                     56: 
1.13      bertrand   57:    - Linux (kernel 2.6.26 and beyond). Test distribution is Debian.
                     58:    - Solaris 8 and beyond.
1.1       bertrand   59:        It can be built out of the box on Solaris in a 32bits userland. For a
1.2       bertrand   60:        64bits executable, you have to modify some generated makefiles or
                     61:        specify some options. See 64bits on Solaris.
1.12      bertrand   62:    - FreeBSD 7.x. I have installed a FreeBSD 7.0, upgraded to 7.2
1.8       bertrand   63:        and RPL/2 ran without any trouble. RPL/2 does not run on early
                     64:        FreeBSD 8.0 because sig_info_t struct is not filled. This bug is now
                     65:        fixed. Someone has reported that FreeBSD 7.2 did not filled this
                     66:        struct too...
1.13      bertrand   67:    - NetBSD 5.0 and beyond.
                     68:    - OpenBSD 4.8 and beyond.
1.8       bertrand   69:    - Windows with Cygwin (>= 1.7.5).
1.12      bertrand   70:    - OS/2 and eComStation with EMX (>= 0.9d). You probably have to
1.14      bertrand   71:        recreate configure script and makefiles with aclocal, autoconf and
                     72:        automake.
1.15      bertrand   73:        ========================================================================
                     74:        WARNING : eCS DEFINES TMP VARIABLE THAT OVERWRITES PATHS
                     75:        IN FOPEN() SYSTEM CALL. /TMP/xxx IS REPLACED BY /%TMP%/xxx.
                     76:        THIS BUG ONLY OCCURS WHEN RPL/2 IS CALLED FROM OS/2 OR 4OS2 SHELL.
                     77:        WORKAROUND : DEFINE RPL_TMP_PATH WITH A DRIVE LETTER LIKE
                     78: 
                     79:            SET RPL_TMP_PATH=C:/tmp
                     80: 
                     81:        OR CALL RPL/2 FROM A BOURNE SHELL.
                     82:        ========================================================================
1.12      bertrand   83:    - Mac OS X.
1.1       bertrand   84: 
                     85:   * RPL/2 should run on :
                     86: 
1.12      bertrand   87:    - AIX
1.13      bertrand   88:    - HP-UX (10.20 and beyond), but not tested for a long time.
                     89:    - NetBSD 4.0 and beyond with restriction due to sigpending bug.
1.1       bertrand   90: 
                     91:    Any information about RPL/2 on these last operating systems are welcome.
                     92: 
                     93:   * RPL/2 is not supported on :
                     94: 
1.2       bertrand   95:    - OpenVMS (work in progress) on Alpha and Integrity due to some bugs in GNV.
                     96:        RPL/2 never works on OpenVMS VAX because GNV is too old on this
                     97:        architecture.
1.8       bertrand   98:    - Hurd because sig_info_t is not filled.
1.1       bertrand   99: 
                    100:   * RPL/2 shall never be supported on :
                    101: 
1.8       bertrand  102:    - Windows (all versions) without Cygwin.
1.1       bertrand  103:    - Mac OS preX.
                    104: 
                    105:    Tools directory contains some libraries that are normally provided by
                    106:    all Posix systems. These libraries are built during build process
                    107:    and RPL/2 is statically linked with them because I have seen that on
                    108:    several systems, some Posix libraries have strange 'features'...
                    109: 
                    110:    On all systems, you must install GNU make and you should install
1.4       bertrand  111:    gcc/g++/gfortran (minimal release : 4.2.0). It is possible to build
1.1       bertrand  112:    RPL/2 with some other compilers (for example cc and f95 from SunStudio,
                    113:    or cc and f95 from Digital^WCompaq^WHP) but I do not test all potential
                    114:    combinaisons.
                    115: 
                    116:   * 64 bits on Solaris (are you sure that you need 64bits wide RPL/2 ?)
                    117: 
                    118:    You have to configure RPL/2 with some user defined variables.
                    119: 
                    120:    CFLAGS="$CFLAGS -m64" CXXFLAGS="$CXXFLAGS -m64" FCFLAGS="$FCFLAGS -m64" \
                    121:            FFLAGS="$FFLAGS -m64" LDFLAGS="$LDFLAGS -m64" ./configure (options)
                    122: 
                    123:    If you want to use mysql or postgresql support, you should obtain 64bits
                    124:    binary executables, libraries and daemons. PostgreSQL 8.3.5 does not compile
                    125:    on Solaris 10 in 64bits mode with gcc/GNU ld (due to a strange bug, ld
                    126:    tries to build a 32bits wide library with 64bits objects even if -m64 is
                    127:    specified on command line...). I have not tried mysql.
                    128: 
                    129:    If you want to use rplc, you have to use GNU ld, not Solaris ld, due to
                    130:    another bug that avoid symbol exportation. You have to check that rpl
                    131:    is linked with libmtmalloc and not with libmalloc from libc because there
                    132:    is another bug in Solaris' libc : free() can enter in a deadlock
                    133:    (internal locked mutex).
                    134: 
                    135:    Of course, all 64bits libraries have to be accessible by LD_LIBRARY_PATH.
                    136: 
                    137: tchaikovski:[/usr/shared-apps/bin] > file rpl
                    138: rpl: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked,
                    139:      not stripped
                    140: 
                    141:    Very easy^Wnice, isn't it ?
                    142: 
1.19      bertrand  143:   * OS/2 and eComstation
                    144: 
                    145:    GSL configure script is broken. You have to replace
                    146:    $(SHELL) $(top_buildir)/libtool by sh $(top_buildir)/libtool in each
                    147:    Makefile. By default, makefile's try to use ash.exe that is broken.
                    148: 
1.1       bertrand  149:    J. Bertrand <joel.bertrand@systella.fr>

CVSweb interface <joel.bertrand@systella.fr>