Hello Rick,

Rick McGuire wrote:
> On Mon, Dec 29, 2008 at 11:12 AM, Rainer Tammer <tam...@tammer.net> wrote:
>   
>> ... deleted for clarity ...
>>
>> Currently gcc does not build ooRexx correctly on AIX. Should I add a check
>> in the configure files and barf ??
>>     
>
> What are the issues with gcc?  I think I'd prefer the config files not
> have negative checks like that, as it would make it more difficult for
> an ambitious soul from attempting it get it working.
>
>   

I can build ooRexx with gcc 4.2.4 (after small patch).

 g++ -DHAVE_CONFIG_H -I. -DORX_VER=4 -DORX_REL=0 -DORX_MOD=0 -DORX_FIX=0
-DORX_SYS_STR=\"AIX\" -DORX_CATDIR=\"/opt/ooRexx/bin\"
-DORX_SHARED_LIBRARY_EXT=\".so\" -I./lib -I./api -I./api/platform/unix
-g -O2 -g -O2 -maix32 -pthread -Wall -funsigned-char -Wpointer-arith
-Wcast-qual -Wcast-align -Wshadow -Wwrite-strings -D__cplusplus
-Wredundant-decls -DNOOPT -DPTHREAD_KERNEL -D_POSIX_THREAD -D_REENTRANT
-D_GNU_SOURCE -DOPSYS_AIX43 -DAIX -DOPSYS_AIX -MT librxmath_la-rxmath.lo
-MD -MP -MF .deps/librxmath_la-rxmath.Tpo -c
./extensions/rxmath/rxmath.cpp  -DPIC -o .libs/librxmath_la-rxmath.o
In file included from /usr/include/sys/ptrace.h:28,
                 from /usr/include/sys/proc.h:48,
                 from /usr/include/sys/pri.h:43,
                 from /usr/include/sys/sched.h:38,
                 from /usr/include/sched.h:51,
                 from /usr/include/pthread.h:64,
                 from ./api/platform/unix/rexxapitypes.h:49,
                 from ./api/rexx.h:65,
                 from ./api/oorexxapi.h:47,
                 from ./extensions/rxmath/rxmath.cpp:98:
./extensions/rxmath/rxmath.cpp:70: error: previous declaration of 'int
errno' with 'C++' linkage
/usr/include/sys/thread.h:852: error: conflicts with new declaration
with 'C' linkage
gmake[2]: *** [librxmath_la-rxmath.lo] Error 1
gmake[2]: Leaving directory `/daten/source/ooRexx/gcc/trunk'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/daten/source/ooRexx/gcc/trunk'
gmake: *** [all] Error 2

So I have changed this to:

rxmath.cpp:
#ifdef __cplusplus
extern "C" {
#endif
extern int errno;
#ifdef __cplusplus
}
#endif

The images gets created and some basic tests work OK.

Working:
======
usepipe.rex
usecomp.rex
stack.rex
rexxcps.rex
qtime.rex
qdate.rex
ccreply.rex
factor.rex

Error:
====
properties.rex
--------------
Error deleting the existing properties file.  RC: 87

terminate called after throwing an instance of 'RexxNativeActivation*'

,, this looks thread related:

core dump (no full traceback for gcc avail):
pthread_k 88
??
_p_raise 8C
raise 30
abort B8

greply.rex
----------
sometimes strange output:
Using GUARDED method to wait until sum is complete:
Inside method sum_up:  loop iteration 1000
Inside method sum_up:  loop iteration 2000
Inside method sum_up:  loop iteration 3000
Inside method sum_up:  loop iteration 4000
Inside method sum_up:  loop iteration 5000
Result should be 12502500: 12502500

Using UNGUARDED method to obtain an intermediate result:
Inside method sum_up:  loop iteration 1000
Result should be less than 12502500: 1943406
Inside method sum_up:  loop iteration 2000

or

Using GUARDED method to wait until sum is complete:
Inside method sum_up:  loop iteration 1000
Inside method sum_up:  loop iteration 2000
Inside method sum_up:  loop iteration 3000
Inside method sum_up:  loop iteration 4000
Inside method sum_up:  loop iteration 5000
Result should be 12502500: 12502500

Using UNGUARDED method to obtain an intermediate result:
Inside method sum_up:  loop iteration 1000
Inside method sum_up:  loop iteration 2000
Inside method sum_up:  loop iteration 3000
Inside method sum_up:  loop iteration 4000
Inside method sum_up:  loop iteration 5000
Result should be less than 12502500: 12502500

sfserver.rex
-------------
Press [Enter] To Shutdown

terminate called after throwing an instance of 'RexxNativeActivation*'
(with core dump)

The AIX g++ port is not known to be perfect...
So I think I will change configure.ac:

case "$target" in
   *ibm-aix*)
      GENERIC_OS="-DAIX"
      GENERIC_OPSYS="-DOPSYS_AIX"
      GENERIC_DEFINES="$GENERIC_DEFINES -DOPSYS_AIX43"
#     ORX_SHARED_LIBRARY_EXT=".a"
      case "$CXX" in
#         g++)
#            CC_WARNINGS="-maix32 -pthread $GCC_WARNINGS"
#            CXX_WARNINGS="-maix32 -pthread $GCXX_WARNINGS"
#            ;;
         xlC_r)
            CC_WARNINGS="$XLC_WARNINGS"
            CXX_WARNINGS="$XLCXX_WARNINGS"
            ORX_LDFLAGS_PACKAGE=""
            ORX_INIT_LDFLAGS="-Wl,-binitfini:_init:_fini"
            ;;
         *)
            AC_MSG_ERROR("Compiler $CXX is not supported on this platform")
            ;;
      esac


Is this OK ??

Bye
  Rainer

------------------------------------------------------------------------------
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to