Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

apple silicon arm #3115

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

jeffsteinmetz
Copy link

@jeffsteinmetz jeffsteinmetz commented Jun 25, 2022

Here is a working example of the Azkaban source / Gradle / node working with Apple Silicon M1 (ARM architecture)

prerequisite

You must install the ARM versions of the Java JDK as well as the Java JDX FX.
This was tested by installing JDK 1.8 and JDK FX 1.8 for MacOS ARM from Azul:

https://www.azul.com/downloads/?package=jdk

  • uses gradle 6.3
  • uses latest node plugin and node V16
  • adds an architecture target hack to az-exec-util
  • commented out the unsupported build scan plugin

TODO

remove commented out build scan, or replace with a build scan that works (the build file could use some comments as to what the build scan tool is being used for)

@@ -17,6 +17,7 @@ apply plugin: 'c'
model {
components {
main(NativeExecutableSpec) {
targetPlatform "osx_x86-64"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this also a TODO? I'm not expert with Gradle, but does this sett the target platform regardless of what the current platform is?

Copy link
Author

Choose a reason for hiding this comment

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

I don't know much about gradle either. all the Gradle docs state is "Specifies the names of one or more [Flavor] that this component should be built for."

I think this forces the build to x86 vs ARM so that it runs Azkaban in rosetta mode on ARM / apple silicon.

Copy link
Author

Choose a reason for hiding this comment

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

I now see it only applies to a "c" utility in az-exec-util. I think it just makes the utility written in C build for x86, so the util will run in rosetta mode on ARM.
There may be a way to get that utility written in C to work on ARM, but that was beyond the scope of what I was able to pull together for this PR.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Thanks. I was wondering what happens on other than osx platforms. Seems that this doesn't ruin it for them, at least the Travis build seems to have succeeded past the point of building az-exec-util.

Copy link
Author

Choose a reason for hiding this comment

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

you are welcome to fork this and create a different MR if you can get everything else to work. I just put this MR here for posterity for anyone else having apple silicon / ARM issues.

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.

None yet

2 participants