[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