Vern wrote:

> Does anyone know whether, say, the free gcc
> compiler can be installed? There are a couple options that make things
> work with iSeries data types, as in
> The compiler options -qalign=natural and -qldbl128 are necessary only
> when interacting with OS/400 ILE programs to force relative 16-byte alignment
> of type long double (used inside type ILEpointer)

Hi Vern

I spent a lot of time with PASE about eighteen months ago.  Since that is eons
of computer time, what I say next is likely to be not terribly useful, or stuff
you already know.

As I recall, the gcc compiler may or may not help you if you need to talk to
non-PASE code.  I played with that a bit, and had some luck getting simple
programs to work in PASE, but to do "real" work, I had to use xLC on under AIX
4.3.3, and port the binaries to the 400.  At that time, you specified the
compiler options you mentioned.  There are also some macros listed in the PASE
Redbook which will ensure 16-byte alignment when passing pointer data from PASE
to OS/400 and vice-versa. 

The biggest issue there is, of course, OS/400 pointers are "tagged" and PASE
pointers aren't.  You have to use the macros to create the pointer workspace
and then place the value in the workspace.

The other thing that bit me was version compatability between the version of
PASE, AIX, and the version of the xLC compiler I was using.  I think it went
like this:

If your target system is
  OS/400 V5R1M0
You need
  AIX 4.3.3
  Visual Age for AIX Version 5

If your target system is 
  OS/400 V4R5M0
You need
  AIX 4.3.1
  Visual Age for AIX Version 4

As of 18 months ago, there was NO cross-compatiability in this scheme.  The
reason for this is that PASE's runtime is built on the most recent _stable_
version of AIX.  This is not always the most _current_ version of AIX.  The
word I got from the PASE developers was that there will always be a 12-18 month
lag between PASE and the latest version of AIX.  

For that reason, V4R5M0 uses the AIX 4.3.1 kernel.  V5R1M0 uses the AIX 4.3.3
kernel.  I don't know what V5R2M0 uses, but I'd suspect it's AIX 5.1 (or is it
"5L"?)  And although stuff compiled purely for AIX 4.3.3 is supposed to be
backwards compatable with 4.3.1, the backward compatability disappears when you
compile the same code for PASE, as I found out in much pain late one night.

I hope this helps.  

-Doc

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.