This 'Development stream' Toolchain-page describes Linux on System z contributions to Toolchain-components and related packages.

If you download any software from this web site please be aware of the Warranty Disclaimer and Limitation of Liabilities.

Current Toolchain

2014-12-12 Updated Toolchain (Development stream)

The kernel 3.16-based 'Development stream' has been tested with the following Toolchain:


GCC 4.9.1 unchanged

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

System z specific changes to prio versions:


GNU Binutils - binutils 2.24.0 unchanged

Category: application development tool.

The Binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

Binutils can be downloaded from: ftp://ftp.gnu.org/gnu/binutils/

This release contains several System z specific bugfixes and improvements only.


GNU C Library - glibc 2.20 upgraded

Category: application development tool.

Glibc contains the GNU C Runtime library for Linux.

Source code for glibc can be downloaded from: http://ftp.gnu.org/gnu/glibc/

This release contains several important System z specific bugfixes and improvements.

As a general rule it is not recommended to build and install a glibc from source code: glibc should only be upgraded using distributor packages.

Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc). For C standard library support of DFP numbers please use libdfp (see below).

A few words about Glibc 2.19: With Glibc version 2.19 the size of jmp_buf and ucontext_t data structures changed in order to be prepared for future hardware extensions. As it turned out that change caused major problems for Linux distributions and 3rd party packages and is reverted with Glibc 2.20. The change will also be reverted for upcoming Glibc 2.19 bugfix releases. However, the Glibc 2.19 release as it is available now does still contain the ABI compatibility problem and can therefore not be recommended for System z.


Decimal Floating Point C library - libdfp 1.0.7 unchanged

Category: application development tool.

The "Decimal Floating Point C Library" is an implementation of ISO/IEC Technical report "ISO/IEC TR 24732" which describes the C-Language library routines necessary to provide the C library runtime support for decimal floating point data types introduced in IEEE 754-2008, namely _Decimal32, _Decimal64, and _Decimal128.

The latest description of ISO/IEC TR 24732 at the time of this writing can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf

A rationale can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1242.pdf

The library will make use of System z hardware decimal floating point instructions when configured with --with-cpu= for a CPU type equal or higher than z9-ec. Otherwise a software implementation (libdecnumber) will be used.

Please see the README.user and README.developer files in the source directory for more information.

The library can be obtain from the eglibc code repository using: svn co http://www.eglibc.org/svn -r12619 libdfp


LLVM 3.4.2 unchanged

LLVM is an alternate compiler suite released under the BSD license and not part of the GNU Toolchain. LLVM can be used as a static compiler but is particularly well suited to be used as just-in-time compiler in the context of the graphics rendering pipeline. Recent Linux desktop environments require LLVM to be supported also on System z.

Source code for LLVM can be downloaded from: http://www.llvm.org/releases/

Starting with LLVM version 3.3 code generation for System z / 64 bit is supported. While LLVM is able to optimize for z196 and zEC12 the generated code requires at least an IBM System z10 machine to run.

Current Toolchain related packages

2014-09-19 Toolchain related packages

The following Toolchain-related packages are of interest to Linux on System z:


GNU Debugger - GDB 7.8 upgraded

Category: application development tool.

The GNU Debugger GDB is a source level debugger enabling the user to find programming bugs.

GDB 7.8 is available from: http://www.gnu.org/software/gdb/

GDB now supports dumping of the thread diagnostic block in core file or live debugging sessions. This is useful when debugging code using hardware transactions.

This release also contains several System z specific bugfixes and improvements.


Optimized algebra math library - libatlas 3.10.0 (stable release) unchanged

Category: math library

Support and performance of the "Automatically Tuned Linear Algebra Software" (ATLAS) has been improved for System z.

The library provides blas and lapack interfaces and can be used to significantly accelerate business intelligence applications.

Version 3.10.0 can be obtained via sourceforge website:
http://sourceforge.net/projects/math-atlas/files/Stable/3.10.0/


Valgrind 3.9.0 upgraded

Category: application development tool.

Valgrind is an code instrumentation framework best known for its memory debugging capabilities.

Version 3.9.0 has been released on 2013-10-31 and is available for download from: http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2

Among other improvements of the System z instruction set support also Decimal Floating Point instructions are supported now.


Eclipse 3.3 (or later) unchanged

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org


Oprofile 0.9.9 unchanged

Category: application development tool.

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code.

Oprofile on System z provides support for the CPU measurement facility since kernel version 2.6.39. The hardware sampling capabilities will be used transparently if the LPAR is configured for 'Basic Mode Sampling'.

Oprofile source code can be obtained here: http://oprofile.sourceforge.net/

With version 0.9.9 support for IBM zEnterprise EC12 has been added. In order to use hardware sampling on zEC12 at least version 3.10 of the Linux kernel is required.

Archive


2014-09-19 Updated Toolchain (Development stream)

The kernel 3.14-based 'Development stream' has been tested with the following Toolchain:


GCC 4.9.1 upgraded

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

System z specific changes to prio versions:


GNU Binutils - binutils 2.24.0 upgraded

Category: application development tool.

The Binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

Binutils can be downloaded from: ftp://ftp.gnu.org/gnu/binutils/

This release contains several System z specific bugfixes and improvements only.


GNU C Library - glibc 2.18 unchanged

Category: application development tool.

Glibc contains the GNU C Runtime library for Linux.

Source code for glibc can be downloaded from: http://ftp.gnu.org/gnu/glibc/

This release contains several important System z specific bugfixes and improvements.

As a general rule it is not recommended to build and install a glibc from source code: glibc should only be upgraded using distributor packages.

Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc). For C standard library support of DFP numbers please use libdfp (see below).

A few words about Glibc 2.19: With Glibc version 2.19 the size of jmp_buf and ucontext_t data structures changed in order to be prepared for future hardware extensions. As it turned out that change caused major problems for Linux distributions and 3rd party packages and is reverted with Glibc 2.20. The change will also be reverted for upcoming Glibc 2.19 bugfix releases. However, the Glibc 2.19 release as it is available now does still contain the ABI compatibility problem and can therefore not be recommended for System z.


Decimal Floating Point C library - libdfp 1.0.7 unchanged

Category: application development tool.

The "Decimal Floating Point C Library" is an implementation of ISO/IEC Technical report "ISO/IEC TR 24732" which describes the C-Language library routines necessary to provide the C library runtime support for decimal floating point data types introduced in IEEE 754-2008, namely _Decimal32, _Decimal64, and _Decimal128.

The latest description of ISO/IEC TR 24732 at the time of this writing can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf

A rationale can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1242.pdf

The library will make use of System z hardware decimal floating point instructions when configured with --with-cpu= for a CPU type equal or higher than z9-ec. Otherwise a software implementation (libdecnumber) will be used.

Please see the README.user and README.developer files in the source directory for more information.

The library can be obtain from the eglibc code repository using: svn co http://www.eglibc.org/svn -r12619 libdfp


LLVM 3.4.2 upgraded

LLVM is an alternate compiler suite released under the BSD license and not part of the GNU Toolchain. LLVM can be used as a static compiler but is particularly well suited to be used as just-in-time compiler in the context of the graphics rendering pipeline. Recent Linux desktop environments require LLVM to be supported also on System z.

Source code for LLVM can be downloaded from: http://www.llvm.org/releases/

Starting with LLVM version 3.3 code generation for System z / 64 bit is supported. While LLVM is able to optimize for z196 and zEC12 the generated code requires at least an IBM System z10 machine to run.

2013-10-31 Updated Toolchain (Development stream)

The kernel 3.11-based 'Development stream' has been tested with the following Toolchain:


GCC 4.8.2 upgraded

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

System z specific changes to prio versions:


GNU Binutils - binutils 2.23.2 upgraded

Category: application development tool.

The Binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

Binutils can be downloaded from: ftp://ftp.gnu.org/gnu/binutils/

This release contains several System z specific bugfixes and improvements only.


GNU C Library - glibc 2.18 upgraded

Category: application development tool.

Glibc contains the GNU C Runtime library for Linux.

Source code for glibc can be downloaded from: http://ftp.gnu.org/gnu/glibc/

This release contains several important System z specific bugfixes and improvements.

As a general rule it is not recommended to build and install a glibc from source code: glibc should only be upgraded using distributor packages.

Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc). For C standard library support of DFP numbers please use libdfp (see below).


Decimal Floating Point C library - libdfp 1.0.7 unchanged

Category: application development tool.

The "Decimal Floating Point C Library" is an implementation of ISO/IEC Technical report "ISO/IEC TR 24732" which describes the C-Language library routines necessary to provide the C library runtime support for decimal floating point data types introduced in IEEE 754-2008, namely _Decimal32, _Decimal64, and _Decimal128.

The latest description of ISO/IEC TR 24732 at the time of this writing can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf

A rationale can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1242.pdf

The library will make use of System z hardware decimal floating point instructions when configured with --with-cpu= for a CPU type equal or higher than z9-ec. Otherwise a software implementation (libdecnumber) will be used.

Please see the README.user and README.developer files in the source directory for more information.

The library can be obtain from the eglibc code repository using: svn co http://www.eglibc.org/svn -r12619 libdfp


LLVM 3.3 new

LLVM is an alternate compiler suite released under the BSD license and not part of the GNU Toolchain. LLVM can be used as a static compiler but is particularly well suited to be used as just-in-time compiler in the context of the graphics rendering pipeline. Recent Linux desktop environments require LLVM to be supported also on System z.

Source code for LLVM can be downloaded from: http://www.llvm.org/releases/

With version 3.3 LLVM supports code generation for System z / 64 bit. While LLVM is able to optimize for z196 and zEC12 the generated code requires at least an IBM System z10 machine to run.

2013-10-31 Toolchain related packages

The following Toolchain-related packages are of interest to Linux on System z:


GNU Debugger - GDB 7.6.1 upgraded

Category: application development tool.

The GNU Debugger GDB is a source level debugger enabling the user to find programming bugs.

GDB 7.6.1 is available from: http://www.gnu.org/software/gdb/

This release contains several System z specific bugfixes and improvements.


Optimized algebra math library - libatlas 3.10.0 (stable release) unchanged

Category: math library

Support and performance of the "Automatically Tuned Linear Algebra Software" (ATLAS) has been improved for System z.

The library provides blas and lapack interfaces and can be used to significantly accelerate business intelligence applications.

Version 3.10.0 can be obtained via sourceforge website:
http://sourceforge.net/projects/math-atlas/files/Stable/3.10.0/


Valgrind 3.8.1 unchanged

Category: application development tool.

Valgrind is an code instrumentation framework best known for its memory debugging capabilities.

Version 3.8.1 has been released on 2012-09-19 and is available for download from: http://valgrind.org/downloads/valgrind-3.8.1.tar.bz2

Support of the System z instruction set has been improved with this version. Among others also complex instructions like unicode conversion and "translate" are available now.


Eclipse 3.3 (or later) unchanged

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org


Oprofile 0.9.9 upgraded

Category: application development tool.

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code.

Oprofile on System z provides support for the CPU measurement facility since kernel version 2.6.39. The hardware sampling capabilities will be used transparently if the LPAR is configured for 'Basic Mode Sampling'.

Oprofile source code can be obtained here: http://oprofile.sourceforge.net/

With version 0.9.9 support for IBM zEnterprise EC12 has been added. In order to use hardware sampling on zEC12 at least version 3.10 of the Linux kernel is required.

2012-12-19 Updated Toolchain (Development stream)

The kernel 3.7-based 'Development stream' has been tested with the following Toolchain:


GCC 4.7.2 upgraded

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

GCC version 4.7.2 has been released on 2012-09-20, providing System z specific performance improvements and bug fixes. By tuning for z10 or higher (e.g. with -mtune=z10) only memcpy and memcmp calls for constant lengths below 64k will still be emitted inline. Others are implemented as calls into Glibc relying on hardware tuned variants to be available there (see STT_GNU_IFUNC below).
Support for IBM zEnterprise EC12 specific tuning and instruction set exploitation has been added to the development version of GCC 4.8. An Open Source release of the GCC 4.8.0 compiler is expected around spring 2013.


GNU Binutils - binutils 2.23.1 upgraded

Category: application development tool.

The Binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

Binutils can be downloaded from: ftp://ftp.gnu.org/gnu/binutils/

The following new features are available for Linux on System z with this version:


GNU C Library - glibc 2.17 upgraded

Category: application development tool.

glibc contains the GNU C Runtime library for Linux.

The following new feature is available since 2012-12-26 for Linux on System z with this version:

Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore.
In order to obtain the glibc 2.12 source code, it is necessary to check out a certain CVS branch (glibc-2_12-branch)
following the instructions on http://www.gnu.org/software/libc/resources.html.

Source code for glibc can be downloaded from: http://ftp.gnu.org/gnu/glibc/

As a general rule it is not recommended to build and install a glibc from source code: glibc should only be upgraded using distributor packages.

Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc). For C standard library support of DFP numbers please use libdfp (see below).


Decimal Floating Point C library - libdfp 1.0.7 unchanged

Category: application development tool.

The "Decimal Floating Point C Library" is an implementation of ISO/IEC Technical report "ISO/IEC TR 24732" which describes the C-Language library routines necessary to provide the C library runtime support for decimal floating point data types introduced in IEEE 754-2008, namely _Decimal32, _Decimal64, and _Decimal128.

The latest description of ISO/IEC TR 24732 at the time of this writing can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf

A rationale can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1242.pdf

The library will make use of System z hardware decimal floating point instructions when configured with --with-cpu= for a CPU type equal or higher than z9-ec. Otherwise a software implementation (libdecnumber) will be used.

Please see the README.user and README.developer files in the source directory for more information.

The library can be obtain from the eglibc code repository using: svn co http://www.eglibc.org/svn -r12619 libdfp

2012-12-19 Toolchain related packages

The following Toolchain-related packages are of interest to Linux on System z:


GNU Debugger - GDB 7.5.1 upgraded

Category: application development tool.

The GNU Debugger GDB is a source level debugger enabling the user to find programming bugs.

The following new feature is available for Linux on System z with this version:

GDB 7.5.1 is available from: http://www.gnu.org/software/gdb/


Optimized algebra math library - libatlas 3.10.0 (stable release) upgraded

Category: math library

Support and performance of the "Automatically Tuned Linear Algebra Software" (ATLAS) has been improved for System z.

The library provides blas and lapack interfaces and can be used to significantly accelerate business intelligence applications.

Version 3.10.0 can be obtained via sourceforge website:
http://sourceforge.net/projects/math-atlas/files/Stable/3.10.0/


Valgrind 3.8.1 upgraded

Category: application development tool.

Valgrind is an code instrumentation framework best known for its memory debugging capabilities.

Version 3.8.1 has been released on 2012-09-19 and is available for download from: http://valgrind.org/downloads/valgrind-3.8.1.tar.bz2

Support of the System z instruction set has been improved with this version. Among others also complex instructions like unicode conversion and "translate" are available now.


Eclipse 3.3 (or later) unchanged

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org


Oprofile 0.9.7 unchanged

Category: application development tool.

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code.

Oprofile on System z provides support for the CPU measurement facility since kernel version 2.6.39. The hardware sampling capabilities will be used transparently if the LPAR is configured for 'Basic Mode Sampling'.

Starting with the upcoming release (0.9.8) the user space interface for OProfile has been enhanced in order to support the CPU measurement facility in a more convenient manner. It will be possible to configure the hardware sampling through the OProfile event interface as described in the OProfile manual. Linux kernel version 3.3 is needed to make use of the enhanced interface.

Oprofile source code can be obtained here: http://oprofile.sourceforge.net/


2012-06-13 Updated Toolchain (Development stream)

The kernel 3.4-based 'Development stream' has been tested with the following Toolchain:


GCC 4.6.3 upgraded

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

GCC version 4.6.3 has been released on 2012-03-01, providing the same functionality for Linux on System z as GCC 4.6.0 including support for IBM zEnterprise z196 and 64 bit register usage in 32 bit applications (with -m31 -mzarch).


GNU Binutils - binutils 2.22 upgraded

Category: application development tool.

The Binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

Binutils can be downloaded from: ftp://ftp.gnu.org/gnu/binutils/

The following new features are available for Linux on System z with this version:


GNU C Library - glibc 2.14 upgraded

Category: application development tool.

glibc contains the GNU C Runtime library for Linux.

Source code for glibc can be downloaded from: http://ftp.gnu.org/gnu/glibc/

As a general rule it is not recommended to build and install a glibc from source code: glibc should only be upgraded using distributor packages.

No Linux on System z specific features have been added with this version.
Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc). For C standard library support of DFP numbers please use libdfp (see below).


Decimal Floating Point C library - libdfp 1.0.7 unchanged

Category: application development tool.

The "Decimal Floating Point C Library" is an implementation of ISO/IEC Technical report "ISO/IEC TR 24732" which describes the C-Language library routines necessary to provide the C library runtime support for decimal floating point data types introduced in IEEE 754-2008, namely _Decimal32, _Decimal64, and _Decimal128.

The latest description of ISO/IEC TR 24732 at the time of this writing can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf

A rationale can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1242.pdf

The library will make use of System z hardware decimal floating point instructions when configured with --with-cpu= for a CPU type equal or higher than z9-ec. Otherwise a software implementation (libdecnumber) will be used.

Please see the README.user and README.developer files in the source directory for more information.

The library can be obtain from the eglibc code repository using: svn co http://www.eglibc.org/svn -r12619 libdfp

2012-06-13 Toolchain related packages

The following Toolchain-related packages are of interest to Linux on System z:


GNU Debugger - GDB 7.3.1 upgraded

Category: application development tool.

The GNU Debugger GDB is a source level debugger enabling the user to find programming bugs.

GDB 7.3.1 is available from: http://www.gnu.org/software/gdb/

No Linux on System z specific features have been added with this version.


Optimized algebra math library - libatlas 3.9.52 (development release) unchanged

Category: math library

Support and performance of the "Automatically Tuned Linear Algebra Software" (ATLAS) has been improved for System z.

The library provides blas and lapack interfaces and can be used to significantly accelerate business intelligence applications.

The changes were incorporated into the 3.9.52 development version. Thus 3.10 will be the first stable ATLAS version with System z support.

Version 3.9.52 can be obtained via sourceforge website: http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.9.52/


Valgrind 3.7.0 upgraded

Category: application development tool.

Valgrind is an code instrumentation framework best known for its memory debugging capabilities.

IBM System z support is included in Valgrind 3.7.0, supporting GCC generated code up to z10 (without decimal floating point) and parts of the z196 instruction set.

Valgrind source code can be obtained from: http://valgrind.org/downloads/


Eclipse 3.3 (or later) unchanged

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org


Oprofile 0.9.7 upgraded

Category: application development tool.

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code.

Oprofile on System z provides support for the CPU measurement facility since kernel version 2.6.39. The hardware sampling capabilities will be used transparently if the LPAR is configured for "Basic Mode Sampling".

Starting with the upcoming release (0.9.8) the user space interface for OProfile has been enhanced in order to support the CPU measurement facility in a more convenient manner. It will be possible to configure the hardware sampling through the OProfile event interface as described in the OProfile manual. Linux kernel version 3.3 is needed to make use of the enhanced interface.

Oprofile source code can be obtained here: http://oprofile.sourceforge.net/


2011-11-30 Toolchain related packages

The following Toolchain-related packages are of interest to Linux on System z:


GNU Debugger - GDB 7.2

The GNU Debugger GDB is a source level debugger enabling the user to find programming bugs.

The following new feature is available for Linux on System z with this version:

GDB 7.2 is available on: http://www.gnu.org/software/gdb/


Optimized algebra math library - libatlas 3.9.52 (development release)

Support and performance of the "Automatically Tuned Linear Algebra Software" (ATLAS) has been improved for System z.

The library provides blas and lapack interfaces and can be used to significantly accelerate business intelligence applications.

The changes were incorporated into the 3.9.52 development version. Thus 3.10. will be the first stable ATLAS version with System z support.

Version 3.9.52 can be obtained via sourceforge website: http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.9.52/


Valgrind

Valgrind is an code instrumentation framework best known for its memory debugging capabilities.

IBM System z support is included in Valgrind 3.7.0, supporting GCC generated code up to z10 (without decimal floating point) and parts of the z196 instruction set.

See: http://sourceforge.net/mailarchive/message.php?msg_id=28363976


Eclipse

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org


Oprofile

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code.

You can download from the the latest version from the Oprofile homepage: http://oprofile.sourceforge.net/


2011-06-30 Updated Toolchain (Development stream)

The kernel 2.6.39-based 'Development stream' has been tested with the following Toolchain:


GCC 4.6.0

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

GCC version 4.6.0 has been released on 2011-03-25, providing two major features for Linux on System z:


GNU Binutils - binutils 2.21.51.0.7

Category: application development tool.

The binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

binutils can be downloaded from: http://www.kernel.org/pub/linux/devel/binutils/

The following new features are available for Linux on System z with this version:


GNU C Library - glibc 2.12

Category: application development tool.

glibc contains the GNU C Runtime library for Linux.

The following new feature is available for Linux on System z with this version:

Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore.
In order to obtain the glibc 2.12 source code, it is necessary to check out a certain CVS branch (glibc-2_12-branch) following the instructions on http://www.gnu.org/software/libc/resources.html.

As a general rule it is not recommended to build and install a glibc from source code! Glibc should only be upgraded using distributor packages.
Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc). For C standard library support of DFP numbers please use libdfp (see below).


Decimal Floating Point C library - libdfp 1.0.7

Category: application development tool.

The "Decimal Floating Point C Library" is an implementation of ISO/IEC Technical report "ISO/IEC TR 24732" which describes the C-Language library routines necessary to provide the C library runtime support for decimal floating point data types introduced in IEEE 754-2008, namely _Decimal32, _Decimal64, and _Decimal128.

The latest description of ISO/IEC TR 24732 at the time of this writing can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf

A rationale can be found here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1242.pdf

The library will make use of System z hardware decimal floating point instructions when configured with --with-cpu= for a CPU type equal or higher than z9-ec. Otherwise a software implementation (libdecnumber) will be used.

Please see the README.user and README.developer files in the source directory for more information.

The library can be obtain from the eglibc code repository using: svn co http://www.eglibc.org/svn -r12619 libdfp


2011-06-30 Toolchain related packages (superseded)

The following Toolchain-related packages are of interest to Linux on System z:


GNU Debugger - GDB 7.2

The GNU Debugger GDB is a source level debugger enabling the user to find programming bugs.

The following new feature is available for Linux on System z with this version:

GDB 7.2 is available on: http://www.gnu.org/software/gdb/


Valgrind

Valgrind is an code instrumentation framework best known for its memory debugging capabilities.

IBM System z support will be part of the upcoming 3.7 release. The current version supports GCC generated code up to z10 (without decimal floating point) and parts of the z196 instruction set.

It can be obtained from the Valgrind source code repository using: svn co svn://svn.valgrind.org/valgrind/trunk valgrind.


Eclipse

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org


Oprofile

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code. Starting with version 0.9.4, Oprofile supports sampling of Java byte code applications.
You can download from the the latest version from the Oprofile homepage: http://oprofile.sourceforge.net/


2010-05-28 Updated Toolchain (Development stream) superseded

The kernel 2.6.34-based 'Development stream' has been tested with the following Toolchain:

Note that the contents of 2008-11-25 Toolchain related packages (references to Eclipse and Oprofile) is still applicable.


GCC 4.5.0

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

This GCC release has the same functionality for Linux on System z as GCC 4.4.1, except for some performance improvements.


GNU Binutils - binutils 2.20.51.0.7

Category: application development tool.

The binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on. binutils can be downloaded from: http://www.kernel.org/pub/linux/devel/binutils/

For Linux on System z, binutils 2.20.51.0.7 includes the same functionality as binutils 2.18.50.0.9 plus support for ELF dumps that have been created by zgetdump (in s390-tools 1.9.0).


GNU C Library - glibc 2.10

Category: application development tool.

glibc contains the GNU C Runtime library for Linux.

For Linux on System z, glibc 2.10 includes the same functionality as glibc 2.9; no new features relevant to Linux on System z.
But glibc 2.10 contains an important bugfix for a race condition when using malloc hooks: http://sources.redhat.com/bugzilla/show_bug.cgi?id=9957

Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore.
In order to obtain the glibc 2.10 source code it is necessary to check out a certain CVS branch (glibc-2_10-branch) following the instructions on http://www.gnu.org/software/libc/resources.html.

As a general rule it is not recommended to build and install a glibc from source code! Glibc should only be upgraded using distributor packages.
Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc).


2009-09-23 Updated Toolchain (Development stream) superseded

The kernel 2.6.31-based 'Development stream' has been tested with the following Toolchain:

Note that the contents of 2008-11-25 Toolchain related packages (references to Eclipse and Oprofile) is still applicable.


GCC 4.4.1

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

This GCC release allows generating code using the z10 hardware instructions and provides z10 specific instructions scheduling (it includes the functionality of the 2009-05-08 GCC 4.3.3 z10 exploitation patch). When the -march=z10 option is specified, GCC makes use of the z10 instruction extension facility to generate faster executables which are limited to run on a z10 or higher. z10 specific instruction scheduling is enabled by default when using the -march=z10 option but can also be requested separately using the -mtune=z10 option.


GNU Binutils - binutils 2.18.50.0.9

Category: application development tool.

The binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.

binutils can be downloaded from: http://www.kernel.org/pub/linux/devel/binutils/

For Linux on System z, binutils 2.18.50.0.9 (or higher) includes the same functionality as binutils 2.18.50.0.7; no new features relevant to Linux on System z.


GNU C Library - glibc 2.10

Category: application development tool.

glibc contains the GNU C Runtime library for Linux.

For Linux on System z, glibc 2.10 includes the same functionality as glibc 2.9; no new features relevant to Linux on System z.
But glibc 2.10 contains an important bugfix for a race condition when using malloc hooks: http://sources.redhat.com/bugzilla/show_bug.cgi?id=9957

Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore.
In order to obtain the glibc 2.10 source code it is necessary to check out a certain CVS branch (glibc-2_10-branch) following the instructions on http://www.gnu.org/software/libc/resources.html.

As a general rule it is not recommended to build and install a glibc from source code! Glibc should only be upgraded using distributor packages.
Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc).


2009-05-08 Updated Toolchain (Development stream) superseded

The kernel 2.6.29-based 'Development stream' has been tested with the following Toolchain:

Note that the contents of 2008-11-25 Toolchain related packages (references to Eclipse and Oprofile) is still applicable.


GCC 4.3.3

Category: application development tool.

The GNU Compiler Collection as available from http://gcc.gnu.org is able to generate code for Linux on System z. It supports various programming languages like C, C++, Java, Ada and Fortran.

For Linux on System z, GCC 4.3.3 includes the same functionality as GCC 4.3.2; no new features relevant to Linux on System z.


GCC 4.3.3 patch with z10 exploitation

gcc-4.3.3-z10-complete.patch.tar.gz / MD5 recommended (2009-05-08)

This patch provides the same functionality as the 2008-11-25 GCC 4.3.2 patch for z10 exploitation.

Summary:
GCC: Support for IBM System z10.
Description:
This patch enables GCC 4.3.3 to generate code using the z10 hardware instructions and provides z10 specific instructions scheduling. When the -march=z10 option is specified, GCC makes use of the z10 instruction extension facility to generate faster executables which are limited to run on a z10 or higher. z10 specific instruction scheduling is enabled by default when using the -march=z10 option but can also be requested separately using the -mtune=z10 option.
Note that the major part of this patch is available with the GCC 4.4.0 release.
Using GCC 4.4.0 you will also need: http://gcc.gnu.org/ml/gcc-patches/2009-04/msg01917.html

GNU Binutils - binutils 2.18.50.0.9

Category: application development tool.
The binutils package is a collection of various development tools like an assembler, a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.
binutils can be downloaded from: http://www.kernel.org/pub/linux/devel/binutils/

For Linux on System z, binutils 2.18.50.0.9 (or higher) includes the same functionality as binutils 2.18.50.0.7; no new features relevant to Linux on System z.


GNU C Library - glibc 2.9

Category: application development tool.

glibc contains the GNU C Runtime library for Linux.

For Linux on System z, glibc 2.9 includes the same functionality as glibc 2.8 with the glibc 2.8 patch for utmp-support; no new features relevant to Linux on System z.

Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore.
In order to obtain the glibc 2.9 source code it is necessary to check out a certain CVS branch (glibc-2_9-branch) following the instructions on http://www.gnu.org/software/libc/resources.html.

As a general rule it is not recommended to build and install a glibc from source code! Glibc should only be upgraded using distributor packages.
Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc).


2008-11-25 Updated Toolchain with z10 support (Development stream) superseded

The kernel 2.6.27-based 'Development stream' has been tested with the following Toolchain:


GCC 4.3.2

Category: application development tool.
Contains the C Compiler front-end including architecture dependent back-ends like the s390 back-end that generates executables for Linux on System z.
GCC can be downloaded from: http://gcc.gnu.org

GCC 4.3.2 (or higher) includes Support for the IBM System z9 instructions.


GCC 4.3.2 patch for z10 exploitation

gcc-4.3.2-z10-complete.patch.tar.gz / MD5 recommended (2008-11-25)

This patch contains the following feature:

Summary:
GCC: Support for IBM System z10.
Description:
This patch enables GCC 4.3.2 to generate code using the new IBM System z10 hardware instructions and provides z10 specific instructions scheduling. When the -march=z10 option is specified, GCC makes use of the z10 instruction extension facility to generate faster executables which are limited to run on a z10 or higher. z10 specific instruction scheduling is enabled by default when using the -march=z10 option but can also be requested separately using the -mtune=z10 option.
Note that this patch will be integrated in GCC 4.4.

GNU Binutils - binutils 2.18.50.0.7

Category: application development tool.
The binutils package is a collection of various development tools like a linker, a utility for creating, modifying and extracting from archives, a tool that displays information from object files, a tool to generate an index to the contents of an archive and so on.
binutils can be downloaded from: http://www.kernel.org/pub/linux/devel/binutils/

binutils 2.18.50.0.7 or higher includes:


GNU C Library - glibc 2.8

Category: application development tool.
glibc contains the GNU C Runtime library for Linux.
Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore. In order to obtain the glibc 2.8 source code it is necessary to check out a certain CVS branch (glibc-2_8-branch) following the instructions on http://www.gnu.org/software/libc/resources.html.
As a general rule it is not recommended to build and install a glibc from source code! Glibc should only be upgraded using distributor packages.
Note: Decimal floating point (DFP) numbers are currently not supported as part of the GNU C Library (glibc).


GNU C Library - glibc 2.8 patch for utmp-support

glibc-2.8-utmp-compat.patch.tar.gz / MD5 recommended (2008-11-25)

This patch contains the following feature:

Summary:
glibc: Support for 31/64-bit compatible utmp.
Description:
The Linux on System z 64-bit kernel allows the execution of 32 bit applications using the so called "compat layer for system calls". This patch fixes a problem occurring when 32 bit and 64 bit applications access the utmp-like (wtmp, utmpx) files in the system. Previously these files had a different format on 32 and 64 bit leading to the files being corrupted on disk in case 32 as well as 64 bit programs write to them. The attached patch unifies the utmp format to the 64 bit variant and provides a compat layer for the utmp accessor functions in order to keep old 32 bit code working. The patch is recommended to be applied on top of glibc 2.8.
Please be aware that starting with glibc 2.8 the open source community has decided to not provide downloadable tarballs for the releases anymore. In order to obtain the glibc 2.8 source code it is necessary to check out a certain CVS branch (glibc-2_8-branch) following the instructions on http://www.gnu.org/software/libc/resources.html.
As a general rule it is not recommended to build and install a glibc from source code! Glibc should only be upgraded using distributor packages.

2008-11-25 Toolchain related packages superseded

Eclipse

Starting with Eclipse 3.3, Linux on System z is officially supported.
You can download the latest version from the Eclipse website: http://www.eclipse.org

Oprofile

Oprofile is an open source tool developed to analyse performance bottlenecks in user space and kernel code. Starting with version 0.9.4, Oprofile supports sampling of Java byte code applications.
You can download from the the latest version from the Oprofile homepage: http://oprofile.sourceforge.net/


2008-05-07 New Toolchain (Development stream) superseded

The kernel 2.6.25-based "Development stream" has been tested with the following Toolchain:

Note that tests with gcc 4.2 were also successful.

Contact the IBM team

If you want to contact the Linux on System z IBM team refer to the Contact the Linux on System z IBM team page.