C Compiler compatibility Issues

C Compiler compatibility Issues

Post by Randy Youn » Thu, 23 Dec 1999 04:00:00



I have two AIX systems that are being used as development systems. The
first one is older and is running version 4.1 with the C for AIX V4 and
the newer system AIX V4.3 uses C for AIX 4.4. I can compile programs on
each machine using identical source code and makefiles. The executables
run on their respective machines with no problems. If I transfer the
executable form the older system to the newer one, it runs fine. If I
transfer the executable from the newer system ot the older, I get
runtime errors:

symbol __mod_init in ksh undefined
symbol __crtOv in ksh undefined
Error was: Exec format error

Any suggestions? I do not know where to turn next. Thanks

* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!

 
 
 

C Compiler compatibility Issues

Post by Matt Willma » Thu, 23 Dec 1999 04:00:00


Binaries are not generally backward compatible.  Having said that, brace
yourself for the hundred messages stating exceptions.  If you want something to
run at a certain level, compile it at that level of OS.  It is possible to
compile at a higher level then run the binary on a lower level, but it's fairly
complicated.

Matt


> I have two AIX systems that are being used as development systems. The
> first one is older and is running version 4.1 with the C for AIX V4 and
> the newer system AIX V4.3 uses C for AIX 4.4. I can compile programs on
> each machine using identical source code and makefiles. The executables
> run on their respective machines with no problems. If I transfer the
> executable form the older system to the newer one, it runs fine. If I
> transfer the executable from the newer system ot the older, I get
> runtime errors:

> symbol __mod_init in ksh undefined
> symbol __crtOv in ksh undefined
> Error was: Exec format error

> Any suggestions? I do not know where to turn next. Thanks

> * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
> The fastest and easiest way to search and participate in Usenet - Free!


 
 
 

C Compiler compatibility Issues

Post by Peter Helm » Fri, 24 Dec 1999 04:00:00


The two compilers produce different code. The older code is upwards
compatible and does run under the newer
AIX systems. Howerver the newer code is not backwards compatible. You might
find the IBM explanation in the
announcement letter for the C 4.4 compiler.
Peter


Quote:> I have two AIX systems that are being used as development systems. The
> first one is older and is running version 4.1 with the C for AIX V4 and
> the newer system AIX V4.3 uses C for AIX 4.4. I can compile programs on
> each machine using identical source code and makefiles. The executables
> run on their respective machines with no problems. If I transfer the
> executable form the older system to the newer one, it runs fine. If I
> transfer the executable from the newer system ot the older, I get
> runtime errors:

> symbol __mod_init in ksh undefined
> symbol __crtOv in ksh undefined
> Error was: Exec format error

> Any suggestions? I do not know where to turn next. Thanks

> * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network
*
> The fastest and easiest way to search and participate in Usenet - Free!

 
 
 

C Compiler compatibility Issues

Post by Norman Levi » Fri, 24 Dec 1999 04:00:00


YOu have just shown that IBM trys to maintain UPWARD compatibility for
application programs; not DOWNWARD compatibility.  I think there was an append
here within the year showing how this 'could' be done, but since you have the
two machines, why not just keep compiling on the 'old' machine and transfer
the routines to the new?


> I have two AIX systems that are being used as development systems. The
> first one is older and is running version 4.1 with the C for AIX V4 and
> the newer system AIX V4.3 uses C for AIX 4.4. I can compile programs on
> each machine using identical source code and makefiles. The executables
> run on their respective machines with no problems. If I transfer the
> executable form the older system to the newer one, it runs fine. If I
> transfer the executable from the newer system ot the older, I get
> runtime errors:

> symbol __mod_init in ksh undefined
> symbol __crtOv in ksh undefined
> Error was: Exec format error

> Any suggestions? I do not know where to turn next. Thanks

> * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
> The fastest and easiest way to search and participate in Usenet - Free!

--
-------------
Norman Levin  - VM/dynAmIX inc
 
 
 

C Compiler compatibility Issues

Post by Rob Yampolsk » Tue, 04 Jan 2000 04:00:00


Any idea where to go to get IBM's official line on this?

I'm about to upgrade my development system from AIX3.2.5 to AIX4.?.
All of our production systems are running various AIX4 versions (ranging from
4.1.5 to 4.2.1).
So, specifically, I need to find out what is the latest AIX4 version I can upgrade
my 3.2.5 development system to to generate code that will work in the field.

IBM is apparently only selling 4.3 and beyond.  I want to get a new machine for
development, but that's not practical if I have to go around upgrading all
production machines.  That stinks.

IBM needs to either provide development tools for some least-common-denominator
version of the OS or stop withdrawing support for back versions of the OS.


> YOu have just shown that IBM trys to maintain UPWARD compatibility for
> application programs; not DOWNWARD compatibility.  I think there was an append
> here within the year showing how this 'could' be done, but since you have the
> two machines, why not just keep compiling on the 'old' machine and transfer
> the routines to the new?


> > I have two AIX systems that are being used as development systems. The
> > first one is older and is running version 4.1 with the C for AIX V4 and
> > the newer system AIX V4.3 uses C for AIX 4.4. I can compile programs on
> > each machine using identical source code and makefiles. The executables
> > run on their respective machines with no problems. If I transfer the
> > executable form the older system to the newer one, it runs fine. If I
> > transfer the executable from the newer system ot the older, I get
> > runtime errors:

> > symbol __mod_init in ksh undefined
> > symbol __crtOv in ksh undefined
> > Error was: Exec format error

> > Any suggestions? I do not know where to turn next. Thanks

> > * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
> > The fastest and easiest way to search and participate in Usenet - Free!

> --
> -------------
> Norman Levin  - VM/dynAmIX inc

 
 
 

C Compiler compatibility Issues

Post by Tex Chalemi » Sat, 08 Jan 2000 04:00:00


Rob,

First, in an effort of full disclosure, let me state that I am an IBM employee but I
am
not, in any way whatsoever, speaking on IBM's behalf.

AIX's 4.3 binary compatibility statement can be found at:
http://www.ibm.com/servers/aix/products/aixos/compatibility

It allows for old apps to run on the newer versions of AIX.  This is to allow
customers who buy the new HW and OS or, upgrade the OS on their existing
systems, to be able to continue to run the apps they had.

There is no statement about doing the reverse, that is developing on a newer version
of
AIX for execution on older AIX systems.

AIX 4.3 started shipping in 1997.  That has given our customers quite a bit of time to

upgrade the systems.  Your 4.1.5 systems and 4.2 systems probably have been running
since early to mid 1996.

I would suggest that you upgrade your prod. systems to 4.3.3 before you switch to
4.3.3 for
your development system.  That way your prod. systems can continue running even though
the
dev system has not been upgraded.

Glen "Tex" Chalemin


> Any idea where to go to get IBM's official line on this?

> I'm about to upgrade my development system from AIX3.2.5 to AIX4.?.
> All of our production systems are running various AIX4 versions (ranging from
> 4.1.5 to 4.2.1).
> So, specifically, I need to find out what is the latest AIX4 version I can upgrade
> my 3.2.5 development system to to generate code that will work in the field.

> IBM is apparently only selling 4.3 and beyond.  I want to get a new machine for
> development, but that's not practical if I have to go around upgrading all
> production machines.  That stinks.

> IBM needs to either provide development tools for some least-common-denominator
> version of the OS or stop withdrawing support for back versions of the OS.


> > YOu have just shown that IBM trys to maintain UPWARD compatibility for
> > application programs; not DOWNWARD compatibility.  I think there was an append
> > here within the year showing how this 'could' be done, but since you have the
> > two machines, why not just keep compiling on the 'old' machine and transfer
> > the routines to the new?


> > > I have two AIX systems that are being used as development systems. The
> > > first one is older and is running version 4.1 with the C for AIX V4 and
> > > the newer system AIX V4.3 uses C for AIX 4.4. I can compile programs on
> > > each machine using identical source code and makefiles. The executables
> > > run on their respective machines with no problems. If I transfer the
> > > executable form the older system to the newer one, it runs fine. If I
> > > transfer the executable from the newer system ot the older, I get
> > > runtime errors:

> > > symbol __mod_init in ksh undefined
> > > symbol __crtOv in ksh undefined
> > > Error was: Exec format error

> > > Any suggestions? I do not know where to turn next. Thanks

> > > * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
> > > The fastest and easiest way to search and participate in Usenet - Free!

> > --
> > -------------
> > Norman Levin  - VM/dynAmIX inc