gpu / JOCL

Java bindings for OpenCL
http://www.jocl.org
Other
187 stars 33 forks source link

[question] code signing on macos big sur #41

Open zhuker opened 3 years ago

zhuker commented 3 years ago

@gpu What do you do for code signing on mac Not a jocl problem but (works just fine on my m1 mac) but jnr-ffi does not work see https://github.com/jnr/jnr-ffi/issues/257 Can you advise?

gpu commented 3 years ago

Sorry for the delay here

I haven't been aware of the topic of "code signing" at all. Usually, the Mac binaries are provided by external contributors. I hope it is OK to ping @LlemonDuck here: I think you provided the last Mac binaries - do you know details about this topic, or did you do something to "sign" the code in any way?

LlemonDuck commented 3 years ago

I did not do any code signing for the natives. However, it was not built for ARM, and should not require code signing since, AFAIK, code signatures are only required for ARM binaries, and not required for Intel binaries. If you are trying to load these binaries through an ARM-executed Java stack, I'm not entirely surprised that it had issues.

You could try providing an ad-hoc signature to the binary with codesign -s - binary_name, but again, the binary wasn't built for ARM and I don't expect it would execute in the first place under non-Rosetta execution.

I'm also not even entirely sure that OpenCL will have an ARM implementation on the M1 macs, considering it has been deprecated technology on macOS for a while now. If you really want it to run on M1, you could try building the binaries yourself referencing the OpenCL headers on ARM, if they exist, then codesign locally and try that.

gpu commented 3 years ago

Admittedly, much of this goes way over my head, in terms of specifics for MacOS, ARM and the requirements. There once was a contribution for ARM binaries at https://github.com/gpu/JOCL/issues/32#issuecomment-753374636 , but this was not part of a release, and I don't know whether it would suffer from the same problem as the linked FFI library. If anybody has further ideas or insights (or maybe even tried out the binary that I linked to), feel free to share them here.