Annotation of rpl/README, revision 1.28
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;
1.25 bertrand 25: - gmake;
1.4 bertrand 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;
1.12 bertrand 29: - gcc-4.4 or newer;
30: - g++-4.4 or newer;
1.25 bertrand 31: - gfortran-4.4 or newer.
1.4 bertrand 32:
33: RPL/2 build process invoques automake and autoconf.
34:
1.3 bertrand 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:
1.20 bertrand 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
1.21 bertrand 50: --without-mysql --without-postgresql --without-x
1.20 bertrand 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:
1.1 bertrand 55: * RPL/2 is known to run on :
56:
1.13 bertrand 57: - Linux (kernel 2.6.26 and beyond). Test distribution is Debian.
58: - Solaris 8 and beyond.
1.1 bertrand 59: It can be built out of the box on Solaris in a 32bits userland. For a
1.2 bertrand 60: 64bits executable, you have to modify some generated makefiles or
61: specify some options. See 64bits on Solaris.
1.12 bertrand 62: - FreeBSD 7.x. I have installed a FreeBSD 7.0, upgraded to 7.2
1.8 bertrand 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...
1.13 bertrand 67: - NetBSD 5.0 and beyond.
68: - OpenBSD 4.8 and beyond.
1.8 bertrand 69: - Windows with Cygwin (>= 1.7.5).
1.12 bertrand 70: - OS/2 and eComStation with EMX (>= 0.9d). You probably have to
1.14 bertrand 71: recreate configure script and makefiles with aclocal, autoconf and
72: automake.
1.15 bertrand 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: ========================================================================
1.12 bertrand 83: - Mac OS X.
1.1 bertrand 84:
85: * RPL/2 should run on :
86:
1.12 bertrand 87: - AIX
1.13 bertrand 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.
1.1 bertrand 90:
91: Any information about RPL/2 on these last operating systems are welcome.
92:
93: * RPL/2 is not supported on :
94:
1.2 bertrand 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.
1.8 bertrand 98: - Hurd because sig_info_t is not filled.
1.1 bertrand 99:
100: * RPL/2 shall never be supported on :
101:
1.8 bertrand 102: - Windows (all versions) without Cygwin.
1.1 bertrand 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
1.4 bertrand 111: gcc/g++/gfortran (minimal release : 4.2.0). It is possible to build
1.1 bertrand 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:
1.19 bertrand 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:
1.1 bertrand 149: J. Bertrand <joel.bertrand@systella.fr>
CVSweb interface <joel.bertrand@systella.fr>