CYGPORT not setting CMAKE_SYSTEM_PROCESSOR when cross compiling with aarch64-w64-mingw32.

Carlo B. carlo.bramini@gmail.com
Fri Jul 19 08:08:55 GMT 2024


Hello,

GCC development branch includes experimental support Windows on ARM64
(WOA), which will be officially released next year with version 15, at
least according to latest news.
So, I compiled it and I created a number of packages for CYGWIN
including binutils, gcc, mingw runtime and several libraries, not
released yet to my repository.
Although the "aarch64-w64-mingw32" target is still experimental, I
have to say that this cross compiler worked very well, at least until
now.
However, some problems appear because there are some thirdy party
tools not expecting to have mingw combined with something different
than i686 or x86_64.
For example, it is impossible to create a shared library when using
libtool, more details could be found here:
https://savannah.gnu.org/support/?111081
For this reason, you have to use CMake or other alternative tools
instead of autotools.

Actually, another problem can happen when creating the packages for
CYGWIN with CYGPORT utility.
For example, I tried to build a noarch package of libpng for CYGWIN,
by using the new aarch64-w64-mingw32.
I have used CMake to bypass the above trouble with libtool.
Unfortunately, the build process still fails because it didn't compile
the sources for adding the functions with NEON acceleration.
The cause of the problem is the variable CMAKE_SYSTEM_PROCESSOR that is empty.
This is not a bug of CMake, because CMAKE_SYSTEM_PROCESSOR is
typically set into CMAKE_TOOLCHAIN_FILE by the user when cross
compiling.
At the moment, I bypassed the trouble by adding
"-DCMAKE_SYSTEM_PROCESSOR=aarch64" to CYGCMAKE_ARGS into my script.
I gave a look into /usr/share/cygport/cygclass/cmake.cygclass and it
seems to me that there is nothing for setting the CPU type.
Perhaps it would be worth to add support for setting
CMAKE_SYSTEM_PROCESSOR into cmake.cygclass, by checking the content of
${CTARGET}, if it exists with a known CPU.

Thank you very much for your time.
Sincerely,

Carlo Bramini.


More information about the Cygwin mailing list