Thanks again for your replies. I use Xilinx Foundation software. I tried to run this in 32-bit Windows 7 but it didn't work. Running it in an XP emulator does work, but it is too slow. When Xilinx updated their software to ISE, there was no path provided to update all my schematic designs to the new version. So here I am, stuck with XP! I have a firewall installed, which has so far kept me safe from hackers.
I was surprised to learn that you could run 16-bit programs in 32-bit Windows 10, as that was the problem I was having with getting Foundation to work in Windows 7. I've now learnt that for Windows 7, you can enable 16-bit programs!
https://techtrix.co/can-windows-7-32-bit-run-16-bit-programs/The reason for using Cygwin was that it was convenient to extract the Linux binaries. I thought it might be possible to also run my Linux compilations there, but that turned out not to be the case. A long time ago, I was able to compile my Pascal programs in Cygwin, but it seems when I upgraded to 3.0.4 that was no longer possible.
I think the path forward for me is to reinstall Windows 7 on a new hard drive, enable 16-bit mode and then try running Foundation again. If that works, I can migrate all my data and programs to Windows 7 and avoid all the problems with XP.
As to cross compiling my code for Linux, my current setup with 3.0.4 seems to work. It turns out that the person that was having problems with my Linux software was trying to run it on MacOS! The binaries for this system are at
https://sourceforge.net/projects/freepascal/files/Mac%20OS%20X/3.0.4/My question is now, how do I extract the MacOS binaries and where do I find the cross-compiler?
Thanks again for all your help!