[Info-vax] VMS Software Releases Roadmap Updates

Craig A. Berry craigberry at nospam.mac.com
Tue Sep 28 09:56:52 EDT 2021


On 9/28/21 7:44 AM, Arne Vajhøj wrote:
> On 9/28/2021 12:14 AM, Dave Froble wrote:
>> On 9/27/2021 10:00 PM, Craig A. Berry wrote:
>>> On 9/27/21 8:39 PM, Dave Froble wrote:
>>>> Well, trying to be fair, what difference does it make, as to which CPU
>>>> and OS is used to generate the OBJ and EXE files?  It's all just ones
>>>> and zeros, right?
>>>
>>> Because build systems of any complexity tend to build things that build
>>> more things that generate things that build other things.  With enough
>>> hacks, workarounds, and manual intervention in processes that are
>>> normally automated, such systems can likely be made to work with
>>> cross-compilers, but it's potentially a major effort.
>>
>> Aren't I so glad that I don't use any of these "complex" modern tools?
>>
>> Isn't it a bit of a bad idea to give up control of your apps to some 
>> wizz bang modern tool?  I think so.

There are no modern tools involved.

> If you simply use BUILD.COM then replacing "basic" with
> "basic/whateverswitchthecrosscompilationrequires" will probbaly
> do.
> 
> Of course there are work.
> 
> But in the overall effort to add support for VMS x86-64, then
> I will expect the effort to get cross compilation working
> to be relative small.

You haven't seen the Perl build system, which generates a top-level
descrip.mms from a template with substitutions to include details for
configuration options chosen and the results of probes to see what
features are actually working on the version/architecture of VMS on
which it's running. Then it compiles and links a minimal version of Perl
which is used to generate hundreds of additional descrip.mms files,
which it then runs to generate many additional .c files and build
additional parts of the whole package and run the test suite.

To get this to work in a cross-compile environment, you'd need to
configure and build the minimal Perl with the native Itanium tools,
manually edit the configuration output to look like it had been run on
OpenVMS x86_64, switch to the cross-compile tools, and try to complete
the build. It *might* work, for some definition of work, but would also
probably take a lot of manual tweaking, which is one reason I haven't
attempted it yet.  And then you couldn't run the test suite.

I do not expect any other build environment to look like the Perl build
environment, but I do expect there are many build systems that employ
similar bootstrapping principles and would encounter similar challenges
in a cross-compile environment.



More information about the Info-vax mailing list