Conversation
Building on Dockcross containers allows to reliably target specific architectures, most importantly linux/arm6 used by many devices, including some Raspberry Pis, such as model Zero. Fixes issue #139.
| mvn -B clean install -P dockcross \ | ||
| -Dos.target.name=${{ matrix.os_target_name }} \ | ||
| -Dos.target.arch=${{ matrix.os_target_arch }} \ | ||
| -Dos.target.bitness=${{ matrix.os_target_bitness }} \ |
There was a problem hiding this comment.
os.target.* properties are normally set by the maven profile, and here they determine where the build lib file is put. I chose to create a single profile for Dockcross, and set these manually here - so that way old profiles still work as they used to, allowing devs to build the natives using unmodified toolchains.
|
The pipeline seem to work as expected, the rebuilt libs are commited to branch: update_cross_compile_pipeline-precompiled-natives by the automatic build run here. Additional testing of jar created from said branch requested from users of: |
|
Thanks! I left a few comments. One question... with this change, are our existing toolchains still getting executed by the CI? |
They are not - all crosscompiling is delegated to dockcross containers. It's nice idea to have the test pipeline that would run against, for example, any new PR and verify the toolchains - but I think it's outside of the scope here. |
Thanks. Yes, I agree, we need coverage on the toolchains. I thought we already had this, so that's a bit of a surprise to me, but you're right, that's immaterial to the PR. |
Turning into a checklist for the PR. |
|
Checklist created. I should be able to test all platforms although my Linux PPC is not accessible so we may choose to skip that if all others work. I believe I have all others working at least in a Virtual Machine, so I can text if the library loads properly -- and if the hypervisor supports it, if it can read and write to a virtual COM port. |
|
ARM64 tests pass. Next is Intel. |
|
I've run out of time to test Intel, but everything on ARM64 seems OK, so I'm merging this as-is. |
Edited 2023-07-23 @tresf
Quoting:
Testing native components:
linux_arm64(@tresf)linux_ppcwindows_arm64(@tresf)osx_64(@tresf)osx_arm64(@tresf)sunos_32(@tresf)sunos_64(@tresf)