#875 REX0372E: Error 40.1: External routine "SYSSTEMINSERT" fail

v4.0.1
closed
5
2012-08-14
2010-01-19
Bob Martin
No

The following program:

!/usr/bin/env rexx

RCDS.0 = 0
call SysStemInsert 'RCDS.',1,'line 1'
call SysStemInsert 'RCDS.',2,'line 2'


fails with:
5 - call SysStemInsert 'RCDS.',2,'line 2'
REX0040E: Error 40: Incorrect call to routine
REX0372E: Error 40.1: External routine "SYSSTEMINSERT" failed

Using ooRexx-4.0.0.x86_64.deb on Ubuntu 9.10 on an AMD 64x2
Program works as expected on 32-bit system.

Discussion

  • Bob Martin

    Bob Martin - 2010-01-19

    program demonstrating failure

     
  • David Ashley

    David Ashley - 2010-01-19

    I can confirm this fails on Fedora 12 x86_64 as well. I looked at the code and cannot see a reason for the bad return on first glance. Guess it will have to be debugged.

     
  • Rick McGuire

    Rick McGuire - 2010-01-19

    I spotted the problem, and Windows is likely to have the same problem with SysStemSort. The issue is using sscanf to convert the arguments to size_t values. On 64-bit platorms, the %u pattern only parses off an int value, which is 32-bit. This results in only half of the target value getting filled in properly. I'm working on fixes for this.

     
  • David Ashley

    David Ashley - 2010-01-19

    OK, I think I see the problem. It has to do with the sscanf function calls in the Rexx external function. The position variables are specified as size_t for the stem and the sscanf function uses "%u" as the format for scanning. This works great for 32 bit where int and long are the same size (or on Windows 64 bit where they remain the same size). But on *nix 64 bit systems this is not correct. The format specifier needs to be "%lu" because size_t is a 64 bit value.

    Rick, Mark - can you confirm this?

     
  • Rick McGuire

    Rick McGuire - 2010-01-21

    Committed revision 5493 & 5494

     
  • Rick McGuire

    Rick McGuire - 2010-02-23

    Committed revision 5610.

    4.0.1 merge

     
  • Mark Miesfeld

    Mark Miesfeld - 2010-09-08

    The fix for this item was in the 4.0.1 release.

     


Anonymous

Cancel  Add attachments





Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks