OS/390 support
authorBodo Möller <bodo@openssl.org>
Thu, 22 Nov 2001 11:09:42 +0000 (11:09 +0000)
committerBodo Möller <bodo@openssl.org>
Thu, 22 Nov 2001 11:09:42 +0000 (11:09 +0000)
Submitted by: Richard Shapiro <rshapiro@abinitio.com>

CHANGES
Configure
TABLE
tools/c89.sh [new file with mode: 0755]

diff --git a/CHANGES b/CHANGES
index 8f62d89a23036946c5f7c6c454be29c888653a04..5d785a03e2c9ff4276175d163c2be8b0ee456f32 100644 (file)
--- a/CHANGES
+++ b/CHANGES
          *) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7
          +) applies to 0.9.7 only
 
+  *) Add a configuration entry for OS/390 Unix.  The C compiler 'c89'
+     is called via tools/c89.sh because arguments have to be
+     rearranged (all '-L' options must appear before the first object
+     modules).
+     [Richard Shapiro <rshapiro@abinitio.com>]
+
   +) Use wNAFs in EC_POINTs_mul() for improved efficiency
      (up to about 10% better than before for P-192 and P-224).
      [Bodo Moeller]
index 80b13687283b0730f81ec41dbfcb1bbf03dadb34..1d58c617a578c585259e3864d27d0b0f5567f38e 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -464,6 +464,12 @@ my %table=(
 # SIEMENS BS2000/OSD: an EBCDIC-based mainframe
 "BS2000-OSD","c89:-O -XLLML -XLLMK -XL -DB_ENDIAN -DTERMIOS -DCHARSET_EBCDIC::(unknown)::-lsocket -lnsl:THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
 
+# OS/390 Unix an EBCDIC-based Unix system on IBM mainframe
+# You need to compile using the c89.sh wrapper in the tools directory, because the
+# IBM compiler does not like the -L switch after any object modules.
+#
+"OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H  -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
+
 # Windows NT, Microsoft Visual C++ 4.0
 
 "VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
diff --git a/TABLE b/TABLE
index cf4346cb14e9259a763ddeab673691327e2a072a..b922375ad8218b632e0a5b1970eaa4d7b7a4705e 100644 (file)
--- a/TABLE
+++ b/TABLE
@@ -299,6 +299,29 @@ $shared_cflag =
 $shared_extension = 
 $ranlib       = 
 
+*** OS390-Unix
+$cc           = c89.sh
+$cflags       = -O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H  -D_ALL_SOURCE
+$unistd       = 
+$thread_cflag = (unknown)
+$sys_id       = 
+$lflags       = 
+$bn_ops       = THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR
+$bn_obj       = 
+$des_obj      = 
+$bf_obj       = 
+$md5_obj      = 
+$sha1_obj     = 
+$cast_obj     = 
+$rc4_obj      = 
+$rmd160_obj   = 
+$rc5_obj      = 
+$dso_scheme   = 
+$shared_target= 
+$shared_cflag = 
+$shared_extension = 
+$ranlib       = 
+
 *** OpenBSD
 $cc           = gcc
 $cflags       = -DTERMIOS -O3 -fomit-frame-pointer
diff --git a/tools/c89.sh b/tools/c89.sh
new file mode 100755 (executable)
index 0000000..b25c9fd
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -k
+#
+# Re-order arguments so that -L comes first
+#
+opts=""
+lopts=""
+        
+for arg in $* ; do
+  case $arg in
+    -L*) lopts="$lopts $arg" ;;
+    *) opts="$opts $arg" ;;
+  esac
+done
+
+c89 $lopts $opts