-
Notifications
You must be signed in to change notification settings - Fork 15
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
HOL-Light: Add support for MacOS #716
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
f24cc1c
to
138a88f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nearly there...
The HOL-Light/s2n-bignum proofs expect ELF formatted object files, but compilation on MacOS produces Mach-O object files. This commit modifies the makefile for the HOL-Light proofs in mlkem-native to explicitly convert from Mach-O to ELF using gobjcopy. Unfortunately, there does not seem to be a way to get a version of `objcopy` through `nix` that supports the required conversion, hence we need to fall back to documentation and expressive error messages to nudge the user to manually install `gobjcopy` via `brew install binutils` when it cannot be found. Signed-off-by: Hanno Becker <beckphan@amazon.co.uk>
138a88f
to
dfb3166
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Merge please.
The HOL-Light/s2n-bignum proofs expect ELF formatted object files, but compilation on MacOS produces Mach-O object files.
This commit modifies the makefile for the HOL-Light proofs in mlkem-native to explicitly convert from Mach-O to ELF using gobjcopy.
Unfortunately, there does not seem to be a way to get a version of
objcopy
throughnix
that supports the required conversion, hence we need to fall back to documentation and expressive error messages to nudge the user to manually installgobjcopy
viabrew install binutils
when it cannot be found.