ICU-2628 Add cross compilation features for z/OS

X-SVN-Rev: 12070
This commit is contained in:
George Rhoten 2003-05-23 03:45:30 +00:00
parent d6ff25b48d
commit e78a782f35
6 changed files with 221 additions and 156 deletions

View file

@ -32,7 +32,7 @@
<abbr title="International Components for Unicode">ICU</abbr> 2.6
ReadMe</h1>
<p>Version: 2003-May-02<br>
<p>Version: 2003-May-22<br>
Copyright &copy; 1997-2003 International Business Machines Corporation and
others. All Rights Reserved.</p>
<!-- Remember that there is a copyright at the end too -->
@ -1049,8 +1049,22 @@
<p>Examples for configuring ICU:<br>
Debug build: <code>IEEE390=1 ./runConfigureICU --enable-debug
zOS/cxx</code><br>
Release build: <code>IEEE390=1 ./runConfigureICU zOS/cxx</code></p>
zOS</code><br>
Release build: <code>IEEE390=1 ./runConfigureICU zOS</code></p>
</li>
<li>
<p>z/OS introduced the concept of Extra Performance Linkage (XPLINK) to
bring performance improvement opportunities to call-intensive C and C++
applications such as ICU. XPLINK is enabled on a DLL-by-DLL basis, so
if you are considering using XPLINK in your application that uses ICU,
you should consider building the XPLINK-enabled version of ICU. You
need to set ICU's environment variable <code>OS390_XPLINK=1</code>
prior to invoking the make process to produce binaries that are enabled
for XPLINK.</p>
<p>Note: XPLINK, enabled for z/OS 1.2 and later, requires the PTF for
PQ69418 to build XPLINK-enabled binaries.</p>
</li>
<li>Since the default make on z/OS is not gmake, the pkgdata tool
@ -1067,6 +1081,28 @@
be updated to contain the location of this executable prior to build.
Alternatively, makedep may be moved into an existing PATH directory.</li>
<li>
<p>When you build ICU on a system such as z/OS 1.2, the binaries that
result can run on that level of the operating system and later, such as
z/OS 1.3 and z/OS 1.4. It's possible that you may have a z/OS 1.4
system and, for example, need to deliver binaries on z/OS 1.2 and
above. z/OS gives you this ability by targetting the complier and
linker to run at the older level, thereby producing the desired
binaries.</p>
<p>To set the compiler and LE environment to OS/390 2.10,
specify the following:</p>
<pre>
<samp>./runConfigureICU OS390V2R10</samp>
</pre>
<p>To set the compiler and LE environment to z/OS 1.2 specify the
following:</p>
<pre>
<samp>./runConfigureICU zOSV1R2</samp>
</pre>
</li>
<li>The rest of the instructions for building and testing ICU on z/OS
with Unix System Services are the same as the <a href=
"#HowToBuildUnix">How To Build And Install On Unix</a> section.</li>

View file

@ -3,7 +3,7 @@
## Copyright (c) 1999-2001, International Business Machines Corporation and
## others. All Rights Reserved.
##
## $Id: mh-os390,v 1.50 2003/05/23 02:36:44 grhoten-oss Exp $
## $Id: mh-os390,v 1.51 2003/05/23 03:42:21 grhoten-oss Exp $
###################################################################
# IMPORTANT NOTE #
@ -68,12 +68,12 @@ GEN_DEPS.cc= makedep
## Commands to compile
# _CXX_STEPS="-1" is a prelink step when compiling C and C++, and
# it's only needed for long function names
COMPILE.c = $(CXX) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c
COMPILE.cc = _CXX_CXXSUFFIX="cpp" $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c
COMPILE.c = $(COMPILE_LINK_ENVVAR) $(CXX) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c
COMPILE.cc = _CXX_CXXSUFFIX="cpp" $(COMPILE_LINK_ENVVAR) $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c
# Commands to link
LINK.c= $(CC) $(CFLAGS) -Wl,dll $(LDFLAGS)
LINK.cc= $(CXX) $(CXXFLAGS) -Wl,dll $(LDFLAGS)
LINK.c= $(COMPILE_LINK_ENVVAR) $(CC) $(CFLAGS) -Wl,dll $(LDFLAGS)
LINK.cc= $(COMPILE_LINK_ENVVAR) $(CXX) $(CXXFLAGS) -Wl,dll $(LDFLAGS)
## Commands for shared library (dll)
SHLIB.c= $(LINK.c)

288
icu4c/source/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@ dnl Copyright (c) 1999-2000, International Business Machines Corporation and
dnl others. All Rights Reserved.
dnl Stephen F. Booth, heavily modified by Yves and others
dnl $Id: configure.in,v 1.184 2003/04/25 21:43:50 grhoten-oss Exp $
dnl $Id: configure.in,v 1.185 2003/05/23 03:41:52 grhoten-oss Exp $
dnl Process this file with autoconf to produce a configure script
AC_INIT(common/unicode/utypes.h)
@ -74,6 +74,7 @@ AC_CHECK_STRICT_COMPILE
dnl Check if we can build and use 64-bit libraries
AC_CHECK_64BIT_LIBS
AC_SUBST(ARFLAGS)
AC_SUBST(COMPILE_LINK_ENVVAR)
ICU_CHECK_MH_FRAG

View file

@ -89,6 +89,7 @@ AIX_SHLIB = @AIX_SHLIB@
AR = @AR@
ARFLAGS := @ARFLAGS@ $(ARFLAGS)
RANLIB = @RANLIB@
COMPILE_LINK_ENVVAR = @COMPILE_LINK_ENVVAR@
# Various flags for the tools

View file

@ -46,7 +46,9 @@ The following names can be supplied as the argument for platform:
SOLARISGCC Use the GNU C++ compiler on Solaris
SOLARISX86 Use Sun's CC compiler on Solaris x86
TRU64V5.1/CXX Use Compaq's cxx compiler on Tru64 (OSF)
zOS/cxx Use IBM's cxx compiler on z/OS (os/390)
zOS Use IBM's cxx compiler on z/OS (os/390)
zOSV1R2 Use IBM's cxx compiler for z/OS 1.2
OS390V2R10 Use IBM's cxx compiler for OS/390 2.10
EOE
fi
@ -253,13 +255,36 @@ case $platform in
THE_COMP="QNX cc"
CC=qcc; export CC
CXX=QCC; export CXX
;;
zOS/cxx)
;;
zOS)
THE_OS="z/OS (OS/390)"
THE_COMP="z/OS 1.2 (through OS/390 v2r10) C/C++"
CC=cc; export CC
CXX=cxx; export CXX
export IEEE390=1
export RELEASE_CFLAGS='-2'
export RELEASE_CXXFLAGS='-2'
;;
zOSV1R2)
THE_OS="z/OS 1.2"
THE_COMP="z/OS 1.2 C/C++"
CC=cc; export CC
CXX=cxx; export CXX
export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
export LD_FLAGS=-Wl,"compat=pm3"
export CFLAGS=-Wc,"target(zOSV1R2)"
export CXXFLAGS=-Wc,"target(zOSV1R2)"
export RELEASE_CFLAGS='-2'
export RELEASE_CXXFLAGS='-2'
;;
OS390V2R10)
THE_OS="OS/390 2.10"
THE_COMP="OS/390 2.10 C/C++"
CC=cc; export CC
CXX=cxx; export CXX
export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x220A0000 _C89_CVERSION=0x220A0000 _CC_CVERSION=0x220A0000 _CXX_PVERSION=0x220A0000 _C89_PVERSION=0x220A0000 _CC_PVERSION=0x220A0000'
export LD_FLAGS=-Wl,"compat=pm3"
export CFLAGS=-Wc,"target(OSV2R10)"
export CXXFLAGS=-Wc,"target(OSV2R10)"
export RELEASE_CFLAGS='-2'
export RELEASE_CXXFLAGS='-2'
;;