Hi Greg, AFAIK, Mr. Zou (CC here) fixed the Windows/Cygwin build few months ago.
We just need to add it in our CI to avoid it breaks again in the feature. Brennan/Petro/Xiang, do you have a machine to add the Windows CI ? Best Regards, Alan On 11/18/23, Gregory Nutt <spudan...@gmail.com> wrote: > AFAIK, the Cygwin build using a windows native tool chain has been > broken for years. There is no advice anyone can give that that is just > going to make it work. It is broken and no one has interest in fixing > that which they have broken. People make many changes to the build > system but never test on Cygwin with a native toolchain. > > The basic Cygwin environment is a GNU/POSIX environment equivalent to > the GNU/Linux environment. It is slower for two reasons: The fork() > emulation under Cygwin is notoriously slow and the run-time virus > detection interferes with every compilation. Tuning things and turning > off virus checks can greatly improve performance. We have had 7 second > Cygwin builds in the distant past. > > The other issue is the toolchain that you use. If you build a GCC > toolchain from scratch under Cygwin, then the build probably still > works. That is a pure POSIX environment. But most people want to use a > Windows native toolchain like the one that comes with Microchip Studio. > That does not work in a POSIX environment and the complexity skyrockets: > > * The configuration has to be changed to specify that you use a > Windows native tool chain (as reflected by the build WINTOOL setting). > * All of the build paths are standard POSIX paths like > /cygdrive/c/a/b/c. All of the paths provided as input to the Windows > native tool have to be converted to Windows paths like C:\a\b\c > * Similarly, all paths generated by the Windows native toolchain will > be such Windows paths and must be converted to POSIX paths to be > used by the build system. > * In order for the back slash to be usable by make system or passed on > as a command line argument, it has to be quoted in some fashion, > perhaps like "C:\a\b\c" > * When a quoted path is passed on the command line, it gets de-quoted. > That is, if you passed "C:\a\b\c", it will be received like > C:\a\b\c. It has been modified. If you tried using it again, it > becomes C:abc which is useless. > > This was all carefully balanced and used for many years. NuttX was > developed primarily on Cygwin with a native tool chain. But that has > been thrown in the shitter. At this point, it is not not worth > resurrecting it. Some one will just break it again since it does not get > testing by the CI. >