[Info-vax] C... the only winning move is not to play...

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Tue Feb 11 08:59:47 EST 2014


On 2014-02-11 01:13:35 +0000, Chris Scheers said:

> My usual solution to these types of problems is to copy the correct 
> prototype file from the later system and put it in the include path.
> 
> This isn't a C specific problem.  I have also had it with FORTRAN and 
> (IIRC) Ada.

In some discussions over on decuserve / EISNER::, Bart L. was wrestling 
with some broken BASIC definitions, as well.

The headers for most of the OpenVMS definitions are common source, 
which means that either the core SDL definition is broken, or the 
particular SDL back-end was broken.

Given the definition changed across VMS versions, it's fairly likely 
the core definitions were broken.  That wouldn't be the first time that 
happened.

You can re-generate the language-specific definitions from 
STARLETSD.TLB, or (for those with access) check the source listings for 
the SDL files involved.  (If VMS were still active, there'd be a 
reasonable case for just shipping out the SDL files.  Shipping the SDL 
SDI intermediate files struck me as an antiquated approach to work 
around a non-problem, and — other than that the code already existed — 
more effort than it was worth.)

With the C and C++ include-files logical name morass, fetching a 
variant version of the errant include file is feasible.  That 
build-time change can be isolated, and the build can create the variant 
include file from the system definition.  Ugly, but workable.  Fetch 
the file from the library and then embed the source version number to 
avoid potential hassles after upgrades.  Fetch a new version of the 
include when the version changes, if necessary.

But then VAXman does already have a workable workaround.


-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list