obb130t@vaxc.cc.monash.edu.au (07/03/89)
We have a strange problem with XENIX COBOL which Microsoft Australia have not (so far)been able to help with...wondering if the net can help. Aim: add C subroutines to COBOL, intended to run under Xenix 386. Method: RTFM. Do it just like so. Problem 1. It doesn't work. Various diagnostics relating to Memory model, etc. Solution 1. Add -M0 to cc command line in mknewcob. Compile, link and initial testing all work fine. Note that the new COBOL run-time system is MUCH larger (120K instead of 90K). Problem 2. Record locking no longer works! Specifically, on Xenix 386 and 286 a READ with LOCK (MANUAL locking) on an indexed or relative file always succeeds, even if 2 or more copies read/lock the same record. The old RTS still locks fine, the new doesn't. Always status 00. Solution 2. Build the cobol on Xenix 286 (no -M0 switch). Works just fine. Old and new RTS lock records exactly the way they should (status 94). Note: cobsub.o (binary of C routines) is identical. New COBOL run-time system is bigger again (122K). Question 1: Why? Why is it different and why doesn't it work? Question 2: Is there any way we can build the COBOL RTS on Xenix 386? (depending on finding a friendly Xenix 286 when we need it is a real pain). Versions (sorry - bit vague): Latest COBOL: V2.2? (18 months old) Latest Xenix 386? (1 month old) Far-from-latest Xenix 286 (18 months old) Any help gratefully received. thADVANCEanx ..david.. -- ////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ / David M. Bennett obb130t@vaxc.cc.monash.edu.au \ / Demileigh Consulting, 22 Tourello Ave, East Hawthorn 61 3 882 7599 \ \ Victorian Red Cross Blood Bank, Balston St, South Melbourne 61 3 616 0353 / \ I never refuse. I never contradict. I sometimes forget. - Disraeli. / \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////////////////////