aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2001-08-08 07:50:14 +0000
committerDaniel Stenberg <daniel@haxx.se>2001-08-08 07:50:14 +0000
commit1b2f4031e1188c265bc7a453a5965a7a18323163 (patch)
treefe0592b7dde7e1e54c87ef4f8b0359d7255302d0
parent64822958e6fc208703bf8fad4167ec5edc950e69 (diff)
Nico's notes about porting to VMS
-rw-r--r--docs/INSTALL82
1 files changed, 76 insertions, 6 deletions
diff --git a/docs/INSTALL b/docs/INSTALL
index 1ae77a0ec..e79b2bace 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -6,12 +6,10 @@
How To Compile
-Curl has been compiled and built on numerous different operating systems. The
-way to proceed is mainly divided in two different ways: the unix way or the
-windows way.
+Curl has been compiled and built on numerous different operating systems.
-If you're using Windows (95/98/NT/ME/2000 or whatever) or OS/2, you should
-continue reading from the Win32 or OS/2 headers further down. All other
+If you're using Windows (95/98/NT/ME/2000 or whatever), VMS, RISC OS or OS/2,
+you should continue reading from one the paragraphs further down. All other
systems should be capable of being installed as described below.
UNIX
@@ -255,6 +253,78 @@ IBM OS/2
If you're getting huge binaries, probably your makefiles have the -g in
CFLAGS.
+VMS
+===
+ (The VMS section is in whole contributed by the friendly Nico Baggus)
+
+ This is the first attempt at porting cURL to VMS.
+
+ Curl seems to work with FTP & HTTP other protocols are not tested. (the
+ perl http/ftp testing server supplied as testing too cannot work on VMS
+ because vms has no concept of fork(). [ I tried to give it a whack, but
+ thats of no use.
+
+ SSL stuff has not been ported.
+
+ Telnet has about the same issues as for Win32. When the changes for Win32
+ are clear maybe they'l work for VMS too. The basic problem is that select
+ ONLY works for sockets.
+
+ Marked instances of fopen/[f]stat that might become a problem, especially
+ for non stream files. In this regard, the files opened for writing will be
+ created stream/lf and will thus be safe. Just keep in mind that non-binary
+ read/wring from/to files will have a records size limit of 32767 bytes
+ imposed.
+
+ Stat to get the size of the files is again only safe for stream files &
+ fixed record files without implied CC.
+
+ -- My guess is that only allowing access to stream files is the quickest
+ way to get around the most issues. Therefore all files need to to be
+ checked to be sure they will be stream/lf before processing them. This is
+ the easiest way out, I know. The reason for this is that code that needs to
+ report the filesize will become a pain in the ass otherwise.
+
+ Exit status.... Well we needed something done here,
+
+ VMS has a structured exist status:
+ | 3 | 2 | 1 | 0|
+ |1098|765432109876|5432109876543|210|
+ +----+------------+-------------+---+
+ |Ctrl| Facility | Error code |sev|
+ +----+------------+-------------+---+
+
+ With the Ctrl-bits an application can tell if part or the whole message has
+ allready been printed from the program, DCL doesn't need to print it again.
+
+ Facility - basicaly the program ID. A code assigned to the program
+ the name can be fetched from external or internal message libraries
+ Errorcode - the errodes assigned by the application
+ Sev. - severity: Even = error, off = non error
+ 0 = Warning
+ 1 = Success
+ 2 = Error
+ 3 = Information
+ 4 = Fatal
+ <5-7> reserved.
+
+ This all presents itself with:
+ %<FACILITY>-<SeV>-<Errorname>, <Error message>
+
+ See also the src/curlmsg.msg file, it has the source for the messages In
+ src/main.c a section is devoted to message status values, the globalvalues
+ create symbols with certain values, referenced from a compiled message
+ file. Have all exit function use a exit status derived from a translation
+ table with the compiled message codes.
+
+ This was all compiled with:
+
+ Compaq C V6.2-003 on OpenVMS Alpha V7.1-1H2
+
+ So far for porting notes as of:
+ 13-jul-2001
+ N. Baggus
+
PORTS
=====
This is a probably incomplete list of known hardware and operating systems
@@ -268,7 +338,6 @@ PORTS
- Alpha Linux 2.2.16
- Alpha OpenVMS V7.1-1H2
- Alpha Tru64 v5.0 5.1
- - ARM RISC OS
- HP-PA HP-UX 9.X 10.X 11.X
- MIPS IRIX 6.2, 6.5
- Power AIX 4.2, 4.3.1, 4.3.2
@@ -291,6 +360,7 @@ PORTS
- m68k AmigaOS 3
- m68k OpenBSD
- StrongARM NetBSD 1.4.1
+ - StrongARM (and other ARM) RISC OS 3.1, 4.02
OpenSSL
=======