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

Add arm8 bootstrap #991

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

Add arm8 bootstrap #991

wants to merge 2 commits into from

Conversation

LudvikGalois
Copy link

No description provided.

basis/basis_ffi.c Outdated Show resolved Hide resolved
@oskarabrahamsson
Copy link
Contributor

Not all 'libc's will allow a call to `open` with `O_CREAT` set, but no
mode specified. We now explicitly specify that the mode for a newly
created file should be read/write.
@LudvikGalois
Copy link
Author

LudvikGalois commented Apr 20, 2024

The arm64 bootstrap needs to be run on an arm64 system, so I don't think it makes sense to add it to the build-sequence, since whatever is running the regression tests is an x86-64 system.

  • The 32-bit arm8 target seems unnecessary: are there are any armv8 processors that only support aarch32?

I'll remove the 32-bit target.

@tanyongkiam
Copy link
Contributor

The arm64 bootstrap needs to be run on an arm64 system, so I don't think it makes sense to add it to the build-sequence, since whatever is running the regression tests is an x86-64 system.

The in-logic compilation runs inside HOL4 and can produce the arm64 version of the compiler's .S file even while ran on an x86-64 server. It would be good to have it in the regression so that we can distribute the arm64 version of the .S file (like we do for x86-x64).

@LudvikGalois
Copy link
Author

The in-logic compilation runs inside HOL4 and can produce the arm64 version of the compiler's .S file even while ran on an x86-64 server. It would be good to have it in the regression so that we can distribute the arm64 version of the .S file (like we do for x86-x64).

Currently the makefile rule for the cake-arm8-64.tar.gz target includes a quick test to make sure the bootstrap works (because the x86-64 bootstrap had that test), and that won't run on an x86 machine. I'll remove that test since the x86-32 bootstrap doesn't have it, and then add arm8-64 as a target to the build-sequence file.

Also, sorry this is taking so long; I wanted to re-run the bootstrap after removing the arm8-32 bootstrap to make sure I didn't break anything.

@tanyongkiam
Copy link
Contributor

Great, thanks.

Also, you don't need to run this yourself. Once the relevant files are in the build-sequence, open PRs will get picked up by the CakeML regression testing system.

Support for bootstrapping on arm8 has been added. It is nearly identical
to the bootstrap scripts for x64, with the exception that "x64" has been
replaced with "arm8". Currently the REPL is only supported on x64, so
the `EVAL` flag is always disabled for arm8, even on Linux.
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

3 participants