|
LIB390 - C Runtime Library for S/390
Now you can build OS/390 programs for FREE
using GCC and the Tachyon z/Assembler!
- About LIB390
- LIB390 is an open-source project to provide a GCC runtime library for
31-bit OS/390 and z/OS.
LIB390 is made from both GLIBC sources and original modules specific to OS/390.
LIB390 is licensed under the GNU Library General Public License.
The LIB390 project will accept contributions from anyone wanting to extend the
open-source library.
- Project Goals
- Tachyon Software initiated this project with the following goals:
- To allow the Linux for S/390 version of GCC to build
C and C++ programs for OS/390 and z/OS, without the need
to change GCC or the GLIBC header files.
- To allow GCC itself to run under OS/390 and z/OS.
- To allow both open-source and commercial products to be built with GCC.
The longer-term goals are to extend language support to other GNU languages,
including FORTRAN and COBOL, to support 64-bit addressing mode under z/OS and
to support CMS and VSE.
- Project Status
- C Library Functions
- Well over half of the C library functions are available.
The library is already usable for building programs to run under
OS/390 or z/OS Unix System Services.
The most critically missing parts are the stdio functions
for non-HFS files and formatted input (scanf).
Development work is concentrated in this area and rapid progress is expected.
Much work is also needed in the signal handling, termination and math functions;
although it is probable that most of the GLIBC math functions can be used
with little or no change.
- C++ Support
- Support for the C++ language will require two major enhancements.
First, the Tachyon z/Assemblers GNU assembler support must be
enhanced to generate useful GOFF object files for all of the special
ELF constructs generated by GCC when compiling C++ programs.
Second, a prelinker will be required to perform the same magic
the GNU linker does on the special ELF constructs for C++.
Once these tasks are complete, most of the GLIBC C++ library routines
will probably work with little or no change.
- NEW! EBCDIC Support
- Using the new -fexec-charset option of GCC 3.4, it is now possible
to build LIB390 and other C programs from ASCII source but with all strings
and character values converted to EBCDIC.
LIB390 has now been rebuilt with GCC 3.4.4 using the -fexec-charset=IBM037
option.
This eliminates the need to translate input and output between ASCII and EBCDIC.
Version 2.3.03 of the Tachyon z/Assembler is required to assemble the
output of GCC 3.4.
- Downloading and Contributing
- The current LIB390 version is 0.32.
You can download the LIB390 sources, object files and listings from:
http://www.tachyonsoft.com/downloads/lib390.tar.gz
This is a gzipped LINUX tar file with a makefile included to build
everything on Linux/390.
Linux/390 runs well under the Hercules
emulator if you do not have access to a real S/390 or zSeries system.
To build on a Linux/x86, Windows or other system, you will need a cross-compiler
version of GCC that generates Linux/390 GNU assembler.
GCC can be downloaded by following the links from the
GCC home page.
We recommend using at least GCC version 3.0.2.
The current LIB390 objects were built using GCC 3.4.4.
GCC 3.4 or later is required to generate the EBCDIC version of LIB390.
You will also need to use a licensed copy of the Tachyon z/Assembler 2.3 or
download the free Tachyon z/Assembler for GCC.
Some of the source code is written in HLASM-style assembler.
Since LIB390 requires GOFF object files,
the HLASM assembler modules must be assembled using HLASM on OS/390, z/OS or z/VM,
the free Tachyon Legacy Assembler for Linux
or a licensed copy of the Tachyon z/Assembler.
If you are only linking programs with LIB390 and have no need to rebuild LIB390 itself,
you can use the free tas program
included with the Tachyon z/Assembler for GCC.
|
|