Problems with Code Compiled Inside VMs
Posted: 12. Oct 2020, 20:48
The main question:
An executable compiled within the VM will not run on the controller (Pentium architecture) for which it is intended. The same code compiled on a native x86 Windows XP laptop runs fine. An MD5 comparison shows that the two executables created from the same code are in some way different.
Is x86 emulation on an x64 processor just doing something different with the instruction sets that will never yield the exact same results? Anyone have any ideas what I can try to make this work? Any suggestions are appreciated - these are deeper waters than I'm familiar with.
The backstory:
I have inherited some programs written in PL/M-86. Originally this was intended for use with the Intel 8086 architecture, but currently is known to compile and run fine with at least up to a Core Duo processor. I assume that this means that anything x86 would still be usable. Currently I have one laptop with a Core Duo running Windows XP on which this code is written and compiled. Given that this machine is going on about 15 years old, there are concerns of always having a native environment in which to support this software.
I have two different VMs that I have tried; one is Windows XP SP3, the other is MS-DOS 6.22. Within each I can write/edit the code using AEdit from the command line. I can successfully run the utilities which compile the code to an executable. There is no error returned by any of the utilities along the way.
An executable compiled within the VM will not run on the controller (Pentium architecture) for which it is intended. The same code compiled on a native x86 Windows XP laptop runs fine. An MD5 comparison shows that the two executables created from the same code are in some way different.
Is x86 emulation on an x64 processor just doing something different with the instruction sets that will never yield the exact same results? Anyone have any ideas what I can try to make this work? Any suggestions are appreciated - these are deeper waters than I'm familiar with.
The backstory:
I have inherited some programs written in PL/M-86. Originally this was intended for use with the Intel 8086 architecture, but currently is known to compile and run fine with at least up to a Core Duo processor. I assume that this means that anything x86 would still be usable. Currently I have one laptop with a Core Duo running Windows XP on which this code is written and compiled. Given that this machine is going on about 15 years old, there are concerns of always having a native environment in which to support this software.
I have two different VMs that I have tried; one is Windows XP SP3, the other is MS-DOS 6.22. Within each I can write/edit the code using AEdit from the command line. I can successfully run the utilities which compile the code to an executable. There is no error returned by any of the utilities along the way.