Annotation of rpl/README, revision 1.3

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.
                     13: --------------------------------------------------------------------------------
                     14: 
                     15:    RPL/2 signifies Reverse Polish Lisp/2. This language is obvious derivated
                     16: from the first RPL written by Hewlett-Packard for its 28S calculator. Thus,
                     17: this language is a half-compiled high level language which can perform
                     18: symbolic and scientific computations.
                     19: 
1.3     ! bertrand   20: 
        !            21:   * OpenSSL issue :
        !            22: 
        !            23:    OpenSSL does not use any configure script. If build process aborts on
        !            24: error related to OpenSSL, you shall try to build OpenSSL before running
        !            25: 'make'. On some system, OpenSSL configure script is unable to set compiler
        !            26: flags.
        !            27: 
1.1       bertrand   28:   * RPL/2 is known to run on :
                     29: 
                     30:    - Linux (kernel 2.6.12 and above) on i386, amd64, ppc32, sparc32,
                     31:        sparc64, alpha. Test distribution is Debian. Warning, you have to
                     32:        use NPTL, not LinuxThreads due to a bug in sem_post() that is not
                     33:        async safe.
                     34:    - Solaris 9 and above on i386, amd64, sparc32 (only Solaris 9) and sparc64.
                     35:        It can be built out of the box on Solaris in a 32bits userland. For a
1.2       bertrand   36:        64bits executable, you have to modify some generated makefiles or
                     37:        specify some options. See 64bits on Solaris.
                     38:    - FreeBSD 7.x on i386. I have installed a FreeBSD 7.0, upgraded to 7.2
                     39:         and RPL/2 ran without any trouble. RPL/2 does not run on FreeBSD 8.0
                     40:        because sig_into_t struct is not filled. Someone has reported that
                     41:        FreeBSD 7.2 did not filled this struct too...
1.1       bertrand   42:    - NetBSD 4.0 and above on sparc32 with a restriction. NetBSD's sigpending
                     43:        is broken and it is impossible to use DETACH intrinsic. Bug report
                     44:        has been done and this bug should be fixed in next NetBSD release.
1.2       bertrand   45:        Sigpending has been fixed in NetBSD 5.0 and RPL/2 runs fine.
1.1       bertrand   46: 
                     47:   * RPL/2 should run on :
                     48: 
                     49:    - HP-UX (10.20 and above), but not tested for a long time.
                     50:    - Linux (2.6.12 and above) on ppc64 and other hardware (arm, hppa...) or
                     51:        with other distributions than Debian.
1.2       bertrand   52:    - FreeBSD 7.0 and above on other architecture than i386. Please not
                     53:        that I cannot reproduce sig_info_t bug and I do not have more
                     54:        information.
1.1       bertrand   55:    - NetBSD 4.0 and above on other architecture than sparc32 with restriction
                     56:        due to sigpending bug.
                     57:    - Mac OS X.
                     58: 
                     59:    Any information about RPL/2 on these last operating systems are welcome.
                     60: 
                     61:   * RPL/2 is not supported on :
                     62: 
                     63:    - OpenBSD due to a major bug in sigaltstack syscall when a program is
                     64:        linked with -lthread. As this bug comes from OpenBSD libraries,
                     65:        OpenBSD port has to wait for a fixed sigaltstack.
1.2       bertrand   66:    - OpenVMS (work in progress) on Alpha and Integrity due to some bugs in GNV.
                     67:        RPL/2 never works on OpenVMS VAX because GNV is too old on this
                     68:        architecture.
                     69:    - Hurd.
1.1       bertrand   70: 
                     71:   * RPL/2 shall never be supported on :
                     72: 
                     73:    - Cygwin due to some troubles between Cygwin Posix subsystem and Windows.
                     74:        You can try, but I shall never support Cygwin. If someone proposes
                     75:        patches to build RPL/2 on Cygwin, I won't modify official RPL/2 source
                     76:        tree, but only propose these patches against official tarball.
                     77:    - Windows (all versions).
                     78:    - OS/2 and eComStation.
                     79:    - Mac OS preX.
                     80: 
                     81:    Tools directory contains some libraries that are normally provided by
                     82:    all Posix systems. These libraries are built during build process
                     83:    and RPL/2 is statically linked with them because I have seen that on
                     84:    several systems, some Posix libraries have strange 'features'...
                     85: 
                     86:    On all systems, you must install GNU make and you should install
                     87:    gcc/g++/gfortran (minimal release : 4.0.0). It is possible to build
                     88:    RPL/2 with some other compilers (for example cc and f95 from SunStudio,
                     89:    or cc and f95 from Digital^WCompaq^WHP) but I do not test all potential
                     90:    combinaisons.
                     91: 
                     92:   * 64 bits on Solaris (are you sure that you need 64bits wide RPL/2 ?)
                     93: 
                     94:    You have to configure RPL/2 with some user defined variables.
                     95: 
                     96:    CFLAGS="$CFLAGS -m64" CXXFLAGS="$CXXFLAGS -m64" FCFLAGS="$FCFLAGS -m64" \
                     97:            FFLAGS="$FFLAGS -m64" LDFLAGS="$LDFLAGS -m64" ./configure (options)
                     98: 
                     99:    If you want to use mysql or postgresql support, you should obtain 64bits
                    100:    binary executables, libraries and daemons. PostgreSQL 8.3.5 does not compile
                    101:    on Solaris 10 in 64bits mode with gcc/GNU ld (due to a strange bug, ld
                    102:    tries to build a 32bits wide library with 64bits objects even if -m64 is
                    103:    specified on command line...). I have not tried mysql.
                    104: 
                    105:    If you want to use rplc, you have to use GNU ld, not Solaris ld, due to
                    106:    another bug that avoid symbol exportation. You have to check that rpl
                    107:    is linked with libmtmalloc and not with libmalloc from libc because there
                    108:    is another bug in Solaris' libc : free() can enter in a deadlock
                    109:    (internal locked mutex).
                    110: 
                    111:    Of course, all 64bits libraries have to be accessible by LD_LIBRARY_PATH.
                    112: 
                    113: tchaikovski:[/usr/shared-apps/bin] > file rpl
                    114: rpl: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked,
                    115:      not stripped
                    116: 
                    117:    Very easy^Wnice, isn't it ?
                    118: 
                    119:    J. Bertrand <joel.bertrand@systella.fr>

CVSweb interface <joel.bertrand@systella.fr>