-
Notifications
You must be signed in to change notification settings - Fork 48
Support apple silicon arm architecture #529
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
Conversation
|
Nice, First add the macos-x-arm64 github action, test that only this job fails, then add the patch.https://github.com/actions/runner-images/tree/main/images/macos |
b834646 to
2f2ae76
Compare
|
The tests passed.
Additionally, tests for Apple Silicon have been added in this PR (#530). It has been confirmed that the tests are failing on macOS 14 and 15. This PR contains fixes to ensure that the code compiles and the tests pass on macOS 14 and 15. |
|
With jskeus's patch (euslisp/jskeus#647), macos-14 and macos-15 tests passed. |
|
We've confirmed that tests pass after applying the The commit to use the To merge this PR, we need to change the required GitHub Actions in this repository from osx to osx |
|
@iory please create new PR for typo/error to confirm new master branch works correctly |
|
OK. I sent a minor bug fix PR (#532) |
- apply patches in dfsg https://salsa.debian.org/science-team/euslisp/-/tree/debian/9.31+dfsg-1/debian/patches?ref_type=tags - On arm32, localtime_r in LOCALTIME in unixcall.c returns NULL in some situation (#524) - Fix for blhf Fix for blhc tests, we need to use default CFLAGS (#523) - defforeign on ppc64el is not work for float/double, skpping test for now (#525) - update VERSION=9.31 (#517) - remove link to libeus from executables, this also remove EUSLIB, which provides RPATH settings that Debian dislike. (#522) - use same code for every build (only common.l) (#522) - Fix hardening-no-bindnow by adding DEB_BUILD_MAINT_OPTIONS = hardening=+all to rule and pass that variable to CFLAGS/SOFLAGS/LDFLAGS, use gcc for LD. (#522) - use termios.h, termio.h is dropped for glibc >= 2.42, fix lisp/tool/eustags.c for gcc^15 (#533) - Fixed find symbol function by using 's' instead of 'sym' variable and added hash table size (#532) - Support apple silicon arm architecture. Updates C code to handle 64-bit pointers correctly, especially for printing memory addresses. (#529) - make sure to run MKDIR before compile GCCLS (#527) - update code for gcc-15 (#521)

Add support for Apple Silicon (arm64)
This PR introduces the necessary changes to build and run the software natively on Apple Silicon (macOS arm64 architecture).
Key Changes:
Makefile: The build system for Darwin (macOS) now detects the arm64 architecture and sets the appropriate compiler flags. It also adds standard Homebrew paths (/opt/homebrew/) for libraries and includes.
C & Assembly:
Corrects the linkage of assembly functions on arm64 to make them visible to the C linker.
Updates C code to handle 64-bit pointers correctly, especially for printing memory addresses.
Adjusts type definitions (_end symbol) and function calls (dlsym) for compatibility with the arm64 architecture.