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