Toolchain

Page navigation

Current Toolchain

2017-11-28 Updated Toolchain (Development stream)

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


GCC 7.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 (IBM Z). It supports various programming languages like C, C++, Java, Ada, Go and Fortran.

IBM Z specific changes to prior versions (GCC 6.1):

  • Support for the IBM z14 processor has been added. When using the -march=z14 option, the compiler will generate code making use of the new instructions introduced with the vector enhancement facility and the miscellaneous instruction extension facility 2. The -mtune=z14 option enables z14 specific instruction scheduling without making use of new instructions.
  • Builtins for the new vector instructions have been added and can be enabled using the -mzvector option.

GNU Binutils - binutils 2.29 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/

IBM Z specific changes to prior versions (Binutils 2.26.1):

  • Support for the IBM z14 instruction set has been added.

GNU C Library - glibc 2.23 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 e.g. optimized string functions implemented with vector instructions.

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.13 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=<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 github https://github.com/libdfp/libdfp/releases/tag/1.0.13


LLVM 3.8.0 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, zEC12, and z13 the generated code requires at least an IBM System z10 machine to run.

System z specific changes to prior versions (LLVM 3.7.0):

  • Performance improvements for IBM z13 code generation.

Current Toolchain related packages

2017-11-28 Toolchain related packages

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


GNU Debugger - GDB 7.11.1 unchanged

Category: application development tool.

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

  • Support for process record and replay on IBM z Systems has been added. With this version GDB is able to:
    • record a log of the process execution, and
    • replay the execution log with both forward and reverse execution commands.

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

This release also contains some bugfixes and improvements specific to z Systems.


Optimized algebra math library - libatlas 3.10.3 (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.3 has been released on 28th July 2016 and provides support for the vector extensions introduced with IBM z13:
https://sourceforge.net/p/math-atlas/mailman/message/35248575/

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


Valgrind 3.11.0 unchanged

Category: application development tool.

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

Version 3.11.0 has been released on 22nd September 2015 and is available for download from:
http://valgrind.org/downloads/valgrind-3.11.0.tar.bz2

  • It is now required for the host to have the "long displacement" facility. The oldest supported machine model is z990.
  • The instructions fiebra, fidbra, and fixbra are now supported by Valgrind.

This release contains several bugfixes and improvements specific to z Systems.


Archive


2016-08-24 Updated Toolchain (Development stream)

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


GCC 6.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, Go and Fortran.

System z specific changes to prio versions (GCC 5.2):

  • IBM z13 specific instruction scheduling support has been added.
  • The new command line options -march=native, and -mtune=native are now available on native IBM z Systems. Specifying these options will cause GCC to auto-detect the host CPU and rewrite these options to the optimal setting for that system. If GCC is unable to detect the host CPU these options have no effect.
  • The IBM z Systems port now supports target attributes and pragmas. Please refer to the documentation for details of available attributes and pragmas as well as usage instructions (https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/S_002f390-Function-Attributes.html#S_002f390-Function-Attributes).
  • -fsplit-stack is now supported as part of the IBM z Systems port. This feature requires a recent gold linker to be used.
  • Support for the g5 and g6 -march=/-mtune= CPU level switches has been deprecated and will be removed in a future GCC release. -m31 from now on defaults to -march=z900 if not specified otherwise. -march=native on a g5/g6 machine will default to -march=z900.

GNU Binutils - binutils 2.26.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/

System z specific changes to prior versions (Binutils 2.25.1):

  • Support for the IBM z13 instruction set has been added.

GNU C Library - glibc 2.23 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 e.g. optimized string functions implemented with vector instructions.

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.13 upgraded

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=<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 github https://github.com/libdfp/libdfp/releases/tag/1.0.13


LLVM 3.8.0 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, zEC12, and z13 the generated code requires at least an IBM System z10 machine to run.

System z specific changes to prior versions (LLVM 3.7.0):

  • Performance improvements for IBM z13 code generation.

Current Toolchain related packages

2016-08-24 Toolchain related packages

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


GNU Debugger - GDB 7.11.1 upgraded

Category: application development tool.

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

  • Support for process record and replay on IBM z Systems has been added. With this version GDB is able to:
    • record a log of the process execution, and
    • replay the execution log with both forward and reverse execution commands.

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

This release also contains some bugfixes and improvements specific to z Systems.


Optimized algebra math library - libatlas 3.10.3 (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.3 has been released on 28th July 2016 and provides support for the vector extensions introduced with IBM z13:
https://sourceforge.net/p/math-atlas/mailman/message/35248575/

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


Valgrind 3.11.0 upgraded

Category: application development tool.

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

Version 3.11.0 has been released on 22nd September 2015 and is available for download from:
http://valgrind.org/downloads/valgrind-3.11.0.tar.bz2

  • It is now required for the host to have the "long displacement" facility. The oldest supported machine model is z990.
  • The instructions fiebra, fidbra, and fixbra are now supported by Valgrind.

This release contains several bugfixes and improvements specific to z Systems.


2015-09-02 Updated Toolchain (Development stream)

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


GCC 5.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, Go and Fortran.

System z specific changes to prio versions:

  • Support for IBM z13 has been added to the GCC back-end. Using the -march=z13 command line option GCC will make use of the following hardware facilities provided with IBM z13
    • 32 128 bit vector registers (overlapping with the existing 16 64 bit floating point registers)
    • vector double instructions
    • vector integer instructions
    • scalar vector instructions (allowing to have more floating point registers for scalar operations)
    • vector string instructions
  • An Altivec-style set of builtins plus the `vector' keyword can be enabled using the -mzvector command line option.
  • IBM z Systems support for the Go language has been added.
  • The hotpatch feature got enhanced in order to cover more use cases. The command line option as well as the attribute now take two arguments allowing to specify the number of 2 byte NOPs before *AND* after the function entry label.
  • Various IBM z Systems specific bugfixes and performance improvements have been added in the GCC 5 development cycle.

GNU Binutils - binutils 2.25.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/

This release contains several System z specfic bugfixes and improvements. It does not contain the IBM z13 support required for GCC 5.2. Please use either the upstream version or the z13 enabled versions in recent enterprise Linux distributions.


GNU C Library - glibc 2.22 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=<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.7.0 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.

  • Support for IBM z13 has been added to the GCC back-end. Using the -march=z13 command line option GCC will make use of the following hardware facilities provided with IBM z13
    • 32 128 bit vector registers (overlapping with the existing 16 64 bit floating point registers)
    • vector double instructions
    • vector integer instructions
    • scalar vector instructions (allowing to have more floating point registers for scalar operations)
    • vector string instructions
  • An Altivec-style set of builtins plus the `vector' keyword can be enabled using the -mzvector command line option.

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, zEC12, and z13 the generated code requires at least an IBM System z10 machine to run.


2015-09-02 Toolchain related packages

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


GNU Debugger - GDB 7.10 upgraded

Category: application development tool.

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

  • Support for IBM z13 has been added. With this version GDB is able to:
    • Dump content of vector registers in various formats.
    • Read and generate core files containing vector register content.
    • Perform inferior function calls with vector type arguments and return values.

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

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


Optimized algebra math library - libatlas 3.10.2 (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.2 can be obtained via sourceforge website:
http://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/


Valgrind 3.10.1 upgraded

Category: application development tool.

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

Version 3.10.1 has been released on 2014-11-25 and is available for download from: http://valgrind.org/downloads/valgrind-3.10.1.tar.bz2

This release contains several System z specific bugfixes and improvements.



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:

  • Support for the Transactional Execution Facility included with the IBM zEnterprise zEC12 processor has been added. A set of GCC style builtins as well as XLC style builtins are provided. The builtins are enabled by default when using the -march=zEC12 option but can explicitly be disabled with -mno-htm. Using the GCC builtins also libitm supports hardware transactions on S/390.
  • The hotpatch features allows to prepare functions for hotpatching. A certain amount of bytes is reserved before the function entry label plus a NOP is inserted at its very beginning to implement a backward jump when applying a patch. The feature can either be enabled per compilation unit via the command-line option -mhotpatch or per function using the hotpatch attribute.
  • The shrink wrap optimization is now supported on S/390 and enabled by default.
  • A major rework of the routines to determine which registers need to be saved and restored in function prologue/epilogue now allow to use floating point registers as save slots. This will happen for certain leaf function with -march=z10 or higher.
  • The LRA rtl pass replaces reload by default on S/390.

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=<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.


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.


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:

  • Support for the Transactional Execution Facility included with the IBM zEnterprise zEC12 processor has been added. A set of GCC style builtins as well as XLC style builtins are provided. The builtins are enabled by default when using the -march=zEC12 option but can explicitly be disabled with -mno-htm. Using the GCC builtins also libitm supports hardware transactions on S/390.
  • The hotpatch features allows to prepare functions for hotpatching. A certain amount of bytes is reserved before the function entry label plus a NOP is inserted at its very beginning to implement a backward jump when applying a patch. The feature can either be enabled per compilation unit via the command-line option -mhotpatch or per function using the hotpatch attribute.
  • The shrink wrap optimization is now supported on S/390 and enabled by default.
  • A major rework of the routines to determine which registers need to be saved and restored in function prologue/epilogue now allow to use floating point registers as save slots. This will happen for certain leaf function with -march=z10 or higher.
  • The LRA rtl pass replaces reload by default on S/390.

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=<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:

  • Support for the IBM zEnterprise EC12 processor has been added.
    When using the -march=zEC12 option, the compiler will generate code making use of the following new instructions:
    • load and trap instructions
    • 2 new compare and trap instructions
    • rotate and insert selected bits - without CC clobber
    • The -mtune=zEC12 option enables zEC12 specific instruction scheduling without making use of new instructions.
  • The transactional execution facility introduced with zEC12 is supported through a set of low level builtins as documented in the GCC manual:
    http://gcc.gnu.org/onlinedocs/gcc/S_002f390-System-z-Built_002din-Functions.html#S_002f390-System-z-Built_002din-Functions
    For compatibility with the IBM XL C/C++ compiler an alternate set of builtins is provided through the htmxlintrin.h header file. Documentation for the IBM XL C/C++ compiler builtins can be found in the "z/OS XL C/C++ Programming Guide".

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=<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:

  • IBM zEnterprise EC12 support: The GNU assembler and the objdump tool support the new instructions introduced with IBM zEnterprise EC12.
  • STT_GNU_IFUNC support: STT_GNU_IFUNC is an extension to the ELF binary format allowing to chose between different implementations of a function based on CPU capabilities. Support for STT_GNU_IFUNC symbols in the System z specific part of the linker has been implemented.

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:

  • STT_GNU_IFUNC support: Support for the STT_GNU_IFUNC ELF extension has been implemented in the System z specific parts of the dynamic loader.
  • z10 and z196 tuned versions of memcpy, memset, and memcmp: Making use of the STT_GNU_IFUNC feature tuned assembler variants of these functions are provided as part of Glibc now. Based on the CPU level the best implementation is chosen at runtime.

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=<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:

  • STT_GNU_IFUNC support: GDB uses libbfd for reading ELF files. The source code of libbfd is shared with the Binutils package and a recent version is needed in order to handle binaries containing STT_GNU_IFUNC symbols correctly.

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:

  • Support for the CPU measurement facility instructions

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=<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:

  • 64 bit register use in 32 bit applications: Debugging a 32 bit application which makes use of 64 bit general purpose registers by using the new GCC feature, this GDB version allows the user to also investigate the upper halves of the 64 bit register set. GDB now also supports the extended core file format for such applications containing the upper halfs of the registers.

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.

  • Starting with version 0.9.4, Oprofile supports sampling of Java byte code applications.
  • Starting with version 0.9.8, the userspace part for Linux on System z is available

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:

  • IBM zEnterprise 196 support: GCC 4.6.0 supports the new instructions introduced with IBM zEnterprise 196.
    • When using the -march=z196 option, the compiler will generate code making use of the following instruction facilities:
      • Conditional load/store,
      • Distinct-operands,
      • Floating-point-extension,
      • Interlocked-access,
      • Population-count.
    • The -mtune=z196 option avoids the compare and branch instructions as well as the load address instruction with an index register as much as possible and performs instruction scheduling appropriate for the new out-of-order pipeline architecture.
  • 64 bit register use in 32 bit applications: GCC will exploit the availability of 64 bit registers in 32 bit applications when compiling with -m31 -mzarch. This provides a significant performance gain for 32 bit applications built this way. The versions of the Linux Kernel, GNU Binutils, GNU C Library and GDB as documented here provide the support required by this GCC feature.

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:

  • IBM zEnterprise 196 support: The GNU assembler and the objdump tool support the new instructions introduced with IBM zEnterprise 196.
  • 64 bit register use in 32 bit applications: The GNU assembler will set the EF_S390_HIGH_GPRS flag in the ELF header when invoked with -m31 -mzarch. The GNU linker will propagate the EF_S390_HIGH_GPRS flag when linking object files together. This is a requirement for the 64 bit register support in 32 bit applications in GCC 4.6.0.

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:

  • 64 bit register use in 32 bit applications: The 32 bit version of Glibc will refuse the execution of code with the EF_S390_HIGH_GPRS flag if the kernel does not provide support for saving the upper halfs of the 64 bit general purpose registers.

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=<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:

  • 64 bit register use in 32 bit applications: Debugging a 32 bit application which makes use of 64 bit general purpose registers by using the new GCC feature, this GDB version allows the user to also investigate the upper halves of the 64 bit register set. GDB now also supports the extended core file format for such applications containing the upper halfs of the registers.

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.

  • When using the -march=z9-ec option, the compiler will generate code making use of instructions provided by the Decimal Floating Point facility (DFP) and the floating point conversion facility (pfpo), available for z9 since May 2007. Besides the instructions used to implement decimal floating point operations these facilities also contain instructions to move between general purpose and floating point registers and to modify and copy the sign-bit of floating point values.
  • When the -march=z9-ec option is used the new -mhard-dfp/-mno-hard-dfp options can be used to specify whether the decimal floating point hardware instructions will be used or not. If none of them is given the hardware support is enabled by default.
  • The -mstack-guard option can now be omitted when using stack checking via -mstack-size in order to let GCC choose a sensible stack guard value according to the frame size of each function.
  • Notes on Decimal floating point (DFP):
    • DFP numbers are currently not supported as part of the GNU C Library (glibc). Therefore an application using DFP will not be able to:
      • set or read the current DFP rounding mode
      • use printf/scanf type of functions
      • use functions from the math-library (libm)
    • Use GDB version 6.8 to be able to debug binaries using decimal floating point numbers.

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:

  • Decimal Floating Point (DFP) support for the hardware support introduced with z9.
  • Support for z10 instructions.

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:

  • GCC 4.1.3
  • GNU Binutils - binutils 2.17.50.0.12
  • GNU C Library - glibc 2.5.0

Note that tests with gcc 4.2 were also successful.