v2.6.5 - MinGW as a tier-1 compiler and fixes for problems with 2.6.4

18 views
Skip to first unread message

Kyle

unread,
Apr 29, 2025, 10:38:36 PMApr 29
to libplctag

The big change in this release is for MinGW. It is now a tier-1 supported compiler. The CI system tests builds with MinGW the same as with MSVC on Windows. On x86 and x64, the CI uses MinGW to build libplctag, all the examples and runs all tests that can be run using the ab_server simulator.

There are some fixes for 2.6.4:

  • From user wegel, changes in how the refactored CMake configs reference directories. This helps with using libplctag in another Git project.
  • Re-enable the install clauses in the config. This broke packaging for the brew package management system. Thanks to user daeho-ro for finding that!

The examples are now fully statically linked on Linux. Apple has decided to make it very difficult to make a fully static executable on macOS, so the examples there are linked with libplctag statically.

32-bit ARM Windows binaries are still broken. I have spent days trying to figure out how to make it work. It now looks like I might need to lean on LLVM/Clang instead of MinGW or MSVC. It is still possible to build your own binaries if you have such a system. I am able to build them with no problem on my own Windows machine. But the configuration of the GitHub CI runners seems to be different and for some reason I am not able to fully install all the needed components to get MSVC to generate 32-bit ARM binaries.

Note that the names of the binary packages below will start changing to incorporate the compiler when there are multiple compilers used for a platform. I have not made the binaries created by MinGW into tagged binaries attached to a release as there are already equivalent binaries from MSVC.

In the future I will probably be dropping the pre-built 32-bit binaries.   It is getting harder and harder to reliably build them on GitHub's CI runner systems.

The size of the ZIP files has increased significantly since the examples are statically linked.  I may start separating out the ZIP files so that for each platform there is a ZIP with everything, a ZIP with the library and a few useful tools like tag_rw2 and tag listing, and a ZIP with nothing but the library binaries and header files for development.

Get it at the usual location.

Reply all
Reply to author
Forward
0 new messages