Annotation of rpl/README, revision 1.8
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;
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;
1.7 bertrand 28: - gcc-4.3 or newer;
29: - g++-4.3 or newer;
30: - gfortran-4.3 or newer.
1.4 bertrand 31:
32: RPL/2 build process invoques automake and autoconf.
33:
1.3 bertrand 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:
1.1 bertrand 41: * RPL/2 is known to run on :
42:
1.4 bertrand 43: - Linux (kernel 2.6.26 and above) on i386, amd64, ppc32, sparc32,
1.1 bertrand 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
1.2 bertrand 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
1.8 ! bertrand 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...
1.4 bertrand 56: - NetBSD 4.0 and above with a restriction. NetBSD's sigpending
1.1 bertrand 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.
1.2 bertrand 59: Sigpending has been fixed in NetBSD 5.0 and RPL/2 runs fine.
1.8 ! bertrand 60: - Windows with Cygwin (>= 1.7.5).
1.1 bertrand 61:
62: * RPL/2 should run on :
63:
64: - HP-UX (10.20 and above), but not tested for a long time.
1.4 bertrand 65: - Linux (2.6.26 and above) on ppc64 and other hardware (arm, hppa...) or
1.1 bertrand 66: with other distributions than Debian.
1.2 bertrand 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.
1.1 bertrand 70: - NetBSD 4.0 and above on other architecture than sparc32 with restriction
71: due to sigpending bug.
1.8 ! bertrand 72: - OS/2 and eComStation.
1.1 bertrand 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,
1.4 bertrand 81: OpenBSD port has to wait for a fixed sigaltstack. RPL/2 uses pselect()
82: that is unavailable too.
1.2 bertrand 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.
1.8 ! bertrand 86: - Hurd because sig_info_t is not filled.
1.1 bertrand 87:
88: * RPL/2 shall never be supported on :
89:
1.8 ! bertrand 90: - Windows (all versions) without Cygwin.
1.1 bertrand 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
1.4 bertrand 99: gcc/g++/gfortran (minimal release : 4.2.0). It is possible to build
1.1 bertrand 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>