File:  [local] / rpl / README
Revision 1.9: download - view: text, annotated - select for diffs - revision graph
Fri Aug 6 15:32:16 2010 UTC (13 years, 8 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Cohérence

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

CVSweb interface <joel.bertrand@systella.fr>