Skip to main content



Toolchain

developerWorks


Current
Archive




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

2009-09-23 Updated Toolchain (Development stream)

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



Back to top


2008-11-25 Toolchain related packages (Development stream)

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/


Back to top



Archive


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.



Back to top


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.

Back to top


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.