Skip to content

Update cross compile pipeline#140

Merged
tresf merged 3 commits intomasterfrom
update_cross_compile_pipeline
Aug 4, 2023
Merged

Update cross compile pipeline#140
tresf merged 3 commits intomasterfrom
update_cross_compile_pipeline

Conversation

@pietrygamat
Copy link
Collaborator

@pietrygamat pietrygamat commented Jul 22, 2023

Edited 2023-07-23 @tresf

Quoting:

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: linux_arm64 linux_ppc windows_arm64 osx_64 osx_arm64 sunos_32 and sunos_64, as I have no means to verify correctness of the libs for these systems.

Testing native components:

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 }} \
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this idea.

@pietrygamat
Copy link
Collaborator Author

pietrygamat commented Jul 22, 2023

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: linux_arm64 linux_ppc windows_arm64 osx_64 osx_arm64 sunos_32 and sunos_64, as I have no means to verify correctness of the libs for these systems.

@pietrygamat pietrygamat requested a review from tresf July 22, 2023 20:52
@tresf
Copy link

tresf commented Jul 22, 2023

Thanks! I left a few comments.

One question... with this change, are our existing toolchains still getting executed by the CI?

@pietrygamat
Copy link
Collaborator Author

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.

@tresf
Copy link

tresf commented Jul 23, 2023

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.

@tresf
Copy link

tresf commented Jul 23, 2023

linux_arm64 linux_ppc windows_arm64 osx_64 osx_arm64 sunos_32 and sunos_64

Turning into a checklist for the PR.

@tresf
Copy link

tresf commented Jul 23, 2023

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.

@tresf
Copy link

tresf commented Jul 23, 2023

ARM64 tests pass. Next is Intel.

@tresf
Copy link

tresf commented Aug 4, 2023

I've run out of time to test Intel, but everything on ARM64 seems OK, so I'm merging this as-is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants