The recently released overview paper “Porting applications to Linux on IBM System z” prompted a few questions about porting in principal that I’ll try to answer here in this blog entry.
- The developerWorks article “Porting applications to Linux for System z” provides more technical details, especially on the differences between 31bit and 64bit and of course the endianess problem. So before you start porting your C/C++ program take a look at this. The migration toolkit can be found here and here.
- Open Source packages not yet integrated in a distribution are usually pretty easy. Most of the time a simple ./configure, make, make install sequence does the job. You probably need to install a few development libraries before. Sometimes small changes to the make file are required to recognize s390x as a big-endian 64 bit architecture. Usually you can take a look at the ppc64 implementation.
- Also for Open Source projects there is the possibility to get access to a System z using the Community Development System for Linux on System z (CDSL).
- Java workloads usually run just out of the box.
- Don’t forget to download and install the latest service pack though.
- Due to the 31bit addressing the heap of the 31bit JVM on System z can’t be as large as the heap on a 32bit JVM. So for e.g. a 3 GB heap you need to switch to the 64 bit JVM on zLinux. If you then use the -Xcompressedrefs option you can keep the additional memory reasonable.
- For ISVs there is at IBM Partnerworld a special roadmap called “Porting your UNIX or Linux on x86 solution to Linux for IBM System z mainframe server platforms“.
- Also hosted on Partnerworld is the “IBM Systems Application Advantage for Linux (Chiphopper)“. Which is an offering from IBM to help porting ISV applications.
- IBM als runs Porting Centers around the world for professional help. Also available is the IBM Migration Factory.
- For Open Source projects there is the Community Development System for Linux on System z (CDSL). Register there to get access to a System z.