File:  [local] / rpl / README
Revision 1.28: download - view: text, annotated - select for diffs - revision graph
Tue Jul 16 15:17:16 2019 UTC (7 months, 1 week ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_31, 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:     - gmake;
   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;
   29:     - gcc-4.4 or newer;
   30:     - g++-4.4 or newer;
   31:     - gfortran-4.4 or newer.
   32: 
   33:     RPL/2 build process invoques automake and autoconf.
   34: 
   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: 
   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
   50: --without-mysql --without-postgresql --without-x
   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: 
   55:   * RPL/2 is known to run on :
   56: 
   57:     - Linux (kernel 2.6.26 and beyond). Test distribution is Debian.
   58:     - Solaris 8 and beyond.
   59:         It can be built out of the box on Solaris in a 32bits userland. For a
   60:         64bits executable, you have to modify some generated makefiles or
   61:         specify some options. See 64bits on Solaris.
   62:     - FreeBSD 7.x. I have installed a FreeBSD 7.0, upgraded to 7.2
   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...
   67:     - NetBSD 5.0 and beyond.
   68:     - OpenBSD 4.8 and beyond.
   69:     - Windows with Cygwin (>= 1.7.5).
   70:     - OS/2 and eComStation with EMX (>= 0.9d). You probably have to
   71:         recreate configure script and makefiles with aclocal, autoconf and
   72:         automake.
   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:         ========================================================================
   83:     - Mac OS X.
   84: 
   85:   * RPL/2 should run on :
   86: 
   87:     - AIX
   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.
   90: 
   91:     Any information about RPL/2 on these last operating systems are welcome.
   92: 
   93:   * RPL/2 is not supported on :
   94: 
   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.
   98:     - Hurd because sig_info_t is not filled.
   99: 
  100:   * RPL/2 shall never be supported on :
  101: 
  102:     - Windows (all versions) without Cygwin.
  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
  111:     gcc/g++/gfortran (minimal release : 4.2.0). It is possible to build
  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: 
  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: 
  149:     J. Bertrand <joel.bertrand@systella.fr>

CVSweb interface <joel.bertrand@systella.fr>