Hello,
I now got a emergency fix for the IBM XL C/C++ 9 compiler. With this fix
I can compiler ooRexx 4.0.0 on AIX. Unfortunately I need to fix several things:

1. (RexxObject*) cast missing

I have inserted several casts (at the moment veeeeery quick fix, several cast are not necessary ... but the compiler is happy )

diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp<>2008-10-21 08:02:42.000000000 +0200 --- ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp<----->2008-10-21 18:56:01.000000000 +0200
***************
*** 2418,2424 ****
 {
     ProtectedObject result;
     comparator->sendMessage(OREF_COMPARE, left, right, result);
!     if (result == OREF_NULL)
     {
         reportException(Error_No_result_object_message, OREF_COMPARE);
     }
--- 2418,2424 ----
 {
     ProtectedObject result;
     comparator->sendMessage(OREF_COMPARE, left, right, result);
!     if ((RexxObject*)result == OREF_NULL)
     {
         reportException(Error_No_result_object_message, OREF_COMPARE);
     }

... -> See patch file


2. Added a header for AIX (directely, not via the configure script for now)

diff -r -c ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp *** ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp<------>2008-10-21 08:00:50.000000000 +0200 --- ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp<--->2008-10-21 19:25:37.000000000 +0200
***************
*** 51,57 ****
--- 51,62 ----
 #include <sys/ioctl.h>
 #include <netdb.h>
 #if !defined(__OpenBSD__)
+ #ifndef _AIX
  #include <byteswap.h>
+ #endif
+ #ifdef _AIX
+ #include <strings.h>
+ #endif
 #endif
 #include <errno.h>
 #include "SysCSStream.hpp"
..
3. commented out some pieces which have bot been updated in rexxutil.cpp

diff -r -c ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp *** ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp<---->2008-10-21 08:01:34.000000000 +0200 --- ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp<->2008-10-21 19:39:06.000000000 +0200
***************
*** 1151,1157 ****
   if (options&NAME_ONLY)               /* name only?                 */
     strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
   else {
! #ifdef AIX
timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the time info */
 #else
     timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
--- 1151,1157 ----
   if (options&NAME_ONLY)               /* name only?                 */
     strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
   else {
! #ifdef TAMMER_AIX
timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the time info */
 #else
     timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
***************
*** 3603,3609 ****
 }
..
..
! #ifdef AIX
 /*************************************************************************
 * Function:  SysAddFuncPkg                                               *
 *                                                                        *
--- 3603,3609 ----
 }
..
..
! #ifdef TAMEMR_AIX
 /*************************************************************************
 * Function:  SysAddFuncPkg                                               *
 *                                                                        *
***************
*** 5183,5189 ****
     REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
     REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
     REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
! #if defined(AIX)
     REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
     REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
     REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
--- 5183,5189 ----
     REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
     REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
     REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
! #if defined(TAMMER_AIX)
     REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
     REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
     REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),

Are this utility functions no longer needed ??
What is the replacement for this functions ??

With this fixes applied I can start rxapi and the image can be build, but rexx -v core dumps after the first line.

This works:

# ./rexx

Syntax is "rexx [-v] filename [arguments]"
or        "rexx [-e] program_string [arguments]".

This fails:

# ./rexx -v
Open Object Rexx
--> core dump

# dbx .libs/lt-rexx
Type 'help' for help.
[using memory image in core]
reading symbolic information ...

Segmentation fault in colval._getcolval [/usr/lib/threads/libc.a] at 0xd035b680 ($t1)
0xd035b680 (_getcolval+0x268) 89030000         lbz   r8,0x0(r3)
(dbx) where
colval._getcolval() at 0xd035b680
doprnt._doprnt(??, ??, ??) at 0xd036860c
printf.fprintf(0xf027fee0, 0x20252fc8, 0x36b6003a, 0x7f7f7f7f, 0x3, 0x746d6c00, 0x74, 0x2ff208e0) at 0xd0366570
main(argc = 2, argv = 0x2ff22a30), line 113 in "rexx.cpp"

Any ideas ??

Bye
 Rainer Tammer

diff -r -c 
ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp 
ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp      
2008-10-21 08:01:34.000000000 +0200
--- ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp   
2008-10-21 19:39:06.000000000 +0200
***************
*** 1151,1157 ****
    if (options&NAME_ONLY)               /* name only?                 */
      strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
    else {
! #ifdef AIX
      timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the time 
info */
  #else
      timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
--- 1151,1157 ----
    if (options&NAME_ONLY)               /* name only?                 */
      strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
    else {
! #ifdef TAMMER_AIX
      timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the time 
info */
  #else
      timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
***************
*** 3603,3609 ****
  }
  
  
! #ifdef AIX
  /*************************************************************************
  * Function:  SysAddFuncPkg                                               *
  *                                                                        *
--- 3603,3609 ----
  }
  
  
! #ifdef TAMEMR_AIX
  /*************************************************************************
  * Function:  SysAddFuncPkg                                               *
  *                                                                        *
***************
*** 5183,5189 ****
      REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
      REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
      REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
! #if defined(AIX)
      REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
      REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
      REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
--- 5183,5189 ----
      REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
      REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
      REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
! #if defined(TAMMER_AIX)
      REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
      REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
      REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp 
ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp  2008-10-21 
08:02:42.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp       2008-10-21 
18:56:01.000000000 +0200
***************
*** 2418,2424 ****
  {
      ProtectedObject result;
      comparator->sendMessage(OREF_COMPARE, left, right, result);
!     if (result == OREF_NULL)
      {
          reportException(Error_No_result_object_message, OREF_COMPARE);
      }
--- 2418,2424 ----
  {
      ProtectedObject result;
      comparator->sendMessage(OREF_COMPARE, left, right, result);
!     if ((RexxObject*)result == OREF_NULL)
      {
          reportException(Error_No_result_object_message, OREF_COMPARE);
      }
diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ObjectClass.cpp 
ooRexx-4.0.0-TRUNK/interpreter/classes/ObjectClass.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ObjectClass.cpp 2008-10-21 
08:02:46.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/classes/ObjectClass.cpp      2008-10-21 
19:16:43.000000000 +0200
***************
*** 188,194 ****
      ProtectedObject result;
  
      sendMessage(OREF_COMPARETO, other, result);
!     if (result == OREF_NULL)
      {
          reportException(Error_No_result_object_message, OREF_COMPARETO);
      }
--- 188,194 ----
      ProtectedObject result;
  
      sendMessage(OREF_COMPARETO, other, result);
!     if ((RexxObject*)result == OREF_NULL)
      {
          reportException(Error_No_result_object_message, OREF_COMPARETO);
      }
***************
*** 273,279 ****
      // retrieve the method from the dictionary
      RexxMethod *method_object = (RexxMethod 
*)this->behaviour->getMethodDictionary()->stringGet(method_name);
      // this is an error if it doesn't exist
!     if (method_object == OREF_NULL)
      {
          reportException(Error_No_method_name, this, method_name);
      }
--- 273,279 ----
      // retrieve the method from the dictionary
      RexxMethod *method_object = (RexxMethod 
*)this->behaviour->getMethodDictionary()->stringGet(method_name);
      // this is an error if it doesn't exist
!     if ((RexxObject *)method_object == OREF_NULL)
      {
          reportException(Error_No_method_name, this, method_name);
      }
***************
*** 548,554 ****
      /* clear out the existing object variable pointer */
      newObj->objectVariables = OREF_NULL;
  
!     while (dictionary != OREF_NULL)
      {
          /* copy the dictionary */
          RexxVariableDictionary *newDictionary = (RexxVariableDictionary 
*)dictionary->copy();
--- 548,554 ----
      /* clear out the existing object variable pointer */
      newObj->objectVariables = OREF_NULL;
  
!     while ((RexxObject *)dictionary != OREF_NULL)
      {
          /* copy the dictionary */
          RexxVariableDictionary *newDictionary = (RexxVariableDictionary 
*)dictionary->copy();
***************
*** 571,577 ****
      /* get the top activation            */
      RexxActivationBase *activation = 
ActivityManager::currentActivity->getTopStackFrame();
      /* have an activation?               */
!     if (activation != OREF_NULL)
      {
          RexxObject *sender = activation->getReceiver();/* get the receiving 
object          */
          if (sender == (RexxObject *)this)  /* the same receiver?              
  */
--- 571,577 ----
      /* get the top activation            */
      RexxActivationBase *activation = 
ActivityManager::currentActivity->getTopStackFrame();
      /* have an activation?               */
!     if ((RexxObject *)activation != OREF_NULL)
      {
          RexxObject *sender = activation->getReceiver();/* get the receiving 
object          */
          if (sender == (RexxObject *)this)  /* the same receiver?              
  */
***************
*** 748,754 ****
      /* grab the method from this level   */
      RexxMethod *method_save = this->behaviour->methodLookup(msgname);
      /* method exists...special processing*/
!     if (method_save != OREF_NULL && method_save->isSpecial())
      {
          if (method_save->isPrivate())      /* actually private method?        
  */
          {
--- 748,754 ----
      /* grab the method from this level   */
      RexxMethod *method_save = this->behaviour->methodLookup(msgname);
      /* method exists...special processing*/
!     if ((RexxObject *)method_save != OREF_NULL && method_save->isSpecial())
      {
          if (method_save->isPrivate())      /* actually private method?        
  */
          {
***************
*** 756,762 ****
              method_save = this->checkPrivate(method_save);
          }
          /* now process protected methods     */
!         if (method_save != OREF_NULL && method_save->isProtected())
          {
              /* really a protected method         */
              this->processProtectedMethod(msgname, method_save, arguments, 
count, result);
--- 756,762 ----
              method_save = this->checkPrivate(method_save);
          }
          /* now process protected methods     */
!         if ((RexxObject *)method_save != OREF_NULL && 
method_save->isProtected())
          {
              /* really a protected method         */
              this->processProtectedMethod(msgname, method_save, arguments, 
count, result);
***************
*** 764,770 ****
          }
      }
      /* have a method                     */
!     if (method_save != OREF_NULL)
      {
          method_save->run(ActivityManager::currentActivity, this, msgname, 
arguments, count, result);
      }
--- 764,770 ----
          }
      }
      /* have a method                     */
!     if ((RexxObject *)method_save != OREF_NULL)
      {
          method_save->run(ActivityManager::currentActivity, this, msgname, 
arguments, count, result);
      }
***************
*** 789,795 ****
      ActivityManager::currentActivity->checkStackSpace();       /* have enough 
stack space?          */
      /* go to the higher level            */
      RexxMethod *method_save = this->superMethod(msgname, startscope);
!     if (method_save != OREF_NULL && method_save->isProtected())
      {
          if (method_save->isPrivate())      /* actually private method?        
  */
          {
--- 789,795 ----
      ActivityManager::currentActivity->checkStackSpace();       /* have enough 
stack space?          */
      /* go to the higher level            */
      RexxMethod *method_save = this->superMethod(msgname, startscope);
!     if ((RexxObject *)method_save != OREF_NULL && method_save->isProtected())
      {
          if (method_save->isPrivate())      /* actually private method?        
  */
          {
***************
*** 803,809 ****
          }
      }
      /* have a method                     */
!     if (method_save != OREF_NULL)
      {
          /* run the method                    */
          method_save->run(ActivityManager::currentActivity, this, msgname, 
arguments, count, result);
--- 803,809 ----
          }
      }
      /* have a method                     */
!     if ((RexxObject *)method_save != OREF_NULL)
      {
          /* run the method                    */
          method_save->run(ActivityManager::currentActivity, this, msgname, 
arguments, count, result);
***************
*** 850,856 ****
      /* no method for this msgname        */
      /* find the unknown method           */
      RexxMethod *method_save = this->behaviour->methodLookup(OREF_UNKNOWN);
!     if (method_save == OREF_NULL)        /* "unknown" method exists?          
*/
      /* no unknown method - try to raise  */
      /* a NOMETHOD condition, and if that */
      {
--- 850,856 ----
      /* no method for this msgname        */
      /* find the unknown method           */
      RexxMethod *method_save = this->behaviour->methodLookup(OREF_UNKNOWN);
!     if ((RexxObject *)method_save == OREF_NULL)        /* "unknown" method 
exists?          */
      /* no unknown method - try to raise  */
      /* a NOMETHOD condition, and if that */
      {
***************
*** 1440,1446 ****
      RexxObject *scope = lastMethod()->getScope();    /* get the method's 
scope            */
                                           /* get the object name variable      
*/
      string_value = (RexxString *)this->getObjectVariable(OREF_NAME, scope);
!     if (string_value == OREF_NULL)
      {     /* no name?                          */
          if (this->isBaseClass())           /* primitive object?               
  */
          {
--- 1440,1446 ----
      RexxObject *scope = lastMethod()->getScope();    /* get the method's 
scope            */
                                           /* get the object name variable      
*/
      string_value = (RexxString *)this->getObjectVariable(OREF_NAME, scope);
!     if ((RexxObject*)string_value == OREF_NULL)
      {     /* no name?                          */
          if (this->isBaseClass())           /* primitive object?               
  */
          {
***************
*** 1555,1561 ****
          }
      }
  
!     if (methobj == OREF_NULL)            /* we weren't passed a method,       
*/
      {
          /* add a dummy method                */
          methobj = (RexxMethod *)TheNilObject;
--- 1555,1561 ----
          }
      }
  
!     if ((RexxObject *)methobj == OREF_NULL)            /* we weren't passed a 
method,       */
      {
          /* add a dummy method                */
          methobj = (RexxMethod *)TheNilObject;
***************
*** 1602,1608 ****
      /* find the MAKExxxx method          */
      RexxMethod *method = this->behaviour->methodLookup(make_method);
      /* have this method?                 */
!     if (method != OREF_NULL)
      {
          /* Return its results                */
          return this->sendMessage(make_method);
--- 1602,1608 ----
      /* find the MAKExxxx method          */
      RexxMethod *method = this->behaviour->methodLookup(make_method);
      /* have this method?                 */
!     if ((RexxObject *)method != OREF_NULL)
      {
          /* Return its results                */
          return this->sendMessage(make_method);
***************
*** 1632,1638 ****
      /* Get the message name.             */
      RexxObject *message = arguments[0];  /* get the message .                 
*/
                                           /* Did we receive a message name     
*/
!     if (message == OREF_NULL)
      {
          missingArgument(ARG_ONE);         /* Yes, this is an error.           
 */
      }
--- 1632,1638 ----
      /* Get the message name.             */
      RexxObject *message = arguments[0];  /* get the message .                 
*/
                                           /* Did we receive a message name     
*/
!     if ((RexxObject *)message == OREF_NULL)
      {
          missingArgument(ARG_ONE);         /* Yes, this is an error.           
 */
      }
***************
*** 1665,1671 ****
              }
          }
      }
!     if (messageArray != OREF_NULL)       /* is message specified as an array? 
*/
      {
          /* didn't get two arguments?         */
          if (messageArray->getDimension() != 1 || messageArray->size() != 2)
--- 1665,1671 ----
              }
          }
      }
!     if ((RexxObject *)messageArray != OREF_NULL)       /* is message 
specified as an array? */
      {
          /* didn't get two arguments?         */
          if (messageArray->getDimension() != 1 || messageArray->size() != 2)
***************
*** 1684,1690 ****
          /* get the top activation            */
          RexxActivationBase *activation = 
ActivityManager::currentActivity->getTopStackFrame();
          /* have an activation?               */
!         if (activation != OREF_NULL)
          {
              /* get the receiving object          */
              RexxObject *sender = activation->getReceiver();
--- 1684,1690 ----
          /* get the top activation            */
          RexxActivationBase *activation = 
ActivityManager::currentActivity->getTopStackFrame();
          /* have an activation?               */
!         if ((RexxObject *)activation != OREF_NULL)
          {
              /* get the receiving object          */
              RexxObject *sender = activation->getReceiver();
***************
*** 1937,1943 ****
  RexxObject *RexxObject::getObjectVariable(RexxString *name)
  {
      RexxVariableDictionary *dictionary = objectVariables;
!     while (dictionary != OREF_NULL)
      {
          // see if this dictionary has the variable
          RexxObject *val = dictionary->realValue(name);
--- 1937,1943 ----
  RexxObject *RexxObject::getObjectVariable(RexxString *name)
  {
      RexxVariableDictionary *dictionary = objectVariables;
!     while ((RexxObject *)dictionary != OREF_NULL)
      {
          // see if this dictionary has the variable
          RexxObject *val = dictionary->realValue(name);
***************
*** 2028,2034 ****
  
/******************************************************************************/
  {
      RexxVariableDictionary *dictionary = objectVariables;        /* get the 
head of the chain         */
!     while (dictionary != OREF_NULL)
      {    /* search for a scope match          */
          /* if we've found a match, return it */
          if (dictionary->isScope(scope))
--- 2028,2034 ----
  
/******************************************************************************/
  {
      RexxVariableDictionary *dictionary = objectVariables;        /* get the 
head of the chain         */
!     while ((RexxObject *)dictionary != OREF_NULL)
      {    /* search for a scope match          */
          /* if we've found a match, return it */
          if (dictionary->isScope(scope))
***************
*** 2054,2060 ****
  
/******************************************************************************/
  {
      RexxString *classId = this->id();                /* get the id string     
            */
!     if (classId == OREF_NULL)            /* internal class?                   
*/
      {
          return "unknown Class";            /* return an unknown identifier    
  */
      }
--- 2054,2060 ----
  
/******************************************************************************/
  {
      RexxString *classId = this->id();                /* get the id string     
            */
!     if ((RexxObject *)classId == OREF_NULL)            /* internal class?     
              */
      {
          return "unknown Class";            /* return an unknown identifier    
  */
      }
***************
*** 2071,2077 ****
  {
      /* get the class                     */
      RexxClass *createClass = this->behaviourObject()->getOwningClass();
!     if (createClass == OREF_NULL)        /* no class object?                  
*/
      {
          return OREF_NULL;                  /* return nothing                  
  */
      }
--- 2071,2077 ----
  {
      /* get the class                     */
      RexxClass *createClass = this->behaviourObject()->getOwningClass();
!     if ((RexxObject *)createClass == OREF_NULL)        /* no class object?    
              */
      {
          return OREF_NULL;                  /* return nothing                  
  */
      }
***************
*** 2162,2168 ****
    ProtectedObject result;              /* returned result                   
*/\
                                         /* do a real message send            
*/\
    this->messageSend(OREF_##message, &operand, 1, result);                     
 \
!   if (result == OREF_NULL)             /* in an expression and need a 
result*/ \
                                         /* need to raise an exception        
*/ \
      reportException(Error_No_result_object_message, OREF_##message); \
    return (RexxObject *)result;         /* return the final result           
*/ \
--- 2162,2168 ----
    ProtectedObject result;              /* returned result                   
*/\
                                         /* do a real message send            
*/\
    this->messageSend(OREF_##message, &operand, 1, result);                     
 \
!   if ((RexxObject *)result == OREF_NULL)             /* in an expression and 
need a result*/ \
                                         /* need to raise an exception        
*/ \
      reportException(Error_No_result_object_message, OREF_##message); \
    return (RexxObject *)result;         /* return the final result           
*/ \
***************
*** 2175,2181 ****
    ProtectedObject result;              /* returned result                   
*/\
                                         /* do a real message send            
*/\
    this->messageSend(OREF_##message, &operand, operand == OREF_NULL ? 0 : 1, 
result); \
!   if (result == OREF_NULL)             /* in an expression and need a 
result*/ \
                                         /* need to raise an exception        
*/ \
      reportException(Error_No_result_object_message, OREF_##message); \
    return (RexxObject *)result;         /* return the final result           
*/ \
--- 2175,2181 ----
    ProtectedObject result;              /* returned result                   
*/\
                                         /* do a real message send            
*/\
    this->messageSend(OREF_##message, &operand, operand == OREF_NULL ? 0 : 1, 
result); \
!   if ((RexxObject *)result == OREF_NULL)             /* in an expression and 
need a result*/ \
                                         /* need to raise an exception        
*/ \
      reportException(Error_No_result_object_message, OREF_##message); \
    return (RexxObject *)result;         /* return the final result           
*/ \
***************
*** 2379,2385 ****
      // try for the variable value
      RexxObject *C_self = getObjectVariable(OREF_CSELF);
      // if we found one, validate for unwrappering
!     if (C_self != OREF_NULL)
      {
          // if this is a pointer, then unwrapper the value
          if (C_self->isInstanceOf(ThePointerClass))
--- 2379,2385 ----
      // try for the variable value
      RexxObject *C_self = getObjectVariable(OREF_CSELF);
      // if we found one, validate for unwrappering
!     if ((RexxObject *)C_self != OREF_NULL)
      {
          // if this is a pointer, then unwrapper the value
          if (C_self->isInstanceOf(ThePointerClass))
diff -r -c 
ooRexx-4.0.0-TRUNK-ORIG/interpreter/concurrency/RexxStartDispatcher.cpp 
ooRexx-4.0.0-TRUNK/interpreter/concurrency/RexxStartDispatcher.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/concurrency/RexxStartDispatcher.cpp     
2008-10-21 08:02:25.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/concurrency/RexxStartDispatcher.cpp  
2008-10-21 19:18:08.000000000 +0200
***************
*** 139,145 ****
          if (result != NULL)          /* if return provided for            */
          {
              /* actually have a result to return? */
!             if (program_result != OREF_NULL)
              {
                  /* force to a string value           */
                  program_result = ((RexxObject 
*)program_result)->stringValue();
--- 139,145 ----
          if (result != NULL)          /* if return provided for            */
          {
              /* actually have a result to return? */
!             if ((RexxObject*)program_result != OREF_NULL)
              {
                  /* force to a string value           */
                  program_result = ((RexxObject 
*)program_result)->stringValue();
***************
*** 152,158 ****
              }
          }
                                               /* If there is a return val...   
    */
!         if (program_result != OREF_NULL)
          {
              wholenumber_t return_code;
  
--- 152,158 ----
              }
          }
                                               /* If there is a return val...   
    */
!         if ((RexxObject*)program_result != OREF_NULL)
          {
              wholenumber_t return_code;
  
***************
*** 191,197 ****
   */
  void CallRoutineDispatcher::run()
  {
!     if (arguments != OREF_NULL)
      {
          // we use a null string for the name when things are called directly
          routine->call(activity, OREF_NULLSTRING, arguments->data(), 
arguments->size(), result);
--- 191,197 ----
   */
  void CallRoutineDispatcher::run()
  {
!     if ((RexxObject*)arguments != OREF_NULL)
      {
          // we use a null string for the name when things are called directly
          routine->call(activity, OREF_NULLSTRING, arguments->data(), 
arguments->size(), result);
***************
*** 217,223 ****
  
      ProtectedObject p(routine);
  
!     if (arguments != OREF_NULL)
      {
          // use the provided name for the call name
          routine->runProgram(activity, arguments->data(), arguments->size(), 
result);
--- 217,223 ----
  
      ProtectedObject p(routine);
  
!     if ((RexxObject*)arguments != OREF_NULL)
      {
          // use the provided name for the call name
          routine->runProgram(activity, arguments->data(), arguments->size(), 
result);
diff -r -c 
ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionFunction.cpp 
ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionFunction.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionFunction.cpp       
2008-10-21 08:02:50.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionFunction.cpp    
2008-10-21 19:19:03.000000000 +0200
***************
*** 96,102 ****
      /* internal routines allowed?        */
      if (!(this->flags&function_nointernal))
      {
!         if (labels != OREF_NULL)           /* have a labels table?            
  */
          {
                                             /* check the label table           
  */
              OrefSet(this, this->target, (RexxInstruction 
*)labels->at(this->functionName));
--- 96,102 ----
      /* internal routines allowed?        */
      if (!(this->flags&function_nointernal))
      {
!         if ((RexxObject*)labels != OREF_NULL)           /* have a labels 
table?              */
          {
                                             /* check the label table           
  */
              OrefSet(this, this->target, (RexxInstruction 
*)labels->at(this->functionName));
***************
*** 223,229 ****
              context->externalCall(this->functionName, argcount, stack, 
OREF_FUNCTIONNAME, result);
              break;
      }
!     if (result == OREF_NULL)             /* result returned?                  
*/
      {
          /* raise an error                    */
          if (this->functionName)
--- 223,229 ----
              context->externalCall(this->functionName, argcount, stack, 
OREF_FUNCTIONNAME, result);
              break;
      }
!     if ((RexxObject*)result == OREF_NULL)             /* result returned?     
             */
      {
          /* raise an error                    */
          if (this->functionName)
diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionMessage.cpp 
ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionMessage.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionMessage.cpp        
2008-10-21 08:02:50.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionMessage.cpp     
2008-10-21 19:19:48.000000000 +0200
***************
*** 132,138 ****
              context->traceIntermediate(OREF_NULLSTRING, 
TRACE_PREFIX_ARGUMENT);
          }
      }
!     if (_super == OREF_NULL)             /* no super class override?          
*/
      {
                                           /* issue the fast message            
*/
          stack->send(this->messageName, argcount, result);
--- 132,138 ----
              context->traceIntermediate(OREF_NULLSTRING, 
TRACE_PREFIX_ARGUMENT);
          }
      }
!     if ((RexxObject*)_super == OREF_NULL)             /* no super class 
override?          */
      {
                                           /* issue the fast message            
*/
          stack->send(this->messageName, argcount, result);
***************
*** 152,158 ****
          stack->prefixResult(result);       /* replace top element on stack    
  */
      }
  
!     if (result == OREF_NULL)             /* in an expression and need a 
result*/
      {
                                           /* need to raise an exception        
*/
          reportException(Error_No_result_object_message, this->messageName);
--- 152,158 ----
          stack->prefixResult(result);       /* replace top element on stack    
  */
      }
  
!     if ((RexxObject*)result == OREF_NULL)             /* in an expression and 
need a result*/
      {
                                           /* need to raise an exception        
*/
          reportException(Error_No_result_object_message, this->messageName);
***************
*** 277,283 ****
      ProtectedObject result;
  
      // now send the message the appropriate way
!     if (_super == OREF_NULL)
      {
          // normal message send
          stack->send(this->messageName, argcount + 1, result);
--- 277,283 ----
      ProtectedObject result;
  
      // now send the message the appropriate way
!     if ((RexxObject*)_super == OREF_NULL)
      {
          // normal message send
          stack->send(this->messageName, argcount + 1, result);
diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/CallInstruction.cpp 
ooRexx-4.0.0-TRUNK/interpreter/instructions/CallInstruction.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/CallInstruction.cpp        
2008-10-21 08:03:06.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/instructions/CallInstruction.cpp     
2008-10-21 19:20:44.000000000 +0200
***************
*** 147,153 ****
        return;                          //
    }
    if (!(instructionFlags&call_nointernal)) {    /* internal routines allowed? 
       */
!     if (labels != OREF_NULL)           /* have a labels table?              */
                                         /* check the label table             */
        OrefSet(this, this->target, (RexxInstruction *)labels->at((RexxString 
*)this->name));
      instructionFlags |= call_internal;          /* this is an internal call   
       */
--- 147,153 ----
        return;                          //
    }
    if (!(instructionFlags&call_nointernal)) {    /* internal routines allowed? 
       */
!     if ((RexxObject*)labels != OREF_NULL)           /* have a labels table?   
           */
                                         /* check the label table             */
        OrefSet(this, this->target, (RexxInstruction *)labels->at((RexxString 
*)this->name));
      instructionFlags |= call_internal;          /* this is an internal call   
       */
***************
*** 208,220 ****
              builtin_index = RexxSource::resolveBuiltin(_name);
              _target = OREF_NULL;              /* clear out the target         
     */
              labels = context->getLabels();   /* get the labels table          
    */
!             if (labels != OREF_NULL)         /* have labels in the program?   
    */
              {
                                               /* look up label and go to 
normal    */
                                               /* signal processing             
    */
                  _target = (RexxInstruction *)(labels->at(_name));
              }
!             if (_target != OREF_NULL)        /* found one?                    
    */
              {
                  type = call_internal;          /* have an internal call       
      */
              }
--- 208,220 ----
              builtin_index = RexxSource::resolveBuiltin(_name);
              _target = OREF_NULL;              /* clear out the target         
     */
              labels = context->getLabels();   /* get the labels table          
    */
!             if ((RexxObject*)labels != OREF_NULL)         /* have labels in 
the program?       */
              {
                                               /* look up label and go to 
normal    */
                                               /* signal processing             
    */
                  _target = (RexxInstruction *)(labels->at(_name));
              }
!             if ((RexxObject*)_target != OREF_NULL)        /* found one?       
                 */
              {
                  type = call_internal;          /* have an internal call       
      */
              }
***************
*** 274,280 ****
                  context->externalCall(_name, argcount, stack, 
OREF_ROUTINENAME, result);
                  break;
          }
!         if (result != OREF_NULL)         /* result returned?                  
*/
          {
              /* set the RESULT variable to the    */
              /* message return value              */
--- 274,280 ----
                  context->externalCall(_name, argcount, stack, 
OREF_ROUTINENAME, result);
                  break;
          }
!         if ((RexxObject*)result != OREF_NULL)         /* result returned?     
             */
          {
              /* set the RESULT variable to the    */
              /* message return value              */
diff -r -c 
ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/MessageInstruction.cpp 
ooRexx-4.0.0-TRUNK/interpreter/instructions/MessageInstruction.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/MessageInstruction.cpp     
2008-10-21 08:03:05.000000000 +0200
--- ooRexx-4.0.0-TRUNK/interpreter/instructions/MessageInstruction.cpp  
2008-10-21 19:21:36.000000000 +0200
***************
*** 221,227 ****
              context->traceIntermediate(OREF_NULLSTRING, 
TRACE_PREFIX_ARGUMENT);
          }
      }
!     if (super == OREF_NULL)              /* no super class override?          
*/
      {
                                           /* issue the fast message            
*/
          stack->send(this->name, argcount, result);
--- 221,227 ----
              context->traceIntermediate(OREF_NULLSTRING, 
TRACE_PREFIX_ARGUMENT);
          }
      }
!     if ((RexxObject*)super == OREF_NULL)              /* no super class 
override?          */
      {
                                           /* issue the fast message            
*/
          stack->send(this->name, argcount, result);
***************
*** 236,242 ****
      {
          result = _target;                  /* get the target element          
  */
      }
!     if (result != OREF_NULL)           /* result returned?                  */
      {
          context->traceResult((RexxObject *)result);  /* trace if necessary    
            */
          /* set the RESULT variable to the    */
--- 236,242 ----
      {
          result = _target;                  /* get the target element          
  */
      }
!     if ((RexxObject*)result != OREF_NULL)           /* result returned?       
           */
      {
          context->traceResult((RexxObject *)result);  /* trace if necessary    
            */
          /* set the RESULT variable to the    */
diff -r -c ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp 
ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp
*** ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp        
2008-10-21 08:00:50.000000000 +0200
--- ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp     
2008-10-21 19:25:37.000000000 +0200
***************
*** 51,57 ****
--- 51,62 ----
  #include <sys/ioctl.h>
  #include <netdb.h>
  #if !defined(__OpenBSD__)
+ #ifndef _AIX
   #include <byteswap.h>
+ #endif
+ #ifdef _AIX
+ #include <strings.h>
+ #endif
  #endif
  #include <errno.h>
  #include "SysCSStream.hpp"
  
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to