Hello community, here is the log from the commit of package ooRexx for openSUSE:Factory checked in at 2016-07-05 09:52:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ooRexx (Old) and /work/SRC/openSUSE:Factory/.ooRexx.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ooRexx" Changes: -------- --- /work/SRC/openSUSE:Factory/ooRexx/ooRexx.changes 2015-07-23 15:23:15.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ooRexx.new/ooRexx.changes 2016-07-05 09:52:09.000000000 +0200 @@ -1,0 +2,14 @@ +Sun Jul 3 04:39:26 UTC 2016 - [email protected] + +- add patch ooRexx-4.2.0-gcc6.patch, fixed boo#985384 + * 'false' is not convertible to a pointer in c++11, use + 'NULL' instead. + * fixed name clash with gcc 6 cmath + * upstream bug: https://sourceforge.net/p/oorexx/bugs/1380/ (fixed) + * drop next release +- build with '-O0' instead of '-O2' to avoid segmentation fault. + found by upstream in the same bug report but not yet fixed +- add patch ooRexx-chdir-setgroups.patch + * chdir before chroot and setgroups before setuid + +------------------------------------------------------------------- New: ---- ooRexx-4.2.0-gcc6.patch ooRexx-chdir-setgroups.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ooRexx.spec ++++++ --- /var/tmp/diff_new_pack.KjtXSQ/_old 2016-07-05 09:52:10.000000000 +0200 +++ /var/tmp/diff_new_pack.KjtXSQ/_new 2016-07-05 09:52:10.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package ooRexx # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -97,6 +97,10 @@ Patch0: set_default_rexx_path.patch Patch1: systemd-fixes.patch +# PATCH-FIX-UPSTREAM [email protected] - cannot convert 'bool' to 'RexxPackageObject' in return +Patch2: ooRexx-4.2.0-gcc6.patch +# PATCH-FIX-UPSTREAM [email protected] - chdir before chroot and setgroups before setuid +Patch3: ooRexx-chdir-setgroups.patch # Specify the libtool library version # The order of these looks wrong, but that is how it comes out! @@ -134,6 +138,8 @@ %patch0 -p1 %patch1 -p0 +%patch2 -p1 +%patch3 -p1 #****************************************************************************** %build @@ -144,9 +150,8 @@ %if 0%{?suse_version} echo "SUSE_VERSION=%{suse_version}" %endif - -export CFLAGS="$CFLAGS $RPM_OPT_FLAGS" -#export LDFLAGS="-ldl" +# to avoid segmentation fault +export CFLAGS="$CFLAGS `echo $RPM_OPT_FLAGS | sed 's/O2/O0/'`" export SUSE_ASNEEDED=0 ./configure --disable-static --prefix=%{_prefix} ++++++ ooRexx-4.2.0-gcc6.patch ++++++ Index: b/interpreter/api/ThreadContextStubs.cpp =================================================================== --- a/interpreter/api/ThreadContextStubs.cpp +++ b/interpreter/api/ThreadContextStubs.cpp @@ -576,7 +576,7 @@ RexxPackageObject RexxEntry GetRoutinePa catch (RexxNativeActivation *) { } - return false; + return NULLOBJECT; } @@ -591,7 +591,7 @@ RexxPackageObject RexxEntry GetMethodPac catch (RexxNativeActivation *) { } - return false; + return NULLOBJECT; } Index: b/api/oorexxapi.h =================================================================== --- a/api/oorexxapi.h +++ b/api/oorexxapi.h @@ -3694,10 +3694,10 @@ END_EXTERN_C() #define argumentOmitted(i) (!argumentExists(i)) -#define __type(t) ARGUMENT_TYPE_##t +#define __rtype(t) ARGUMENT_TYPE_##t #define __arg(p, t) arguments[p].value.value_##t #define __ret(t, v) arguments[0].value.value_##t = (v); return NULL; -#define __adcl(t, n) __type(t) n +#define __adcl(t, n) __rtype(t) n #define __tdcl(t) REXX_VALUE_##t #define __methodstub(name) uint16_t * RexxEntry name (RexxMethodContext *context, ValueDescriptor *arguments) @@ -3726,7 +3726,7 @@ END_EXTERN_C() #define RexxMethod0(returnType, name) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context); \ +__rtype(returnType) name##_impl (RexxMethodContext * context); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), REXX_ARGUMENT_TERMINATOR}; \ @@ -3743,13 +3743,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context) +__rtype(returnType) name##_impl(RexxMethodContext *context) // method with one argument #define RexxMethod1(returnType ,name, t1, n1) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), REXX_ARGUMENT_TERMINATOR}; \ @@ -3766,13 +3766,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1)) // method with two arguments #define RexxMethod2(returnType ,name, t1, n1, t2, n2) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), REXX_ARGUMENT_TERMINATOR}; \ @@ -3789,13 +3789,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2)) // method with three arguments #define RexxMethod3(returnType ,name, t1, n1, t2, n2, t3, n3) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), REXX_ARGUMENT_TERMINATOR}; \ @@ -3812,13 +3812,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)) // method with four arguments #define RexxMethod4(returnType ,name, t1, n1, t2, n2, t3, n3, t4, n4) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), REXX_ARGUMENT_TERMINATOR}; \ @@ -3835,13 +3835,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)) // method with five arguments #define RexxMethod5(returnType ,name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), REXX_ARGUMENT_TERMINATOR}; \ @@ -3858,13 +3858,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)) // method with six arguments #define RexxMethod6(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), REXX_ARGUMENT_TERMINATOR}; \ @@ -3881,13 +3881,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)) // method with seven arguments #define RexxMethod7(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), REXX_ARGUMENT_TERMINATOR}; \ @@ -3904,13 +3904,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)) // method with eight arguments #define RexxMethod8(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), __tdcl(t8), REXX_ARGUMENT_TERMINATOR}; \ @@ -3927,13 +3927,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)) // method with nine arguments #define RexxMethod9(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8, t9, n9) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), __tdcl(t8), __tdcl(t9), REXX_ARGUMENT_TERMINATOR}; \ @@ -3950,13 +3950,13 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)) // method with 10 arguments #define RexxMethod10(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8, t9, n9, t10, n10) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)); \ +__rtype(returnType) name##_impl (RexxMethodContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), __tdcl(t8), __tdcl(t9), __tdcl(t10), REXX_ARGUMENT_TERMINATOR}; \ @@ -3973,7 +3973,7 @@ __methodstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)) +__rtype(returnType) name##_impl(RexxMethodContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)) #define __functionstub(name) uint16_t * RexxEntry name(RexxCallContext *context, ValueDescriptor *arguments) @@ -3990,7 +3990,7 @@ __type(returnType) name##_impl(RexxMetho #define RexxRoutine0(returnType, name) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context); \ +__rtype(returnType) name##_impl (RexxCallContext * context); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), REXX_ARGUMENT_TERMINATOR}; \ @@ -4007,13 +4007,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context) +__rtype(returnType) name##_impl(RexxCallContext *context) // method with one argument #define RexxRoutine1(returnType ,name, t1, n1) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), REXX_ARGUMENT_TERMINATOR}; \ @@ -4030,13 +4030,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1)) // method with two arguments #define RexxRoutine2(returnType ,name, t1, n1, t2, n2) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), REXX_ARGUMENT_TERMINATOR }; \ @@ -4053,13 +4053,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2)) // method with three arguments #define RexxRoutine3(returnType ,name, t1, n1, t2, n2, t3, n3) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), REXX_ARGUMENT_TERMINATOR}; \ @@ -4076,13 +4076,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3)) // method with four arguments #define RexxRoutine4(returnType ,name, t1, n1, t2, n2, t3, n3, t4, n4) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), REXX_ARGUMENT_TERMINATOR}; \ @@ -4099,13 +4099,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4)) // method with five arguments #define RexxRoutine5(returnType ,name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), REXX_ARGUMENT_TERMINATOR}; \ @@ -4122,13 +4122,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5)) // method with six arguments #define RexxRoutine6(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), REXX_ARGUMENT_TERMINATOR}; \ @@ -4145,12 +4145,12 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6)) // method with seven arguments #define RexxRoutine7(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), REXX_ARGUMENT_TERMINATOR}; \ @@ -4167,13 +4167,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7)) // function with eight arguments #define RexxRoutine8(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), __tdcl(t8), REXX_ARGUMENT_TERMINATOR}; \ @@ -4190,13 +4190,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8)) // function with nine arguments #define RexxRoutine9(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8, t9, n9) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), __tdcl(t8), __tdcl(t9), REXX_ARGUMENT_TERMINATOR}; \ @@ -4213,13 +4213,13 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9)) // function with ten arguments #define RexxRoutine10(returnType, name, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8, t9, n9, t10, n10) \ /* forward reference definition for method */ \ -__type(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)); \ +__rtype(returnType) name##_impl (RexxCallContext * context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)); \ \ /* method signature definition */ \ static uint16_t name##_types[] = {__tdcl(returnType), __tdcl(t1), __tdcl(t2), __tdcl(t3), __tdcl(t4), __tdcl(t5), __tdcl(t6), __tdcl(t7), __tdcl(t8), __tdcl(t9), __tdcl(t10), REXX_ARGUMENT_TERMINATOR}; \ @@ -4236,7 +4236,7 @@ __functionstub(name) \ return name##_types; /* return the type signature */ \ } \ /* the real target method code */ \ -__type(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)) +__rtype(returnType) name##_impl(RexxCallContext *context, __adcl(t1, n1), __adcl(t2, n2), __adcl(t3, n3), __adcl(t4, n4), __adcl(t5, n5), __adcl(t6, n6), __adcl(t7, n7), __adcl(t8, n8), __adcl(t9, n9), __adcl(t10, n10)) /******************************************************************************/ /* Types (used in macro expansions and function prototypes) */ Index: b/interpreter/runtime/Interpreter.hpp =================================================================== --- a/interpreter/runtime/Interpreter.hpp +++ b/interpreter/runtime/Interpreter.hpp @@ -119,7 +119,7 @@ public: static inline bool isBigEndian() { static const int mfcone=1; // constant 1 - static const char *mfctop=(char *)&mfcone; // -> top byte + static const char *mfctop=(const char *)&mfcone; // -> top byte #define LITEND *mfctop // named flag; 1=little-endian return LITEND == 0; ++++++ ooRexx-chdir-setgroups.patch ++++++ Index: b/extensions/platform/unix/rxunixsys/rxunixsys.cpp =================================================================== --- a/extensions/platform/unix/rxunixsys/rxunixsys.cpp +++ b/extensions/platform/unix/rxunixsys/rxunixsys.cpp @@ -180,7 +180,7 @@ RexxRoutine1(RexxObjectPtr, SysSetuid, int, uid) { - + setgroups(0, NULL); return context->WholeNumberToObject((wholenumber_t)setuid((uid_t)uid)); } @@ -549,6 +549,7 @@ RexxRoutine1(int, SysChroot, CSTRING, path1) { + chdir("/"); return chroot(path1); }
