Windows targeting iSeries

Note: As at 2019 this compiler is broken for all but the most simple executables. A "Hello World" program compiles and runs on an iSeries, but linking in of any library cause the program to stack-dump. I haven't had time to fix it.

This was the most difficult butterfly of all to get into the cage!

I needed a "sysroot" both to build the compiler with, and to use when the compiler actually generates executables. AIX is a proprietary OS, so it is not possible to build an AIX libc library from scratch. As a work around I simply copied a bunch of .h files and library executables from an iSeries with PASE loaded. The source machine was V5R4M0. As an aside, Binutils as at V2.24 is not capable of creating or linking AIX shared library objects. Further, even with registry changes and a unix like shell (MinGw-w64), Windows is stubbornly case insensitive; so libc.a will be overwritten by libC.a! I therefore stripped out anything to do with AIX shared libraries (notably libC and friends as opposed to libc). Note that I have patched some of the PASE header files specifically with respect to large file support. In my humble opinion the original IBM headers were broken with misplaced #ifdef #define and so on for large file support. Specifically, unistd.h, sys/limits.h and sys/lockf.h have been changed. I can post patch files if anyone is interested - see the Mailform below.

Disclaimer – I dunno how legal it is to ship part of OS/400 with this compiler (specifically – the core AIX c libraries in PASE). Which same is why the list of stuff offered may shrink over time!

 

Buildtools is a collection of things that enable development - like GNU make, autoconf, automake and etc. You don't need this stuff if you already have a working development environment. If you don't the executables are statically linked, and should run on almost any windows / mingw combination.

Windows MinGW_Buildtools

 

The actual compiler: Binutils V2.24 GCC V4.8.2, targets AIX 5.1.0.0 which should create PASE / QShell exectables that run on any iSeries from V4R5M0 onwards. The compiler will execute on almost any version of Windows from XP upwards, however to build anything complicated you need a build environment or tool-chain. I really reccommend MinGW-w64, anything else and you are going to struggle! If using a MinGW installation, this thing should live in /opt/pasew32. Otherwise you can put it where you like.

Windows_to_iSeries_GCC

 

Print viewSitemapMailform